Foreword¶
When running multi-agent collaboration in DeepSeek Harness (dsh), the common practice is to directly attach a bunch of tools in the main session or write a custom bridging layer to integrate external agents. BitFun itself provides a CLI service based on the Agent Client Protocol (ACP) v1, but dsh sessions do not automatically recognize it.
dsh-acp-for-bitfun is a dsh plugin bundle that registers BitFun as a subagent provider in dsh via ACP over stdio. After installation and activation, any session in dsh can use the subagent_bitfun tool to delegate tasks to BitFun for execution, without needing to repeatedly implement BitFun’s capabilities in the main session.
This article introduces the plugin’s positioning, working principle, installation, configuration, and verification steps. The factual basis comes from the SkillHub directory page and the GitHub repository README.
What It Is¶
dsh-acp-for-bitfun is published by the maintainer bobleer, categorized as a networked tool, currently at version 0.1.0, licensed under MIT.
In one sentence: It exposes the BitFun Agent Runtime as a subagent to dsh, allowing models to invoke BitFun to complete tasks via the subagent_bitfun tool.
How It Works¶
The plugin reuses dsh’s official @deepseek-ai/dsh-subagent-acp as the ACP client and mounts tools via @deepseek-ai/dsh-tool-subagent. Each delegation spawns an independent bitfun acp subprocess, performs initialize → session/new → session/prompt, stream-collects agent_message_chunk, and after task completion, closes the subprocess in the order of EOF timeout 6s → SIGTERM → SIGKILL.
dsh Session ──subagent_bitfun Tool──▶ dsh-subagent-acp (ACP Client)
│ Spawns an independent process per task
▼
bitfun acp (ACP Server, stdio JSON-RPC)
│
▼
BitFun Agent Runtime
The BitFun subprocess exits immediately upon receiving SIGTERM, and session data is persisted by BitFun itself.
Prerequisites¶
Before installing the plugin, ensure the following environment is available:
- BitFun CLI: After installation, run
bitfun acp doctorto ensure it passes (BitFun’s ACP server is built into the CLI). Requires BitFun>= 0.2.17. - dsh: Run
npx @deepseek-ai/dsh --version, requires>= 0.1.0-rc.6, matching the subagent package version the plugin depends on. - pnpm:
dsh plugininstalls bundles via pnpm.
deepseek-harness is currently in developer preview, and the plugin depends on its rc version; when upgrading dsh, please upgrade this bundle concurrently.
Installation and Activation¶
First, add the bundle to your dsh profile, then start the web interface:
# Install from npm
dsh plugin --profile web add dsh-acp-for-bitfun
# Or install from a local checkout
dsh plugin --profile web add ./dsh-acp-for-bitfun
# Start
dsh web
Upon loading, the plugin will probe for the BitFun CLI using bitfun --version. If it is not in the PATH, startup will fail loudly, with an error message prompting you to install BitFun or configure the absolute path.
Configuration¶
Override by ID in the profile’s cordis.patch.yml (located at $DSH_HOME/profiles/<name>/cordis.patch.yml):
- id: bitfun-acp
name: dsh-acp-for-bitfun
config:
command: /absolute/path/to/bitfun # Default 'bitfun' (PATH resolution)
providerName: bitfun # Default 'bitfun'
toolName: subagent_bitfun # Default 'subagent_bitfun'
permission: reject # 'reject' | 'allow'
acpArgs: ['acp'] # Default ['acp']
env: {} # Additional environment variables passed to BitFun subprocess
checkOnStart: true # Probe bitfun on load, fail loudly if missing
| Configuration Item | Default Value | Description |
|---|---|---|
command |
bitfun |
BitFun CLI executable: name on PATH or absolute path |
providerName |
bitfun |
Provider name on ctx.subagents |
toolName |
subagent_bitfun |
Tool name visible to the model |
permission |
reject |
Auto-response strategy for BitFun permission requests (reject / allow) |
acpArgs |
['acp'] |
Arguments appended to command |
env |
{} |
Additional environment variables for the BitFun subprocess |
checkOnStart |
true |
Probe command --version on load, fail loudly if missing |
When permission is set to reject, BitFun-initiated permission requests are automatically rejected. If you wish for BitFun to execute more operations without manual confirmation, you can change it to allow, but you must assess the risks yourself.
Verification¶
After the above installation and configuration, follow these three steps to confirm the plugin is functional:
- BitFun side self-check:
bitfun acp doctor
- Confirm the plugin line in the dsh configuration tree:
dsh --profile web --dump-config | grep -A 2 bitfun
- In a dsh session, ask the model to invoke the
subagent_bitfuntool to delegate a simple task (e.g., “use subagent_bitfun to reply hello”), and confirm it returns BitFun’s output.
Typical Usage¶
After enabling the plugin, the model in the main session will use BitFun as a subagent tool. You do not need to write ACP client code manually; as long as you describe the task in the conversation, the model can delegate execution to BitFun via subagent_bitfun.
For example, during verification, you can ask the model to execute: “use subagent_bitfun to reply hello.” Each call will start an independent bitfun acp process, suitable for offloading BitFun’s strengths like web search and code execution to a dedicated agent, while the main session continues to handle orchestration and summarization.
Use Cases and Considerations¶
Who It’s For
- Developers already using dsh to orchestrate multi-step tasks and wishing to delegate some subtasks to BitFun.
- Teams needing standard ACP integration and不想 maintaining custom stdio JSON-RPC bridges.
- Scenarios wanting to combine multiple subagent providers within the same dsh profile.
Considerations
- The plugin runs with the permissions of the current dsh process; the BitFun subprocess inherits the same permissions and environment. Before installation, review the source code and MIT license to ensure the
permissionpolicy meets your security requirements. - When
checkOnStart: true, a missing BitFun CLI will cause dsh to fail on startup; this is an intentional fail-loud behavior. - SkillHub is a Skills community directory for Chinese users and has no official affiliation with DeepSeek / High-Flyer; plugin distribution and maintenance are based on the GitHub repository.
Links¶
- SkillHub directory page: https://www.skillhub.cn/plugins/bobleer/dsh-acp-for-bitfun
- GitHub repository: https://github.com/bobleer/dsh-acp-for-bitfun