前言¶
在 DeepSeek Harness 裏用 dsh-connect-workbuddy 把本機 WorkBuddy 賬號接到智能體時,常見現象是界面提示「API 密鑰無效」或「當前請求的額度已用盡」,而 node lib/bin.js status --json 仍顯示 signed-in、餘額正常。上游 5.13.1 已處理部分網關錯誤(例如 global 區的 11128 channel_reject),但在過期身份串、封號換號連鎖、以及業務碼 6004 被誤譯成欠費文案等方面,仍可能放大風險或誤導排查。
wzs39/dsh-workbuddy-hardened 是 dsh-connect-workbuddy@5.13.1 的分叉加固版:不重寫業務邏輯,vendor/ 保留上游原樣,patches/ 裏四個補丁經 build.mjs 打到 lib/,可用 node build.mjs --diff 逐行審計;verify.mjs 覆蓋 47 項行爲驗證。維護者爲 wzs39,分類爲 admin-security,倉庫見 GitHub,目錄頁見 SkillHub。
這是什麼¶
一句話定位:在保留上游包名與 Cordis 配置繼承的前提下,對 WorkBuddy 連接插件做最小差異加固,降低「過期 UA、封號拖垮賬號池、單模型 6004 被當成額度用盡」三類可測問題的影響。
上游基線:vendor/ 來自 dingminhua 的 dsh-connect-workbuddy@5.13.1(MIT)。本倉庫爲非官方分叉,與上游作者無關。
四個補丁在做什麼¶
01 · version-sync¶
配置與計費通道里的 PRODUCT_UA 不再寫死爲舊版 WorkBuddy/5.8.3 ... CLI/2.161.0,改爲運行時從本機 WorkBuddy 安裝目錄讀取:
- 應用版本:
%LOCALAPPDATA%\Programs\WorkBuddy\resources\install-manifest.json的appVersion - CLI 版本:
...\resources\app.asar.unpacked\cli\package.json(包名@genie/agent-cli)的version
解析失敗則回退原常量。APP_VERSION 由 PRODUCT_UA 派生,X-IDE-Version 一併校正。說明:此 UA 用於產品配置通道(如 /v3/config、計費),不是 chat 的 CLIENT_UA;chat 仍按上游設計以 CLI agent 身份會話。
02 · identity-sanitizer¶
上游用 breakIdentityClauses() 處理以 you are ... 開頭的身份句,避免觸發 11128。DSH 運行上下文裏還有「DeepSeek Harness implementation checkout / Web GUI URL」等句式。補丁把三類 span 納入同一正則,在詞邊界插入不可見斷點(U+200B),分詞順序不變、網關側連續子串被打斷。範圍僅這三種句式;README 標明此爲預防性加固,並非像 you are ... 那樣用真實 DSH prompt 量過的修復。
03 · account-quarantine¶
在 isFailoverWorthy() 的排除列表中加入 account_restricted。賬號處於封號態時請求直接失敗,不再自動換下一個號重放同一請求,避免把剩餘賬號逐個「連鎖燒掉」。policy_reject、hard_credit、soft_rate 等仍可觸發換號。
04 · model-detour¶
業務碼 6004 表示「該模型頻率窗口用盡,可換模型或等重置」,上游卻經 soft_rate → quota_exceeded 讓宿主固定顯示額度用盡。補丁在同一賬號內按目錄換模型重試(最多 3 級),不碰賬號池;帶圖請求只選 multimodal 候選;成功時在回答頭部說明實際模型,並寫明與 6004、積分無關。若階梯全失敗,恢復原始 6004 行爲。邊界:這是繞過單模型窗口,不是繞過全侷限流;多模型同時進窗口時仍需等待或換賬號。
安裝與啓用¶
安裝方式來自倉庫 README:用本地 file: 依賴替換 profile 裏的註冊表版本,包名刻意仍爲 dsh-connect-workbuddy,以便繼承已有 cordis.patch.yml 中的賬號與 region 配置。
1、把本倉庫放到你的插件目錄。
2、編輯 profile 的 package.json:
"dsh-connect-workbuddy": "file:../../plugins/dsh-workbuddy-hardened"
3、在 profile 目錄安裝依賴並重啓 DSH:
cd <your-dsh-home>\profiles\desktop
pnpm install --no-frozen-lockfile
重建與驗證(在倉庫根目錄):
node build.mjs
node build.mjs --diff
node verify.mjs
修改 lib/ 或補丁後須再次 pnpm install:profile 使用 hoisted 的 file: 依賴時,內容會被拷貝進 node_modules,不重裝會繼續跑舊副本。
可選配置(非補丁):在 profile 中打開 usageIdentity: true,補全 X-IDE-* 等用量側頭部,與補丁 01 解析出的版本一致;默認關閉,可隨時關回。
回滾:把 package.json 改回 "dsh-connect-workbuddy": "5.13.1" 後 pnpm install --no-frozen-lockfile;或移走 patches/ 中單個文件再 node build.mjs。
典型用法與自檢¶
狀態與上游 CLI 一致:
node lib/bin.js status --json
復現補丁 04 是否在你賬號上生效(需已有 vault,僅發簡短測試請求;若無賬號處於 6004 窗口會提示 nothing to detour from 並以 0 退出):
node tools/detour-live.mjs
node tools/detour-live.mjs --vault <dir> --account <accountId>
適用場景與注意¶
適合:已在 DSH 中使用 WorkBuddy 連接插件,且遇到過 global 身份/封號換號/6004 文案與真實限流不符等問題,並願意審計四個補丁 diff 的維護者或高級用戶。
務必注意:
- 插件以當前 DSH 進程權限運行,安裝前應閱讀源碼、
LICENSE與THIRD_PARTY_NOTICES.md。 - README 明確:未驗證加固能否降低上游封號概率;能做的是去掉已知可測放大器,不承諾不被封。
- Node 引擎要求:
^22.19.0 || >=24.0.0(見 package.json)。 - 社區目錄 SkillHub 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;本插件星標以目錄頁爲準(資料中爲 0)。
結尾¶
dsh-workbuddy-hardened 把對 dsh-connect-workbuddy@5.13.1 的差異收斂到四個可審計補丁與 47 項自動化驗證,在不大改上游架構的前提下,同步本機 WorkBuddy 版本身份、剋制 DSH 上下文指紋、隔離封號換號、並在 6004 場景下同賬號換模型重試。需要細節與 diff 時,以 GitHub 倉庫 README 爲準;瀏覽分類與簡介可打開 SkillHub 插件頁。