Skip to content
Back

As Models Become More Capable, What Remains in the Harness?

7 min read

Suppose a coding model often announces completion immediately after editing a file. We add an external procedure: run a check after editing, and return failures for another repair. The system improves considerably. Later, after further training, the model checks, investigates, and retries on its own. The original procedure remains, but its role has changed. Understanding harness engineering requires accounting for that change in the model.

A harness is the working system built around a model. It connects tasks, context, tools, and execution environments so that successive model calls advance a shared objective. This includes execution work such as starting processes and saving files, as well as behavioral guidance such as arranging steps, prompting checks, and supplying experience. Both kinds often live in the same framework, yet model development can give them very different futures.

Capability gaps become targets for a repeatable process

Model improvement can increasingly be organized around concrete goals. Familiarity with a domain calls for relevant material; mastery of a procedure calls for good demonstrations; better choices in complex tasks call for environments that support execution, feedback, and evaluation. Developers gain methods for cultivating capabilities, turning today’s weaknesses into specific targets for the next round of work.

The surrounding system is valuable here. A procedure can supply a checking sequence the model cannot yet organize; people can supply experience, tools, or demonstrations for unfamiliar problems. With that support, the system can complete previously difficult tasks and generate better records of the process: what was visible, why an action was taken, and what the environment returned. Practices that once lived only in human experience or framework logic acquire examples from which a model can learn.

Selected and prepared for training, these trajectories give the model a chance to learn the practices within them. SWE-Gym combines repositories, executable environments, tests, and tasks to train software engineering agents, and releases agent trajectories. An execution environment both supports present work and supplies material for later model improvement. Better working conditions can help produce better models.

Product use can keep this process moving. Failures reveal new tasks and conditions; adding them to evaluation and diagnosing them identifies where to intervene. Improved systems and expert guidance produce better execution traces for the model to learn from. One route improves working conditions; the other changes the model’s future choices. They continually meet in real tasks. The harness changes with them: some practices have been learned, while new tasks require new support.

The example below follows “locate, edit, then check” through three stages. As you switch, observe who decides the steps and which facilities remain outside the model. The middle stage is common: a model can already do most of the work and needs only experience it can consult when relevant. Capability can migrate incrementally.

Watch the guidance moveThe task stays the same: locate the cause, edit, then check. Change the model's capability stage.
External guidance

A fixed procedure schedules reading, editing, and checking; failures are returned for repair.

Model chooses

Complete the current step.

The system supplies the sequence.

Execution facilities remain outside
Files and saved stateProcesses and dependenciesPermissions and acceptance gates

Execution → selected trajectories → training → next model

Conceptual stages, not measurements of particular models. An independently required acceptance check still belongs in the system.

Separate the two responsibilities inside a harness

Calling everything “the framework” quickly leads to a debate over whether it should grow thicker or thinner as models improve. Both can happen. A model initially needs extensive behavioral guidance; later, working independently for hours creates greater demands on state recovery, resource isolation, and scheduling. Changes in code volume obscure the shift in responsibility. Separating runtime infrastructure from capability support makes that shift visible.

Runtime infrastructure makes work actually happen under the system’s contracts. A model call is one step within it. Something must accept tasks, persist state, dispatch tools, await results, resume execution, and release resources. File access, the authority under which an action runs, and delivery gates also need concrete enforcement points. These responsibilities remain even if the model always makes the right judgment.

Runtime infrastructureWhat it actually owns
Tasks and schedulingTask identifiers, event ordering, asynchronous waits, concurrency, cancellation, and timeouts
Execution environmentsFiles, processes, browsers, dependencies, temporary resources, and environment retention or reconstruction
Authority and isolationSandboxes, tool authorization, credentials, network egress, and boundaries between users and tasks
State and recoveryDurable records, checkpoints, action receipts, retries and idempotency, and artifact storage
Constraints and observationParameter validation, resource budgets, delivery gates, action logs, and preservation of source and trust information

Capability support gives the current model better conditions for the current job. It addresses gaps between task demands and model performance: documents supply unfamiliar business knowledge, cases and workflows support unreliable judgments, and existing tools perform recurring precise operations. It also arranges context so relevant material appears when useful. Because this responsibility concerns doing the work better, it must be reassessed as tasks and models change.

Capability supportWhat it supplies
Knowledge and contextDomain descriptions, current facts, retrieval references, and material relevant to the current step
Experience and memoryPrevious cases, failure causes, applicability conditions, and reusable judgments
Methods and workflowsSuggested decomposition, checking sequences, continuation of long tasks, and additional attempts and selection when useful
Specialized toolsVerified calculations, transformations, queries, and operations packaged as callable actions

These tables describe responsibilities, not folders that can be cleanly separated by name. A tool has both sides: its curve-alignment algorithm supplies capability, while authorization and cleanup belong to runtime infrastructure. Context compaction does too. The system can track input limits and preserve original records; deciding how to summarize without losing essential state involves learnable judgment. The useful separation is between decisions that can change independently.

Capability in the makingTwo responsibilities in one working system
  1. Prior training:Pretraining · mid-training · post-training
  2. Task and current context:Goals · facts · constraints
  3. Model:Interpret the situation; choose an action
  4. Capability support:Knowledge · experience · methods · tools
  5. Runtime and task environment:Execution · state · authority · recovery
  6. Actual outcome:Artifacts · state changes · traces
    Read the connections

    Runtime facilities enforce contracts; capability support helps the model choose well. Both serve the same task but change differently as the model improves.

    Select a node to inspect it. Each view expands the ideas relevant to that article.

    Why can the same checking step remain—or disappear?

    Return to the coding task. When an early model often skips verification, a system may force tests after every edit. That code is making a decision on the model’s behalf. Once the model can select checks appropriate to a change, the old workflow may instead trigger expensive verification for a wording edit. Removing the reminder returns a learned judgment to the model and removes work that existed to compensate for a particular weakness.

    If the team requires every release to pass a particular acceptance suite, however, that check represents an external commitment. The model’s confidence cannot revoke it. The executor still needs to establish that the released revision matches the accepted result. The first kind of check concerns the model’s competence; the second concerns fulfillment of a system contract. They may initially share an implementation, revealing their different futures only as the model improves.

    A practical test is to make two substitutions: Would this step still be needed with a model that always chose the right next action? Would its requirements change for a different user or organization? The first question exposes capability compensation; the second reveals authority, business rules, and organizational commitments. Then remove a reminder in evaluation and observe changes in success, cost, and failure types. Its continued usefulness is a question about current performance.

    This shift is already visible in engineering practice. Anthropic’s Managed Agents architecture article describes context resets introduced for an older model that became unnecessary with a stronger one, and separates sessions, harnesses, and sandboxes into replaceable parts. Here, interface contracts can stay stable while internal guidance changes with the model.

    As the boundary moves, engineering moves forward

    Capability support will not all disappear neatly. Current maintenance records, one company’s conventions, and a user’s newly changed preference belong naturally in the task context. A precise, reliable program remains worth reusing even if the model could rewrite it. Training is well placed to absorb understanding and practices useful across tasks, while external systems retain fresh facts, local agreements, and executable capabilities. Internalization changes the division of work; a bare model is not the end goal.

    The background that matters most to my understanding of harness engineering is that cultivating capability is becoming a process we can keep advancing. Establish working conditions in a domain, use external support to produce effective practices, and let training absorb what transfers. Runtime infrastructure supports a larger scale of work; capability support moves toward unresolved problems. Designing a harness requires seeing both today’s responsibilities and tomorrow’s possible transfers, so a temporary accommodation does not become an imagined permanent structure of intelligence.