dsh-codebuddy-models:接入本機 CodeBuddy 訂閱

前言

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 桌面端,插件會讀取其本地登錄文件。

  1. 安裝插件:
    使用 dsh plugin 命令將插件添加到指定的 profile。
    dsh plugin --profile <profile名> add dsh-codebuddy-models
例如安裝到 web GUI profile:
    dsh plugin --profile web add dsh-codebuddy-models
  1. 生效:
    安裝命令會在 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 協議與騰訊後端通信。

  1. 憑據管理:
    插件定位並解析本地登錄文件(%LOCALAPPDATA%\CodeBuddyExtension\Data\Public\auth\*.info)。當 token 臨近過期時,會自動調後端刷新並回寫文件。

  2. 模型目錄:
    插件自動掃描本地 CodeBuddy 客戶端的 product.json(10 分鐘緩存),解析出聊天可用模型。目錄裏的容量字段會被映射成 harness 的模型能力,暴露給自動上下文壓縮。

  3. 流式與工具調用:

    • 流式:使用 eventsource-parser 解碼 SSE,將流式數據翻譯爲 StreamChunk 回傳給 agent。
    • 工具調用:適配器處理了 CodeBuddy 後端流式返回的特性——真實工具名只在第一個 tool-call delta 裏給出,後續分片中 function.name 爲空字符串。適配器僅在非空時覆蓋工具名,避免路由錯誤。
  4. 推理能力:
    適配器爲每個模型聲明瞭 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
羽毛球分组比赛记分
小程序二维码

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

小夜