taikaikaikai-pixel/dsh-codebuddy-plugin1

dsh-codebuddy-plugin

CodeBuddy (copilot.tencent.com) provider bundle for DeepSeek Harness (dsh): 18 models (DeepSeek, GLM, Kimi, MiniMax, Hunyuan, auto) with adjustable reasoning efforts, CodeBuddy web search / web fetch backends for the stock dsh tools, and a settings card in the Web UI.

包名
dsh-codebuddy-plugin
版本
0.7.4
许可证
MIT
最近更新
2026年8月19日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:taikaikaikai-pixel/dsh-codebuddy-plugin

可选设置(Settings → 插件配置 → CodeBuddy)

设置卡按插件功能分七区,顶部有功能概览行,修改即保存、立即生效。设置持久化在 ~/.dsh/codebuddy-plugin.json,优先级:该文件 > 插件组合配置 > 默认值。

模型

"获取模型列表"按当前登录凭据(Key/OAuth)拉取网关目录(GET /v3/config)。列表中每个模型都可勾选启用/禁用

  • 勾选即写入 ~/.dsh/settings.yamlllm-pi-ai.providers.codebuddy.models 覆盖层,对话的模型选择器实时刷新(下次请求生效,无需重启 dsh)
  • 目录中不在插件静态清单的模型(徽标"目录",如 glm-4.7)勾选即加入可用列表,上下文/输出上限/图片输入按目录数据生成
  • 静态清单模型(徽标"插件")取消勾选即从选择器移除
  • 全部恢复默认(无禁用、无新增)时自动删除 settings 覆盖层,配置补丁层重新接管——插件更新静态清单不会被陈旧覆盖遮蔽

网络搜索与抓取

设置默认说明
一键开关 searchEnabled禁用即从 ctx.web 注销 codebuddy 后端(web_search/web_fetch 将报 provider 未注册),开启即时恢复
搜索默认条数 searchMaxResults5web_search 未指定时(1–20)
抓取正文上限 fetchBodyCap200000web_fetch 返回正文字符上限

图像生成

设置默认说明
一键开关 imageGenEnabled注册/注销 image_generate 工具(dsh 原生 tools 缝)
生图模型 imageGenModelhunyuan-image-v3.0-art网关 /v2/images/generations 的模型

image_generate 按提示词出图(约 20 秒/张),PNG 落盘会话工作区(无工作区时 ~/.dsh/generated-images/),结果返回本地路径与源 URL。

流式桥(智能代理 + 凭据收口)

设置默认说明
启用 bridgeEnabled一键开关;禁用即停本地监听,主聊天随之中断(模型请求经由此桥)
端口 bridgePort3901修改后自动重启监听;须与 cordis.patch.yml 的 baseURL 端口一致,否则主聊天断
会话归因注入 sessionHeadersEnabled按入站会话 id(X-Conversation-ID/X-Session-ID 等头或请求体)注入网关会话头;逐头处理——调用方已设置的头保留原值,缺失的头按会话 id 补全
会话头格式 sessionHeaderFormatopenaiopenai(session_id/x-client-request-id/x-session-affinity)或 openrouter(x-session-id)
每会话并发上限 maxConcurrentPerSession4同会话超额请求 FIFO 排队;无会话 id 不限流

桥在 127.0.0.1 作为统一网关出口与唯一凭据入口:主聊天(llm-pi-ai 的 codebuddy 路由即指向此桥)、describe-image、tools 的请求都由桥按登录方式(OAuth/Key)解析凭据,调用方发的哨兵 Authorization 从不出宿主机。chat/completions 走会话归因 + 并发管理,流式入站(stream:true)透传 SSE、非流式入站(stream:false 或缺省)聚合为标准 chat.completion JSON;其余路径(如 /agenttool/*)直接透传。端口被占用时(如另一个 dsh 实例已在运行)插件只告警不崩溃,桥状态在"额度与用量"分区可见。

额度与用量

实时(分区打开时 10s 轮询)显示:

  • 消耗量(精确):桥对每个 chat 请求的网关 usage.credit 恒开计量(搜索/抓取/生图路径同样入账),持久化在 ~/.dsh/codebuddy-plugin-usage.json;展示今日/累计 credit 与请求数、最近轮次(按 >45s 间隔聚类的近似口径,含缓存命中率)
  • 账户额度信号:套餐类型与企业名(GET /v2/accounts)、额度不足时网关的告警文案(get-dosage-notify,官方 CLI 同源)。额度是账户级的,与 WorkBuddy 共用
  • 数字剩余额度没有开放 API(CLI/api-key 面实测无存档于 docs/probes/quota-2026-08-18.json)——准确余额以 codebuddy.cn 套餐页 为准
  • 桥状态:运行中 / 端口占用(EADDRINUSE)/ 已禁用

登录

  • 登录方式API Key(默认)或 OAuth 登录
  • API Key 模式:可添加多个 Key(名称 + key,卡内脱敏显示);多把 Key 逐请求轮询,遇 401/403/429/5xx/网络错误自动在同一请求内换下一把,失败 Key 冷却 keyCooldownMs(默认 60000ms,可配)后自动回到轮换;单选仅决定模型目录拉取用的 Key,一个都不选时回落到"环境变量引用"(环境变量或 ~/.dsh/.credentials.yaml,默认 CODEBUDDY_API_KEY
  • OAuth 模式:点击"登录 CodeBuddy 账号"会打开官方登录页(copilot.tencent.com/login),插件轮询握手结果(约 10 分钟超时),完成后显示账号昵称与令牌到期时间;令牌存 ~/.dsh/codebuddy-plugin-auth.json(设置接口永不回传),到期前自动用 refresh token 续期。流程与官方 CLI 一致(/v2/plugin/auth/state → 浏览器登录 → /v2/plugin/auth/token 轮询 → /v2/plugin/login/account

高级

网关地址 baseURL(默认 https://copilot.tencent.com,http/https 绝对地址),一般无需修改。

实现说明:设置卡走插件自建的 GET/POST /dsh-codebuddy-plugin/settings 路由而非 dsh 官方 settings 命名空间——当前 dsh 组合存在两份 settings 服务实例(bundle 入口侧与 Web 客户端连接侧互不相通),命名空间注册对设置页不可见;这与 dsh-html-visualizer 自建设置路由是同一原因。

凭据配置

两种方式(设置卡"登录"区切换):

  • OAuth 登录(推荐):浏览器完成官方登录页授权即可,无需任何环境变量;令牌自动续期,覆盖模型对话、搜索、抓取、识图全部路径。
  • API Key:设置卡内添加一个或多个 Key(多把自动轮询 + 失败冷却);或在 ~/.dsh/.credentials.yaml 写入 CODEBUDDY_API_KEY: "ck_你的key"(或同名环境变量)作为兜底引用。

所有请求(含主聊天)都经 127.0.0.1:3901 的流式桥统一取凭据——桥按上述登录方式解析,调用方不自带密钥。

离线:仅列出本地配置的模型,自检 YAML 是否解析正常

node scripts/verify-models.mjs --list