Why did harness engineering become a named discipline in 2026?
Because teams kept learning the same lesson: agents that looked finished in a demo fell apart in production, and the fix was rarely a better model. BCG describes harness engineering as the operating system that lets agents scale safely; Thoughtworks’ Birgitta Boeckeler published a framework for it on martinfowler.com; OpenAI’s own hiring describes engineers iterating on the Codex agent harness. The industry gave the gap between a capable model and a dependable system its own name, which is usually the moment a practice becomes a budget item.
What does an agent harness actually contain?
The agent harness is the runtime: tool definitions, state, retries, and the loop the model runs inside. Harness engineering adds the design judgment around it, deciding how context is assembled for each step, which actions need a human gate, where guardrails sit, and what gets logged for the postmortem you hope never to write. A production harness is mostly checks and recovery paths, not model calls.
How is it different from prompt or context engineering?
Scope. Prompt engineering tunes a single exchange. Context engineering manages what the model knows at each step. Harness engineering owns the whole envelope across the agent lifecycle, from what the agent is permitted to do through how its work is verified. The harness, not the prompt, is where reliability is won or lost once an agent runs longer than one exchange.
What does this mean for a team buying or building agents?
Evaluate the harness, not the demo. Ask what happens on a failed tool call, who approves consequential actions, how a run is traced afterward, and how confidence gates decide when the agent must stop and ask. Two agents on the same model can differ by an order of magnitude in reliability, and the difference is engineering you can inspect.
How do we practice harness engineering at Soba Labs?
Our position is the title of our essay on it: the model is not the product. In our own harnesses, deterministic checks run before any model judgment, so a change that fails a free check never pays for an expensive one; every unattended agent run carries caps on searches and spend; a worker agent that goes silent past its ceiling is replaced once, never waited on; and nothing ships without passing an audit gate that scripts, not a model, enforce. When one of our coding agents got expensive, the fix was harness work, not a model change: restructuring what it read each step halved its token usage.