dsh-subagent-mode
September 12, 2026 · View on GitHub
DeepSeek Harness 插件:内建多智能体模式——专家子代理角色库 + 确定性步骤拆解器。
✨ 这是什么
主模型无需真正的子代理调度,也能跑一套“多智能体工作流”:
role_list看清有哪些专家角色;plan_steps把目标拆成有归属、有依赖顺序的步骤;role_prompt把每一步渲染成该角色的完整 system prompt,主模型自己逐轮扮演。
三个工具全部是纯逻辑:不调用 LLM、不派生真实 agent、不联网、不读写文件;
isConcurrencySafe() 恒为 true,同输入必同输出,可安全并发、可回放。
📦 安装
npx -y @deepseek-ai/dsh plugin --profile web add @qingshanjiluo/dsh-subagent-mode
安装后插件会随 bundle 的 cordis.patch.yml 注入 profile,注册下面三个工具。
🛠️ 工具
| 工具名 | 参数 | 返回 | 说明 |
|---|---|---|---|
role_list | 无 | roles[] { id, title, when, strengths[] }、count | 列出 8 个内建专家角色及其适用场景,是 role_prompt / plan_steps 的合法 id 来源。 |
role_prompt | id(必填)、task(必填)、context(可选) | id、title、systemPrompt、error | 渲染该角色的完整人设指令,并把任务与上下文嵌入。角色不存在或 task 为空 → systemPrompt: "" 且 error 给出原因。 |
plan_steps | goal(必填)、constraints(可选字符串数组) | goal、source、steps[] { index, title, ownerRole, dependsOn[] }、count、truncated、notes[] | 扫描目标里的阶段线索,输出有序、带依赖的步骤计划;无线索时退化为通用链路。 |
内建角色(8 个)
| id | 标题 | 何时交给它 |
|---|---|---|
code-reviewer | Code Reviewer | 改动完成,需要一次怀疑式审查 |
test-writer | Test Author | 需要回归网兜住行为 |
refactorer | Refactorer | 能跑但难改:重复、耦合、巨型函数 |
doc-writer | Documentation Writer | README / API 文档 / 用户指南 |
security-auditor | Security Auditor | 涉及不可信输入、鉴权、密钥、依赖 |
api-designer | API Designer | 需要定义别人要依赖的边界与契约 |
debugger | Debugger | 出错了,原因未知 |
summarizer | Summarizer | 长线程 / 大 diff / 计划需要浓缩摘要 |
plan_steps 的阶段线索
按固定顺序扫描 11 个阶段,命中即成一步;每步的 ownerRole 来自上表:
| 阶段 | 承担角色 | 英文线索(示例) | 中文线索 |
|---|---|---|---|
| design | api-designer | design / architect / plan / spec / scope / research | 设计、方案、规划、选型 |
| api | api-designer | api / endpoint / interface / contract / route / sdk | 接口、契约 |
| implement | refactorer | implement / build / write / develop / create / integrate | 实现、开发、编写、接入 |
| refactor | refactorer | refactor / simplify / extract / dedupe / rename | 重构、抽取、拆分 |
| debug | debugger | debug / fix / bug / crash / reproduce / root cause | 调试、排查、修复、定位 |
| test | test-writer | test / unit / coverage / verify / benchmark / e2e | 测试、验证、覆盖 |
| review | code-reviewer | review / critique / approve / lint / sign off | 评审、审查、复核 |
| security | security-auditor | security / auth / secret / injection / supply chain | 安全、鉴权、越权 |
| docs | doc-writer | document / readme / changelog / guide / example | 文档、说明、注释 |
| release | code-reviewer | deploy / release / ship / ci / docker / rollback | 部署、发布、上线 |
| summarize | summarizer | summarize / recap / report / overview / wrap up | 总结、汇报、交付说明 |
- 每步
title= 阶段动作 + 命中该阶段线索的那个子句(按, ; : 、。与then/并且/然后切分),例如"… implement the writer, debug the crash, add tests"→Test: add tests;取不到子句时退化为整个目标的前 48 字符摘要。 dependsOn是 1 起算的步骤下标;为空表示可与同伴并行。- 一个线索都没命中时,返回通用链路 design → implement → test → review,且
source为"fallback"。 - 步骤超过
maxSteps时按尾部截断,truncated: true,并在notes里列出被丢掉的步骤。
⚙️ 配置
| 配置项 | 类型 | 默认值 | 实际作用 |
|---|---|---|---|
maxSteps | number | 8 | plan_steps 返回步骤的硬上限(越界自动夹到 1..11)。 |
defaultLanguage | string | 'en' | 写进每个角色 prompt 的“Response language”一节;en/zh/ja 等常见码会展开成 English/Chinese/Japanese,其它值原样使用。 |
# cordis.patch.yml(随包发布,安装时自动注入)
- insert:
- id: subagent-mode
name: '@qingshanjiluo/dsh-subagent-mode'
config:
maxSteps: 8
defaultLanguage: en
🚀 典型用法
role_list()
plan_steps("为导出功能设计 API、实现、补测试、评审并写文档", ["不新增依赖"])
role_prompt("api-designer", "Step 1 — Define the contract: 为导出功能设计 API、实现、补测试…", "<上一步结论>")
🧪 本地开发
npm install --no-audit --no-fund
npx tsc --noEmit # 类型检查
npm run build # 产出 lib/index.js + lib/index.d.ts
npx vitest run # 行为测试
node scripts/load-smoke.mjs # 用构建产物做加载冒烟
📄 License
MIT