dsh-codebuddy-acp:把本机 CodeBuddy CLI 接进 DeepSeek Harness

前言

DeepSeek Harness(DSH)把模型、工具、会话和界面拆成可插拔模块。若你已经在用腾讯 CodeBuddy Code CLI,账号里有一批带积分倍率的模型,又希望在同一会话里用 DSH 的工具卡片、审批框和侧栏能力,就需要一个能把 CodeBuddy 当「后端 agent」而不是另开一套前端的桥。

单独在终端跑 codebuddy --acp 可以对话,但和 DSH 的模型选择器、历史落盘、图片附件、待办面板不在一条链路上。社区插件 dsh-codebuddy-acp(维护者 EVA09,分类为客户端)通过 ACP(Agent Client Protocol) 把本机 @tencent-ai/codebuddy-code 注册为 DSH 的 codebuddy provider,下面介绍它做什么、怎么装、怎么用。

这是什么

dsh-codebuddy-acp 当前版本 0.5.0(MIT 许可证),一句话定位是:把本机 CodeBuddy CLI(ACP 模式)接入 DSH,作为内部的模型与 agent 后端;模型选择、工具卡片展示、侧栏积分控制台都走插件实现。

装上之后,模型选择器里会出现 CodeBuddy 分组,条目来自你账号下真实可用的 CodeBuddy 模型(README 中本机实测示例包括 hy3、deepseek-v4.1-flash、glm-5.3、kimi-k2.8-preview 等),名称后附带积分倍率;每个模型可选思考档位(如 low / medium / high / xhigh / max,以模型为准)。选中后消耗的是 CodeBuddy 账号里腾讯提供的额度,不是 DSH 自带的 DeepSeek API 额度。

架构上,DSH 会话经 ctx.llm 适配器(provider = codebuddy)连到每工作目录一个常驻的 codebuddy --acp 进程;工具结果经注册的回放工具 codebuddy_tool 交回 DSH,在会话里形成完整的 tool-call → tool/call → tool/result 链路,界面渲染为工具卡片,且不会在 DSH 侧重复执行工具。

核心功能

模型与思考档位

与普通 provider 一样在模型选择器里选中 CodeBuddy 分组下的模型即可。适配器通过 ACP session/set_config_option 切换模型(model)与思考档位(thought_level);DSH 的 reasoningEffort 会映射到档位,换档位不丢上下文。积分倍率以账号侧接口 GET /v2/enterprises/personal/models 为准(控制台与选择器展示一致),拿不到时回落到包内目录倍率。

工具卡片与最终答复

CodeBuddy 在自有进程里跑工具,ACP 只通知客户端。插件用两半把调用链写进 DSH:

  1. 适配器为每次 ACP tool_call 发原生 tool-call 块;
  2. codebuddy_tool 按 toolCallId 从结果桥取回真实输出。

默认 toolEmit: 'settle' 时,卡片在结算完成后出现即为终态;可改为 start 以更早出现卡片。client.js 按真实工具名(Read、Bash、Edit 等)做徽章与配色。

因 DSH Chat 只把最后一个 step、且不含 tool-call 块的 assistant 回复当作最终答案,插件会在有工具的一轮里先攒住正文,经回放工具进入下一 step 再放出纯文本结论,避免结论被整轮折叠收走。

图片输入

DSH 消息里的 ImageBlock 经 ctx.attachments 读出字节,以 ACP session/prompt 的 { type:'image', data, mimeType } 发给 CodeBuddy,而不是旧的 [图片附件:name] 占位。未发送时会标 [图片 N:…(未发送:…)];重放历史时默认 replayImages: latest 只带最后一条用户消息的图。

标题、待办与审批

  • 标题:CodeBuddy 的 session_info_update.title 同步到 ctx.sessionTitle.rename(),钉住会话标题。
  • 待办:以 TaskCreate / TaskUpdate 里 _meta['codebuddy.ai/rawResponse'].todos 为准,写入 DSH 待办面板(非标准 ACP plan 通知)。
  • 审批:permissionPolicy: ask 时,ACP session/request_permission 转为 DSH 原生审批框;无 UI 环境(如 dsh headless)按 permissionAskFallback 兜底。

侧栏 CodeBuddy 控制台

