前言¶
在 DeepSeek Harness(dsh)里跑多智能体协作时,常见做法是在主会话里直接挂一堆工具,或者自己写桥接层把外部 Agent 接进来。BitFun 本身提供基于 Agent Client Protocol(ACP)v1 的 CLI 服务,但 dsh 会话并不会自动识别它。
dsh-acp-for-bitfun 是一个 dsh 插件 bundle,通过 ACP over stdio 把 BitFun 注册为 dsh 的 subagent provider。安装并启用后,dsh 里任意会话都可以用 subagent_bitfun 工具把任务委托给 BitFun 执行,而不必在主会话里重复实现 BitFun 的能力。
下面介绍这个插件的定位、工作原理、安装配置与验证步骤。事实依据来自 SkillHub 目录页 与 GitHub 仓库 README。
这是什么¶
dsh-acp-for-bitfun 由维护者 bobleer 发布,分类为联网工具,当前版本 0.1.0,许可证 MIT。
一句话定位:把 BitFun Agent Runtime 以 subagent 形式暴露给 dsh,模型通过 subagent_bitfun 工具调用 BitFun 完成任务。
工作原理¶
插件复用 dsh 官方的 @deepseek-ai/dsh-subagent-acp 作为 ACP 客户端,并通过 @deepseek-ai/dsh-tool-subagent 挂载工具。每次委托会 spawn 一个独立的 bitfun acp 子进程,完成 initialize → session/new → session/prompt,流式收集 agent_message_chunk,任务结束后按 EOF 宽限 6s → SIGTERM → SIGKILL 的顺序关闭子进程。
dsh 会话 ──subagent_bitfun 工具──▶ dsh-subagent-acp (ACP 客户端)
│ 每个任务 spawn 一个独立进程
▼
bitfun acp (ACP server, stdio JSON-RPC)
│
▼
BitFun Agent Runtime
BitFun 子进程在 SIGTERM 下立即退出,会话数据由 BitFun 自身持久化。
前置条件¶
安装插件前,先确认以下环境可用:
- BitFun CLI:安装后运行
bitfun acp doctor应通过(BitFun 的 ACP server 内置于 CLI)。要求 BitFun>= 0.2.17。 - dsh:
npx @deepseek-ai/dsh --version,需要>= 0.1.0-rc.6,与插件依赖的 subagent 包版本匹配。 - pnpm:
dsh plugin通过 pnpm 安装 bundle。
deepseek-harness 目前处于 developer preview,插件依赖其 rc 版本;升级 dsh 时请同步升级本 bundle。
安装与启用¶
先把 bundle 加进你的 dsh profile,再启动 web 界面:
# 从 npm 安装
dsh plugin --profile web add dsh-acp-for-bitfun
# 或从本地 checkout 安装
dsh plugin --profile web add ./dsh-acp-for-bitfun
# 启动
dsh web
加载时插件会用 bitfun --version 探测 BitFun CLI。若不在 PATH 上,启动会直接失败(fail loud),错误信息会提示安装 BitFun 或配置绝对路径。
配置¶
在 profile 的 cordis.patch.yml(路径为 $DSH_HOME/profiles/<name>/cordis.patch.yml)里按 id 覆盖:
- id: bitfun-acp
name: dsh-acp-for-bitfun
config:
command: /absolute/path/to/bitfun # 默认 'bitfun'(PATH 解析)
providerName: bitfun # 默认 'bitfun'
toolName: subagent_bitfun # 默认 'subagent_bitfun'
permission: reject # 'reject' | 'allow'
acpArgs: ['acp'] # 默认 ['acp']
env: {} # 传给 BitFun 子进程的额外环境变量
checkOnStart: true # 加载时探测 bitfun,缺失则启动失败
| 配置项 | 默认值 | 说明 |
|---|---|---|
command |
bitfun |
BitFun CLI 可执行文件:PATH 上的名字或绝对路径 |
providerName |
bitfun |
ctx.subagents 上的 provider 名 |
toolName |
subagent_bitfun |
模型可见的工具名 |
permission |
reject |
BitFun 权限请求的自动应答策略(reject / allow) |
acpArgs |
['acp'] |
追加在 command 后的参数 |
env |
{} |
BitFun 子进程的额外环境变量 |
checkOnStart |
true |
加载时探测 command --version,缺失则 fail loud |
permission 设为 reject 时,BitFun 发起的权限请求会被自动拒绝;若你希望 BitFun 在无人工确认下执行更多操作,可改为 allow,但需自行评估风险。
验证¶
经过上面的安装与配置,按下面三步确认插件可用:
- BitFun 侧自检:
bitfun acp doctor
- 在 dsh 配置树里确认插件行:
dsh --profile web --dump-config | grep -A 2 bitfun
- 在 dsh 会话里让模型调用
subagent_bitfun工具,委托一个简单任务(例如「用 subagent_bitfun 回复 hello」),确认返回 BitFun 的输出。
典型用法¶
启用插件后,主会话中的模型会把 BitFun 当作 subagent 工具使用。你不需要手写 ACP 客户端代码;只要在对话里描述任务,模型即可通过 subagent_bitfun 把执行交给 BitFun。
例如验证阶段可以让模型执行:「用 subagent_bitfun 回复 hello」。每次调用都会启动独立的 bitfun acp 进程,适合把 BitFun 擅长的联网检索、代码执行等能力 offload 到专用 Agent,而主会话继续负责编排与汇总。
适用场景与注意¶
适合谁
- 已在用 dsh 编排多步任务,希望把部分子任务交给 BitFun 的开发者。
- 需要标准 ACP 对接、不想自己维护 stdio JSON-RPC 桥接的团队。
- 想在同一 dsh profile 里组合多个 subagent provider 的场景。
注意事项
- 插件以当前 dsh 进程的权限运行;BitFun 子进程继承相同权限与环境。安装前应检查源码与 MIT 许可证,确认
permission策略符合你的安全要求。 checkOnStart: true时,BitFun CLI 缺失会导致 dsh 启动失败,这是有意为之的 fail loud 行为。- SkillHub 是面向中国用户的 Skills 社区目录,与 DeepSeek / 幻方无官方从属关系;插件分发与维护以 GitHub 仓库为准。
链接¶
- SkillHub 目录页:https://www.skillhub.cn/plugins/bobleer/dsh-acp-for-bitfun
- GitHub 仓库:https://github.com/bobleer/dsh-acp-for-bitfun