dsh-agent-graph:用依赖图编排 DSH 子智能体

前言

在 DeepSeek Harness(DSH)里,单次 subagent 委托已经够用;任务一旦拉长、参与者变多,常见问题是:同一条对话里上下文互相渗透,下游发现上游交付不足时往往自行补洞,节点重试或恢复后先前的决策与踩坑记录也随之消失。dsh-agent-graph 把多步任务写成带依赖的 YAML 图,由引擎在会话内通过 /graph 命令调度;每个节点是一次独立的 DSH 子智能体激活,节点之间用结构化 handoff 交接,不足时可向直接上游发起有边界的返工请求,并把进度与决策写入分层全局账本(ledger)。下面介绍它是什么、能做什么,以及如何安装与跑通示例。

这是什么

dsh-agent-graph 是社区维护者 wrc093 发布的 DSH 工作流类插件,npm 包名同为 dsh-agent-graph,当前资料中的版本为 0.2.1,许可证 MIT,运行环境要求 Node.js >= 22。一句话定位:在 DSH 会话内对「有范围划分的智能体节点」做图编排——结构化 handoff、有边界的返工(rework)、分层全局 ledger。

插件在 SkillHub 目录 与 GitHub 仓库 均可查阅;目录站点为社区生态索引,与 DeepSeek / 幻方无官方从属关系。

核心功能

资料中归纳的能力如下,均对应 README 中的机制说明,而非仅靠提示词约束。

任务分解与校验
用 YAML 描述节点及 needs 依赖边;运行前引擎校验环、未知引用、重复 id 等问题。

节点执行
每个节点激活时执行一次 ctx.subagents.start('spawn', …),携带范围提示、上游 handoff、ledger 指针和结构化输出 schema。节点之间不共享对话;一次激活只能看到本节点 prompt、直接上游交付和 ledger。

节点间交付
handoff 有固定结构(summary / artifacts / openIssues),注入到每个直接下游的激活上下文。

上游不足时的返工
下游可向直接上游发起有边界的 rework 请求,附带证据与验收标准;上游可提供、拒绝,或按协议逐跳转发。

共享记忆
每次运行对应一份 ledger(README → index → 各节点章节 → 细节),节点读写、引擎确定性再生成;人类或其它智能体均可阅读。

失败与恢复
失败即停(fail-fast);可用 /graph resume 重试失败或中断的节点。

可观测性
/graph status 与磁盘上的 ledger;激活、handoff、rework 轨迹与索引均落盘。

Web 编排(V2)
安装 Web profile 后,会话标题栏会出现 编排 标签页,提供拖拽 DAG 画布、节点检查器、依赖编辑与图校验(资料中标注为 Visual DAG editor V2)。

与 DSH 内置能力的对比(README 表格摘要):需要显式依赖、多于两三个参与者、且「谁决定了什么」必须在节点重建后仍可追溯时,更适合用图编排;一两次简单委托仍可用内置 subagent。

安装与启用

在 DSH Web profile 下添加插件,安装命令以 README 原文为准:

dsh plugin --profile web add dsh-agent-graph

安装前请自行查看仓库源码与 MIT 许可证;插件以当前 dsh 进程权限运行,与任何 DSH 插件一样,应确认其行为符合你的安全与合规要求。

典型用法

图文档与命令入口

图在 DSH 会话内通过人类命令 /graph 驱动,而不是作为面向模型的 tool。节点本身是普通子智能体,可使用宿主授予的工具。

仓库自带五节点示例 examples/feature-delivery.yaml,以及无需模型的脚本化 dry run(examples/fake-script.json)。在克隆或下载后的仓库根目录可本地演示:

npm install
npm run demo

真实运行会对同一图启动 live 子智能体,示例输出形态如下(路径以实际 workspace 为准):

/graph run examples/feature-delivery.yaml
Started run feature-delivery-20260918-024342 (graph "feature-delivery", 5 nodes, concurrency 2).
Ledger: /path/to/workspace/.agent-graph/runs/feature-delivery-20260918-024342
Track with /graph status; nodes are DSH subagents, so this may take a while.

查看运行状态与节点账本

/graph status

Run feature-delivery-20260918-024342 — feature-delivery · status completed
activations 7/24 · started 2026-09-17T18:43:42.782Z · finished 2026-09-17T18:43:42.807Z

node               state            try  handoff
implement          ok               2    nodes/implement/handoff/v1.md
research           ok               1    nodes/research/handoff/v1.md
spec               ok               1    nodes/spec/handoff/v2.md
test-plan          self_handled     2    nodes/test-plan/handoff/v1.md
tests              ok               1    nodes/tests/handoff/v1.md

/graph show test-plan     # prints that node's ledger section

示例 dry run 还演示两种 rework 结果:implement 向 spec 索要缺失细节并得到补充(provided);test-plan 向 implement 请求接口边界遭拒(超出范围)后自行处理(declined → self_handled),交换记录在 requests/ 下。

校验图文件可用仓库脚本(与 demo 同源 CLI):

npm run validate

适用场景与注意

更适合
任务具备真实依赖结构(如调研 → 规格 → 实现 → 测试计划 → 测试),参与者较多,且需要在 retry、resume 或 follow-up 之后保留决策与 handoff 版本。

不必强上
仅一两步委托、无复杂依赖时,内置 subagent 路径更短;与内置 workflow(模型编写的 JS 编排脚本)或 ralph(不可变 goal 迭代)解决的是相邻问题,可按 README 对比表组合选用。

使用注意
- 图执行可能耗时较长,因节点均为 DSH 子智能体。
- 首次节点失败会终止整次 run,需用 /graph resume 恢复。
- Web 编排能力依赖 --profile web 安装;CLI 亦提供 dsh-agent-graph 二进制(见 package.json bin 字段)。
- 数据落盘位置以运行时的 workspace 下 .agent-graph/runs/ 为准;具体限制与故障排查见仓库 README 对应章节。

结尾

dsh-agent-graph 用声明式依赖图固定节点边界,用 handoff 与 bounded rework 规范上下游协作,用分层 ledger 保留跨激活的记忆,适合在 DSH 里把「交付一个功能」这类长链路拆成可追踪的多智能体工作流。

  • 目录页:https://www.skillhub.cn/plugins/wrc093/dsh-agent-graph
  • GitHub:https://github.com/wrc093/dsh-agent-graph
  • 中文 README 链接(仓库内):README.zh-CN.md
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye