前言¶
在 DeepSeek Harness(DSH)里做多代理协作,相邻 Agent 之间的 steer 投递(ctx.subagents.sendMessage)能完成「发一条消息给父或子」,但 harness 自己也承认若干缺口:只能投给直接父子、没有持久 mailbox、没有抄送与优先级、没有回执与线程,传递路径里通常只有一个 senderSessionId。
如果你需要「谁发给谁、经过几跳、是否回执、是否结案」都能事后核对,又不想在会话日志里新造一套事件类型,就需要在现有 API 之上补一层可追溯的协作账本。下面介绍社区插件 dsh-report-ledger(维护者 stone-brick,分类:工作流):用 front matter 缩略 + 正文落盘 + append-only 传递路径,把「汇报」做成代理之间的一等原语,并在 web profile 的会话界面增加「汇报」时间线标签页。
这是什么¶
dsh-report-ledger 是 DSH 插件:把「汇报」做成代理之间的一等交互原语,提供可追溯的传递路径账本、回执 / 结案 / 修正,以及浏览器侧的会话时间线视图。数据默认保存在本机 $DSH_HOME/report-ledger/(可用环境变量 DSH_REPORT_LEDGER_ROOT 覆盖),不上传外部服务。
插件对齐 DSH 0.2.0-rc.2(package.json 中兼容性为 >=0.2.0-rc.2 <0.3.0);0.1.5-rc.3 已不再支持。当前发行版本 0.2.2,许可证 MIT,Node >=20。
- 目录页:https://www.skillhub.cn/plugins/stone-brick/dsh-report-ledger
- 源码:https://github.com/stone-brick/dsh-report-ledger
DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
核心设计:两层结构与传递路径¶
汇报在模型上下文里只暴露 front matter 缩略(主题、收发、抄送、共写者、跳数等),正文留在账本文件里,由 report_read 按需读取;正文过长时工具可只返回头部与文件定位,再由 harness 的 read 分页取余下部分。
传递路径是权威来源:每次操作向 R-xxxx.route.jsonl 追加一跳(append-only)。to / cc / authors / hops / last 等字段从跳流派生并缓存,下一条跳会重新校正,账本不会显示历史里没有的收件人。待投递集合同样由跳流推导;主送用 steer 唤醒目标,抄送用 inject 进入上下文但不唤醒。非驻留收件人不会直接拒绝,而是留在待投递集合,待对应 Agent 创建后再送达。
账本布局示例:
$DSH_HOME/report-ledger/
reports/R-0001.md # front matter + 正文
reports/R-0001.route.jsonl # 一行一跳
核心功能¶
宿主侧工具¶
装完后,任意 profile 的宿主半提供十一个 report_* 工具,以及 peer_list / peer_start(开启工作区相关能力后可见十二个;默认无 report_lease)。工作区功能默认关闭,此时各工具不会出现 worktree 参数。
| 工具 | 作用 |
|---|---|
report_author |
开一份汇报,可同时主送 to 与抄送 cc,可用 parent 关联上溯汇报 |
report_contribute |
以共同作者身份追加一节 |
report_send |
主送给更多代理(唤醒) |
report_cc |
抄送(不唤醒) |
report_forward |
转呈,或 mode:"copy" 作参考副本 |
report_read |
读缩略、传递路径与正文(读取记一跳,不推进列表排序) |
report_list |
按 session / status / task / worktree 等过滤缩略列表 |
report_ack |
回执 |
report_amend |
修正缩略或正文(改动记入跳流;已结案会自动重开) |
report_close |
结案(仅发起者或共写者) |
report_lease / report_release |
认领 / 交还已有 git 检出(仅工作区开启时) |
生命周期状态为 open → acked → closed。回执表示「收到了」;结案表示「事情结束」。关闭后若再贡献、主送、抄送或转呈,会先记 reopened 再记活动本身。
report_amend 对缩略字段做替换并在跳里记录改前改后;正文默认追加 ### amendment,也可用 replace_body: true 显式替换并在跳里注明。收件人与共写者不能通过 amend 修改,只能再追加跳。
浏览器半(web profile)¶
在 web profile 下,会话头部多一个「汇报」标签页:时间线、状态芯片、搜索、线程跳转,以及就地展开的传递路径。若开启工作区,报告行上另有检出标记。
web server 上注册三个只读 GET 路由供浏览器读账本;守卫仅放行 loopback 对端与 loopback Host(详见仓库 README「守卫与信任假设」)。
可选工作区¶
默认关闭。开启后,peer_start / report_author 加 worktree:true 可为该汇报分配独立 git worktree,分支名由报告号与主题 slug 派生。不需要时无 git 调用、工具面也不暴露 worktree 参数。
同伴工具 peer_start 会在你自己的工作目录下新建根会话,是受 maxPeersPerAgent(默认 8)约束的本插件唯一会新增活代理的能力。
安装与启用¶
官方安装命令(写入 profile 的 node_modules,并通过 dsh.bundle.patch 自动追加 dsh.profile.bundles,无需手改配置):
dsh plugin --profile web add dsh-report-ledger
装完后重启 profile(例如 dsh web)生效。不启动也可验证是否装上:
dsh --profile web --dump-config # 配置树里应出现 report-ledger 这一行
卸载:
dsh plugin --profile web remove dsh-report-ledger
国内若不便访问 GitHub,维护者在 Gitee 同步源码与发行版(gitee.com/stone_zhan/dsh-report-ledger)。可下载预构建 dsh-report-ledger-0.2.2.tgz 后:
dsh plugin --profile web add ./dsh-report-ledger-0.2.2.tgz
或:
dsh plugin --profile web add git+https://gitee.com/stone_zhan/dsh-report-ledger.git
npm 发布路径走 npm 镜像时,上面一行 dsh plugin --profile web add dsh-report-ledger 往往是国内最省事的方式。
典型用法(概念流程)¶
下面是一条可对照工具表复现的协作链,具体参数以各工具 schema 为准。
- 用
report_author创建汇报,填写subject,主送to、可选cc,必要时parent关联上游汇报。 - 收件方用
report_read打开全文与route.jsonl跳流;知情但不需唤醒的方已通过抄送收到缩略上下文。 - 需要闭环时用
report_ack;发起者或共写者在工作完成时用report_close。 - 主题或正文写错时用
report_amend,在跳流里保留「从什么改成什么」,而不是静默改历史。 - 长期协作中用
report_list按会话或状态纵览;在 web GUI 的「汇报」标签页查看时间线与传递路径。
向上回报、向下派发分别对应 report_send 的主送语义;转交其他线用 report_forward。
适用场景与注意¶
适合谁:需要在 DSH 多代理之间做「有主题、有收件人、有抄送、有回执与结案」的正式协作,且希望传递路径可审计、可跨进程重启保留的团队或个人。
权限与信任:插件以当前 DSH 进程权限读写本机账本;安装前应阅读源码与 MIT 许可证,确认 cordis.patch.yml 与工具行为符合你的部署策略。浏览器读数据依赖 web server 的 loopback 守卫假设,不要将未信任的远程访问等同于本机 GUI。
兼容性:宿主半在 headless profile 同样可用(无 web server 时仅缺少三个 HTTP 端点)。浏览器半依赖 shell 冻结模块表中的 @deepseek-ai/dsh-client-ui-primitives;与 DSH 0.2.0-rc.2 内置对话视图同一套组件。
数据位置:账本仅为本机文件;迁移或隔离测试时设置 DSH_REPORT_LEDGER_ROOT 即可。
结尾¶
dsh-report-ledger 不替换 DSH 的相邻 steer,而是在其之上用文件账本与 append-only 跳流补上「汇报」这一协作原语:上下文里只有 bounded 的 front matter,完整正文与审计轨迹留在 $DSH_HOME/report-ledger/。若你在 web profile 工作,装完重启后可直接在会话「汇报」标签页对照时间线与路径。
- 插件目录:https://www.skillhub.cn/plugins/stone-brick/dsh-report-ledger
- GitHub:https://github.com/stone-brick/dsh-report-ledger