The word harness has been in software engineering for decades. But when it meets AI agents, it takes on a precise meaning — and most builders miss it.
An agent harness is not just any system that wraps a model. It is a specific engineering construct with 4 necessary and sufficient conditions. Miss one, and you have a model-powered application. Meet all four, and you have a true agent harness capable of completing tasks autonomously in external environments.
This article covers what an agent harness is, where the term comes from, how to identify one in the wild, and why real-world tools like Claude Code and Codex are textbook examples.
The Origin of the Word "Harness"
The term comes from Old French harneis, meaning equipment or armor. Over time, it narrowed to describe the straps and belts that connect a horse to a cart. The analogy is structurally precise:
- The horse has raw power.
- The cart is the task that needs to be accomplished.
- The harness connects them — giving direction, transferring power, guiding movement, and providing control.
In AI, the model is the horse. The task is the cart. The harness is everything in between.
A horse without a harness has power but no direction. A model without a harness has capability but no control.
How "Harness" Evolved in Engineering
The word carried its meaning into software — but the role of the harness changed along the way. There are three distinct generations:
- Test harness (software testing) — Runs code in a controlled, observable way. Works from outside, after execution.
- Evaluation harness (machine learning) — Runs standardized tasks and measures results. Also works from outside, after execution.
- Agent harness (agent runtime) — Controls, limits, verifies, and corrects execution while it happens. Works from inside, during execution.
The critical shift: agent harnesses are active participants in the execution — not passive observers of the result.
What Is an Agent Harness?
An agent harness is the runtime engineering layer that wraps one or more language models and turns them into an agent that can complete tasks in an external environment.
The definition is precise. An agent harness is not a chat interface, a fine-tuned model, or a model deployed behind an API. It is the engineering layer that gives the model agency — the ability to act, observe, and continue.
The 4 Core Conditions of an Agent Harness
A system is an agent harness if and only if it satisfies all four of these conditions. One failure disqualifies it.
1. Adaptive Agent Loop
The system must reason, take an action, observe the result, and use that result to decide what to do next. This Reason → Act → Observe → Repeat cycle is the heartbeat of any agent harness.
The key word is adaptive. Each iteration informs the next. The agent does not just run once and stop — it continues until the task is done or a stopping condition is triggered.
2. Tool Interface
The model must be able to use tools to perceive and alter an external environment. This includes reading files, running terminal commands, calling APIs, browsing the web, or writing to a database.
Without a tool interface, the model is confined to its context window. It can reason, but it cannot act on the real world.
3. Context Management
The harness — not the model — must actively decide what information enters and leaves the model's context. This includes selecting relevant history, compacting long conversations, injecting tool results, and pruning irrelevant content.
This condition is often overlooked. It is not enough for the model to summarize its own context. The harness must independently control the information flow.
4. Independent Control Mechanisms
The harness must have at least one control mechanism that works independently of the model. This could be a permission system, a token budget cap, a confirmation prompt before destructive actions, or a guardrail that blocks unsafe outputs.
The key requirement: the model alone cannot bypass it. Control must be enforced at the harness level.
How to Identify an Agent Harness
Use these four diagnostic questions to evaluate any system:
- Does the system reason, act, observe, and continue based on results?
- Can the model use tools to perceive and alter an external environment?
- Does the system actively manage what enters and leaves the model's context?
- Does the system have at least one control mechanism that works independently of the model?
All four answers must be yes. One "no" means the system is not an agent harness — it may be a powerful tool, but it does not meet the definition.
What an Agent Harness Does NOT Require
Several common assumptions about agent harnesses are wrong. A harness does not require:
- Multiple agents — a single model is sufficient.
- Learning or fine-tuning — the harness wraps the model; it does not modify it.
- One specific model — a well-designed harness can work with different models.
- A user interface — a CLI or library is enough. No visible UI is required.
These are design choices, not core conditions.
The 6 Optional Qualifiers
Beyond the 4 core conditions, there are 6 optional features that improve a harness without defining it. They describe how robust the harness is, not whether it qualifies:
- Memory — preserves information across steps or sessions.
- Verifier — checks that the task was actually completed correctly.
- Retry and model switch — retries a failed action or switches to a better-suited model.
- Observability — records what happened during execution for debugging and auditing.
- Guardrails — limits or blocks unsafe and unwanted actions proactively.
- Deterministic handlers — uses ordinary code (not the model) for sensitive parts of the task.
More robust ≠ more core conditions. A harness with all 6 qualifiers is still defined by the same 4 conditions.
Real-World Example: Claude Code vs Codex
Two of the most widely used coding agents — Claude Code and Codex — both qualify as agent harnesses. Here is how they each satisfy the 4 conditions:
| Condition | Claude Code | Codex |
|---|---|---|
| 1 · Adaptive loop | Inspects, acts, observes, and continues. | Inspects, acts, observes, and continues. |
| 2 · Tool interface | Reads and edits files. Runs commands. | Inspects and edits files. Runs commands. |
| 3 · Context management | Selects and compacts information. | Manages the working context. |
| 4 · Independent control | Confirmation before sensitive actions. | Permission and approval modes. |
| Result | ✓ Agent harness (4/4) | ✓ Agent harness (4/4) |
Same four conditions. Different control implementation. This distinction matters: two harnesses can look very different on the surface while being structurally identical at the definitional level.
A model inside a product ≠ an agent harness. The harness is the engineering layer that wraps the model and gives it direction, feedback, and control.
Key Takeaway
The horse analogy holds. A harness connects power to a task. Without it, the power is unguided. With it, the system can work reliably and safely in the real world.
- Horse → Harness → Cart
- Model → Harness → Task + External environment
If you are building or evaluating an AI agent system, use the 4 conditions as your checklist. They are the minimum required to call a system an agent harness — not a best practice, but a definition.
Resources
-
Research paper — What Makes a Harness a Harness: Necessary and Sufficient Conditions for an Agent Harness
arxiv.org/abs/2606.10106 -
Claude Code — How Claude Code Works
code.claude.com/docs/en/how-claude-code-works -
Claude Code Glossary
code.claude.com/docs/en/glossary -
OpenAI Codex
openai.com/codex -
Codex CLI — GitHub
github.com/openai/codex -
Hugging Face — Agent Glossary
huggingface.co/blog/agent-glossary -
Video — Watch the full presentation on YouTube
▶ youtube.com/watch?v=aD6kCbUyfrY