DSH WorkBuddy Connect:在 Harness 里接入 WorkBuddy 国际版与国内版模型

前言

在 DeepSeek Harness(DSH)里做智能体开发时,模型来源通常走 OpenAI 兼容的 provider 配置。WorkBuddy(国际版站点 www.workbuddy.ai,国内版 copilot.tencent.com / www.codebuddy.cn)的网关是一套只认官方客户端的封闭接口:User-Agent 门闸、首条 system 消息、字段方言和一整套归属头与会话头,DSH 原生适配器按标准 OpenAI 路径很难直接对上。社区插件 dsh-workbuddy-connect(维护者 sixzjd,分类:模型推理)在宿主与上游之间加一层本机回环 shim,用 WorkBuddy 方言跟网关说话,同时让 pi-ai 仍用标准 OpenAI-completions 协议访问本机端点。下面介绍它是什么、能做什么,以及安装与典型用法。

这是什么

dsh-workbuddy-connect 是把 WorkBuddy(国际版 / 国内版)模型接入 DeepSeek Harness 的社区插件。一张设置卡片内用页签切换国际版与国内版(交互与 Qoder 卡片同类),各对应独立 provider、凭证与模型目录,互不混用:

变体 provider id 卡片页签 上游站点
国际版 workbuddy-global 国际版 www.workbuddy.ai
国内版 workbuddy 国内版 copilot.tencent.com / www.codebuddy.cn

真实 accessToken 由 shim 从本机凭据库读取,不交给 pi-ai,也不离开本机。项目按 MIT 许可发布,与 WorkBuddy、腾讯、DeepSeek 官方无关联。

目录页:skillhub.cn/plugins/sixzjd/dsh-workbuddy-connect
源码:github.com/sixzjd/dsh-workbuddy-connect

为什么需要插件而不是只配一个 provider

