codebuddy-bridge:把 CodeBuddy CLI 接进 DSH,并逐轮核对它改了什么

前言

在 DSH 里做智能体协作时,常见的麻烦是「它说它改了」,但没有证据:一个 agent 去执行,对话里只有它的自述,实际改动、改了哪些文件、有没有跑偏,都要人去看工作区。排查成本主要花在「事实核对」上,而不是任务本身。

这篇文章介绍的插件 dsh-codebuddy-bridge(包名 lunatic-eclipse/dsh-codebuddy-bridge)就是针对这一步:把本机已装的 CodeBuddy CLI 接进 DeepSeek Harness,DSH 派活、引擎干活、结论回注对话,再用 CLI 自己留下的改前备份做内容 diff,给出 PASS/FAIL 和证据。维护者是 lunatic-eclipse,版本 0.3.2,MIT 许可。该项目来自社区,与 DeepSeek / 幻方没有官方从属关系。

它是什么

一句话:一个 DSH 插件,把本机的 CodeBuddy CLI(WorkBuddy 桌面版内置的同一套引擎)接进来,形成「派活 → 执行 → 结论回注 → 逐轮核对」的闭环。WorkBuddy 桌面版里内置的就是这套引擎,装了 WorkBuddy 就能直接用。

它要补的是协作的最后一环。多数「两个 agent 协作」目前停在产出自述;这个插件把核对建立在文件事实和 CLI 的会话记录上,而不是产出文字上。

核心功能

插件提供一组 workbuddy_* 工具。工具名沿用 workbuddy_* 是因为对接的一直是本机的 WorkBuddy/CodeBuddy 引擎,改包名时没有跟着改,避免老文档与习惯失效。

| 工具 | 作用 |

| — | — |

| workbuddy_relay(prompt, edit?, mode?) | 代敲 /codebuddy,结论回注对话;需要 dsh-connect-workbuddy 插件;mode="plan" 是只读规划 |

| workbuddy_review(path, focus?, maxFindings?) | 只读审查一个文件:固定模板 + 自动核对它读没读、有没有写 |

| workbuddy_verify(run?, session?) | 核对某轮改没改:PASS/FAIL/WARN + 证据;不花额度 |

| workbuddy_usage(days?) | 只读用量报表:近 N 天轮数、耗时(按天/按模式)、每轮 token;不花额度 |

| workbuddy_read(turns?, session?) | 读 WorkBuddy 桌面版自己的会话记录 |

| workbuddy_status() / workbuddy_close() | 状态与会话管理 |

| workbuddy_dispatch(task) + /dsh-handoff | 老的文件交接兜底通道 |

两种模式值得单独说明:

  • 审计(workbuddy_review):查错,输出「位置—问题—改法」,最多 N 条、每条 200 字内。
  • 计划(workbuddy_relay(mode="plan")):想清楚,输出结论 / 约束 / 假设 / 候选路线 / 每条的反例 / 建议,只读、不限字数,结论存到交换目录的 plans\<时间戳>.md。

额度策略:relay 与 review 共用每会话每小时 6 轮,超限直接返回 { rejected: true, retryAfterSec },不调用 CLI、不花额度;verify / read / status 只本地读文件,不占额度。

安装与启用

在 DSH 里执行官方安装命令:

dsh plugin --profile web add dsh-codebuddy-bridge

如果尚未发布到 npm,从仓库装:

dsh plugin --profile web add github:<owner>/<repo>

安装后重启 DSH,输入框下方会出现「CodeBuddy 协作」胶囊。

前置条件:Windows(引擎路径按 WorkBuddy 的安装位置自动探测,其它平台未测);已安装 WorkBuddy 桌面版(自带 CodeBuddy CLI),或自己装的 @tencent-ai/codebuddy-code。dsh-connect-workbuddy 是可选插件:relay 路线(/codebuddy)由它提供,没有它时其余功能照常。

声明的总依赖一并列出,便于先确认环境:

peerDependencies:
  dsh-connect-workbuddy  >=5.0.0(optional:/codebuddy relay 路线由它提供,缺失时仅其余功能可用)
  react                 ^18.2.0

engines:
  node  ^22.19.0 || >=24.0.0
  dsh   >=0.2.0-rc.1 <0.3.0-0

典型用法

