deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:lemoncat7/dsh-partner
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
面向 DeepSeek Harness 的长期 AI 伙伴与多渠道插件。
新增 伙伴 MCP 服务,在页面集中配置 HTTP / stdio 服务,再按伙伴授权;授权和工具目录刷新在原会话下一轮生效。
伙伴不是一次会话中的临时提示词。每个伙伴拥有独立身份、Agent Preset、模型路由、能力声明。同一伙伴的本地、微信、Matrix、Mattermost 共用主对话;所有已授权联系人共享对话上下文,不适合作为多人隐私隔离的公共机器人。微信使用腾讯微信 iLink Bot API,不模拟个人微信网页版协议。
交互提问按实际消息来源返回,不按会话绑定猜测渠道。伙伴默认可修改自身 Matrix / Mattermost 渠道账号头像,无需单独开启能力,详见 提问来源与渠道头像。
Matrix / Mattermost 私聊支持图片、文件、音频和视频收发;单条入站消息最多 8 个附件、合计 64 MB。音视频先作为文件保存或交付,不自动转写;Matrix 加密房间仍不支持。详见 渠道说明。
正式版,已验证宿主 DSH 0.1.5-rc.1。新增 MCP 服务与伙伴授权,能力修改自动保存,资源管理改为自适应弹窗;修复验收分配、自动验收恢复及凭据键随机保存失败。详见 2.4.0 发布说明。
正式版,已验证宿主 DSH 0.1.5-rc.1。统一记忆列表与可纠正的用户概述,修复共享会话记忆和弹窗定位;Matrix 消息缺口支持分页补拉及网络自动重连。详见 2.3.0 发布说明。
正式版,已验证宿主 DSH 0.1.5-rc.1。Matrix / Mattermost 支持附件收发,并合并紧邻的文字和附件,下载完成后再交给伙伴。详见 2.2.0 发布说明。
正式版,已验证宿主 DSH 0.1.5-rc.1。提问按实际发起端返回;伙伴默认可修改自身 Matrix / Mattermost 渠道账号头像,无需能力开关。详见 2.1.0 发布说明。
正式版,已验证宿主 DSH 0.1.5-rc.1;要求 Node.js ^22.19.0 或 >=24.0.0。 旧宿主兼容分支保留,但未重新完成旧宿主端到端验证。
.partner/;公共数据独立整理。memory-backup-*、memory_back 等原样归档;清理失败保留原文件,可单独重试。安装不会自动迁移。迁移后不可直接降级到不支持新版存储的插件,恢复前需备份新旧数据。 429 项自动化测试通过;已完成浏览器恢复检查及生产迁移数据核验。 详见 2.0.0 发布说明 与 存储迁移说明。
正式版,已验证宿主 DSH 0.1.5-rc.1;要求 Node.js ^22.19.0 或 >=24.0.0。
Matrix / Mattermost 支持正在输入和可更新的回复进度消息,完成后更新为正式回复;悬浮卡片消息详情支持 Markdown,适配窄屏和深浅色。395 项自动化测试通过,并完成浏览器与部署检查。
详见 1.16.2 发布说明 与 回复进度设计。
正式版,已验证宿主 DSH 0.1.5-rc.1;要求 Node.js ^22.19.0 或 >=24.0.0。
Matrix 增加安全 HTML 富文本与文本兜底;Mattermost 保留原生 Markdown。长消息按块分段,超长代码补齐围栏、表格重复表头,普通回复与主动通知复用同一适配器。385 项测试通过,已部署验证。
详见 1.16.1 发布说明 与 渠道消息格式。
插件正式版,已验证宿主为 DSH 0.1.5-rc.1,需要 Node.js ^22.19.0 或 >=24.0.0。
详见 1.16.0 发布说明 与 通知投递说明。
插件正式版,运行验证环境为 DSH 0.1.5-rc.1,Node.js ^22.19.0 或 >=24.0.0。DSH 宿主自身仍是 RC;旧版兼容分支保留,未重新完成全部旧宿主端到端验证。
升级前备份数据;共享上下文是本版行为变化。详见 1.15.0 发布说明 与 渠道使用说明。
插件正式版,已在 DSH 0.1.5-rc.1 验证新版主面板导航,保留旧版回退。身份页采用伙伴统一卡片与限定作用域的表单样式;不修改记忆、持续关注或工具授权。详见 更新说明。
正式版,适配 DSH 0.1.2-rc.1,需要 Node.js ^22.19.0 或 >=24.0.0。
正式版,适配 DSH 0.1.2-rc.1,需要 Node.js ^22.19.0 或 >=24.0.0。
适配 DSH 0.1.2-rc.1。
适配 DSH 0.1.2-rc.1。修复自定义绳纹在拖动时滑动穿帮:采用固定分段的材质坐标,纹理跟随绳子移动、弯曲和拉伸;保留帧率上限与静止休眠。
适配 DSH 0.1.2-rc.1。本版同时包含下述整份计划与逐项验收改进。
分工策略仍由“任务拆解与看板推进” Skill 定义;没有额外前置 Skill,也不强制所有问题都拆解。
partner_requirements · submit_plan 一次保存并提交整组任务:依赖、授权或参数任一不合法,整份不保存。网络重试使用同一 submissionKey 和同一载荷,不重复创建。工具调用示例(伙伴 ID 替换为授权目录中的真实 ID):
{
"action": "submit_plan",
"submissionKey": "research-delivery-01",
"title": "整理调研并交付结论",
"autoRun": true,
"completeScope": true,
"tasks": [
{ "key": "research", "title": "整理来源", "assigneeCompanionId": "researcher-id", "acceptanceCriteria": ["文档保留原始来源链接"] },
{ "key": "summary", "title": "汇总结论", "assigneeCompanionId": "writer-id", "dependsOn": ["research"], "acceptanceCriteria": ["结论可追溯至已验收资料"] }
]
}
验收伙伴省略时默认创建伙伴。autoRun 默认 true;仅规划设 false。completeScope 默认 false,只在整个目标范围都已安排时设 true;阶段工作不等于整个需求完成。续做原需求使用 requirementId/expectedRevision,必要时先由负责人 reopen,不要另建同名需求。
回执返回 replayed=true、execution=unchanged 表示取回现有任务而非重启;removed 表示旧工作已删除。资源键如 repo:team/api 仅约束本看板内一致的声明,不是操作系统锁或额外权限。详见 架构说明。
正式版 1.16.1 已在 DeepSeek Harness 0.1.5-rc.1 镜像验证,适配新版主面板导航,并保留 0.1.2-rc.1 接口回退。需要 Node.js ^22.19.0 或 >=24.0.0。插件的正式发布不表示 DSH 宿主已结束 RC 阶段。
partner_send_attachment,伙伴明确指定图片或文档路径,会话提供原生图片内容/下载链接,绑定渠道时发送真实文件;失败按交付 ID 重试,已确认成功的不重复发送。详见 1.10.6 发布说明。
详见 1.10.3 发布说明。
1.4.0,明确需求归属及整体收尾;强调专业分工,区分伙伴技能与原生技能加载,不增加前置 Skill 或执行路由门禁。操作说明及兼容边界见 1.10.0 发布说明。
2.6.0 的持久化回写队列,会话结束只等待快照入队,不等待知识提取或写入完成;回写失败在原回答下单独重试,不重发渠道消息。partners/<id> 目录及文件、工作区注册和关联配置;共享目录、链接根目录与挂载点拒绝自动清理,不扫描历史遗留目录。autoRun=false 仅规划;已有历史任务不会因为升级突然启动。dsh-knowledge 2.4.0+。bot_token 只保存到 DSH Credential Store,管理 API 和浏览器均不返回微信机器人 + 联系人 独立 Session 路由context_tokenui-conversation.busyEnter:steer 插入当前轮,queue 排入下一轮partner_concern_suggest 候选工具;它只在伙伴自己的会话且长期记忆开启时可见,不会增加普通 DSH 会话的工具提示开销@文件 仅作为只读依据;记录写权限只覆盖用户在“需要记录的地方”手动选择的现存文件或笔记,不能创建其他文件或触碰伙伴私有存储SKILL.md 的伙伴 Skill:安装与伙伴启用关系分离,支持在管理台创建本地 Skill、inline / fork 上下文、allowed-tools 权限收缩、校验和审计SKILL.md 的技能,支持外层包装目录;最多 512 个文件、32 MiB 总量、单文件 8 MiB,SKILL.md 为 512 KiB。其他压缩格式请先解压。拒绝越界路径、链接、冲突文件及损坏压缩包;不会执行安装脚本或自动为伙伴启用,也不覆盖已有 Skill。inline Skill 的 run 会返回当前会话应应用的指令及资源目录,不再错误创建缺少伙伴工具的临时会话;只有 fork 使用隔离执行。内置分解 Skill 1.6.0 明确区分原生子 Agent 与持久化看板委派:重新设计、调研与可行性验证按真实产出进入同一需求,不能以临时并行研究替代看板分工。仍不新增前置 Skill 或全局工具门禁。@B 委派;用户本人可从全局看板直接指派任意伙伴,只共享任务信封、公开能力和结果摘要partner_skill、partner_task_board、partner_collaborate、partner_schedule,以及按能力显式授权的 partner_companions 作用域工具,不污染普通 DSH 会话的工具表;“创建伙伴”工具只填写身份,新伙伴默认没有能力,后续由用户或已获高权限管理授权的伙伴配置partner_companion_manage,管理其他伙伴的身份、能力、Agent Preset/模型、Skill、单向协作关系及知识库挂载;默认关闭,不能修改自己或转授本管理权限心跳默认关闭,升级后不会突然主动发送消息。群聊策略和多渠道适配尚未开放。
在目标管理者的「能力 → 高权限管理」中开启「伙伴管理(高权限)」。仅授予可信伙伴;普通协作勾选不等于管理授权。本能力可以配置其他伙伴,但不开放其私有会话、记忆、渠道或凭据,也不能授予或撤回 administration 本身。
开启后可直接交代:“把研究员的身份改成资料核验助手,使用研究预设,启用研究 Skill,允许访问核验员,并挂载项目知识库。”模型通过作用域工具 partner_companion_manage 执行:
catalog → inspect → update:选择现有预设、模型、已安装 Skill 和伙伴,先读取 revision,再提交所需字段。未提供的字段不变;能力、Skill 和协作数组会替换对应列表,空数组清空。工具组合沿用 DSH Agent Preset,不直接修改全局工具权限。knowledge_catalog → knowledge_inspect → knowledge_configure:一次配置一个库,覆盖该伙伴默认项目及已有会话,让默认目录中的新会话也能继承。挂载设置是完整配置,省略项默认为开启召回、审核回写、空标签和空提取规则;停用使用 enabled: false,不删除知识内容。知识库挂载要求同时安装包含 dshKnowledgeMountManagement 接口的知识库插件;旧版或未安装时会明确提示,身份、能力等管理仍可用。挂载通过知识库当前选中的本地或远程后端执行,远程只读令牌不能修改挂载,不会绕过认证或退回本地写入。
目标伙伴执行中拒绝管理工具修改,配置过期须重新读取。配置保存成功后,身份、能力、Skill 与协作关系在下一轮执行前注册,无需为了注入工具重开会话;Preset 和模型作为会话默认配置,不覆盖已有会话的选择。此权限不自动开启任何伙伴的记忆、心跳或渠道。
dsh plugin --profile web add @lemoncat7/dsh-partner
本地压缩包:
dsh plugin --profile web add ./lemoncat7-dsh-partner-<version>.tgz
重启对应 DSH profile 后,左侧「空间」上方会出现「伙伴」。打开伙伴面板,创建或选择伙伴,再进入「微信」扫码。
- insert:
- id: partner
name: '@lemoncat7/dsh-partner'
config:
statePath: !!js dshHomePath('partner/state.json')
exposeWeb: true
apiPrefix: /partner-local/v1
defaultCwd: ''
autoStartChannels: true
defaultCwd 为空时使用 DSH 进程当前工作目录,以兼容桌面端和 Docker。可按部署情况显式设为真实存在的绝对路径。
/ilink/bot/get_bot_qrcode?bot_type=3。/ilink/bot/getupdates 长轮询接收消息。/ilink/bot/sendmessage 返回微信;回复中明确引用的工作目录文件会加密上传并作为微信附件发送。渠道身份只决定消息归属,不授予任何工具权限。SSH、知识库和未来 Git 插件仍执行各自的挂载、授权和审批规则。
statePath 指向的 JSON 文件。<defaultCwd>/partners/<伙伴 ID>/memory/,按联系人隔离保存每日完整对话归档、人物画像、每日回顾、结构化长期记忆和有证据的记忆关系;画像按版本进入联系人会话,其他记忆按当前话题与一跳强关系召回,默认永久保留。<defaultCwd>/partners/<伙伴 ID>/concerns/concerns.sqlite,保存挂念生命周期、变化观察、去重指纹、候选审计和打扰决策;候选审计保留 90 天,SQLite 使用 WAL、索引和串行事务写入。<defaultCwd>/partner-system/skills/<Skill ID>/SKILL.md;普通状态文件只保存来源、版本、路径、校验和及伙伴启用关系,不复制 Skill 正文。statePath 的原子状态文件中,并对任务数、活动历史、计划数和运行记录设置硬上限,防止长期使用后无限膨胀。dsh-partner-weixin。/partner-local/v1,仅接受同源请求;写操作还要求 X-DSH-Partner-Request: 1。<伙伴 cwd>/inbound/,目录权限为 0700、文件权限为 0600。npm install
npm test
npm pack --dry-run
要求 Node.js ^22.19.0 || >=24.0.0,与当前 DSH 运行时一致。
新模块的依赖方向、隐私边界和持久化约束见 docs/architecture.md。
ClawHub、LoopHub、SkillHub 是内置公共来源,默认启用且不能删除。公共压缩包只会在内存中读取最浅层的 SKILL.md,不会把归档路径直接解压到磁盘;安装后按非可信 Skill 在隔离临时会话中运行。
自定义市场源返回 JSON 数组,或返回带 skills 数组的对象:
{
"skills": [
{
"id": "team-release-audit",
"name": "团队发布审计",
"description": "执行团队约定的发布前检查。",
"version": "1.0.0",
"tags": ["release", "audit"],
"skillUrl": "./team-release-audit/SKILL.md",
"checksum": "sha256:可选的64位十六进制摘要"
}
]
}
skillUrl 可相对索引 URL。市场索引上限 1 MiB、单个 SKILL.md 上限 512 KiB;未标记为可信的市场即使声明 context: inline,安装后也会强制改为 fork。
市场页面的“代理设置”接受不含账号、密码和路径的 http://host:port。配置仅保存在当前客户端的伙伴状态中,同时作用于市场索引、Markdown Skill 和 ZIP 安装包下载;测试连接不会先写入配置。需要鉴权的代理应在本地网关侧处理,不要把凭据写进代理 URL。
关注使用后台轻量模型循环,不创建临时 Agent 或向聊天写入过程消息。每条关注独立执行,最多 12 轮工具交互和一轮无工具收尾,不再共用整批总时限或工具调用次数。单次模型请求最多 180 秒,单次工具最多 60 秒(工具自身可有更短限制),收尾有独立请求时间。每条完成立即保存;失败只保留未完成关注等待重试。只提供关联依据与记录目标,按文档完成代理、登录和查询;工具走来源作用域的 DSH 执行和审批,不自动批准。输出截断需按需分页。依据只读,结果仅写指定目标;检查受阻不能当作无变化。工具审计不复制参数正文。任意命令的文件隔离仍依赖 DSH 沙箱,工具名限制不等同文件系统隔离。
“交代一件事”中的 @文件或 @知识文档是只读检查依据;“需要记录的地方”另选现存本地文件或可编辑笔记。没有记录位置时不写文档,旧关注不自动把依据迁移成输出位置。有依据按依据整理,没有依据自主记录核实的现状和进展;笔记使用稳定 ID 绑定,知识库插件需提供 dshKnowledgeNoteRecording 宿主接口。心跳的笔记工具只接收 concernId,不允许模型选择其他笔记 ID;本地文件写权限只覆盖用户选择的现存文件。该入口不包含创建、删除、移动或重命名记录目标。首次可初始化已核实现状,后续避免重复追加,写入与通知判断相互独立。
完整核验结果通过 heartbeat_record_checkpoint 持久暂存,后台独立同步到记录目标。失败15分钟后仅重试同步,不重新抓取或提醒;实际写入成功才清除任务。详见 1.14.0 发布说明。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。