Bundle
dsh-openclaw-acp
DeepSeek Harness bundle that exposes a profile as an OpenClaw-compatible ACP agent.
- Source
- BeAChanger
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 11 days ago
Readme
# dsh-openclaw-acp
[简体中文](README.zh-CN.md)
A native [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) bundle that exposes a Harness profile to [OpenClaw](https://github.com/openclaw/openclaw) through the official Agent Client Protocol (ACP) transport.
The integration deliberately has three owners:
1. DeepSeek Harness owns the agent, model, tools, workspace sandbox, and session log.
2. OpenClaw ACPX owns ACP process lifecycle, dispatch, and conversation routing.
3. The OpenClaw channel plugin owns WeChat or any other messaging transport.
This package does not embed a WeChat SDK and does not duplicate Harness. It installs as a `dsh.bundle` and mounts the official `@deepseek-ai/dsh-acp` plugin.
## Prerequisites
- pnpm 10 and a Node.js release supported by OpenClaw; stable OpenClaw `2026.7.1-2` requires Node.js 22.22.3+, 24.15.0+, or 25.9.0+
- DeepSeek Harness `0.1.0-rc.6`
- OpenClaw `2026.7.1-2` or newer with the official `@openclaw/acpx` plugin
- `DEEPSEEK_API_KEY` available to the OpenClaw Gateway process
- A configured OpenClaw channel, such as Tencent's `@tencent-weixin/openclaw-weixin`
## 1. Install the Harness bundle
```bash
npm install -g @deepseek-ai/dsh@0.1.0-rc.6
dsh plugin --profile openclaw add https://github.com/BeAChanger/dsh-openclaw-acp/releases/download/v0.1.3/dsh-openclaw-acp-0.1.3.tgz
dsh --profile openclaw --dump-config
```
The command uses the prebuilt release artifact, so installation does not execute a repository build. The release page publishes a SHA-256 checksum asset.
The default route is `deepseek-official/deepseek-v4-flash`, with thinking enabled, `max` reasoning effort, a 1,000,000-token context window, and a 384,000-token output cap. Override the model in the Gateway environment when needed:
```bash
export DSH_OPENCLAW_PROVIDER=deepseek-official
export DSH_OPENCLAW_MODEL=deepseek-v4-pro
```
## 2. Register Harness in OpenClaw
Install and enable OpenClaw's official ACP runtime:
```bash
openclaw plugins install @openclaw/acpx@2026.7.1
openclaw config set plugins.entries.acpx.enabled true
```
For WeChat, install the Tencent channel version verified with this stack. The final login command displays a QR code and must be completed by the operator:
```bash
openclaw plugins install @tencent-weixin/openclaw-weixin@2.4.6
openclaw config set plugins.entries.openclaw-weixin.enabled true
openclaw channels login --channel openclaw-weixin
```
Add this configuration to the OpenClaw config:
```json5
{
acp: {
enabled: true,
backend: "acpx",
defaultAgent: "deepseek-harness",
allowedAgents: ["deepseek-harness"]
},
plugins: {
entries: {
acpx: {
enabled: true,
config: {
agents: {
"deepseek-harness": {
command: "dsh",
args: ["--profile", "openclaw"]
}
}
}
},
"openclaw-weixin": {
enabled: true
}
}
}
}
```
Restart the Gateway, then verify the boundary before testing a channel:
```text
/acp doctor
/acp spawn deepseek-harness --cwd /absolute/path/to/workspace
```
On channels that support conversation binding, add `--bind here`. If a channel does not advertise ACP binding, use the unbound one-shot flow and let OpenClaw relay completion to the parent conversation.
## 3. Call it from WeChat
Once a WeChat channel is connected to the same Gateway, the message path is:
```text
WeChat -> OpenClaw channel -> ACPX -> dsh --profile openclaw -> DeepSeek Harness
```
For multiple logged-in WeChat accounts, isolate direct-message sessions by account, channel, and sender:
```bash
openclaw config set session.dmScope per-account-channel-peer
```
No WeChat token or user identifier crosses the ACP boundary. OpenClaw resolves the channel sender and session; Harness receives only the selected workspace and prompt content.
## Security defaults
- OpenClaw's sandbox does not wrap external ACP processes. Harness enforces its own boundary through `DSH_PERMISSION_MODE`.
- Keep the Harness default `workspace-write` mode unless the deployment explicitly requires more access.
- Do not enable OpenClaw's ACPX MCP tool bridges for this target yet. Harness ACP `0.1.0-rc.6` rejects non-empty `mcpServers`.
- Run the Gateway and Harness under a dedicated OS account and restrict the allowed workspace roots.
- Treat `danger-full-access` as a break-glass mode, not a production default.
## Known limitations
- Harness ACP currently supports new sessions only; it does not advertise load, resume, fork, or session listing.
- It returns committed assistant text, not live reasoning or tool events.
- Channel-level persistent binding depends on the OpenClaw channel adapter. Use one-shot parent relay where binding is unavailable.
- OpenClaw plugin tools are not injected into Harness because the current Harness ACP transport rejects non-empty `mcpServers`.
## Verification
```bash
npm install
npm test
npm run test:acp
npm run pack:check
```
`test:acp` installs the bundle into an isolated profile and runs two protocol checks: a direct real-`dsh` ACP negotiation with JSON-RPC-only stdout, then a custom-agent launch through the published `acpx@0.11.2` runtime used by OpenClaw's official ACPX plugin. Both checks complete `initialize` and `session/new`. They do not call a model and do not require a real API key.
## License
MIT
Install
dsh plugin --profile web add github:BeAChanger/dsh-openclaw-acp
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-openclaw-acp from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.