前言¶
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