The 98.4% Problem
Why Agent Infrastructure Matters More Than Agent Intelligence
The most important number in agent engineering right now is not a benchmark score. It’s 98.4%.
That’s the percentage of Claude Code’s codebase that four independent research teams at MBZUAI classified as harness infrastructure: permissions, context management, sandboxing, tool routing, recovery logic. The model itself, the part we’ve spent two years obsessing over, accounted for the remaining 1.6%. Forty-nine lines of infrastructure for every one line of AI decision logic. If you were designing a production agent from scratch and you spent 90% of your attention on model selection, you were optimizing the wrong 1.6% of the problem.
The study, published as “Dive into Claude Code: The Design Space of Today’s and Future AI Agent Systems” (arxiv 2604.14228), analyzed 1,884 files and roughly 512,000 lines of decompiled source. Four independent teams, working in isolation, arrived at near-identical architectural decompositions. They didn’t coordinate. They didn’t compare notes. They converged. Four teams looking at the same artifact from four different angles all ended up drawing the same boundary between “the part that thinks” and “the part that makes thinking actually work in production.”
That convergence is the real finding. Not the number itself. Ratios are easy to dismiss as artifacts of how you draw the boundary. The finding is that the boundary was obvious enough that four teams drew it the same way without talking to each other.
Here’s what the 1.6% does. It receives a prompt, a context window, and a set of available tools. It produces a response: text, a tool call, a decision about what to do next. That’s the agent’s “intelligence.” It’s what every demo shows you. It’s what gets the investor excited and the blog post written.
Here’s what the 98.4% does. It validates that the prompt hasn’t been tampered with since the last turn. It assembles the context window from memory layers, tool outputs, and conversation history, applying truncation strategies that prevent the agent from silently forgetting critical instructions. It checks whether the requested tool call is permitted under the current security policy. It routes the call through the correct API, with the correct credentials, handling auth rotation without exposing secrets to the model. It sandboxes the execution so a hallucinated rm -rf doesn’t reach the filesystem. It logs everything, formats it for the audit trail, and checkpoints the agent’s state so a crash on turn 37 doesn’t mean starting over from turn 1. It handles rate limits, retries with exponential backoff, and surfaces degradation before the user notices. When the model returns an invalid tool call, it parses the error, reformats the request, and retries before the agent even knows something went wrong. And it does all of this on every single turn of the agent loop.
The model says “call the database.” The harness decides which database, with which credentials, through which connection pool, with which timeout, logged to which audit system, recoverable from which checkpoint. The model produces a decision. The harness produces a survivable outcome.
The industry’s allocation of attention is almost exactly inverted. Conferences are organized around model releases. Benchmarks measure reasoning, not recovery. VC dollars chase foundation model companies while the harness layer, the thing that four independent teams agreed is 98.4% of a production agent, gets treated as implementation detail. Something you figure out later. Something the intern can handle while the senior engineers debate which model to use.
That inversion has consequences. When an agent hallucinates a tool call, the model gets blamed. When the actual failure is a permission check that silently dropped the call three turns earlier and the agent is now operating on stale context, the model still gets blamed because nobody instrumented the harness well enough to distinguish between the two. When an agent “forgets” something mid-conversation, the model gets blamed for having a short attention span. When the actual failure is a context assembly strategy that truncated the relevant information five turns ago because someone hardcoded a token limit instead of implementing relevance-based pruning.
The model is the easiest thing to blame because it’s the only part of the system that produces human-readable output. The harness fails silently. It drops messages, truncates context, swallows errors, retries invisibly. When the agent behaves strangely, the model looks like the culprit. Fixing the model won’t help if the harness is quietly undermining every decision the model makes.
This misattribution problem is expensive. I’ve watched teams replace a model three times, each time convinced that the new model would solve their reliability issues, while the actual problem was a context window that was silently truncating tool outputs. The model was never the bottleneck. The context assembly logic had a bug that nobody instrumented because “it’s just plumbing.” Four model migrations later, someone finally instrumented the harness and found the real failure in twenty minutes.
The practical question is where to invest engineering effort. If the 98.4% is where the reliability problems actually live, then every hour spent on model selection when your harness isn’t instrumented is an hour stolen from the thing that would actually make your agent work. The framework you choose matters less than whether your agent can survive a crash. The model you choose matters less than whether your context assembly strategy can handle a 50-turn conversation without silently degrading.
Here’s a useful exercise. Take your current agent. Ask yourself four questions. First: if the process crashes on turn 37 of a 50-turn workflow, does the agent resume from turn 37 or restart from turn 1? Second: if a tool call returns an error, does the agent see the raw error, a sanitized version, or nothing at all? Third: if the context window fills up, does your truncation strategy prioritize recency, relevance, or simply keep the first N tokens and hope for the best? Fourth: if the model returns a malformed tool call, a wrong JSON structure, a missing required field, a hallucinated parameter, does your harness catch it and retry, or does the agent silently proceed with bad data?
Most production agents I’ve audited fail at least two of these. Not because the engineers are careless. Because the industry trained them to think about models, not harnesses. The MBZUAI study quantified what practitioners who’ve run agents in production already knew: the boring infrastructure is where agents succeed or fail. The model is the headline. The harness is the whole story.
Claude Code got this right. Not perfectly. The study is a taxonomy of tradeoffs, not a victory lap. But the reason Claude Code works in production while many agent frameworks don’t isn’t because Claude is a better model. It’s because Anthropic invested in the 98.4%. The permission pipeline. The sandboxing. The context management that handles 500,000-token sessions without degrading. The recovery infrastructure that means a failed tool call is an error to handle, not a reason to restart the entire workflow.
When Hermes Agent shipped its self-improving skill system and its checkpoint-based recovery, it wasn’t competing on model quality. It was competing on the runtime layer: the part that makes an agent persist, learn, and recover. When OpenClaw treats every input as an event flowing through a unified queue, it’s making an architectural bet about the harness, not the model. These are the projects that understand the 98.4% problem. They’re not trying to build a better reasoning engine. They’re trying to build a better execution environment for whatever reasoning engine you bring.
The month we’re in at Signal Over Noise is organized around this exact thesis: the runtime is the product. We’ve spent August so far examining the tools that make agents actually run. Hermes Agent, OpenClaw, the execution patterns that survive a crash. Tomorrow we’ll look at what goes in the execution loop itself: the architecture decisions every runtime designer faces. Wednesday is Restate, the durable execution engine that turns “the agent might finish” into “the agent will finish.” Friday we synthesize what the first week of August taught us about the layer that gets 1.6% of the attention and does 98.4% of the work.
The model is not the moat. Four independent teams proved it. The moat is the thing that keeps your agent running when the model is wrong, when the context is overflowing, and when the process crashes at 3 AM. That’s not a 1.6% problem.
If this was useful, forward it to one engineer who needs less noise in their feed.


