伴航 Convoy:DSH 会话内的 AI 自动纠偏层

前言

在 DeepSeek Harness(DSH)里跑 agent,常见风险不在「装没装好」,而在运行过程:一条破坏性 shell、一次越界改文件、测试仍失败却声称「全部通过」。社区里 doctor、guard 类插件多管安装与事后修复,teammate 管分工干活,语义级过程风险往往仍靠人盯会话。伴航 Convoy(dsh-convoy)是维护者 zoe1nan 发布的 admin-security 类 DSH 插件:旁路监听会话事件,用确定性规则加可选 L2 Reviewer 在关键节点判断,默认自动纠偏并只留可回溯回执,不弹确认、不打断自动流程。下文介绍它解决什么问题、怎么装、怎么用,以及当前版本边界。

这是什么

伴航 Convoy 的定位是 AI 监督 AI:给每个 AI 会话配一个「找茬同事」——不抢活干,只在 agent 快要犯错时出手,然后留一张回执。

与「安装前检查、崩溃后修复」或「分工协作」不同,伴航管的是运行过程中的语义级风险:危险命令、路径越界、范围漂移、假完成、验证缺失等。它监听 DSH 会话事件,在命中哨点时自动处理(安全改写命令、阻断高危操作、回滚范围外改动、补跑验证等),处理完在界面留回执。一句话差异:别人常把用户叫回来确认,伴航在默认模式下直接把事办了(M0 阶段部分自动动作仅生成可撤销计划,见下文)。

DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

核心机制与能力

下面按「看见 → 判断 → 处理」三层说明已文档化的设计(详见仓库 docs/PRD.md)。

三层管线

  1. 看见:旁路读取会话事件流(真机会话为多帧 zstd 拼接的 session.v4.jsonl.zstd 等),归一化后进入规则与 Reviewer。
  2. 判断:L1 确定性规则(README 明确实现的哨点包括 W1 破坏性命令、W2 路径越界、W3 范围漂移、W5 假完成);L2 Reviewer 复用 DSH 宿主 llm 服务,路由跟随会话,严格 JSON schema,无模型路由时显式降级、不阻塞主流程。
  3. 处理: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。

安装后:

  1. 完全退出 DSH(托盘 → 退出),再重新启动。
  2. 确认右下角出现回执胶囊,侧边栏出现「伴航 Convoy」,路由 /convoy/ 由插件提供。

卸载(同样可回滚):

node install.mjs --uninstall

完全退出 DSH 再启动后,胶囊、面板、路由应消失。演练可用 node install.mjs --dry-run 或 node install.mjs --uninstall --dry-run。

环境要求:package.json 声明 node >=22。

典型用法

日常会话(实时版)

  1. 安装并重启 DSH 后,无需额外点击即可开始对话;伴航在后台监听本机会话,命中 W1/W2/W3/W5 等规则时生成回执并更新信任分。
  2. 需要查看详情时,点右下角胶囊:最近回执(哨点、原因、证据片段、自动动作)、会话统计、红/黄计数;可「下载复盘」导出当前会话 markdown。
  3. 首次使用或担心误报时,可在设置里切到 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 为准。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye