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

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

Xiaoye