前言¶
DeepSeek Harness(DSH)插件生態強調「一切皆插件」。在本地搭建智能體開發環境時,往往需要組合多個組件:模型選擇器、網關、適配器。如果其中某個組件掛了,整個鏈路就會失效。dsh-workbuddy-codex 專門解決這個穩定性問題,它負責監控並確保本地 WorkBuddy 反向代理鏈始終可用。
插件定位¶
dsh-workbuddy-codex 是一個 DeepSeek Harness 插件,由 kangjiazhen 維護。它監控本地 WorkBuddy 反向代理鏈,包括三個組件:
wb2api網關(端口 127.0.0.1:7863)- Responses API 橋(端口 127.0.0.1:7864,插件內置)
workbuddy提供者(掛載自 dsh-llm-workbuddy)
在插件加載時,它會探測每個健康端點,補全缺失的進程,並定時重檢,確保崩潰的進程能夠自動恢復。插件不會重新實現網關或適配器,而是通過掛載 dsh-llm-workbuddy 的 provider route 來實現模型選擇器功能,從而避免代碼重複和同步問題。
核心能力¶
監控與自愈¶
插件在加載時會探測以下三個組件的健康狀態:
| 端口 | 組件 | 作用 |
|---|---|---|
| 127.0.0.1:7863 | wb2api 網關 | 提供 OpenAI 兼容的 /v1/chat/completions 接口 |
| 127.0.0.1:7864 | Responses 橋(內置) | 將 Responses API 轉換爲 chat/completions,供 Codex CLI 使用 |
| — | workbuddy 提供者 | 模型選擇器路由,掛載自 dsh-llm-workbuddy |
如果某個組件未運行,插件會自動啓動。如果組件崩潰,插件會定時重檢並重啓。插件不會重新實現網關或適配器,而是委託給 dsh-llm-workbuddy,保持兩者同步。
與 Codex CLI 的集成¶
codex-cli 0.1xx+ 版本不再支持 wire_api = "chat",只支持 OpenAI Responses API。而 WorkBuddy 網關只實現了 Chat Completions API。插件內置了一個翻譯層,將 Codex 的 Responses API 請求轉發到網關的 Chat Completions 接口:
Codex CLI --(Responses)--> bridge :7864 --(ChatCompletions)--> gateway :7863 --> WorkBuddy
該翻譯層 vendored 自 codex-chat-bridge,零依賴,在 Harness 的 Node 環境中運行。
配置說明¶
所有配置項位於 profile 的 cordis.yml 中,插件自帶 cordis.patch.yml,包含默認配置。關鍵配置項如下:
| 配置鍵 | 默認值 | 說明 |
|---|---|---|
workbuddy-codex.config.gatewayDir |
~/Documents/deepseek-harness/default-workspace/workbuddy2api-panel |
網關配置文件所在目錄 |
workbuddy-codex.config.provider.enabled |
true |
註冊 workbuddy 路由 |
workbuddy-codex.config.provider.baseURL |
(空 → 使用 gateway.baseURL) | 適配器使用的網關地址 |
workbuddy-codex.config.provider.discovery |
true |
從網關 /v1/models 獲取模型列表 |
workbuddy-codex.config.provider.autoCheckin |
true |
執行每日簽到 |
workbuddy-codex.config.gateway.acceptStatus |
[200, 503] |
網關返回 503 時視爲正常(未配置賬戶) |
workbuddy-codex.config.bridge.conversationId |
auto |
會話 ID,必填否則會禁用賬戶 |
workbuddy-codex.config.bridge.maxPromptTokens |
1200000 |
本地提示詞大小上限,超過則返回 413 而非轉發 400 |
如果未安裝 dsh-llm-workbuddy,插件仍會監控網關和橋,並記錄一條安裝命令日誌。
安裝與啓用¶
使用官方安裝命令:
dsh plugin add git+https://github.com/kangjiazhen/dsh-workbuddy-codex.git
或從本地目錄安裝:
dsh plugin add file:/path/to/dsh-workbuddy-codex
插件自帶 cordis.patch.yml,安裝後 profile 會自動加載 workbuddy-codex 配置項。
從 dsh-llm-workbuddy 遷移¶
如果 profile 中已啓用 dsh-llm-workbuddy,現在可以移除它。在 profile 的 package.json 中,從 dsh.profile.bundles 中刪除該行:
"dsh": { "profile": { "bundles": [
// "dsh-llm-workbuddy", <- 移除這行
"dsh-workbuddy-codex"
] } }
dsh-llm-workbuddy 仍需保留在 dependencies 中,因爲本插件會導入它來掛載 provider。
安裝失敗處理¶
如果從 git 安裝失敗,可能需要設置 git 協議:
npm config set git-protocol https
如果通過代理安裝,需要配置 git 代理:
git config --global http.proxy http://127.0.0.1:7890
使用示例¶
配置 Codex CLI¶
在 ~/.codex/config.toml 中配置 Codex 使用本地 bridge:
model = "global:gpt-5.3-codex"
model_provider = "wb"
[model_providers.wb]
name = "workbuddy"
base_url = "http://127.0.0.1:7864/v1"
wire_api = "responses"
experimental_bearer_token = "anything"
request_max_retries = 2
stream_max_retries = 2
注意:
- wire_api = "responses" 必須設置爲 responses,否則 Codex 啓動時會報錯
- experimental_bearer_token 爲任意非空字符串即可,插件會從網關配置中讀取真實密鑰
使用 Codex¶
配置完成後,可以直接使用 Codex:
codex exec "list the files in this directory"
恢復被禁用的賬戶¶
如果 bridge 未提供 conversation_id,網關會返回 400 {"code":"11-128","msg":"request illegal"} 並禁用賬戶。可以通過網關面板恢復:
curl -X POST http://127.0.0.1:7863/panel/api/accounts/<uid>/revive
適用場景與注意¶
適合需要本地部署 WorkBuddy 並與 Codex CLI 集成、關注鏈路穩定性的開發者。插件以當前 DSH 進程權限運行,安裝前建議檢查源碼與許可證(MIT)。
總結¶
dsh-workbuddy-codex 通過監控、自愈和橋接,讓本地 WorkBuddy 反向代理鏈始終可用,同時解決 Codex CLI 與網關 API 不兼容的問題。它將網關、橋和 provider 統一管理,避免代碼重複,是本地智能體開發環境的重要組件。
- 目錄頁:https://www.skillhub.cn/plugins/kangjiazhen/dsh-workbuddy-codex
- GitHub:https://github.com/kangjiazhen/dsh-workbuddy-codex