Your Agent Is Not the Model: Harness vs Inference Service Explained
People often talk about Claude as if it's a single entity, but an AI agent is a stack of three distinct layers. Knowing the difference saves you hours of debugging — when something goes wrong, you need to know whether to blame the model, the service, or the logic around it.
The Three Layers
- Model — the mathematical function that transforms input tokens into output tokens. Examples: Sonnet, Opus, Gemini.
- Inference service — the hosted service that runs the model and tracks usage. Examples: AWS Bedrock, Anthropic's API.
- Harness — the logic that shapes inputs, interprets outputs, and touches the outside world. This includes MCP and Skills — the model doesn't inherently know about them.
Put together, an agent system is a harness that calls an inference service, which runs a model. That's it.
Real-World Breakdown
| Agent System | Harness | Inference Service | Model |
|---|---|---|---|
| Claude Desktop | UI + MCP + local logic | Anthropic's inference service | Sonnet / Opus / Haiku |
| Claude CLI | Tool parsing + file I/O | Anthropic's inference service | Sonnet / Opus / Haiku |
| Cursor | Context assembly + tool routing | Cursor's inference layer | Sonnet / GPT / Gemini |
| Custom LangChain agent | Prompt templates + tool definitions | Bedrock, OpenAI, etc. | Your chosen model |
The same model (say, Sonnet) can behave differently depending on the harness — because the harness shapes inputs and interprets outputs. That's why your prompts work in Claude CLI but not in Cursor.
Debugging With This Mental Model
- Bad answers? Look at the harness — maybe it's not providing enough context.
- Too slow or expensive? Check the inference service — pricing and performance live there.
- Unexpected output? Is the model wrong, or is the harness feeding it garbage?
The article also notes that as models get smarter, some harness logic (like MCP or Skills) might become obsolete — so the way we build harnesses now may not age well.
Next time you say "my model did X," stop and ask: was it the model, or was it the harness orchestrating it?
📖 Read the full source: HN AI Agents
👀 See Also

Export ChatGPT history to OpenClaw memory system
A Reddit user shares a process to export years of ChatGPT conversation history and import it into OpenClaw's memory system using the ai-chat-md-export tool, enabling local AI agents to access historical context.

72-Step Claude Setup Checklist: From Default to Power User
A detailed medium article outlines a 72-step checklist for configuring Claude, moving from default settings to advanced power-user features. Shared on HN with 10 points and 1 comment.

Windows Cowork VM Service Error: Path Issue and Fix
A Windows Cowork installation issue causes the 'VM service not running' error every 10-20 minutes due to incorrect vm_bundles folder path in MSIX installs. The fix involves locating the correct folder and using a repair script.

Fix for sub-agents not showing up in OpenClaw v2026.3.13
A workaround for OpenClaw v2026.3.13 where custom sub-agents don't appear in the agent list: simplify the openclaw.json agent list to only include IDs and manually register agents in runs.json with status set to 'idle'.