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

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

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

小夜