Agent = LLM + harness. The model reasons in text; the harness gives it a loop, tools, context, rules and checks. Below: LLM vs harness vs agent in one table, the five groups a harness includes, and the same model in two harnesses.
Agent = LLM + harness
An LLM only continues text. The harness is everything around it: the step loop, tools, access to files and services, rules and checks. Together they make an AI agent.
LLM vs harness vs agent
What each of the three has. The agent column is the sum of the first two.
| LLM | Harness | AI agent | |
|---|---|---|---|
| Model that reasons in text | has | none | has |
| Loop: step, act, observe | none | has | has |
| Tools and MCP | none | has | has |
| Context and memory | none | has | has |
| Rules: CLAUDE.md, AGENTS.md, skills | none | has | has |
| Permissions, sandbox, hooks | none | has | has |
| Checks and human in the loop | none | has | has |
| Acts on its own | none | none | has |
What the harness includes: five groups
Same model, different harness
| Model | Chat harness | Agent harness |
|---|---|---|
| Claude | Claude in the browser: conversation, no project access | Claude Code: reads the repo, edits files, runs commands |
| GPT | ChatGPT: conversation, no project access | Codex: works in the repo, runs tests, opens pull requests |
A study at ICML 2026 found that picking the best harness gives gains comparable to picking the best model. Source
FAQ
All the code and configuration around the model that is not the model: loop, tools, context, rules, permissions and checks.
An LLM generates text. An AI agent is an LLM inside a harness that turns that text into actions and checks the result.
A chatbot answers within a script or a conversation. An agent acts in your systems and decides the next step itself.
In plain chat it is a chat app. In agent mode and in Codex the same model gets an action harness, which makes it an agent.
A framework gives building blocks for writing an agent. A harness is the running layer that executes the loop and controls it.