前言¶
DeepSeek Harness (DSH) 采用插件化架构,允许开发者通过配置调用不同的模型服务。对于希望使用 WorkBuddy 或 CodeBuddy 账号模型但不想配置繁琐 API Key 的用户,本插件提供了一个适配方案。它将 DSH 与本地的 workbuddy2api 代理连接,将私有协议转换为标准 OpenAI 格式,从而在 DSH 界面中直接调用这些模型。
核心功能¶
该插件主要解决两个问题:模型接入与登录状态管理。
- 模型接入:在 DSH 的模型选择器(Composer 或
/model命令)中增加 “WorkBuddy” 分组。模型列表(如 DeepSeek-V4、GLM-5.x 等)会根据账号可用性实时同步。 - Web 登录管理:在 Web GUI 右下角提供状态胶囊,实时显示登录和代理状态。支持在浏览器内直接完成登录,无需操作终端。
环境与依赖¶
使用前需确保系统已安装并运行必要的组件。
- 本地代理:本插件不包含
workbuddy2api,必须单独安装。- 版本要求:代理版本需
>= 2.0.4。低版本因缺少认证请求头,会导致登录失败。 - 运行方式:代理需在
127.0.0.1:8787启动,负责转发协议。
- 版本要求:代理版本需
- Python 环境:插件内置的登录脚本依赖系统
python3(标准库实现,无需额外虚拟环境)。
安装与启用¶
安装插件后必须重启 dsh web 服务才能加载新组件。
- 安装插件包:
dsh plugin --profile web add ./dsh-llm-workbuddy
- 重启 Web 服务:
dsh web
使用步骤¶
完成安装后,按以下顺序操作。
-
启动代理:
确保本地已运行workbuddy2api(端口 8787)。可以通过访问http://127.0.0.1:8787/health验证代理存活。 -
Web 登录:
打开 DSH Web 界面,查看右下角的状态胶囊。- 若显示红色(未登录),点击胶囊上的「登录」按钮。
- 浏览器将打开 WorkBuddy 授权页,扫码或授权后,胶囊自动变绿并显示账号昵称。
-
选择模型:
在 DSH 的模型选择器中找到 “WorkBuddy” 分组,点击即可切换模型。支持推理等级选择(Low / Medium / High)。
技术细节¶
登录态管理¶
登录态文件由代理写入(通常为 ~/.codebuddy-session.json)。插件通过探测此文件来判断状态。若代理未实现 /v1/checkin 端点,插件会自动隐藏签到入口。
Web 小组件¶
右下角的状态胶囊是零依赖的原生浏览器 JS,由 DSH 的 dsh.client 机制注入。后端路由注册在 dsh web 的 HTTP 服务上。
架构流向¶
DSH 请求 -> WorkBuddyAdapter (lib/index.js) -> workbuddy2api (127.0.0.1:8787) -> WorkBuddy/CodeBuddy 云端。
注意事项¶
- 无签到功能:由于
workbuddy2api当前未实现/v1/checkin相关端点,插件无法执行每日签到。 - 纯标准库:登录脚本使用 Python 标准库编写,不依赖
uv或复杂环境,但要求系统已安装python3。 - 会话失效:若代理会话过期,需在 Web 界面重新点击登录胶囊。
总结¶
dsh-llm-workbuddy 是一个轻量级的模型适配插件,通过本地代理将 WorkBuddy/CodeBuddy 服务接入 DeepSeek Harness。它免去了 API Key 的配置,提供了可视化的登录管理,适合需要在 DSH 中统一管理多模型服务的开发者。