安装后,插件内置的流程可以照下面走。

1、点开输入框下方的胶囊。它按会话独立;关着时工具会从该会话的 agent 作用域里收走。

2、对模型说「让 CodeBuddy 把 X 改了」,模型会调 workbuddy_relay(prompt, edit: true)。

3、结论以消息回注到对话,输入框上方的面板列出每一步(读取 / 修改 / 执行)。

4、说「验一下」,模型调 workbuddy_verify(),得到 PASS/FAIL + 证据。

核对这一步之所以不花额度,是因为它读的是 CLI 自己留下的会话记录和改前备份,做内容 diff,不额外调用引擎。

配置在 cordis.patch.yml 或插件设置里:

| 字段 | 默认 | 说明 |

| — | — | — |

| collabDir | ~/.dsh/codebuddy-bridge | 交换目录:轮次记录、模式开关、报告 |

| permissionMode | dontAsk | 透传到引擎:读放行、写拒绝、永不等人;改文件要显式开(workbuddy_task 传 acceptEdits,relay 加 --edit);bypassPermissions 为完全放行 |

| cliPath | 自动探测 | CodeBuddy CLI 入口,仅 Windows 默认路径 |

| productConfig | 自动探测 | 让入口以 WorkBuddy 身份工作 |

| model | 引擎默认 | 透传 --model |

| timeoutMs | 900000 | 单轮超时 |

| watchMs | 3000 | 兜底通道的轮询间隔 |

| roundLimit | 6 | 每会话每窗口最多几轮(relay + review 共用) |

| roundWindowMs | 3600000 | 窗口长度;从第一次计入的轮次起算,不滑动 |

权限与隐私

插件声明的读写范围如下,使用前最好对照自己的工作区确认。

  • 读:~/.codebuddy/projects/<slug>/<session>.jsonl(CLI 自己的会话记录,用来生成面板和核对证据),以及 ~/.workbuddy/projects(只有 workbuddy_read 读它)。
  • 写:collabDir 下的几个 jsonl/md(含 limits.json 额度账本、plans\ 下的计划结论);引擎本身按 permissionMode 写工作区文件。
  • 不碰:账号 token、登录态文件、任何网络请求(网络只发生在 CodeBuddy CLI 内部)。

需要注意:面板要显示明细,所以会话记录的「工具调用参数摘要」会进入 DSH 的对话上下文。敏感工作区应自行评估是否适用。

插件以当前 DSH 进程的权限运行,因此授权前应先检查源码与许可证(MIT)。

适用场景与注意

适合以下情况:

  • DSH 里需要调用本机 CodeBuddy CLI / WorkBuddy 引擎,并希望把改动结果以证据形式回注对话。
  • 想用「一个 agent 干活、另一个 agent 验收」的流程,人只负责拍板和最后一眼。
  • 想限制每会话的执行轮次,避免失败重试把额度吃掉。

同时这些限制要知道:

  • 同一时刻一个 CodeBuddy 会话只能跑一轮。
  • 面板不在右侧边栏(第三方插件开不了那个位置),放在输入框上方。
  • 没有「运行中」的实时进度,只有跑完后的明细。
  • workbuddy_verify 只能核对动作 + 文件事实;它说得对但没做的、或者做了没说的,都会标出来,判断仍要人做。
  • 节流按 DSH 会话计数:重启不会清零,开新会话会;固定窗口在两个窗口交界处,理论上一小时内可过接近 2 倍名义值。
  • 计划模式的结论只保证「落盘完整」;建议对不对仍要人判断。

开发与自测:

node --check index.js
node --check client.js
npm test        # node:test,覆盖 verify 的判定分支

改 index.js 只需在插件管理里关开一次;改 client.js 必须重启 DSH,客户端模块只在启动时扫描。

结尾

dsh-codebuddy-bridge 的价值在于把「它说它改了」换成「有 diff、有证据、能给 PASS/FAIL」。它不接管认证,也不额外花额度,适合想在 DSH 里保留一条可核对的 CodeBuddy 协作通道的开发者;但它只核对动作和文件事实,最终判断仍在人身上。

目录页:https://www.skillhub.cn/plugins/lunatic-eclipse/dsh-codebuddy-bridge
仓库:https://github.com/lunatic-eclipse/dsh-codebuddy-bridge

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

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

小夜