前言¶
DeepSeek Harness (DSH) 的设计理念是“一切皆插件”,允许用户通过插件扩展模型来源。CodeBuddy / WorkBuddy(腾讯代码助手)是常见的本地代码助手,但默认不在 DSH 的模型选择器中。dsh-codebuddy-models 插件通过读取本地登录态,将 CodeBuddy 订阅转化为 DSH 的原生 provider,使其可直接被 agent 调用。
核心能力¶
该插件主要解决的是在 DSH 环境中直接使用本地 CodeBuddy 订阅的问题。它具备以下能力:
- 原生 Provider 接入:作为 dsh 的原生 provider 接入,启用后 CodeBuddy 模型会直接出现在 dsh 的模型选择器中。
- 本地凭据读取:读取本地桌面端登录凭据,不做登录授权,不存密码。
- 自动刷新 Token:Token 临近过期时自动调后端刷新。
- 流式传输:支持 SSE 流式传输。
- 协议兼容:兼容 OpenAI chat-completions 协议,原生支持 function calling / tool_calls。
- 模型扫描:自动扫描本地 CodeBuddy 客户端的
product.json获取模型目录。 - 文本模型:仅支持文本模型,不支持图片输入。
安装与启用¶
安装该插件需要已登录 CodeBuddy / WorkBuddy 桌面端,插件会读取其本地登录文件。
- 安装插件:
使用dsh plugin命令将插件添加到指定的 profile。
dsh plugin --profile <profile名> add dsh-codebuddy-models
例如安装到 web GUI profile:
dsh plugin --profile web add dsh-codebuddy-models
- 生效:
安装命令会在 profile 中执行pnpm add,并将该包追加到dsh.profile.bundles层栈。模型提供方目录在进程启动时组成,因此需要重启或刷新 GUI 后,模型选择器中才会出现CodeBuddy提供方及其模型。
配置说明¶
在 $DSH_HOME/settings.yaml 中配置 llm-codebuddy: 节。所有配置均为可选,支持热改。
llm-codebuddy:
# 后端 origin,会拼接 /v2/chat/completions;留空/省略则用默认值 https://copilot.tencent.com
baseURL: https://copilot.tencent.com
defaultContextWindow: 1000000
maxTokens: 64000
streamIdleTimeoutMs: 300000
models:
- id: auto # 回退目录(扫描不到官方目录时):默认仅 auto
retryPolicy:
mode: normal
maxRetries: 5
- baseURL:留空(空字符串)等价于省略,会回退到默认端点
https://copilot.tencent.com。 - models:默认只有
auto。该目录只在运行时扫描,不写入settings.yaml,不会污染用户配置。
工作原理¶
插件通过 CodeBuddyAdapter 类实现与 DSH 的集成,底层通过标准 OpenAI chat-completions 协议与腾讯后端通信。
-
凭据管理:
插件定位并解析本地登录文件(%LOCALAPPDATA%\CodeBuddyExtension\Data\Public\auth\*.info)。当 token 临近过期时,会自动调后端刷新并回写文件。 -
模型目录:
插件自动扫描本地 CodeBuddy 客户端的product.json(10 分钟缓存),解析出聊天可用模型。目录里的容量字段会被映射成 harness 的模型能力,暴露给自动上下文压缩。 -
流式与工具调用:
- 流式:使用
eventsource-parser解码 SSE,将流式数据翻译为StreamChunk回传给 agent。 - 工具调用:适配器处理了 CodeBuddy 后端流式返回的特性——真实工具名只在第一个 tool-call delta 里给出,后续分片中
function.name为空字符串。适配器仅在非空时覆盖工具名,避免路由错误。
- 流式:使用
-
推理能力:
适配器为每个模型声明了off / low / high / max四档推理努力(默认high),并将请求里的reasoningEffort透传为reasoning_effort。模型必须声明 reasoning 能力,否则调用会被 harness 拒绝。
注意事项¶
- 依赖宿主版本:依赖宿主版本
@deepseek-ai/dsh-llm ^0.1.2-rc.1。宿主超出该范围或为alpha不稳定快照时可能行为异常。 - 错误映射:
- 企业额度上限错误(
14012)会被映射为QUOTA错误,不重试。 - 模型无权限错误(
11136)会被映射为MODEL_NOT_ALLOWED错误。 - 未登录错误会给出
MISSING_CREDENTIAL提示。
- 企业额度上限错误(
- 仅文本模型:不支持图片输入。
- 开发模式:如需本地开发调试,可在 profile 的
package.json中添加link依赖并重启 GUI。
目录与源码¶
- 插件目录:https://www.skillhub.cn/plugins/evlon/dsh-codebuddy-models
- 源码仓库:https://github.com/evlon/dsh-codebuddy-models