When people say “AI agent”, they usually picture the model, the “brain”. But much of what makes an agent reliable has nothing to do with the model.
A simple formula
Agent = model + harness
The model reasons and decides. The harness is everything around it: the software that gives the model information, runs its actions, remembers progress and keeps it within limits.
Think of a talented driver. The model is the driver. The harness is the steering wheel, brakes, seat belt, dashboard and the road rules.
What a harness does
- Prepares context: decides what the model sees on each step.
- Provides tools and runs them: a model can only write text, so the harness performs the search, opens the file or sends the request.
- Keeps state: tracks what’s done and what’s left.
- Enforces permissions: blocks actions the agent isn’t allowed to take and asks you before risky ones.
- Checks results and handles errors: retries, tries another way, or stops.
- Knows when to stop: by finishing the goal, hitting a limit or asking for help.
The loop inside
- The model asks to use a tool.
- The harness checks the request and runs it.
- The result goes back to the model as new information.
- Repeat until the goal is reached.
Harness vs. framework
A framework helps developers build an agent. A harness helps run it safely: sandboxes, approval steps, cost limits and logs. The two overlap, but the question differs: “how do I build it?” versus “how do I keep it reliable while it works?”
Why you should care
Coding assistants like Claude Code, Cursor and Codex are harnesses wrapped around models. Swap the harness and the same model behaves very differently. When you choose an agent tool, ask:
- What can it access, and can I limit that?
- Does it ask before doing something risky?
- Can I see each step it took?
- What happens when something fails?
Next step
A good model is necessary, but a good harness is what turns smart answers into finished jobs. In the next posts we look at its main parts: tools, memory and guardrails.