前言¶
DeepSeek Harness (DSH) 采用“一切皆插件”的架构,旨在通过插件化扩展功能。在多窗口、多工具协作的场景下,AI 智能体之间传递上下文时存在理解损耗和上下文丢失的问题。把模糊的“大白话”直接丢给 AI 往往导致理解偏差,而窗口切换或工具切换后,上下文全靠人肉搬运。task-forge 插件通过“编译-交接-回读”的流程,将需求转化为标准化的任务书,并强制执行回读握手协议,确保跨窗口交接的无损性。
是什么¶
- 名称:
dsh-plugin-task-forge - 一句话:把大白话编译成任务书,跨窗口 AI 无损交接
- 维护者:121212165
- 分类:工作流
- 许可证:MIT
- 核心价值:通过结构化的任务书和回读协议,解决 AI 之间上下文传递的损耗问题。
安装与启用¶
插件依赖 pnpm 在 PATH 上,且需要 @deepseek-ai/cordis >=4.0.0。
- 执行安装命令:
dsh plugin --profile web add github:121212165/dsh-plugin-task-forge
- 修改配置文件。将本仓库根目录的
cordis.patch.yml内容替换或合并进$DSH_HOME/profiles/web/cordis.patch.yml。
注意:不要直接追加,否则会报错。 - 重启 dsh。配置层和客户端都需要重启才能生效。
核心命令¶
插件提供了一系列命令来管理任务的全生命周期。
1. 编译:/forge <需求>¶
将大白话编译成开源项目标准的任务书。
* 用法:/forge <你的需求> [--mode interview]
* 说明:
* 默认 auto 模式:模型自行推演并暴露假设,定不了的写成编号缺口 Q1/Q2…。
* --mode interview:先出问题清单,等用户回答完再编译。
2. 交接:/relay <id>¶
导出自包含的交接包,粘贴给任意窗口的 AI。
* 用法:/relay <id> [--to <窗口名>\|ide:<工具名>]
* 说明:
* 导出文件:~/.dsh/task-forge/outbox/<id>-v<n>.md。
* 支持 --to ide:<工具名>,会在当前项目内落一份同字节副本。
3. 回读握手:/ack <id> <回读全文>¶
确认对方 AI 已经正确理解任务书。
* 用法:/ack <id> [--to <窗口名>] <回读全文>
* 说明:
* 必须包含 STATUS: READY 才算成功。
* 如果是 STATUS: NEED-INPUT,缺口会自动登记进任务书。
4. 补全缺口:/answer <id> <Q编号> <答案>¶
回答编译过程中发现的缺口。
* 用法:/answer <id> <Q编号> <答案>
* 说明:
* 答案写入已定决策(D 编号),版本号 +1。
* 如果是 interview 模式,答完最后一个 Q 会自动重新注入编译指令。
5. 台账总览:/forge-list¶
查看所有任务的状态。
* 用法:/forge-list
* 说明:显示任务 × 版本 × 窗口回读状态(如 窗口A✓v2 / 窗口B◐v1)× 缺口/决策计数。
回读握手协议¶
为了确保无损交接,接收方必须在开工前输出以下内容:
version: <它读到的版本号>
【回读】用自己的话复述目标、约束、验收标准(逐条对应编号)
【缺口】发现的信息不足或矛盾,逐条编号;没有写"无"
STATUS: READY 或 STATUS: NEED-INPUT
- 结构不完整(缺 STATUS / 缺 version / 缺复述)→
/ack判无效。 - 版本不一致 → 按旧版处理并警告。
- 版本号 是跨窗口唯一权威,所有交接引用必须带
id@version。
配置项¶
插件支持以下配置(默认值):
enabled:是否启用(默认true)。dataPath:数据根目录,默认~/.dsh/task-forge。hubPath:IDE 副本目录,默认.hub。quotaSummaryPath:预算契约文件,默认~/.dsh/quota/summary.json。quotaHistoryPath:用量历史文件,默认~/.dsh/quota/history.json。limit/maxChars:注入系统提示的条数与字符预算,默认8/900。order:注入段在系统提示里的排序位置,默认690。
总结¶
dsh-plugin-task-forge 为 DSH 生态提供了任务管理的标准流程。通过 /forge 将需求结构化,通过 /relay 与 /ack 确保跨窗口传递的准确性,通过版本号管理确保协作的可追溯性。这对于需要多 AI 智能体协作的场景非常有价值。