前言¶
在 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