Web 客户端注入侧栏入口,可查看账号剩余积分、今日/本月/累计消耗、模型启停与顺序、按模型用量、最近调用等。余额与每日签到走 CodeBuddy 官方 billing 接口,凭据复用已登录 CodeBuddy CLI 的登录态(插件只读、不复制 token);用量记账在 $DSH_HOME/codebuddy-acp/usage.json。「领取每日积分」仅在页面点击时调用,不做后台自动签到。

安装与启用

前置条件

  1. 本机已安装 CodeBuddy CLI,并能执行:
codebuddy --version
  1. CLI 已登录(README 说明登录态在 ~/.codebuddy,插件不读取、不转发凭据)。未登录时可在 TUI 中执行 /login 完成浏览器授权。插件采用惰性鉴权:先 session/new,仅在明确 auth 错误时补一次 authenticate。

  2. Node 引擎要求(见 package.json):^22.19.0 || >=24.0.0。

安装插件

README 给出的方式是将插件目录的绝对路径装进 profile,例如桌面端:

dsh plugin --profile desktop add <workspace>\plugins\dsh-codebuddy-acp

亦可通过 DSH 的 plugin_manager 安装本地 bundle:

action: install_bundle
target: <workspace>\plugins\dsh-codebuddy-acp

装好后 Loader 会加载包 dsh-codebuddy-acp,在 ctx.llm 注册 codebuddy 路由。装完或改插件代码后,重启桌面端才会加载新的 JS 模块(HMR 只对新安装的包生效一次)。卸载:plugin_manager → remove_bundle → dsh-codebuddy-acp。

插件目录与说明可在社区目录页 skillhub.cn/plugins/EVA09/dsh-codebuddy-acp 与 GitHub 仓库 获取;SkillHub 为独立社区站点,与 DeepSeek / 幻方无官方从属关系。

典型用法

在界面里

  1. 打开模型选择器,找到 CodeBuddy 分组。
  2. 选一个模型(README 建议首次可试 deepseek-v4.1-flash)。
  3. 正常提问;界面会流式显示正文、思考区、工具卡片与 token 用量。
  4. 在模型旁选择思考档位;侧栏打开 CodeBuddy 控制台管理模型顺序、查看积分与签到。

命令行冒烟(README 实测示例)

profile 已配置 CodeBuddy 为默认或路由到 codebuddy/hy3 时:

$ dsh --profile cbtest "用一句话回答:3+4等于几?"

链路为 profile → ctx.llm → 适配器 → ACP session/prompt → CodeBuddy 用本机登录态与额度 → 流式回传 → DSH 落盘。

headless 下验证工具回放(需先 dsh plugin --profile headless add <本目录绝对路径>):

dsh --profile headless --json "用 Read 工具读 <本目录>\package.json 的第 1-3 行,告诉我 name"

常用配置项在 $DSH_HOME/codebuddy-acp/settings.json(或通过插件暴露的配置),例如 permissionPolicy、toolReplay、imageInput、syncTitle、syncPlan 等,详见仓库 README 配置表。

适用场景与注意

适合谁:已在用 CodeBuddy CLI 与腾讯账号额度,希望在 DSH 统一会话里选 CodeBuddy 模型、看工具卡片、管积分与模型列表的开发者。

务必注意:

  • 插件与 DSH 同一进程权限运行,安装前应阅读 源码 与 MIT 许可证,自行评估信任边界。
  • DSH 不会替 CodeBuddy 执行工具;卡片是回放,真实执行在 CodeBuddy 进程内。
  • 要让 DSH 弹出审批框,需 CodeBuddy 侧 permissionMode: default 且插件 permissionPolicy: ask;会话审批策略为 never 时不会询问。
  • 传图能力取决于模型目录的 supportsImages;ACP 要求 data + mimeType,SVG 等会退回占位说明。
  • 计费与倍率以 CodeBuddy 账号与服务端接口为准;插件本地账本仅作用量统计,不等同于官方账单。

结尾

dsh-codebuddy-acp 把 CodeBuddy 的 ACP 会话嵌进 DSH 的 provider 与客户端扩展里:同一套 Harness 界面里选模型、看倍率、收工具结果、同步待办与审批,并在侧栏管理积分与模型策略。若你要接入本机 CodeBuddy 而非另开终端,可从社区目录页与 GitHub 仓库查看版本与文档:

  • 目录页:https://www.skillhub.cn/plugins/EVA09/dsh-codebuddy-acp
  • GitHub:https://github.com/EVA09/dsh-codebuddy-acp
羽毛球分组比赛记分
小程序二维码

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

小夜