前言¶
在 DeepSeek Harness(DSH)里跑 agent,常见风险不在「装没装好」,而在运行过程:一条破坏性 shell、一次越界改文件、测试仍失败却声称「全部通过」。社区里 doctor、guard 类插件多管安装与事后修复,teammate 管分工干活,语义级过程风险往往仍靠人盯会话。伴航 Convoy(dsh-convoy)是维护者 zoe1nan 发布的 admin-security 类 DSH 插件:旁路监听会话事件,用确定性规则加可选 L2 Reviewer 在关键节点判断,默认自动纠偏并只留可回溯回执,不弹确认、不打断自动流程。下文介绍它解决什么问题、怎么装、怎么用,以及当前版本边界。
这是什么¶
伴航 Convoy 的定位是 AI 监督 AI:给每个 AI 会话配一个「找茬同事」——不抢活干,只在 agent 快要犯错时出手,然后留一张回执。
与「安装前检查、崩溃后修复」或「分工协作」不同,伴航管的是运行过程中的语义级风险:危险命令、路径越界、范围漂移、假完成、验证缺失等。它监听 DSH 会话事件,在命中哨点时自动处理(安全改写命令、阻断高危操作、回滚范围外改动、补跑验证等),处理完在界面留回执。一句话差异:别人常把用户叫回来确认,伴航在默认模式下直接把事办了(M0 阶段部分自动动作仅生成可撤销计划,见下文)。
- 插件 id / 包名:
dsh-convoy - 当前版本:v0.5.0(README 注记 M1 达成,2026-10-22)
- 许可证:MIT
- 目录页:skillhub.cn/plugins/zoe1nan/dsh-convoy
- 源码:github.com/zoe1nan/dsh-convoy
DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
核心机制与能力¶
下面按「看见 → 判断 → 处理」三层说明已文档化的设计(详见仓库 docs/PRD.md)。
三层管线¶
- 看见:旁路读取会话事件流(真机会话为多帧 zstd 拼接的
session.v4.jsonl.zstd等),归一化后进入规则与 Reviewer。 - 判断:L1 确定性规则(README 明确实现的哨点包括 W1 破坏性命令、W2 路径越界、W3 范围漂移、W5 假完成);L2 Reviewer 复用 DSH 宿主
llm服务,路由跟随会话,严格 JSON schema,无模型路由时显式降级、不阻塞主流程。 - 处理:AutoActionExecutor 支持 nudge、git 回滚(先备份可 undo)、测试命令独立重跑、脱敏等;全部带安全闸(workdir 内、拒敏感目录等)。
交互原则写在 PRD:工作流自动跑,监督也自动跑——零点击优先、回执代替弹窗;「需要时提问」模式在 M0 默认关闭。
监督模式与信任分¶
设置页(设置 → 伴航 Convoy)提供:
- 自动纠偏(auto,默认)
- 仅记录(record,观察期推荐)
- 需要时提问(ask,M0 默认关)
信任分随回执扣减(例如自动处理红 -8、黄 -5;仅记录模式放行红 -30 / 黄 -15;撤销自动动作 -5)。右下角 伴航回执胶囊 展示信任分与状态,展开可看最近回执、证据片段与自动动作说明。
数据与接口¶
配置与回执只在本机:
- 配置:
~/.dsh/convoy/config.json - 回执按天追加:
~/.dsh/convoy/receipts/YYYY-MM-DD.jsonl
宿主提供 /convoy/ 面板及 /convoy/api/*(需 GUI 登录;浏览器未登录直连会 401)。常用路由包括 GET /convoy/api/health、GET /convoy/api/state、GET /convoy/api/stream(SSE)、GET /convoy/api/receipts、GET /convoy/api/review(复盘 markdown)、GET|POST /convoy/api/config。
版本边界(务必知晓)¶
README 明确:M0 边界下,部分自动动作只生成可撤销计划,不落盘真实执行;POST /convoy/api/undo 在 M0 可能诚实返回 not-executed。M1 目标包括真拦截/改写 hook、自定义自动动作等;Demo(demo/index.html 或侧边栏面板 iframe)为纯前端模拟,演示目标形态,不操作真实文件。真会话结果以右下角胶囊与本地 jsonl 回执为准。
仓库自测:npm test 99/99,npm run replay 3/3;真机四轮冒烟记录见 docs/T1.7-冒烟记录.md(文档称最终零误报)。
安装与启用¶
安装方式来自 README,不是 dsh plugin add github:... 一类命令。在插件目录内执行:
node install.mjs
Windows 可双击 install.cmd,效果等价。脚本会备份 profile 的 package.json,写入 "dsh-convoy": "link:<本目录绝对路径>" 与 dsh.profile.bundles 条目,用 DSH 自带 pnpm 安装并校验;任一步失败会自动还原 package.json / pnpm-lock.yaml。
安装后:
- 完全退出 DSH(托盘 → 退出),再重新启动。
- 确认右下角出现回执胶囊,侧边栏出现「伴航 Convoy」,路由
/convoy/由插件提供。
卸载(同样可回滚):
node install.mjs --uninstall
完全退出 DSH 再启动后,胶囊、面板、路由应消失。演练可用 node install.mjs --dry-run 或 node install.mjs --uninstall --dry-run。
环境要求:package.json 声明 node >=22。
典型用法¶
日常会话(实时版)¶
- 安装并重启 DSH 后,无需额外点击即可开始对话;伴航在后台监听本机会话,命中 W1/W2/W3/W5 等规则时生成回执并更新信任分。
- 需要查看详情时,点右下角胶囊:最近回执(哨点、原因、证据片段、自动动作)、会话统计、红/黄计数;可「下载复盘」导出当前会话 markdown。
- 首次使用或担心误报时,可在设置里切到 record(仅记录) 观察数天,再切回 auto。
三场景 Demo(理解行为)¶
侧边栏打开「伴航 Convoy」面板,或浏览器打开仓库内 demo/index.html。选场景后点「▶ 播放」,全程零点击:
- A · 删库前 3 秒:危险删除命令在执行前被改写成只删
./tmp、./logs。 - B · 顺手改了支付模块:任务只允许改设置页,agent 改
src/payment.ts时伴航回滚该文件,保留设置页改动。 - C · 「测试全部通过」:测试仍 failed 却声称通过时,伴航重跑测试、贴真实结果并退回结论。
每个风险点会出现内联回执;右侧面板可看信任分与处理流水,并可切换「自动纠偏 / 仅记录」对照。
开发者验证(可选)¶
在克隆或下载的源码目录:
npm test
npm run replay
node scripts/probe-events.mjs
replay 对三份 fixtures(删库 / 范围漂移 / 假完成)做回放校验。
适用场景与注意¶
适合谁:长期在 DSH 里让 agent 改代码、跑命令、写回磁盘,希望过程层有自动哨兵、且偏好「留回执而不是弹窗打断」的开发者。
使用前请自行核对:
- 插件以当前 DSH 进程权限运行,能触达本会话可见的文件与命令上下文;安装前应阅读源码与 MIT 许可证,理解自动纠偏与 L2 模型调用(跟随会话路由)的含义。
- L2 依赖宿主
llm服务;无服务或无路由时面板会显式待命,不阻塞会话。 - 社区目录页星标等元数据可能变化;功能与安装步骤以 GitHub README 与本地
docs/为准。
结尾¶
伴航 Convoy 把监督重心从「装完、崩了再修」挪到会话进行中:规则 + Reviewer 判断风险,默认自动处理并写本地回执,适合作为 DSH 里的 admin-security 补位。若要进一步了解参数与里程碑,可看仓库 docs/PRD.md 与 插件目录页;安装与 issue 以 GitHub:zoe1nan/dsh-convoy 为准。