dsh-acp-for-bitfun

10Star1Fork0Issue0Watching

把 BitFun agent 通过 ACP 协议接入 DSH,会话中可用 subagent_bitfun 工具把任务委托给 BitFun 执行。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
bitfundshdsh-plugin

安装

$ dsh plugin --profile web add github:bobleer/dsh-acp-for-bitfun

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 bobleer/dsh-acp-for-bitfun:先查看仓库 https://github.com/bobleer/dsh-acp-for-bitfun.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

把 BitFun 这个本地 agent 通过 ACP(Agent Client Protocol)接入 DSH,让模型在 dsh 会话里通过 subagent_bitfun 工具把任务转交给 BitFun 执行,免去手动在两个工具之间来回切换。

核心能力

  • 在 DSH 里注册 BitFun 作为 subagent provider,模型可以直接调用
  • 每次委托启动一个独立的 bitfun acp 子进程,跑完自动回收
  • 通过流式通道回传 BitFun 的 agent_message_chunk,主会话能看到过程
  • 加载时探测 bitfun CLI 是否可用,缺失直接 fail loud,避免运行中才报错
  • 支持覆盖工具名、权限应答策略、子进程参数和环境变量
  • 复用 dsh 官方 subagent-acptool-subagent 两个包,无需自己实现 ACP 客户端

技术实现

  • 语言: JavaScript(ESM,"type": "module"
  • 关键依赖: @deepseek-ai/dsh-subagent-acp(ACP 客户端)、@deepseek-ai/dsh-tool-subagent(挂载模型可见工具)、@deepseek-ai/schemastery(配置 schema)
  • 架构模式: DSH Cordis bundle patch —— cordis.patch.yml 注入一个 bitfun-acp 插件节点,index.jsapply(ctx, config) 在节点挂载时探测 CLI、注册 provider、再挂载工具
  • 入口文件: index.js

适用场景

你已经在用 BitFun 做日常编码/重构,又同时使用 DSH 做 AI 协作,希望让 DSH 的模型把"派给 BitFun"的活儿在一次对话里自动完成,不用中途切窗口、复制粘贴。同时也适合把 BitFun 接到 DSH 的多 agent 流水线里,让它作为下游执行单元被调度。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness (dsh)>= 0.1.0-rc.6与插件依赖的 subagent 包对齐
BitFun CLI>= 0.2.17内置 ACP v1 server,需通过 bitfun acp doctor 自检
Node.js未声明源码未声明,由宿主 dsh 决定
平台跨平台纯 JS + Node 子进程,未声明 OS/CPU 限制
原生模块依赖均为纯 JS

安装方式

dsh plugin --profile web add github:bobleer/dsh-acp-for-bitfun

配置项

配置类型说明默认值
command字符串BitFun CLI 可执行文件:PATH 上的命令名或绝对路径bitfun
providerName字符串DSH 里这个 provider 的注册名,用于工具路由bitfun
toolName字符串模型在会话里看到的工具调用名subagent_bitfun
permissionallow / rejectBitFun 询问权限时自动应答的策略reject
acpArgs字符串数组跟在 command 后面的额外参数['acp']
env键值对透传给 BitFun 子进程的环境变量{}
checkOnStart布尔加载插件时是否探测 CLI 是否可用true

常见问题

Q: 用这个插件需要先装 BitFun 吗?

A: 是的。插件加载时会探测 bitfun 命令,找不到就直接报错退出,不会等到第一次委托才失败。请按 README 装好 BitFun CLI,并跑 bitfun acp doctor 确认 ACP server 正常。

Q: 模型在会话里看到的是什么工具名?

A: 默认是 subagent_bitfun。如果你启用了其他 subagent 工具想避免重名,可以把配置里的 toolName 改成别的名字。

Q: BitFun 不在 PATH 里怎么办?

A: 在 profile 配置里把 command 改成 BitFun 可执行文件的绝对路径,比如 /usr/local/bin/bitfun,插件就不会再依赖 PATH 查找。

Q: BitFun 在执行中弹出权限请求怎么处理?

A: 配置项 permission 控制自动应答。默认 reject(拒绝),保守安全;如果跑的是批量脚本不希望被打断,可以改成 allow 一律放行。

Q: dsh 主版本要求是什么?

A: 需要 >= 0.1.0-rc.6,和插件依赖的 subagent 包版本严格对齐。deepseek-harness 目前还是 developer preview,升级 dsh 时建议同步升级这个 bundle。

Q: 任务数据存在哪里?

A: BitFun 子进程自己负责持久化,dsh 这边只负责启子进程、回传结果、回收子进程。具体存哪、用什么格式,由 BitFun 自己决定。

Q: 怎么卸载?

A: 在对应 profile 里把 dsh-acp-for-bitfun 这一行从 cordis.patch.yml 移除,或用 dsh plugin remove 卸载;之前产生的 BitFun 会话数据不受影响。

上手难度

入门 — 只要装好 BitFun CLI 并把 bundle 加到 profile,模型就能在下次会话直接调用 subagent_bitfun,零代码门槛;进阶场景(自定义路径、权限放行、批量任务)只需改几行 YAML。

已知问题与限制

  • 暂未发布到 npm registry,目前需要从 GitHub 安装(来源:TODO.md)
  • 没有自动化冒烟测试覆盖 ACP 协议层的 initialize/prompt 往返(来源:TODO.md)
  • 当前依赖锁定在 0.1.0-rc.6,需随 dsh rc 节奏手动升级(来源:TODO.md)
  • 每次委托都冷启动一个 bitfun acp 子进程,没有连接复用,长任务频繁调度时开销较大(来源:TODO.md)
  • checkOnStart=true 时,BitFun CLI 缺失会让插件加载直接失败而非优雅降级(来源:index.js:74-84)

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/bobleer/dsh-acp-for-bitfun)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录
dsh-acp-for-bitfun — DeepSeek Harness 插件 | deepseek-plugin.org