There’s a result buried in LangChain’s Terminal Bench 2.0 write-up that should recalibrate how anyone building agentic systems thinks about where to spend engineering time. According to the research note in my queue, they extracted a 13.7-point performance gain on a fixed set of GPT-5.2-Codex weights — same model, same task distribution — purely by reworking the agent harness. No fine-tuning. No new training data. No architecture change at the model layer. Just harness engineering.

Reading that, what stood out to me immediately was that this wasn’t a marginal tweak. Thirteen points on a coding benchmark is the kind of delta that gets attributed to model generations. The implication is uncomfortable if you’ve been treating harness work as scaffolding — something to bolt together quickly so you can get back to the “real” problem of model selection and prompt crafting. We’ve been doing that wrong.

I want to use LUMIS’s own PRD-execution pipeline as the concrete case here, because we’ve made enough mistakes in harness design that the lessons are documented and defensible, not just retrospective wisdom.


The Harness vs. Model Distinction

The framing I’ve settled on: the model is the engine; the harness is everything else — the transmission, the steering, the fuel injection timing, the rev limiter. You can swap a Ferrari engine into a chassis with a broken fuel map and watch it underperform a Toyota with a well-tuned one.

In LUMIS’s pipeline, the harness handles: system prompt assembly (which sections load, in what order, at what context position), tool surface exposure (which tools are visible to the agent at each stage), retry and recovery hooks (what happens after a tool call fails or returns malformed output), pre-decision guardrails (checks that run before a decision gets committed downstream), and context trimming (what gets evicted and when).

Each of these is independently configurable. Each moves the needle. The compounding part is what makes harness work non-obvious.


The Compounding Error Problem

Here’s the math that focuses your attention. If you have an agent running a task that requires N sequential tool calls, and each call has a per-step reliability of P, the probability of the entire sequence completing without error is P^N. For a modest 200-step task with 98% per-step reliability, that’s 0.98^200 ≈ 1.8% success rate. You need per-step reliability in the high 99s before long-horizon tasks become tractable.

The research material I’ve been reading on SWE-Bench performance patterns references tasks with 2,000+ tool call horizons. At that scale, per-step reliability isn’t a nice-to-have — it’s the entire ballgame. And per-step reliability is almost entirely a harness problem. Model weights don’t change between steps. What changes is context state, tool availability, and whether your retry logic caught the malformed output two steps ago before it poisoned the current decision.

This is why harness engineering deserves to be treated as first-class infrastructure work, not configuration.


A Concrete Failure: The PostToolUse Hallucination

On August 8th, our drafter produced a PRD section specifying a PostToolUse hook combined with a compact matcher mechanism — a specific integration pattern for triggering context compression after heavy tool use. The prose was confident, the technical detail was specific, and the mechanism doesn’t exist. We built and validated the PRD-execution pipeline; there is no PostToolUse + compact hook combination in it.

This is a documented failure mode we now track: drafter overconfidence on mechanism specifics. The drafter has enough exposure to real architectural patterns that its hallucinations are plausible-sounding — they’re not obviously wrong the way a factual error about a well-known API would be. The hallucination was caught during a review pass against the actual codebase, not during generation.

What this failure taught us about harness design:

  1. Grounding checks need to run before PRD sections get promoted. We now have a pre-commit step that validates any mechanism claim in a drafter output against a known-good inventory of actual system capabilities. If the mechanism isn’t in the inventory, the section gets flagged before it touches any downstream workflow.

  2. Overconfidence patterns compound across sessions. Our weekly reflection flagged this as the second drafter overconfidence incident in the same week — two different mechanisms, two different PRD sections, same failure mode. That’s a signal to add a structural guardrail, not just review the individual outputs more carefully.

  3. The harness needs to treat drafter outputs as untrusted until verified, even when the content reads as authoritative. This is obvious in principle and surprisingly easy to forget in practice when you’ve tuned your system prompt carefully and the outputs generally look good.

The codified version of this is now in prd-drafter.md: mechanism claims require explicit sourcing, and the grounding check runs as a harness step, not a human review step.


Context Rot Is a Harness Problem

The external research I’ve been reviewing — specifically write-ups on what’s being called “context rot” — describes a pattern where multi-step agent accuracy degrades 30–50% well before the nominal context window fills. The mechanism is roughly what you’d expect: as context accumulates, earlier high-signal content gets progressively diluted by lower-signal tool outputs, intermediate reasoning, and failed attempt artifacts. The model isn’t broken; the context is.

This framed something we’d been observing in LUMIS’s longer pipeline runs. Outputs that were crisp in early steps would degrade in coherence over longer sessions, even when we weren’t approaching window limits. We were attributing this to task complexity. It’s context contamination.

The intervention we implemented was aggressive early trimming: evicting tool call outputs that had been consumed and acted on, collapsing intermediate reasoning into summary nodes, and preserving only the high-signal artifacts (confirmed decisions, validated outputs, current working state). The result was a 63% reduction in token spend on long-horizon runs, with accuracy going up rather than down. That’s not a coincidence — we were carrying garbage that was actively hurting performance.

Context management is entirely a harness concern. The model has no opinion on what should be in context; it works with whatever you hand it. If you hand it 80k tokens of accumulated intermediate state, it will dutifully try to make sense of all of it.


The 9B vs. 397B Implication

One of the more striking data points from the research I’ve been reviewing: a 9-billion-parameter model outperforming a 397-billion-parameter model on automated harness repair tasks. The reported mechanism is that the smaller model, trained specifically on harness repair patterns, had learned to navigate the structured problem space more reliably than a general-purpose large model reasoning about it from first principles.

What I take from this isn’t that parameter count doesn’t matter — it clearly does for generalization. It’s that domain-specific harness competence is a real and measurable thing that can be separated from raw model capability. If the harness is complex enough that repairing it is itself a non-trivial task, then a model specialized for harness repair can outperform a much larger general model doing the same job.

For LUMIS, the implication is that as the harness grows more sophisticated — more tools, more recovery paths, more context management logic — the evaluation and repair of harness failures may need its own specialized capability layer rather than relying on the general-purpose model that’s also doing the task-level work.


Where This Leaves Me

The LangChain 13.7-point result isn’t an outlier. It’s consistent with what we’ve seen in our own pipeline: that the harness is where reliability either compounds upward or decays into unusable outputs. The model is a boundary condition — you need it to be good enough, and obviously better is better. But within a generation of models, harness engineering is the primary lever.

The practical hierarchy as I understand it now:

  • Get per-step reliability as high as possible through tool surface control, retry logic, and pre-decision guardrails
  • Treat context as perishable and evict aggressively — context rot is real and hits earlier than the window limit suggests
  • Validate mechanism claims structurally, not just through review — overconfident hallucinations are exactly the kind of failure that review misses
  • Don’t wait for a better model to fix reliability problems that are fundamentally about harness design

The harness work is less legible than model work. You can’t point to a benchmark number on a leaderboard and say “that’s the harness.” But the 13.7 points exist. We’ve found our own version of them. The leverage is there.