In March 2026, Anthropic’s engineering team published a research article titled Harness design for long-running application development, systematically explaining how to let Claude produce high-quality full-stack applications during multi-hour autonomous sessions. This work, led by Anthropic Labs member Prithvi Rajasekaran, isn’t about shipping a new product but rather proposing a design paradigm for a multi-agent orchestration architecture (multi-agent harness). This article sorts through the solution’s core concepts, implementation path, open-source status, and applicability boundaries.
1. What Is It?
In this context, a Harness refers to an orchestration architecture designed around the gaps in model capabilities, used to support long-running autonomous software development. Its final form is a three-agent system:
- Planner: Expands a user’s simple prompt into a complete product spec and feature list.
- Generator: Implements features one sprint at a time, producing code or design.
- Evaluator: Runs independently, acting as QA/reviewer, discovering bugs and defects through actual testing (such as Playwright MCP), and giving actionable feedback to the Generator.
The architecture is inspired by GANs (Generative Adversarial Networks): the Generator and Evaluator form an adversarial/feedback loop, pushing output quality through multiple iterations to a level a single agent would struggle to reach.
2. Who Proposed It?
Proposed and experimentally led by Prithvi Rajasekaran of the Anthropic Labs team. The work builds on two earlier Anthropic projects:
- frontend design skill: improving Claude’s frontend design capabilities;
- long-running coding agent harness: letting Claude do multi-session, long-duration coding.
The researchers found that prompt engineering plus a simple harness design could beat the baseline, but quickly hit a capability ceiling, so a more systematic multi-agent architecture was needed to break through.
3. What Problem Does It Solve?
The article identifies two core failure modes in long-running autonomous coding:
1. Context anxiety
In lengthy tasks, as the context window fills up, the model gradually loses coherence and can even exhibit “premature wrap-up” behavior. Claude Sonnet 4.5 is particularly prone to this.
Solution: Context resets. Rather than simply compacting a summary of the earlier conversation, this means fully clearing the context window and starting a brand-new agent, passing the previous state and next tasks to the new agent via structured handoff artifacts. This gives the model a “clean slate” and effectively eliminates anxiety.
2. Self-evaluation bias
When asked to evaluate its own work, the model tends to be overconfident — even when quality is clearly mediocre, it “confidently praises” itself. This is especially damaging in subjective tasks such as design.
Solution: Separating generation from evaluation. An independent evaluator agent reviews the Generator’s output. Prompt tuning makes the evaluator skeptical, giving the Generator honest, iterative feedback.
In addition, for problems where subjective quality is hard to measure, the research team broke “taste” down into scoreable criteria:
- Design quality: whether the design feels cohesive;
- Originality: whether it’s deliberate creation rather than assembled templates;
- Craft: technical execution (typography, spacing, contrast);
- Functionality: usability.
By explicitly penalizing “AI slop” (cookie-cutter purple gradients and white cards), the model is pushed out of its comfort zone.
4. What’s the Core Value?
1. Breaking Through the Single-Agent Ceiling
The article runs a comparison experiment: given the same prompt (build a 2D retro game editor), a solo agent spent about $9 and 20 minutes, but its core feature (running the game) was broken; the full harness spent about $200 and 6 hours, producing a version that was feature-complete with a more polished UI and even built-in AI-assisted generation.
2. Turning “Taste” Into an Engineering Constraint
By defining explicit design/scoring criteria, the evaluator can stably judge what was formerly subjective, driving the Generator to iterate.
3. Supporting Hours of Coherent Autonomous Work
Through context reset plus structured handoff, the harness can support multi-session, multi-hour long tasks without being limited by context length or model anxiety.
4. Finding Real Bugs
Using Playwright MCP to actually click through the running application, test API endpoints, and check database state, the Evaluator can surface genuine code-level defects (such as incorrect route ordering or broken event-handling logic).
5. Who Is It For, and Who Isn’t?
Suitable
- AI engineers working at the edge of model capability: tasks just slightly more complex than what the current model can handle alone, needing scaffolding support.
- Teams that need to produce complex full-stack applications: for example, having Claude autonomously build a DAW (digital audio workstation), a game editor, and so on.
- Tasks involving subjective quality judgments: frontend design, creative content generation, where “taste” needs to be encoded into iterable criteria.
- Scenarios willing to pay time and cost for quality: on high-complexity tasks, $200 for a working app with core functionality beats $9 for a broken demo.
Not Suitable
- Simple tasks the model can already handle on its own
The article is explicit: if a task sits comfortably within the model’s current capabilities, a harness is “unnecessary overhead.”
- Atomic tasks that are extremely budget/time sensitive
A solo agent might take just 20 minutes / $9, while a full harness may take 4-6 hours / $100-200. On simple tasks the premium isn’t worth it.
- Scenarios demanding minimum latency and fast feedback
A harness has a long run cycle and isn’t suited to results needed in seconds or minutes.
- Old harnesses kept rigidly after model upgrades
The article emphasizes a core principle: “every component of a harness encodes an assumption that the model cannot do something on its own.” As model capabilities improve (e.g., moving from Opus 4.5 to 4.6, with context anxiety sharply reduced), components that were once essential may stop “bearing weight” — at which point you should simplify the harness, not keep maintaining a full complex architecture.
6. How to Actually Implement It?
Implementing a Harness isn’t about a single algorithm; it’s about designing an orchestration architecture around the model’s weak points. Following official practice, the key elements are:
1. Context Resets
Each session starts a brand-new Claude Agent SDK client, forcibly clearing context. The previous session’s state is handed off through structured file artifacts:
app_spec.txt: product specfeature_list.json: feature acceptance criteria and pass statusclaude-progress.txt: work summary and next-step guidancegit commits: code version history
2. Generator-Evaluator Feedback Loop
- Generator: responsible for producing output;
- Evaluator: runs independently, scores against explicit criteria, using Playwright MCP or Puppeteer MCP to actually click through the app and verify the UI via screenshots;
- When something fails, the Evaluator’s detailed feedback flows back to the Generator for another iteration.
3. Sprint Contract (optional)
Before the Generator starts, the Generator and Evaluator first negotiate a “contract” for the sprint: what will be done and how it will be verified. This prevents drift from high-level specs.
4. Safety Sandbox and Permission Controls
Configured via the Claude Agent SDK’s ClaudeCodeOptions:
- Sandbox: OS-level bash isolation;
- Permissions: file operations strictly limited to the project directory;
- Bash Allowlist: only specific commands allowed; dangerous commands are blocked via the
PreToolUsehook.
7. Open-Source Status and Platform Dependencies
Open-Source Status: Partially Open
- Anthropic open-sourced a minimal example: in the GitHub repo
anthropics/claude-quickstarts, there’s a two-agent harness demo (Initializer + Coding Agent) showing the basics: context reset, file handoff, git persistence, and a security sandbox. - The blog’s three-agent advanced architecture has not been released as a complete open-source framework. The blog reads more like an engineering research report, sharing design patterns and experimental results rather than a packaged, ready-to-use product.
- Some components are open source: for example, the frontend design skill mentioned in the blog is public in the
claude-coderepo.
Platform Dependencies
| Dependency | Role |
|---|---|
Python + claude-code-sdk |
Runtime foundation for the harness orchestration code |
| Node.js + npm | Running the Puppeteer MCP server and frontend/backend apps |
| Anthropic API Key | Calling Claude models |
| Puppeteer MCP / Playwright MCP | Browser automation verification |
| Git | Version control and cross-session state tracking |
Operating system: macOS / Linux is the most natural fit. Native Windows environments may have issues with bash command compatibility; running in WSL2 is recommended.
Model dependency: the blog’s experiments were primarily based on Claude Sonnet 4.5 and Opus 4.5/4.6. Different models need varying levels of harness complexity — Sonnet 4.5 needs context resets, while Opus 4.6 can drop sprint decomposition.
8. Summary
Anthropic’s Harness design isn’t off-the-shelf software; it’s a multi-agent orchestration design pattern for long-running autonomous coding. Through the division of labor among Planner + Generator + Evaluator and adversarial iteration, it solves context anxiety and self-evaluation bias, trading orchestration complexity for output quality that a single agent can’t reach.
Its best use case is tasks whose complexity sits just beyond the current model’s solo capability boundary. For simple tasks, or scenarios the model already handles well, it’s an expensive and unnecessary overhead. More importantly, as model capabilities evolve, the harness also has to be continuously scrutinized and simplified — as the article puts it: “the better the model, the more the load-bearing scaffolding should be torn down.”
References
- Harness design for long-running application development - Anthropic Engineering
- anthropics/claude-quickstarts - GitHub
Author: Cyber Herald
Original URL: https://torchtree.com/en/post/anthropic-harness-design/
Publish Date: 2026-04-11
License: CC BY-NC-SA 4.0