@ttxl314/dsh-skill-lord-serf
English | 中文
将 ttxl314/lord-serf-agent-protocol-SKILL(协议 0.5)移植为 DeepSeek Harness(DSH)插件:提供 lord 与 serf 两个技能,让 DSH 既可以当 Lord(编排者),也可以当 Serf(执行者)。
协议是什么
以文件为载体的多 Agent 编排协议,生命周期:
plan → package → dispatch → execute → submit → review → decide- Lord:规划、任务包(task package)、派发 Serf、权威任务状态(authoritative state source)、评审决策、最终验收。
- Serf:执行一个 Lord 下发的任务包、自我校验实际产出、提交一份报告(
REVIEW/BLOCKED/CHANGE_REQUEST)。 - 聊天只是通知;项目状态、需求、证据、决策全部落盘为文件(
TASKS.md、TASKS/、REVIEWS/、BLOCKERS/、CHANGE_REQUESTS/)。
仓库结构
dsh-skill-lord-serf/
├── package.json # dsh.bundle 清单;无运行时依赖,仅 peer
├── cordis.patch.yml # 组合包层:注册 lord-serf 插件行
├── lib/index.js # cordis 插件:ctx.skills 文件支撑 Provider
├── test/self-test.mjs # 自测套件
└── skills/
├── lord/
│ ├── SKILL.md # 含 DSH 适配(DSH Bindings 映射表)
│ ├── assets/schemas/ # 任务包 / 微任务 / 派发指令 schema
│ ├── assets/templates/ # 任务包 / 派发指令 / 项目文件模板
│ └── references/ # 伸缩、评审、变更控制、恢复、适配器等
└── serf/
├── SKILL.md
├── assets/schemas/ # 提交信封 / 评审报告 schema
├── assets/templates/ # REVIEW / BLOCKED / CHANGE_REQUEST 模板
└── references/ # 任务包接收、子代理扇出、自校验、提交报告等skills/<name>/SKILL.md 同时带 DSH 技能 frontmatter(name + description),同一份文件可以双用:
1. 插件方式:lib/index.js 在启动时通过 ctx.skills.registerProvider 注册一个文件支撑 Provider(rank 250),把两个技能以 resourceBase: { kind: 'directory', path: <技能目录> } 暴露到全局层,所有会话可用;get() 每次按需重读正文,编辑即时生效。 2. 文件方式:把 skills/lord、skills/serf 复制(或链接)到 <项目>/.dsh/skills/ 或 ~/.dsh/skills/,由 dsh-skill-filesystem 直接发现,无需重启。
与 DSH 机制的映射
| 协议概念 | DSH 机制 |
|---|---|
| Serf 执行体 | subagent 工具(每个任务包派一个子代理)或独立 DSH 会话 |
| Serf 的子工作扇出 | subagent 工具在任务边界内做不相交子步骤;见 skills/serf/references/dsh-subagents.md |
$serf 调用 | /serf 用户手势,或子代理内 skill(name='serf') 加载 |
$lord review <path> / $lord resolve <path> | /lord 手势 + 报告路径;子代理 Serf 的最终消息直接回到 Lord |
| 状态源 / 任务包 / 报告 | 共享工作区内的普通文件,用 DSH 文件工具读写 |
| 长时间编排 | DSH goal 工具保持目标跨轮次推进 |
安装
A. 组合包方式(全局可用)
从 GitHub 安装(本包直接交付预构建 ESM,无 build 步骤、无需授权 prepare 脚本;建议锁定 commit):
dsh plugin --profile <name> add github:ttxl314/dsh-skill-lord-serf#<commit-sha>或从本地检出链接安装:
dsh plugin --profile <name> add ./dsh-skill-lord-serfdsh plugin 会把包加进 profile 的依赖与 dsh.profile.bundles,其 cordis.patch.yml 层负责注册插件行。重启 web 服务后生效;条目会出现在 GUI 的 Settings → Plugins 清单中。
B. 文件方式(无需重启,项目级)
New-Item -ItemType Junction -Path .dsh\skills\lord -Target <本包>\skills\lord
New-Item -ItemType Junction -Path .dsh\skills\serf -Target <本包>\skills\serf技能目录监视器会即时发现,当前会话的技能目录自动刷新。
使用
- Lord 会话:说"用 Lord 协议编排这个项目"或输入
/lord,按工作流产出任务包、派发指令并维护TASKS.md。 - 派发 Serf:Lord 用
subagent工具派发,子代理提示词 =assets/templates/dispatch-instruction.md的生成结果,并要求子代理先skill(name='serf')再执行任务包。 - Serf 会话:输入
/serf或直接给任务包路径;可在边界内用subagent扇出子工作(references/dsh-subagents.md);执行后按模板写报告,最终消息给出报告路径。
自测试
node test\self-test.mjs套件覆盖 26 项检查:Provider 契约(apply/list/get/invalidate)、SKILL.md frontmatter 解析、Codex 残留标记扫描、技能正文引用路径存在性、6 个 JSON Schema 可编译(draft 2020-12)、代表性协议载荷正反向校验(含 v0.3 字段拒绝)、模板与 schema 常量一致。依赖 ajv、ajv-formats、yaml,从本机 DSH profile($DSH_HOME)的 node_modules 解析。
另支持端到端演练:Lord 建任务包(schema 校验后派发)→ subagent 子代理加载 serf 技能执行 → 报告过 micro-review-report/submission-envelope schema → Lord 核对实际产出后更新权威状态。
依赖
@deepseek-ai/cordis^4.0.1(peer)@deepseek-ai/dsh-skill^0.1.0-rc.6(peer,由@deepseek-ai/dsh-base组合包提供)
与上游的差异
- 所有
$lord/$serf(Codex 命令)→/lord//serf(DSH 技能手势)。 dispatch-instruction的worker_invocation常量为/serf;Invocation 一节改为 DSHsubagent派发说明;执行要求新增子代理扇出条款。- 新增
serf/references/dsh-subagents.md(DSH 专属的 Serf 子工作扇出规则)与 coding 适配器的 "Execution Capabilities (DSH)" 小节。 - 删除了 Codex 专属的
agents/openai.yaml。 - 协议本体(字段名、任务档位 micro/standard/full、状态词表、报告路径、非谈判条款)与上游 0.5 完全一致,任务包/报告可跨平台互认。
许可证
基于 ttxl314/lord-serf-agent-protocol-SKILL(MIT),本移植同样以 [MIT](LICENSE) 发布。