How to Keep Agent Harnesses Current Across Models
For ML platform leads maintaining agent infrastructure · Based on Anthropic Planner-Generator-Evaluator Long-Agent Framework
// TL;DR
ML platform leads maintaining long-running agent infrastructure need a harness that co-evolves with the model rather than a permanent, brittle one. The Planner-Generator-Evaluator framework treats scaffolding as compensation for a model's spiky behaviours — you add it to fill gaps and strip it as newer models internalise those behaviours. The core discipline is reading agent transcripts by hand to find where judgment diverges, then tuning prompts and reassessing which components are still load-bearing after every major model release. Use this to control cost and complexity while keeping autonomous agents coherent across upgrades.
Why does a harness that worked last quarter break on the new model?
Because a harness is always right for a specific model generation, not for all time. Every scaffold component exists to compensate for a spiky behaviour — a specific failure mode of the model you built it for. When you upgrade, those failure modes change. Context anxiety that plagued the old model may be gone; the new model may hold coherence across a 2-hour continuous build; it may now willingly discard its own work and restart when the rubric isn't met.
If you leave the old scaffolding in place, you're paying in complexity and cost for problems that no longer exist. Forced session resets designed for severe context rot add unnecessary overhead on a model with strong coherence. Sprint-by-sprint decomposition essential for a weak planner becomes removable with a stronger agentic model.
How do you decide which harness components to strip?
Start by identifying the new model's spiky behaviours empirically — don't assume. Then run a simplified harness and compare output quality and cost against the full version before committing to any removal. A concrete example: a team upgrading to a more agentic model found context anxiety gone, coherence holding across two hours, and self-discarding behaviour present. They moved to a single continuous session with compaction and ran the Evaluator at end-of-full-generation rather than per sprint. The structure stayed Planner-Generator-Evaluator, but with fewer moving parts.
Reassess after every major model release which components are still load-bearing: context-window resets, sprint decomposition, and Evaluator cadence are all candidates that shift generation to generation.
Why is reading traces the core discipline, not running experiments?
Because running more experiments is a false shortcut. The primary debugging loop for any long-running harness is reading agent transcripts by hand, line by line — like reading a stack trace. Only by empathising with why the model made each decision can you know which scaffold components to delete, adjust, or keep as the frontier moves.
Find every point where the Evaluator's judgment diverged from yours, then update the Evaluator's system prompt and rubric to close that gap. To scale this across a platform, pipe transcripts to a secondary agent that greps for patterns and suggests prompt updates — but treat those as candidates for human review, not automatic commits. Human trace-reading stays the ground truth.
How do you keep state reliable across sessions and handoffs?
Use the file system as shared state, not the context window. Persistent artifacts — progress files, feature lists as JSON (never markdown, which models overwrite), and timestamped learnings logs — are more reliable than context-window memory and survive session boundaries, compaction, and human handoff. Compaction does not equal coherence; lossy summaries drift over very long runs, so never rely on it alone for state management.
This file-based discipline also makes your harness portable across model generations: the state layer stays stable even as you swap out scaffolding, so you can experiment with simpler configurations without losing your source of truth.
Next step: Instrument your harness to persist full transcripts, schedule a trace-reading review after your next model upgrade, and run a simplified harness variant side-by-side to measure which scaffold components are still load-bearing on quality and cost.
// FREQUENTLY ASKED QUESTIONS
How often should I reassess my agent harness?
Reassess after every major model release. A harness is right for a specific model generation — components that are load-bearing for one may be redundant for the next. Identify the new model's spiky behaviours, run a simplified harness variant side-by-side, and strip scaffolding the upgrade has rendered unnecessary to control cost and complexity.
Can I automate trace-reading across a large platform?
Partially. Pipe transcripts to a secondary agent to grep for patterns and suggest prompt updates, but treat those as candidates for human review, not auto-commits. Human trace-reading remains the ground truth because only by empathising with why the model made each decision can you tune scaffolding precisely. Automation accelerates pattern-finding, not judgment.
Why not just rely on compaction for state across long runs?
Because compaction does not equal coherence — lossy summaries drift over very long runs. Use the file system as the source of truth: JSON feature lists, progress files, and timestamped learnings logs survive session boundaries and handoffs reliably. Compaction can complement this for capable models but should never be your sole state-management mechanism.