Summary

CAR (Control, Agency, Runtime) is a formal decomposition of the harness layer in language agent systems, proposed by He et al. (2026). It frames the harness as H = ⟨C, A, R⟩, where each layer handles a distinct function that papers routinely bundle together while leaving under-described.

Key Points

The Formula

H = ⟨C, A, R⟩

The acronym CAR keeps the ordering explicit and highlights that the harness is not just runtime plumbing. The notation is explanatory rather than a rigid ontology.

Control Layer (C)

Durable artifacts that shape behavior before a step is taken:

ArtifactExample
Repository mapsFile structure overview for coding agents
AGENTS.mdProject-specific instructions and constraints
Tool descriptionsWhat each tool does, when to use it
System instructionsHigh-level behavior guidelines
Architecture rulesDesign patterns, module boundaries
Tests/LintersAutomated quality gates
Permission policiesWhat actions require approval
Success criteria”Done when” definitions

Key insight: “Reliable agents are rarely bounded by prompt wording; they are often bounded by specifications”

Agency Layer (A)

How the model is allowed to act — the mediated action surface:

ComponentPurpose
Action substratesCode execution, browser interaction, file editing
Delegation structuresPlanner-verifier, orchestrator-worker patterns
Reviewer rolesHuman-in-the-loop, automated review
Interface schemasWhat the model can actually do in the environment

Definition: “The mediated action surface and delegation structure that the harness permits”

Note: Agency here is a narrow systems sense — not about unrestricted autonomy.

Runtime Layer (R)

What happens as work unfolds over time:

FunctionImplementation
Context assemblyWhat goes into the context window
Memory & compactionKeeping history manageable
CheckpointingSaving progress for resumption
Retries & backtrackingRecovery from failures
Approval flowsHuman escalation when needed
BudgetsToken limits, time limits, cost caps
Trace collectionRecording what happened
Replay supportRe-executing or debugging

Key insight: “Many agent failures are runtime failures: stale state, brittle retry loops, overgrown context, or poor recovery from intermediate mistakes”

Practical Application

Repository Coding Agent Example

Two systems with the same frontier model behave differently:

LayerSystem A (Basic)System B (Enhanced)
ControlTask prompt only+ Repo map, AGENTS.md, tests, linter
AgencyFile edit, shell+ Bounded shell, approval for privileged
RuntimeNo state tracking+ Progress file, retries, escalation

The performance difference is harness-driven, not model-driven.

Browser/Research Agent Example

LayerBasicEnhanced
ControlTask prompt+ Source hierarchy, citation rules, note format
AgencyBrowser access+ Search, delegation surface
RuntimeScratchpad+ Branching traces, conflict recovery

CAR vs Other Frameworks

FrameworkFocusCAR Mapping
Prompt EngineeringInstruction wordingControl (subset)
Context EngineeringWhat’s in the contextControl + Runtime (subset)
Ashby’s LawRequisite varietyControl (constraints)
Meta-HarnessAutomated optimizationAll layers (optimization target)

Open Questions

  • How to formally verify Control artifacts are sufficient?
  • When should Agency be expanded vs constrained?
  • What metrics best capture Runtime effectiveness?
  • Can CAR be applied to multi-agent swarms?

Evidence Timeline

  • 2026-04-23: Created from He et al. “Harness Engineering for Language Agents” (Alibaba-NTU, Preprints.org)
  • 2026-04-23: CAR decomposition: H = ⟨C, A, R⟩ formalizes what was previously bundled and under-described
  • 2026-04-23: Key insight: many “agent gains” are harness-sensitive, not purely model-driven

相关页面

ashbys-law, harnesscard