README 里归纳了网关与 DSH 默认路径的主要冲突:

  1. User-Agent 门闸:deepseek-harness/* 会被拒(业务码 11128)。
  2. 首条消息必须是 system:国际版缺了会 400 / 11128。
  3. 字段方言:developer 角色、store、tool_choice 形态、max_completion_tokens 别名、裸字符串 stop、非字符串的 tool-call arguments 等,上游会拒。
  4. 归属与会话头:X-Product、X-Domain、X-User-Id、X-Enterprise-Id/X-Tenant-Id、X-IDE-*,以及 X-Conversation-ID、X-Conversation-Request-ID、X-Conversation-Message-ID 需一并校验。

数据流可概括为:

DSH (pi-ai)  ──OpenAI 协议──▶  127.0.0.1 shim  ──WorkBuddy 协议──▶  网关
                 共享密钥         方言改写              真实 accessToken

核心功能

登录与凭据

  • 设备授权(主路径):卡片点「登录 WorkBuddy」→ 浏览器授权页 → 回到卡片即完成,无需 API Key。accessToken 到期前 5 分钟自动续期;续期失败时仍用未过期旧令牌,不打断进行中的对话。
  • 从桌面 App 导入(便捷路径):本机已安装并登录 WorkBuddy 桌面版时,卡片可出现「从桌面 App 导入」。桌面版自 WorkBuddy 5.6.0 起加密存盘令牌,插件调用桌面版原生模块取密钥解密,不内置构建相关常量。桌面版未装、未登录或取不到密钥时该项不出现;桌面版轮换会话后凭据作废,可再次导入接上。
  • 会话失效提示:上游拒收凭据时,卡片提示「上游拒绝了这份凭据」,而不是假显示已登录。
  • 两个 realm 独立:国际版与国内版各有凭据、路由、已保存目录与额度,令牌不互串。

模型目录、开关与计费展示

  • 目录三级降级(live → saved → fallback):卡片标明列表来源——「实时列表(更新于 …)」、「上次保存的模型列表」、「内置模型列表(尚未从 WorkBuddy 更新)」;拉取失败会附原因,可手动「刷新目录」。
  • 模型开关:按名称/ID 搜索,单个开关,或「全部开启 / 全部关闭」;关闭的模型从 DSH 模型选择器消失。
  • 价格倍率与免费标记:模型名后拼接上游倍率;免费模型有「免费」角标。活动过期后倍率不会继续当作当前价,会标为「价格暂不可用」。国际版当前限时免费以上游实时倍率为准(README 举例:deepseek-v4.1-flash、hy3、step-5-preview 等为 x0.00;活动结束后卡片会去掉「免费」标记)。
  • 额度明细:按资源包显示剩余/总量与进度条,含到期与下一轮刷新时间;读的是周期额度而非池额度。
  • 上下文窗口:可选上游默认窗口(如 300K)或最大窗口(如 1M),两版各自保存。
  • 推理档位:仅在上游声明了档位的模型上可选;单数形态声明会被折算成完整阶梯。

国内版渠道与系统提示

国内版会校验消息行首是否「自报成未批准客户端」。DSH 默认 system 首行 You are an AI agent powered by DeepSeek Harness. 会触发 400 / 11128;插件将 system 整条替换、assistant 仅改行首为 You are an AI coding assistant.,user/tool 与句中内容不改。国际版同样受益于相关改写路径。

安装与启用

前置条件:DSH 核心 0.2.0-rc.2 及以上;Node.js ^22.19.0 || >=24.0.0(见 package.json 的 engines)。

按你使用的 profile 选择 --profile(web / desktop / tui)。装到哪个 profile,数据就落在哪个 profile 目录,三者互不影响。

# 从本地目录安装(开发用)
dsh plugin --profile web add "file:/绝对路径/接入workbuddy"

# 或从 npm 安装
dsh plugin --profile web add dsh-workbuddy-connect

装完后需要重启 DSH:插件在启动时按 package.json → dsh.profile.bundles 装载,热重载不覆盖 bundle 本身。

插件以当前 DSH 进程的权限运行;安装前建议查看仓库源码与 MIT 许可,并知悉 README 中的免责声明(上游接口变更、账号与额度风险等)。

典型用法

  1. 打开 DSH → 设置 → 插件设置 → 展开 WorkBuddy 卡片。
  2. 顶部「国际版 / 国内版」页签前的小圆点表示该版登录状态(绿=已登录,灰=未登录);默认在国际版。
  3. 点「登录 WorkBuddy」完成授权;有桌面版时可点「从桌面 App 导入」。
  4. 回到卡片,状态为「已登录」后模型目录自动刷新。
  5. 在会话中用模型选择器选择模型;国际版当前 README 写明有免费模型可用。

国内版在「国内版」页签单独管理,站点为 codebuddy.cn 线路,凭证、目录、额度、开关与国际版无关。

数据目录与隐私

自有文件集中在:

<profile>/.dsh-workbuddy-connect/
├── .workbuddy-auth.json          # 国内版凭据
├── .workbuddy-ai-auth.json       # 国际版凭据
├── .workbuddy-settings.json      # 国内版设置
├── .workbuddy-ai-settings.json   # 国际版设置
└── state/
    ├── .workbuddy-catalog.json
    ├── .workbuddy-ai-catalog.json
    ├── .workbuddy-app-version.json
    └── .workbuddy-ai-version.json

凭据文件权限 0600,目录 0700。数据目录按 profile 归属;环境变量 DSH_WORKBUDDY_DATA_DIR 可覆盖。凭据来源仅为设备授权或用户主动「从桌面 App 导入」。

回环 shim 只绑 127.0.0.1,校验 Host/Origin,进程内随机 bearer,请求体上限 32 MiB。

适用场景与注意

适合已在 WorkBuddy 有个人账号、希望在 DSH 统一编排智能体、并需要同时切换国际版与国内版模型目录的开发者。不适合把网关当公开 API 转售或超出个人合理使用——README 明确仅供学习研究、驱动使用者自己的账号。

上游无服务端会话:每轮需发送完整历史,插件不替上游压缩。模型身份在两区域均声明为 workbuddy,路由分别为 workbuddy 与 workbuddy-global,跨区域续聊需与 pi-ai 的历史思考块规则一致。图片能力不按上游 supportsImages 全信,插件有逐模型 id 复核表。

WorkBuddy 接口可能随时调整;插件是社区适配器,功能失效风险由使用者自行承担。

结尾

dsh-workbuddy-connect 用一张卡片、两个 provider,把 WorkBuddy 封闭网关翻译成 DSH 能用的本机 OpenAI 兼容端点,并处理登录、目录、额度与国内版渠道校验等细节。需要安装或源码时,可从社区目录页与 GitHub 仓库获取:

  • https://www.skillhub.cn/plugins/sixzjd/dsh-workbuddy-connect
  • https://github.com/sixzjd/dsh-workbuddy-connect
羽毛球分组比赛记分
小程序二维码

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

Xiaoye