dsh-workbuddy-codex:保持本地 WorkBuddy 反向代理鏈在線

前言

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
羽毛球分组比赛记分
小程序二维码

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

小夜