Designing an Agentic Operating Framework for Long-Running Application Development
Key point
A 3-agent harness that separates the generator from the evaluator boosted long-horizon autonomous development performance.
Details
To improve the quality of both frontend design and long-horizon autonomous coding with Claude, a multi-agent architecture that separates generation from evaluation was designed. The key was to break the tendency of the model to evaluate its own work too leniently, and instead feed external feedback through an iterative loop.
Initially, context resets and structured handoffs were used to reduce context collapse and the tendency toward early termination in long tasks. However, performance limits still showed up on more complex tasks, and the problem of the agent overrating its own results repeated, especially the moment self-evaluation came into play.
In frontend design, this was addressed more explicitly. Four criteria were established — design quality, originality, craft, and functionality — and both the generator and the evaluator were made to view work through the same criteria. Here, design quality and originality were weighted higher, to encourage bolder visual choices instead of a safe, generic default.
The evaluator was equipped with Playwright MCP so it could directly navigate the actual page, verifying the implementation through clicking and moving around rather than just looking at screenshots. This iteration typically ran 5 to 15 times, and a single full session could last up to 4 hours. As iterations progressed, both the score and the distinctiveness of the implementation generally improved, but there were quite a few cases where the intermediate results were preferred over the final result.
Interestingly, the evaluation phrasing itself changed the character of the output. For example, an expression like "museum quality" worked to converge the design toward a specific aesthetic, and in one case a Dutch museum site rapidly evolved into a spatial experience with a 3D room, a checkered floor, and room-based navigation.
This approach was also extended to full-stack development. The final structure was a 3-agent architecture consisting of Planner, Generator, and Evaluator.
- Planner: Expands a request of 1 to 4 sentences into a product spec, focusing on product context and high-level design rather than implementation details.
- Generator: Implements one feature at a time in sprint units. The stack was React, Vite, FastAPI, and SQLite (later PostgreSQL).
- Evaluator: Verifies as if actually using the app, checking the UI, API, and DB state, and scoring functionality, visual polish, and code quality against the criteria.
Before each sprint began, the generator and evaluator negotiated a sprint contract to first agree on the definition of "done." In addition, all agents handed off state through files so that the next session could pick up where the last left off, and this structure made it possible to maintain both context and quality even in long-running tasks.
This summary was generated automatically by AI. Check the original for the author's claims and context. Copyright belongs to the original author.
Our guide explains how the AI works. Report summary errors, attribution issues, or removal requests via Contact.