← All research

Code as Agent Harness

Agent systems · 2026

Turn a messy ticket export into a release-blocker report you can verify. See how executable steps, source records and checks turn an agent’s answer into inspectable work.

University of Illinois Urbana-Champaign · Meta · Stanford University · Affiliations in the paper

TRY THIS
  • Resolve a blocker: it should disappear from the report.
  • Introduce conflicting updates: the workflow should stop.
  • Step through the actual code and the artifacts it produces.

START WITH THE IDEA

The idea in brief.

This survey examines code as the environment around an agent: interfaces for action, mechanisms for memory and feedback, and ways to coordinate multiple agents. A model’s proposed next step becomes executable work whose artifacts and results can guide what happens next.

Unchecked result

  1. Request
  2. Plausible answer
  3. Assume it worked

Artifact + verification

  1. Bounded transformation
  2. Inspectable artifact
  3. Check → accept or repair
The examples implement deterministic tools and checks. An agent could select or compose these steps; no hidden model is driving these browser demonstrations.

THE SIGNIFICANCE

Why it matters.

01

An answer becomes inspectable work

The survey brings together designs in which code connects reasoning, tools and execution feedback. A persistent artifact gives a later step something concrete to inspect, rather than depending entirely on a conversational summary.

Abstract; sections 2–3 ↗
02

Failure can guide the next step

Execution results can expose an incorrect assumption and inform repair. This is an architectural pattern across surveyed systems, not a guarantee that an agent will fix every error or a single benchmark reproduced here.

Mechanisms and feedback ↗
03

Start with something worth verifying

Our examples turn a ticket export into a traceable report and migrate a configuration without losing its meaning. Both compare a plausible first attempt with explicit transformations and independent checks.

Hopper implementations ↗