Skip to main content
Build agents extend the RL improvement loop to greenfield building. Instead of optimizing an existing metric, they build new modules from specs and iterate until every assertion passes.

The Pattern

“Granularity of feedback determines speed of convergence.” A monolithic eval with 16 checks stalled at 7%. The same eval decomposed into 6 page-level evals — each hit 100% in one round. Same agent, same code, different gradient.

Writing a Build Eval

The eval checks AGENT_WORKTREE env var so it tests the agent’s worktree, not the main repo.

Agent TOML Config

Build vs RL Agents

Build Supervisor

Between rounds, checkRound() detects patterns:
  • Stalled: 3+ rounds at same score → injects hint
  • Filename mismatch: files created but eval can’t find them → alerts
  • Repeated reverts: same checks failing → suggests different approach
The supervisor logs learnings to .tenet/build-learnings.jsonl for future sessions.

Eval Decomposition

Break complex builds into sub-evals. Instead of one frontend eval with 16 checks, create 6 page-level evals with 2-3 checks each. Each scores independently, giving the agent gradient from round 1.