DeepSeek Harness agents
A DeepSeek Harness agent runs on DeepSeek Harness (dsh) instead of agt's own model loop. agt drives it over the Agent Client Protocol (ACP), the same open protocol editors use, so it keeps its own tools, plugins and sandbox while using agt's messaging, memory and task tools.
Requirements
- DeepSeek Harness installed on the machine that runs agt, for example
npm install -g @deepseek-ai/dsh. It needs Node.js 24 or later on thePATHof the agt process. - A DeepSeek API key saved in DeepSeek Harness (its Web UI's Models page) or
DEEPSEEK_API_KEYexported where agt runs. agt stores no DeepSeek credentials.
agt starts dsh --profile acp for each turn and resumes the agent's session on the next one.
Create a harness
{
"engine": "deepseek-harness",
"executable": "/usr/local/bin/dsh",
"working_directory": "/home/me/projects/tools",
"sandbox": "workspace_write",
"model": "deepseek-v4-pro",
"reasoning_effort": "high",
"timeout_seconds": 1800,
"description": "Builds tools for the team"
}| Field | For DeepSeek Harness |
|---|---|
model | A model DeepSeek Harness offers, by name (deepseek-v4-pro) or by its option value. Empty keeps DeepSeek Harness's default. An unknown name fails the turn and lists the available ones. |
reasoning_effort | A level DeepSeek Harness offers: off, low, high or max. |
sandbox | Kept for consistency with other engines; DeepSeek Harness applies its own permission preset. |
Web console: Resources → New resource → Harness, then choose DeepSeek Harness as the engine.
CLI:
agt harness resource create builder --file ./builder.json
agt harness resource test builder # starts dsh and checks the ACP handshake; runs no modelThen create the agent on it: agt agent create builder --harness builder --prompt builder.
How agt connects to DeepSeek Harness
- agt tools: for each turn agt opens a temporary MCP endpoint on
127.0.0.1with a random token and mounts it in the ACP session as the serveragt. Tool calls run inside agt with its usual checks. - Approvals: permission requests (
session/request_permission) go to agt's approval queue and follow the Harness approval mode; see Permissions. You can approve once, deny, or cancel the turn. - Model and level: set per session through ACP configuration options.
- Sessions: each agent keeps one session per conversation; agt closes it after each turn so the next process can resume it.
/newstarts a fresh session.
What DeepSeek Harness agents can and cannot use
| Available | Not available |
|---|---|
| Role prompt and skills | agt MCP resources (install plugins or MCP in DeepSeek Harness instead) |
resource_management and task_collaboration tools | local_execution |
| Messaging, memory and task tools | Response policy all (only mentioned and manual) |
/stop, /new, /status, live preview of the reply | /model, /compact, /rename, /skills, /mcp, /permissions |
Other ACP agents
The same ACP support works for any agent that speaks the Agent Client Protocol and accepts HTTP MCP servers. Use the engine acp, point executable at the agent's ACP command, and list its arguments in args:
{
"engine": "acp",
"executable": "/usr/local/bin/codex-acp",
"args": [],
"working_directory": "/home/me/projects/tools",
"sandbox": "workspace_write",
"timeout_seconds": 1800
}- If the agent requires sign-in,
agt harness resource testlists its ACP auth methods; set one inauth_method(for example"api-key"for codex-acp, which then readsOPENAI_API_KEY). Agents already signed in through their own tool need none. modelandreasoning_effortare matched against the options the agent offers for the session.argsandauth_methodare accepted only foracp. Acodexharness always runscodex app-serverdirectly; use Codex agents for the full Codex feature set, andcodex-acponly if you want Codex behind the same protocol as your other agents.
Things to know
- Developer preview. DeepSeek Harness says breaking changes are expected; agt uses only the standard ACP v1 methods.
- Files are shared between agents that use the same working directory.
- Stopping is not undoing. Cancelling a turn stops DeepSeek Harness, but changes already made stay.