Agent = 模型 + Harness:Pi、OpenClaw、DeepSeek Harness 和 Claude Code 横向对比Agent = model + harness: Pi, OpenClaw, DeepSeek Harness and Claude Code side by sideエージェント = モデル + ハーネス:Pi・OpenClaw・DeepSeek Harness・Claude Code の横並び比較

约 5 分钟3 min read約 5 分

Published:

After writing about DeepSeek Harness and the Claw family, I wanted one page that puts the main agents next to each other. The useful framing, which DeepSeek made explicit, is agent = model + harness: the harness is everything that is not the weights — the loop, the tools, what goes into context, the permissions, the interface. Models are converging; harnesses are where the products really differ now.

The map

core: minimal ← → batteries-included open / composable ↑ you (or the agent) write the features the vendor ships the features Pi4 tools · <1k-token prompt DeepSeek Harnesseven the loop is a plugin OpenClawPi inside · 20+ chat apps Claude Code · Codexopinionated, model-matched
Two questions separate them: how much lives in the core, and who adds the rest.

Side by side

 PiOpenClawDeepSeek HarnessClaude Code / Codex
Core4 tools (read, write, edit, bash), system prompt under 1k tokensPi, plus gateways, memory, skills, browsersmall Cordis core; even the loop is a pluginfull-featured, tuned to one model family
Who adds featuresyou — or the agent writes its own TypeScript extensionscommunity skillsswappable plugins, YAML configthe vendor, plus MCP / plugins
Models25+ providersmany, incl. localV4-Flash / Pro, other providers, self-hostedmainly the vendor’s own
MCPleft out on purpose (keeps the cached prompt stable)via skills / pluginsas pluginsbuilt in
Context strategysession tree: branch off, fix something, rewindActive Memory sub-agent before every reply (2.0)append-only log, 95–100% prefix-cache hits reportedmanaged by the product (compaction, sub-agents)
Interfaceterminalthe chat apps you already useweb UI / CLIterminal, IDE
Default safetynone: bash runs with your full permissions; sandbox is an opt-in extensionsandbox off by defaultdeveloper preview; plugins run with your accessapproval prompts / sandboxed modes
Best forpeople who want to own every linea personal assistant that lives in chatcheap, customisable runs; self-hostinggetting work done with the least setup

Four things they agree on

1. The cache shapes the design. Pi leaves out MCP partly because loading tool definitions mid-session breaks the cached prompt; DeepSeek built its runtime around an append-only log. Neither is an accident. When one task can consume millions of tokens, the harness that keeps its prefix stable wins on cost by an order of magnitude.

2. The agent writes its own tools. Pi’s philosophy — don’t install features, ask the agent to build the extension — is spreading. It works because code is what these models are best at. The flip side is that your tool set becomes code nobody reviewed.

3. The UI is dissolving. OpenClaw showed that a chat thread is enough interface for most things. Armin Ronacher’s line about removing the UI entirely no longer sounds like a provocation.

4. Permissions are the unsolved part. Look at the “default safety” row. Every harness that optimises for autonomy ships with little or no boundary, and every one that has a boundary makes you click through it. Nobody yet has a permission model that is both safe and invisible.

How I would choose

  • Learning how agents work: Pi. Four tools and a small prompt — you can read the whole thing in an afternoon.
  • A personal assistant: the Claw pattern, but a fork with isolation (NanoClaw, ZeroClaw) rather than stock OpenClaw.
  • Enterprise or on-premises: a harness that treats the model as a replaceable adapter and whose cost model works with a cache you run yourself. That points to something like DeepSeek Harness in front of your own inference stack — in my work, NIM — once it leaves preview.
  • Just shipping code today: Claude Code or Codex. Opinionated is a feature when you don’t want to build the harness.

The bigger point: choosing an agent is now mostly choosing a harness, and the harness decides three things the model cannot — what it costs, what it can touch, and whether you can move it to your own hardware.

Sources