WorksComputer Science
Rethinking Verification in Agent Harnesses
Abstract
Agent harnesses enable large language models to act through tools, observe the results, and iteratively work toward a task goal. Verification checks and revises agents' work to improve output quality. Yet there is limited guidance on how harnesses should organize this effort. We study verification as an axis of test-time scaling by examining when to intervene, who checks the work, and how checking leads to revision. Our framework spans four layers of the agent lifecycle: initial instructions, mid-turn reminders, completion gates, and independent review. We compare 17 designs across seven frontier coding models on Terminal-Bench (TB) and SWE-bench Verified (SWE), and introduce VisualBench for expert evaluation of visual and interactive artifacts. Initial instructions and execution-time reminders yield modest, model-dependent average gains on the coding benchmarks, without substantially increasing average output token use. Completion gates can yield larger gains but may substantially increase cost. Independent review by a critic offers a more favorable accuracy-cost tradeoff, improving average accuracy by 5.9-9.5 percentage points on TB and 3.9-6.6 on SWE at 1.13-1.25 and 1.00-1.04 times baseline cost, respectively. On VisualBench, independent review achieves net preferences of 13.2-23.8 points over the baseline across its four designs, exceeding the evaluated L0-L2 designs. Additional review rounds or independent critics further improve average TB accuracy by up to 3.5 percentage points. Together, these results provide empirical guidance for verification design in agent harnesses and support independent review as a practical axis of test-time scaling.
Introduction
Coding agents built on large language models (LLMs) tackle long-horizon software engineering tasks, including resolving repository-level issues across large codebases [18, 24, 25, 26]. These agents run inside harnesses that let the model act through tools, observe the results, and iterate toward a task goal [22, 18]. Beyond exposing tools, the harness specifies the agent’s instructions, controls intervention timing, and coordinates verification before accepting its work [27, 28]. These choices allocate computation to checking and revising the agent’s work, making verification an important part of harness design [28].
Prior work develops learned verifiers for selecting solutions [8, 9], self-correction through critiques and reflections [1, 2], and tool-assisted checks that return execution evidence for repair [11, 12, 15]. In practice, verification in agent harnesses is often shaped by engineering heuristics and iterative experience: Claude Code provides hooks for completion checks [39], while Codex uses self-review and iteration [28]. Yet systematic evidence remains limited on how to design and scale verification, when a design improves performance, and whether its gains justify the additional computation. Without this guidance, current designs may be suboptimal for a given model or task.
In this paper, we study verification as an axis of test-time scaling in agent harnesses. We organize the design space around three questions: when to intervene, who should check the work, and how findings should lead to revision. Following the agent lifecycle, L0: Initial instructions and L1: Execution-time reminders shape what the agent is told before and during execution to guide its own checking; L2: Completion gates reopen its work for self-checking; and L3: Independent review assigns a separate critic to check the work and return findings for repair before it is accepted. This framework lets us compare prompting the agent to verify, extending its self-checking, and introducing an independent checking perspective. Within these layers, we vary message role, intervention timing, critic context, and review strategy, then scale independent review through additional rounds or critics.
We compare 17 verification designs on Terminal-Bench (TB) [7] and SWE-bench Verified (SWE) [4, 10] tasks using seven frontier coding models: Qwen3.7-Max [40], Qwen3.8-Max [41], GLM-5.2 [29], DeepSeek V4-Pro [32], DeepSeek V4-Flash [32], Kimi-K2.7-Code [30], and MiniMax-M2.5 [31]. We also introduce an internal VisualBench of 18 visual and interactive tasks, evaluated through blinded expert comparisons of functionality and visual quality. L0 initial instructions and L1 execution-time reminders yield modest, model-dependent average gains on the coding benchmarks, using – and – baseline output tokens, respectively. L2 completion gates can yield larger gains but may substantially increase cost: rejection-based designs cost – baseline on TB and – on SWE. L3 independent review by a separate critic offers a more favorable accuracy–cost tradeoff, improving average accuracy by – percentage points on TB and – on SWE at – and – baseline cost, respectively, including critic review and agent revision. On VisualBench, all four independent-review designs outperform the evaluated L0–L2 designs, with net preferences of – points. Changes-based review outperforms trajectory-based review both with and without required visual inspection. Additional review rounds or independent critics further improve average TB accuracy by up to percentage points. Together, these results provide empirical guidance for verification design in agent harnesses and support independent review as a practical axis of test-time scaling, enabling users to configure verification effort for different tasks to improve agent performance.
Related work
Verification. There is a line of works exploring verification for assessing candidates, guiding self-correction, and checking outputs against external evidence. Learned verifiers score complete solutions or intermediate reasoning steps to guide candidate selection [8, 9, 33]. Code-focused assessment ranges from trained critics that highlight bugs [3] to review protocols that combine agent judgments or introduce structured disagreement [16, 17]. Self-correction methods use natural-language critiques and reflections to revise outputs or improve subsequent attempts [1, 2]. Training-based approaches further teach models to improve across successive attempts through fine-tuning or multi-turn reinforcement learning [34, 14]. Studies of reasoning correction and code repair examine the limits of self-generated feedback and show that reported gains depend on feedback quality and the cost of additional attempts [6, 5, 13]. Tool-assisted verification grounds error detection in evidence from code execution and external tools [12, 11], while dedicated test-generation and execution agents return test feedback to guide code revision [15]. Together, these strands provide the assessment and feedback mechanisms from which harness-level verification designs can be built.
Agent harnesses. Agent harnesses determine how models interact with tools and environments by organizing instructions, tool interfaces, execution flow, and context. Prior work studies interleaved reasoning and action [22], agent–computer interfaces [18], execution platforms [23], and structured repair workflows [19]. These studies examine how the surrounding execution design shapes agent behavior. Harness design also governs how computation and information are used across attempts, including agent sampling and selection [20] and reuse of coding rollouts through structured summaries [21]. Agent harnesses have become an essential part of modern coding agents, including Claude Code [24], Codex CLI [25], and Gemini CLI [26].
These works establish useful assessment mechanisms and agent workflows, but offer limited comparative guidance on how a harness should organize checking and revision. We systematically study verification design in agent harnesses across multiple models and benchmarks, examining when to intervene, who performs the checks, how feedback leads to revision, and how additional verification effort affects performance and cost.
Verification Designs
In this section, we introduce verification designs by following the agent lifecycle, from receiving a task to delivering a result as shown in Figure 1. Table 1 summarizes when each layer intervenes, who checks the work, and how execution continues.
Figure 1. Framework overview.
| Layer | When | Who checks | How execution continues |
| L0 | At initialization | Agent | Use initial verification instructions to guide checking and revision. |
| L1 | During execution | Agent | Check recent changes and revise ongoing work after a reminder. |
| L2 | At completion | Agent | Resume work for self-checking and revision after a check request or rejected completion. |
| L3 | Before acceptance | Separate critic | Return critic findings to guide agent revision. |
Table 1. Verification layers and their roles in the execution and revision process.
Before execution begins, the agent receives the task and the instructions that guide its work. At this stage, L0: Initial instructions introduces verification guidance into the initial prompt. We vary the message role of the verification instructions: System or User. In the System variant, we append it to the system prompt as standing guidance. Because users do not always include verification instructions in their requests, we introduce a User variant that appends the same prompt to the initial user request. Both variants ask the agent to run the deliverable through its intended interface, inspect the output, and fix observed defects. The L0 verification instructions are in Appendix § 11.1. For visual or interactive artifacts, the instruction also asks the agent to render the result and exercise its core interactions. The L0 verification instructions for visual tasks in our VisualBench are in Appendix § 11.1.
As execution proceeds, changes to the codebase accumulate across turns. In our experiment, we find that only – of detected editing turns are followed by a recognized checking command before the next editing turn or the end of the run, as reported in Appendix Table 7. We therefore introduce L1: Execution-time reminders to encourage the agent to check recent changes as it works, creating opportunities to identify and correct errors before further changes accumulate. These reminders arrive after tool results and before the next model call, so the agent can check its recent changes before continuing. We evaluate three designs. Periodic reminder (System) sends a reminder a few turns after the edit. After-edit reminder (System) sends the same reminder after a turn that changes a file. These two designs use a marker identifying the message as an automated self-verification checkpoint. After-edit reminder (User) uses the same edit-based trigger but delivers the reminder as a user message without that marker. Thus, the first comparison varies the trigger, while the second varies the message role and the presence of the automated marker. The L1 verification instructions are in Appendix § 11.2.
When the agent attempts to finish, L2: Completion gates reopen the agent’s work for checking and revision. To examine how the requested action guides subsequent checking and revision, we vary whether the gate asks the agent to inspect changes or run checks, or rejects completion and asks it to continue working. We vary the message role (System or User) and whether user messages carry an automated marker to study how these choices affect the agent’s response. We also vary intervention timing to test whether reserving time for checking and repair improves outcomes. The L2 prompts and triggering rules are in Appendix § 11.3.
Before final acceptance, the harness can also assign verification to a separate model, which we call the critic. This introduces L3: Independent review: the critic starts in a fresh context and assesses the agent’s deliverable. The critic receives the task specification and access to the live sandbox, where it can run its own checks. The critic returns its findings to the agent for revision. We vary the critic’s context and whether its checks are guided by task requirements alone (Task-first) or also by the agent’s assumptions and claims (Claim-guided). The Changes condition provides the critic with the task and the agent’s changes. The Trajectory condition provides the task, changes, and the agent’s execution trajectory. The critic instructions are in Appendix § 11.4.
Experimental setup
Models. We evaluate seven coding models through Alibaba Cloud Model Studio (DashScope): Qwen3.7-Max [40], Qwen3.8-Max [41], GLM-5.2 [29], DeepSeek V4-Pro [32], DeepSeek V4-Flash [32], Kimi-K2.7-Code [30], and MiniMax-M2.5 [31]. Qwen3.7-Plus serves as the independent critic for every coding model.
Benchmarks. We evaluate on task subsets from Terminal-Bench 2.1 (TB) [7] and SWE-bench Verified (SWE) [4, 10], both with automatic graders. Task selection aims to cover a range of difficulties, using baseline success rates for TB and human time-to-fix tiers followed by baseline evaluation for SWE. Appendix § 7.1 provides task counts and the selection procedure. Each coding condition is configured for three trials per model and task.
VisualBench contains 18 visual and interactive tasks. Each provides a task description and any supporting files, and asks the agent to produce an artifact, such as a playable game, an interactive 3D configurator, or a sales data explorer. For models without native visual capabilities, a look_at tool renders the artifact and returns a description from Qwen3.7-Plus. Raters from an internal company data team compare artifacts from a verification condition and the baseline for the same task and model, with conditions hidden and sides randomized. They receive the task brief and short interaction instructions, and judge functionality and visual quality against the task requirements. Outcomes are recorded as wins, losses, or ties; cases where both artifacts fail are recorded separately. We evaluate one representative design from each of L0–L2 and four L3 designs, with two trials configured per task, model, and condition. Appendix § 9 provides the full descriptions of all 18 tasks, expert instructions, and screenshots of the evaluation interface.
Environment. All experiments run in E2B cloud sandboxes [36], orchestrated with Harbor [35]. Each trial starts in a fresh sandbox containing the task files, dependencies, and execution tools. The agent interacts with this environment by reading and editing files, running commands, and inspecting outputs. For independent review, the critic accesses the same workspace to examine the deliverable and execute its own checks. The critic does not have permission to modify the deliverable. The agent can then revise the artifact using the returned feedback.
Metrics. For TB and SWE, we report accuracy (the percentage of tasks solved) and cost. We average accuracy and cost across trials for each model–task pair. Cost includes the coding agent, the critic, and subsequent revisions, priced separately by model. Figure 2 reports each design’s mean cost relative to its baseline, with per-model plots in Appendix § 8.2. Appendix § 7.2 lists the API cost prices, and Appendix § 8.3 separates agent and critic output tokens.
Results
In this section, we analyze L0 initial instructions in Section , L1 execution-time reminders in Section , L2 completion gates in Section , and L3 independent review in Section .
| Method | Variant | ||||||||
| 3.7-Max | |||||||||
| 3.8-Max | |||||||||
| 5.2 | |||||||||
| V4-Pro | |||||||||
| V4-Flash | |||||||||
| K2.7 Code | |||||||||
| M2.5 | Average | ||||||||
| Verification instruction | System | ||||||||
| Verification instruction | User | ||||||||
| Periodic reminder | System | ||||||||
| After-edit reminder | System | ||||||||
| After-edit reminder | User | ||||||||
| Inspect changes | Automated | ||||||||
| Run and check | Automated | ||||||||
| Run and check | System | ||||||||
| Reject completion | Automated | ||||||||
| Reject completion | User | ||||||||
| Recheck before finishing | User | ||||||||
| Recheck before finishing | User / early | ||||||||
| Reject completion | User / early | ||||||||
| Claim-guided review | Changes | ||||||||
| Task-first review | Changes | ||||||||
| Claim-guided review | Trajectory | ||||||||
| Task-first review | Trajectory |
Table 2. Accuracy changes (pp) on Terminal-Bench across verification methods and models.
L0: Initial instructions
L0 verification instructions yield modest average coding gains, with substantial differences across models and benchmarks. Instructions with the system role improve accuracy by points on TB and points on SWE, compared with and points for instructions with the user role, as shown in Table 2 and Table 3. On SWE, MiniMax-M2.5 benefits from both variants ( points for system/user), whereas Qwen3.8-Max declines under both (). Qwen3.8-Max instead gains points on TB with the system/user roles. On VisualBench, L0 yields an average net preference of points over the baseline, as shown in Figure 3. DeepSeek V4-Flash receives a net preference of points, while GLM-5.2 receives points despite its positive accuracy gains on both coding benchmarks.
Cost changes are modest: system/user instructions incur baseline cost on TB and on SWE, as shown in Figure 2. Average output tokens and agent turns remain close to or below baseline levels across both benchmarks and message roles, at – and –, respectively, as reported in Appendix Table 6.
These average gains are not accompanied by consistently increased generation or longer interactions. Overall, we recommend concise verification instructions in the system prompt, as system instructions outperform user instructions on average in the coding benchmarks, while their uneven benefits favor leaving room for other harness instructions.
| Method | Variant | ||||||||
| 3.7-Max | |||||||||
| 3.8-Max | |||||||||
| 5.2 | |||||||||
| V4-Pro | |||||||||
| V4-Flash | |||||||||
| K2.7 Code | |||||||||
| M2.5 | Average | ||||||||
| Verification instruction | System | ||||||||
| Verification instruction | User | ||||||||
| Periodic reminder | System | ||||||||
| After-edit reminder | System | ||||||||
| After-edit reminder | User | ||||||||
| Inspect changes | Automated | ||||||||
| Run and check | Automated | ||||||||
| Run and check | System | ||||||||
| Reject completion | Automated | ||||||||
| Reject completion | User | ||||||||
| Recheck before finishing | User | ||||||||
| Recheck before finishing | User / early | ||||||||
| Reject completion | User / early | ||||||||
| Claim-guided review | Changes | ||||||||
| Task-first review | Changes | ||||||||
| Claim-guided review | Trajectory | ||||||||
| Task-first review | Trajectory |
Table 3. Accuracy changes (pp) on SWE-bench Verified across verification methods and models.
The case studies illustrate how L0 instructions can alter verification behavior that is already present. On bn-fit-modify, MiniMax’s baseline run inspects the generated files and their row counts but misses the required edge orientation. With the verification instruction, the agent revisits this requirement, corrects the CSV convention, and passes, as shown in Appendix Figure 25. On git-multibranch, Qwen3.7-Max checks deployment endpoints in both conditions. However, the instructed run deletes the repository to prepare for another test, removing the deployment hook, and fails despite subsequent reconstruction; the baseline passes, as shown in Appendix Figure 26.
\node[draw=layerzero, line width=0.8pt, rounded corners=5pt,
fill=layerzero!11, inner xsep=10pt, inner ysep=10pt,
text width=\dimexpr\linewidth-21pt\relax, align=left,
font=\small] (takeaways) {%
\setlength{\parindent}{0pt}%
\vspace{2pt}%
\noindent\ignorespaces
\textbf{Keep verification guidance in system prompt lightweight.}
Use concise instructions, leaving room for other harness guidance.
Use user message for task requirements and context.
\unskip\par
};
\node[anchor=west, fill=layerzero!70!black, text=white, rounded corners=2pt,
inner xsep=7pt, inner ysep=3pt, font=\small\bfseries]
at ([xshift=10pt]takeaways.north west) {L0 Takeaways};L1: Execution-time reminders
Periodic and after-edit L1 reminders have similar average effects with the system message role: versus points on TB and versus on SWE. Switching the message role of after-edit reminders to user raises the average gain to points on TB but lowers it to on SWE, as shown in Table 2 and Table 3. On VisualBench, MiniMax-M2.5 receives points, while GLM-5.2 and Qwen3.7-Max each receive points. Across the three L1 designs, average output tokens decrease by – on TB and – on SWE, while cost ranges from – and – baseline, respectively, as shown in Figure 2 and Appendix Figure 15. Higher accuracy can also coexist with less generated output. On TB, Qwen3.7-Max gains points with after-edit system/user reminders while using fewer output tokens, respectively. On VisualBench, L1 yields an average net preference of points over the baseline, as shown in Figure 3. Overall, we recommend verification reminders after code edits to focus the agent on task requirements and the resulting artifact alongside the code itself. The average accuracy gains with fewer output tokens on TB and SWE support using L1, while the VisualBench results motivate checks that also cover rendered output and interactive behavior.
Trajectory analysis distinguishes continued execution from task-relevant verification. On TB, – of after-edit user reminders are followed by execution commands within two agent turns, as reported in Appendix Table 8. The checks themselves also differ in coverage. On nginx-request-logging, Qwen3.7-Max checks the Nginx configuration, HTTP responses, and access log after a reminder and passes, whereas the baseline stops with an unfinished plan, as shown in Appendix Figure 27. However, Kimi-K2.7-Code verifies compilation while overlooking invalid word substitutions on overfull-hbox, and DeepSeek V4-Flash verifies output equality yet misses the runtime criterion on query-optimize, as shown in Appendix Figure 28 and Appendix Figure fig:case-l1-query.
\node[draw=layerone, line width=0.8pt, rounded corners=5pt,
fill=layerone!11, inner xsep=10pt, inner ysep=10pt,
text width=\dimexpr\linewidth-21pt\relax, align=left,
font=\small] (takeaways) {%
\setlength{\parindent}{0pt}%
\vspace{2pt}%
\noindent\ignorespaces
\textbf{Use verification reminders after code edits to guide the agent in checking both the code and the resulting artifact against task requirements.}
Include checks of rendered output and interactive behavior when relevant.
\unskip\par
};
\node[anchor=west, fill=layerone!70!black, text=white, rounded corners=2pt,
inner xsep=7pt, inner ysep=3pt, font=\small\bfseries]
at ([xshift=10pt]takeaways.north west) {L1 Takeaways};Figure 2. Mean accuracy versus mean cost relative to baseline (method IDs are in Table 2 and Table 3).
L2: Completion gates
L2 yields limited gains relative to its cost, even when rejection and earlier intervention improve average accuracy. Automated Reject completion yields points on TB/SWE, compared with for Inspect changes and for automated Run and check. Using the system role for Run and check raises the gains to points. Earlier triggering also improves both user rechecking and user rejection: rechecking rises from to points, while rejection rises from to points, the largest average gains among the tested L2 designs, as shown in Table 2 and Table 3. Across the rejection designs, cost reaches – baseline on TB and – on SWE. Early user rechecking achieves its gains at a lower cost of baseline, respectively, as shown in Figure 2. On VisualBench, early rechecking yields an average net preference of points, as shown in Figure 3. GLM-5.2 receives points, while DeepSeek V4-Flash receives points. Overall, we recommend avoiding completion-time self-checking, as its gains are limited relative to the additional cost and reopening work does not consistently improve the final artifact.
The L2 cases illustrate both useful repair and invalid final states. On TB, model-level medians range from – additional steps after user rejection, compared with – after Inspect changes. File-changing actions follow user rejection in – of L2 runs in which user rejection is triggered, as reported in Appendix Table 9. On regex-log, MiniMax-M2.5 resumes after early user rejection and finds that its regex misses dates placed before the IP address. It removes this ordering assumption and passes grading, whereas the baseline retains it and fails, as shown in Appendix Figure 30. On git-multibranch, Kimi-K2.7-Code responds to an early recheck with deployment tests that commit and push test content to the served branches. It leaves that content in place and fails, whereas the passing baseline restores the required branch contents, as shown in Appendix Figure 31. These cases show why further execution alone is insufficient: a completion gate creates an opportunity for repair, but the agent must still identify the relevant defect and preserve a valid final artifact.
\node[draw=layertwo, line width=0.8pt, rounded corners=5pt,
fill=layertwo!11, inner xsep=10pt, inner ysep=10pt,
text width=\dimexpr\linewidth-21pt\relax, align=left,
font=\small] (takeaways) {%
\setlength{\parindent}{0pt}%
\vspace{2pt}%
\noindent\ignorespaces
\textbf{Avoid completion-time self-checking.}
Asking the main agent to recheck its own work can improve accuracy, but the gains are limited relative to the additional cost.
\unskip\par
};
\node[anchor=west, fill=layertwo!70!black, text=white, rounded corners=2pt,
inner xsep=7pt, inner ysep=3pt, font=\small\bfseries]
at ([xshift=10pt]takeaways.north west) {L2 Takeaways};Figure 3. VisualBench win, tie, and loss results.
L3: Independent review
L3 delivers consistent improvement across all four designs on TB and SWE at modest additional cost. The gains range from – points on TB and – on SWE, as shown in Table 2 and Table 3. Cost, including critic review and agent revision, is – baseline on TB and – on SWE, as shown in Figure 2. Compared with the strongest L2 design, the strongest L3 design achieves a larger gain on TB ( versus points) and a comparable gain on SWE ( versus ), at lower cost on both benchmarks. On VisualBench, all four L3 designs receive positive net preference, ranging from to points and exceeding the evaluated L0–L2 designs, as shown in Appendix Table 12. Changes-based review outperforms trajectory-based review both without required visual inspection ( versus points) and with it ( versus points). Required visual inspection improves net preference for both contexts, with a larger increase for trajectory-based review. Both changes-based designs receive positive net preference for all seven models, while trajectory-based designs retain some negative model-level results. Across the three benchmarks, the full trajectory does not consistently improve outcomes, and trajectory-based designs incur – higher critic cost on TB and SWE. Overall, we recommend task requirements and changes as the default context for a separate, low-cost critic.
The trajectories illustrate how independent review turns additional checks into concrete repairs. On regex-log, MiniMax-M2.5 tests its regex and declares completion, but the critic tests a case with the date appearing before the IP address and exposes a missed match. The agent then revises the regex and passes, whereas the baseline performs its own tests but still fails, as shown in Appendix Figure 32. On cobol-modernization, Qwen3.7-Max’s implementation passes its own checks for valid and invalid transactions. The critic tests an arithmetic underflow and finds that Python writes a negative sign that COBOL’s unsigned field omits, breaking the required record format. The agent reproduces the discrepancy, repairs the numeric formatting, and passes the external grader; the baseline declares success after its own comparisons but fails grading, as shown in Appendix Figure 33. In both examples, the critic tests a case that the agent overlooked and supplies an executable failure that guides revision. This illustrates how an independent checking perspective can address gaps in the agent’s self-verification. On cancel-async-tasks, GLM-5.2’s critic confirms that asynchronous cleanup remains incomplete after cancellation, but the run reaches its 45-minute limit without a completed repair after review, as shown in Appendix Figure 34.
Figure 4. Scaling independent review on TB through additional review rounds (depth) and critics (width), showing accuracy versus mean critic token use.
Scaling review. Increasing review depth (successive review rounds) or width (independent critics) further improves average accuracy on TB. One critic and one round achieve accuracy at 38.2k mean critic tokens, compared with at 79.5k for two rounds and at 69.7k for two critics. All larger settings outperform a single review, reaching with four rounds and with four critics, as shown in Figure 4. Four critics improve average accuracy by points over one critic at total cost, including revisions. Scaling verification through low-cost critics can limit repeated execution by the main agent. By consolidating independent feedback before revision, four critics approach four-round accuracy at lower total cost, as shown in Appendix Figure 23.
\node[draw=layerthree, line width=0.8pt, rounded corners=5pt,
fill=layerthree!11, inner xsep=10pt, inner ysep=10pt,
text width=\dimexpr\linewidth-21pt\relax, align=left,
font=\small] (takeaways) {%
\setlength{\parindent}{0pt}%
\vspace{2pt}%
\noindent\ignorespaces
\textbf{Use a separate, low-cost critic to check the deliverable and guide agent revision.} Scaling review through additional rounds or independent critics further improves average accuracy.
\unskip\par
};
\node[anchor=west, fill=layerthree!70!black, text=white, rounded corners=2pt,
inner xsep=7pt, inner ysep=3pt, font=\small\bfseries]
at ([xshift=10pt]takeaways.north west) {L3 Takeaways};Conclusion
In this paper, we systematically study verification in agent harnesses, comparing 17 designs across four layers of the agent lifecycle and seven frontier coding models on TB and SWE, with evaluation on VisualBench. We examine when to intervene, who checks the work, and how feedback leads to revision. Initial instructions and reminders yield modest, model-dependent coding gains without substantially increasing average output token use. Completion gates can improve accuracy but may substantially increase cost. Independent review offers a more favorable accuracy–cost tradeoff on TB and SWE. On VisualBench, its four designs achieve net preferences of – points over the baseline, exceeding the evaluated L0–L2 designs. Additional rounds or critics further improve average TB accuracy by up to percentage points. Together, these results provide empirical guidance for verification design in agent harnesses and support independent review as a practical axis of test-time scaling.
Ethics statement
VisualBench’s human evaluation received ethics approval. Raters are members of an internal company data team; they provided informed consent and were compensated under their existing contracts with the company. The interface explains the study’s purpose and assessment criteria, while hiding verification conditions and randomizing artifact placement. Appendix § 9 documents the evaluation protocol, task descriptions, rater instructions, and interface.
AI use statement
The authors developed the research ideas and system design and led the manuscript writing. Generative AI tools assisted with implementation and manuscript polishing. The authors are responsible for the final content.
Appendix guide
| § 7 Experimental details§ 7 | § 10 Case study§ 10 |
| § 8 Additional coding results§ 8 | § 11 Prompts and execution rules§ 11 |
| § 9 VisualBench tasks and evaluation§ 9 |
Additional experimental details
Task selection for Terminal-Bench and SWE-bench
We select tasks to balance coverage across easy, intermediate, and hard difficulty levels, enabling us to better observe both improvements and regressions.
Terminal-Bench. We began with a baseline-harness pilot over the 89-task Terminal-Bench registry recorded as version 2.1. The pilot used Qwen3.7-Max, GLM-5.2, DeepSeek V4-Pro, and Kimi-K2.7-Code. Their pass rates guided selection across three empirical difficulty bands: tasks that were usually solved, solved inconsistently, or usually failed. We aimed for balanced coverage of these bands, yielding the 31-task study set.
SWE-bench Verified. We initially selected 30 tasks evenly across three human time-to-fix tiers: under 15 minutes, 15 minutes to one hour, and over one hour. We then evaluated baseline performance and adjusted the task set to include both tasks with room for improvement and consistently solved tasks for detecting regressions.
API cost pricing
Table 4 lists the model rates used to calculate cost, with Alibaba Cloud Model Studio pricing as the reference [37, 38].
| Model | Uncached input | Cached input | Output |
| Qwen3.7-Max | 1.791 | 0.358 | 5.373 |
| Qwen3.8-Max | 1.791 | 0.358 | 5.373 |
| GLM-5.2 | 1.194 | 0.299 | 4.179 |
| DeepSeek V4-Pro | 1.791 | 0.149 | 3.582 |
| DeepSeek V4-Flash | 0.149 | 0.030 | 0.299 |
| Kimi-K2.7-Code | 0.970 | 0.194 | 4.030 |
| MiniMax-M2.5 | 0.313 | 0.063 | 1.254 |
| Qwen3.7-Plus (critic) | 0.299 | 0.060 | 1.194 |
Table 4. Rates used to calculate cost, in USD per million tokens.
Additional coding results
We report accuracy, cost, and token use by verification design and coding model, followed by behavioral diagnostics for L0–L2.
Absolute accuracy by verification design
Figure 5 reports accuracy by verification design, with open markers for the baseline and filled markers for the design. The corresponding absolute accuracies are listed alongside.
Figure 5. Absolute accuracy on TB and SWE, with baseline and design values shown alongside each comparison.
Figure 6–Figure 12 show the same comparison for each coding model.
Figure 6. Absolute accuracy of Qwen3.7-Max on TB and SWE, with baseline and design values shown for each comparison.
Figure 7. Absolute accuracy of Qwen3.8-Max on TB and SWE, with baseline and design values shown for each comparison.
Figure 8. Absolute accuracy of GLM-5.2 on TB and SWE, with baseline and design values shown for each comparison.
Figure 9. Absolute accuracy of DeepSeek V4-Pro on TB and SWE, with baseline and design values shown for each comparison.
Figure 10. Absolute accuracy of DeepSeek V4-Flash on TB and SWE, with baseline and design values shown for each comparison.
Figure 11. Absolute accuracy of Kimi-K2.7-Code on TB and SWE, with baseline and design values shown for each comparison.
Figure 12. Absolute accuracy of MiniMax-M2.5 on TB and SWE, with baseline and design values shown for each comparison.
Accuracy and cost by coding model
Figure 13 and Figure 14 separate Figure 2 by coding model, using the same trials, prices, and baseline. Each figure includes an Average panel reproducing Figure 2, and each panel labels all 17 verification designs by ID. Black stars mark baseline accuracy, and dashed lines mark baseline cost. Axis ranges are shared across models within each benchmark.
Table 5 lists the design IDs and settings.
| ID | Method | Variant |
| 1 | Verification instruction | System |
| 2 | Verification instruction | User |
| 3 | Periodic reminder | System |
| 4 | After-edit reminder | System |
| 5 | After-edit reminder | User |
| 6 | Inspect changes | Automated |
| 7 | Run and check | Automated |
| 8 | Run and check | System |
| 9 | Reject completion | Automated |
| 10 | Reject completion | User |
| 11 | Recheck before finishing | User |
| 12 | Recheck before finishing | User / early |
| 13 | Reject completion | User / early |
| 14 | Claim-guided review | Changes |
| 15 | Task-first review | Changes |
| 16 | Claim-guided review | Trajectory |
| 17 | Task-first review | Trajectory |
Table 5. Verification design IDs and settings.
Figure 13. Accuracy versus cost relative to baseline on Terminal-Bench, shown for each coding model and their average.
Figure 14. Accuracy versus cost relative to baseline on SWE-bench Verified, shown for each coding model and their average.
Agent and critic token use
Figure 15 shows mean output token use for all verification designs. Solid bars show agent generation, including revisions, and hatched segments show critic generation. Vertical ticks mark the baseline, with baseline and total values listed in thousands.
Figure 15. Mean agent and critic output tokens on TB and SWE, averaged across model–task pairs.
Figure 16–Figure 22 show the same comparison for each coding model.
Figure 16. Mean agent and critic output tokens for Qwen3.7-Max on TB and SWE, with baseline and total values shown for each design.
Figure 17. Mean agent and critic output tokens for Qwen3.8-Max on TB and SWE, with baseline and total values shown for each design.
Figure 18. Mean agent and critic output tokens for GLM-5.2 on TB and SWE, with baseline and total values shown for each design.
Figure 19. Mean agent and critic output tokens for DeepSeek V4-Pro on TB and SWE, with baseline and total values shown for each design.
Figure 20. Mean agent and critic output tokens for DeepSeek V4-Flash on TB and SWE, with baseline and total values shown for each design.
Figure 21. Mean agent and critic output tokens for Kimi-K2.7-Code on TB and SWE, with baseline and total values shown for each design.
Figure 22. Mean agent and critic output tokens for MiniMax-M2.5 on TB and SWE, with baseline and total values shown for each design.
Review scaling and total cost
Figure 23 reports accuracy against mean total cost, including agent execution, critic checks, and subsequent revisions. One critic and one round achieve accuracy at $0.47 per trial. Two rounds reach at $0.61, while two critics reach at $0.60. Four critics achieve at $0.62, compared with at $0.77 for four rounds. The critic costs for four critics and four rounds are both approximately $0.14 per trial, while their agent-side costs, including revisions, are $0.48 and $0.63, respectively. The cost difference therefore comes primarily from agent execution, consistent with wider review consolidating feedback before revision instead of repeatedly continuing the agent between review rounds. A second round raises Qwen3.7-Max from to , but lowers Kimi-K2.7-Code from to .
Figure 23. TB accuracy versus mean total cost as review depth and width increase.
L0: Output tokens and agent turns
Table 6 reports mean output tokens and agent turns relative to baseline on TB and SWE. Values above one indicate more generated output or longer interactions.
| Metric | ||||||||
| 3.7-Max | ||||||||
| 3.8-Max | ||||||||
| 5.2 | ||||||||
| V4-Pro | ||||||||
| V4-Flash | ||||||||
| K2.7 Code | ||||||||
| M2.5 | Average | |||||||
| Metric | ||||||||
| 3.7-Max | ||||||||
| 3.8-Max | ||||||||
| 5.2 | ||||||||
| V4-Pro | ||||||||
| V4-Flash | ||||||||
| K2.7 Code | ||||||||
| M2.5 | Average | |||||||
| # output tokens | 0.84 | 1.01 | 1.11 | 1.04 | 0.69 | 1.06 | 1.12 | 0.92 |
| # agent turns | 1.06 | 0.95 | 0.96 | 1.04 | 0.94 | 0.80 | 0.95 | 0.94 |
| # output tokens | 0.95 | 0.98 | 1.18 | 1.04 | 0.56 | 1.12 | 1.05 | 0.90 |
| # agent turns | 1.17 | 0.96 | 0.90 | 1.00 | 0.99 | 0.79 | 1.07 | 0.96 |
| # output tokens | 1.14 | 0.97 | 0.93 | 1.08 | 0.94 | 1.06 | 1.02 | 1.00 |
| # agent turns | 1.05 | 0.98 | 0.97 | 1.02 | 0.93 | 0.91 | 0.94 | 0.95 |
| # output tokens | 1.10 | 0.84 | 0.97 | 0.98 | 1.00 | 1.03 | 0.98 | 0.94 |
| # agent turns | 1.16 | 0.95 | 0.97 | 0.93 | 0.97 | 1.04 | 0.91 | 0.99 |
Table 6. Output tokens and agent turns for initial verification instructions, expressed as multiples of baseline.
L1: Checking during execution
Table 7 reports how often TB baseline agents check their work after editing. We count recognized checking commands before the next editing turn or the recorded run end.
| Model | Later turn | Same or later turn |
| Qwen3.7-Max | 9.7 | 10.3 |
| Qwen3.8-Max | 8.7 | 16.5 |
| GLM-5.2 | 11.0 | 12.3 |
| DeepSeek V4-Pro | 6.2 | 9.5 |
| DeepSeek V4-Flash | 10.5 | 13.3 |
| Kimi-K2.7-Code | 6.8 | 7.3 |
| MiniMax-M2.5 | 13.6 | 13.8 |
Table 7. Editing turns with recognized checks in TB baseline runs (%).
Table 8 reports reminder coverage and checking or execution within the next two agent turns. After-edit user reminders reach – of runs, with recognized checks following – of reminder events.
| Diagnostic | |||||||
| 3.7-Max | |||||||
| 3.8-Max | |||||||
| 5.2 | |||||||
| V4-Pro | |||||||
| V4-Flash | |||||||
| K2.7 Code | |||||||
| M2.5 | |||||||
| Diagnostic | |||||||
| 3.7-Max | |||||||
| 3.8-Max | |||||||
| 5.2 | |||||||
| V4-Pro | |||||||
| V4-Flash | |||||||
| K2.7 Code | |||||||
| M2.5 | |||||||
| Runs receiving a reminder (%) | 73 | 89 | 82 | 67 | 86 | 66 | 87 |
| Reached the four-reminder cap (%) | 62 | 55 | 65 | 59 | 72 | 64 | 74 |
| Check within two turns (%) | 70 | 81 | 67 | 75 | 66 | 65 | 71 |
| Execution within two turns (%) | 92 | 96 | 95 | 91 | 87 | 90 | 91 |
| Runs receiving a reminder (%) | 90 | 100 | 94 | 80 | 100 | 80 | 96 |
| Reached the four-reminder cap (%) | 55 | 75 | 81 | 63 | 71 | 70 | 65 |
| Check within two turns (%) | 67 | 60 | 72 | 69 | 61 | 62 | 58 |
| Execution within two turns (%) | 92 | 93 | 97 | 91 | 90 | 95 | 92 |
Table 8. Reminder coverage and subsequent checks on Terminal-Bench.
L2: Work after a completion gate
Table 9 reports subsequent steps and file-changing actions after L2 interventions. User rejection is followed by – additional steps at the model median and file-changing actions in – of runs where it is triggered.
| Diagnostic | |||||||
| 3.7-Max | |||||||
| 3.8-Max | |||||||
| 5.2 | |||||||
| V4-Pro | |||||||
| V4-Flash | |||||||
| K2.7 Code | |||||||
| M2.5 | |||||||
| Diagnostic | |||||||
| 3.7-Max | |||||||
| 3.8-Max | |||||||
| 5.2 | |||||||
| V4-Pro | |||||||
| V4-Flash | |||||||
| K2.7 Code | |||||||
| M2.5 | |||||||
| Runs reaching the gate (%) | 88 | 83 | 89 | 81 | 66 | 65 | 89 |
| Steps after the gate (median) | 4 | 4 | 6 | 6 | 5 | 4 | 5 |
| File-changing action after gate (%) | 38 | 53 | 66 | 52 | 62 | 49 | 53 |
| Runs reaching the gate (%) | 92 | 84 | 93 | 79 | 87 | 50 | 92 |
| Steps after the gate (median) | 6 | 6 | 8 | 8 | 8 | 4 | 5 |
| File-changing action after gate (%) | 66 | 95 | 87 | 76 | 85 | 60 | 57 |
| Runs reaching the gate (%) | 90 | 80 | 84 | 57 | 88 | 52 | 87 |
| Steps after the gate (median) | 14 | 12 | 19 | 16 | 16 | 15 | 19 |
| File-changing action after gate (%) | 88 | 92 | 94 | 88 | 92 | 96 | 86 |
Table 9. Completion-gate coverage and subsequent work on Terminal-Bench.
VisualBench tasks and human evaluation
VisualBench contains 18 tasks spanning games, shaders, interactive three-dimensional scenes, applications, and other visual artifacts.
Complete task catalog
Table 10 and Table 11 summarize all 18 tasks and their requested deliverables. Full task descriptions and task-specific interaction instructions follow the overview.
| Task | Core requirements and deliverables |
| Task | Core requirements and deliverables |
Blender desk scene
blender-object
3D | Construct a desk lamp and supporting objects from geometry, with distinct materials, deliberate lighting, shadows, and depth of field. Render a composed image and a lit, full-rotation video of at least four seconds using Cycles.
Deliverables: render.png, turntable.mp4. |
Breakout
game-breakout
Game | Build a playable brick-breaking game with paddle-dependent bounce and spin, multiple brick types, stacking power-ups, synthesized sound, combo scoring, and at least four levels. Include lives, pause, restart, and a persistent high score.
Deliverables: index.html. |
Tower defense
game-tower
Game | Implement escalating enemy waves and at least four tower types with upgrades, selling, range displays, and placement constraints. Include varied enemies, an early-wave bonus, money and lives, speed control, pause, and win/loss states.
Deliverables: index.html. |
Voxel sandbox
game-voxel
Game | Generate streamed terrain with caves, water, and distinct block types. Support first-person movement and collision, mining, inventory, placement, falling blocks, crafting, day/night lighting, and persistence of the player position and world edits.
Deliverables: index.html, three.min.js. |
Stormy ocean
shader-scene
Shader | Write a WebGL/GLSL ocean shader with waves at multiple scales, persistent foam, scattering and reflections, moving clouds, rain, and lightning that relights the scene. Support mouse-controlled viewing and smooth full-screen rendering without loaded textures.
Deliverables: index.html. |
Animated concert poster
svg-poster
Vector | Design a synthwave poster with the specified event text, deliberate typography, layered depth, and lighting effects. Combine animations at different speeds, including path-driven motion, in a seamless loop; keep the SVG self-contained and scalable.
Deliverables: poster.svg. |
3D lamp configurator
three-config
3D | Construct an articulated lamp with live controls for shade shape, geometry, color, finish, bulb warmth, and brightness. Provide smooth transitions, an updated price and summary, saved settings, a shareable configuration URL, orbit controls, and PNG export.
Deliverables: index.html, three.min.js. |
Product hero scene
three-scene
3D | Model wireless headphones from primitives with studio lighting and distinct materials. Add damped orbit and zoom, idle animation, smooth color changes, a labeled exploded view, and clickable hotspots that focus the camera on product details.
Deliverables: index.html, three.min.js. |
Fleet terminal dashboard
tui-dashboard
Terminal UI | Build a live Python terminal interface from the supplied service data, with status, sparklines, overall health, scrolling logs, severity colors, and adaptive layout. Record at least 30 seconds of updates including a service status transition.
Deliverables: demo.cast, screen.svg. |
Table 10. VisualBench tasks and requested deliverables, part 1.
| Task | Core requirements and deliverables |
| Task | Core requirements and deliverables |
Interactive cloth
cloth-sim
3D | Implement cloth physics without a physics library: grabbing, unpinning, wind, tearing, and stable draping over a sphere. Expose simulation controls, live energy and constraint error, and structural and shaded views; remain stable under aggressive input.
Deliverables: index.html. |
Flowline kanban
data-app-kanban
Application | Create a populated board with editable cards, drag-and-drop, bulk actions, composed filters, and an enforced three-card work-in-progress limit. Support full keyboard operation, undo/redo, persistent board state, and JSON import/export.
Deliverables: index.html. |
Sales data explorer
dataviz-explorer
Data visualization | Visualize roughly 5,500 messy sales records across six regions and two channels. Enable trend and regional comparisons, repair recoverable data, explain every excluded row, and represent missing values honestly. Choose the views and implement them without charting libraries.
Deliverables: index.html. |
2D platformer
game-platformer
Game | Use the two supplied tile maps to build responsive movement with variable jump height and coyote time. Include a following camera, hazards and respawning, collectible coins, progression between levels, a win screen, and restart.
Deliverables: index.html. |
Generative art series
generative-art
Generative art | Create a visually coherent series with varied compositions and generated palettes. Make each seed deterministic and its composition independent of window size; provide seed navigation, progressive rendering, and PNG export rendered at least three times screen resolution.
Deliverables: index.html. |
Vector boolean editor
path-boolean
Vector | Compute union, intersection, difference, and exclusion on editable cubic Bezier paths without geometry libraries or masking shortcuts. Handle tangencies, overlaps, holes, and disjoint results; support chained operations, geometry diagnostics, undo/redo, and SVG export.
Deliverables: index.html. |
City in a storm
shader-city
Shader | Raymarch an endless nighttime skyline above moving reflective water using raw WebGL/GLSL. Add varied towers and windows, moving clouds, fog, rain, and spatially located lightning that relights the scene; support camera motion at a smooth frame rate.
Deliverables: index.html. |
Gridwork spreadsheet
spreadsheet-engine
Application | Build a grid of at least 40 by 20 cells with formulas, ranges, standard functions, and dependency-based recalculation. Handle cycles and invalid inputs without hanging; support fill-down, sorting, undo/redo, and persistence.
Deliverables: index.html. |
GPU particle field
three-particles
3D | Simulate one million particles on the GPU with evolving curl-noise flow, momentum, trails, and mouse attraction/repulsion. Convey depth and flow through brightness and color; recycle particles, show live count and frame rate, and handle resize without resetting.
Deliverables: index.html, three.min.js (optional). |
Table 11. VisualBench tasks and requested deliverables, part 2.
The following entries reproduce all 18 English task briefs and their task-specific rater instructions from the evaluation kit. Line wrapping and dash typography are normalized for typesetting. The task descriptions are supplied to the agent; the interaction instructions guide human assessment of the delivered artifacts.
Blender desk scene
blender-object
Task description
Human interaction instructions
First, the objects in render.png: an articulated desk lamp - base, jointed arm, shade - with a mug and a stack of books beside it, arranged as a composition rather than a row? If the objects are wrong, the lighting below does not count
Look at render.png - lamp lights the scene, shadows and depth of field
Play turntable.mp4 - full rotation, lamp lit throughout
Interactive cloth
cloth-sim
Task description
Human interaction instructions
First: is it a rectangular sheet pinned along its top edge hanging under gravity, with the sphere in the scene and live energy / constraint-error readouts on screen? No sheet, no sphere or no readouts - nothing below counts
Grab a point and shake it hard, then let go - does it settle, or does the sheet detonate? Explosion on hard input is an outright fail
Watch the energy and constraint-error readouts while it settles: energy should fall and the error should go toward zero. If the numbers are missing or frozen, the claim is unsupported
Drape it over the sphere - does it rest ON the surface, or sink through it, or jitter?
Does it fold, or does it stretch like rubber? Pull one corner far away and see whether the sheet grows
Unpin a corner; turn the wind up and down; cut or tear it; change stiffness, gravity and damping while it runs, then reset
Raise the resolution - does it stay stable and keep its framerate, or does higher resolution make it unstable?
Toggle the structure view - are particles and constraints actually there? Then look at the shaded view: does it read as fabric with light on it?
Flowline kanban
data-app-kanban
Task description
Human interaction instructions
Open it cold - is it the Flowline board with Backlog / In Progress / Done, already populated with realistic cards (title, note, labels, assignee, due date visible without opening them), and In Progress already at its WIP limit? An empty board means you cannot test anything without first typing data in - nothing below counts
Add, edit in place, and delete a card - all three work, and column counts stay correct
Drag a card between and within columns - the order follows
Drag a fourth card into In Progress - refused visibly, with a reason given
Click the board first so it has focus. Select several cards and move or delete them in one go, then press Ctrl+Z ONCE - the whole batch comes back as one step; then try Ctrl+Z / Ctrl+Y on an add, an edit and a drag
Put the mouse away: can you move a card between columns using only the keyboard?
Type in the filter, then also narrow by a label or assignee - they compose; counts follow
Check due dates: is overdue vs due-soon obvious without opening a card?
Reload the page (F5) - cards, order, labels, filter and collapsed columns all survive
Sales data explorer
dataviz-explorer
Task description
Human interaction instructions
First: is it showing that dataset - six regions, about thirty months, both the online and retail channels? If not, nothing below counts
Give yourself two minutes: which region’s online/retail mix shifted the most, and roughly when did it turn? Could you answer from the page alone?
Try to compare two regions directly - does the page let you, or do you have to remember one while looking at the other?
Separate seasonality from trend - is there any way to tell a recurring dip from a real decline?
Click the excluded-row count: the panel length must match the count, every row must carry a reason, and the rows must genuinely be unusable (spot-check a few)
Between two candidates, prefer the one that repairs more and excludes less
Look for a break in a line - a single missing value must render as a gap, never as zero
Check it does not mislead: axes that start somewhere other than zero without saying so, aggregation you cannot identify, or rows dropped silently
Breakout
game-breakout
Task description
Human interaction instructions
First: is it breakout - paddle, ball and a brick field, paddle on both mouse and arrow keys, and several brick kinds (plain, two-hit, armoured, unbreakable)? If not, nothing below counts
Play a level - listen for the pitch rising through a rally
Catch a power-up; check what’s active is shown
Lose all balls, then restart; reload the page (F5) and check the high score is still there
2D platformer
game-platformer
Task description
Human interaction instructions
First: is it a 2D platformer - terrain, hazards, coins, a start and an exit, in a level larger than the screen? If not, nothing below counts
Tap vs hold jump - the height varies; jump just after a ledge - coyote time catches it
Run ahead - the camera follows smoothly
Touch a hazard - death, then respawn at the level start
Collect coins and reach the exit - counter, level 2, then a win screen
Tower defense
game-tower
Task description
Human interaction instructions
First: is it tower defense - a visible enemy path, towers placed by clicking (refused on the path or on another tower), at least four tower types, a HUD with wave / lives / money? If not, nothing below counts
Place different tower types; click one to see range and stats
Upgrade a tower, then sell one
Call the next wave early; use pause and speed-up
Voxel sandbox
game-voxel
Task description
Human interaction instructions
First: is it a voxel world - rolling terrain with hills, valleys and beaches, water in the low ground that reads as water, and visibly distinct block types (trees, sand, stone, dirt, grass, ore)? If not, nothing below counts
Click the canvas - pointer locks; WASD, mouse-look, space to jump
Walk a while - new terrain streams in; look for caves and water
Hold left click to break, right click to place; open the inventory
Dig out the block under sand; wait for night; try a torch and the crafting screen
Reload the page (F5) - the world and your changes should still be there
Generative art series
generative-art
Task description
Human interaction instructions
First: does the page show one piece at a time, with next / jump-to-seed controls? And an even mat of marks filling the whole canvas fails this task however fine the marks are - check that before anything else
Use the on-page next / jump-to-seed controls: go to a seed, note the picture, move away and come back - it must be exactly the same picture, not a reflowed one
Step through three different seeds. Do they read as one body of work - same hand - while being genuinely different compositions?
The failure to look for is the opposite pair: either all three are the same picture with the parts moved, or they have nothing in common but the palette
Take one piece: is there something the eye goes to? Is the empty space doing work, or is it just where the algorithm stopped?
Do the marks read as a medium - varying density, pooling where they cross, thinning out - or as uniform hairlines?
Look closely at the edges of the marks (use "open full " for a bigger view) - still crisp, or mushy? The piece should fill the whole canvas, no blank strip or letterbox
Watch it draw - progressive, and the page still responds while it works?
Vector boolean editor
path-boolean
Task description
Human interaction instructions
First: is it a vector editor - closed paths drawn with a pen tool, rectangles and ellipses, cubic Bézier segments, and all four operations (union, intersection, difference, exclusion) available? If not, nothing below counts
Union two overlapping shapes, then run difference on the RESULT - an operation whose output cannot be operated on again fails the task
Nudge a point after an operation: does the outline follow, with handles intact? If the result is not editable it was faked
Difference a small shape out of a big one so the result has a HOLE - then move the outer shape and check the hole is still a hole
The two classic degenerate cases: shapes that only TOUCH (tangent, no crossing), and shapes sharing a straight edge along its length - no garbage, no dropped contour
An operation whose result is several disjoint pieces - are they all there, as one path?
Use curves, not just polygons: draw with Bézier segments and check the result curves are still curves, not polylines
Toggle the intersection-point and winding-direction overlay - do the points sit where curves actually cross?
City in a storm
shader-city
Task description
Human interaction instructions
First: is it that city - night, storm, seen from over the water: towers of varying height receding, windows lit unevenly, the city rising out of moving water with reflections, rain and low cloud? If not, nothing below counts
Wait for lightning - towers, cloud and reflection light together
Look at the water - reflections stretch and break with the swell
Move the mouse to swing the viewpoint; watch fog with distance
Stormy ocean
shader-scene
Task description
Human interaction instructions
First: is it open water in a storm - long rollers with chop riding on top, foam on the crests, clouds with depth, rain - not a blue sine wave? If not, nothing below counts
Watch thirty seconds - the storm builds and eases, lightning relights the scene
Find a crest between you and the sun - look for light through the wave
Move the mouse to swing the viewpoint; look straight down, then to the horizon
The scene should fill the whole canvas with no black bars; while it runs (and while you drag or move), it should stay smooth, not stutter
Gridwork spreadsheet
spreadsheet-engine
Task description
Human interaction instructions
First: is it a spreadsheet - at least 40 rows by 20 columns, A1-style addresses, a formula bar, arrow-key navigation, typing straight into a cell? If not, nothing below counts
Formulas chain: type 5 in B1, =B1*2 in C1, =C1+1 in D1 they show 10 and 11; change B1 to 7 C1 and D1 become 14 and 15 by themselves
Built-in functions: put 1, 2, 3 in A1-A3; A5 =SUM(A1:A3) 6; A6 =IF(A5>5,"big","small") big
Errors: E1 =1/0 and E2 =FOO(1) both show a readable error and the sheet stays up; F1 =E1+1 the error propagates instead of quietly becoming 0
Cycle: G1 =H1 and H1 =G1 both cells report a circular reference; the page must not hang or freeze
Fill, range, sort: fill C1 down to C10 references become B2, B3...; select A1:A3 the status bar shows count 3, sum 6; sort a column and check the result
Undo and persistence: Ctrl+Z undoes one step, Ctrl+Y redoes; then reload the page (F5) the sheet is still there
Animated concert poster
svg-poster
Task description
Human interaction instructions
First, check the three strings appear exactly: NEON TIDE / Live at Meridian Hall / Sep 12 2026; then whether it is a poster you would put on a wall rather than centred text on a gradient. If this fails, nothing below counts
Watch a full loop - look for the seam where it repeats
Zoom the browser to 300% - the type and edges stay crisp
Look for several things moving at different rates
3D lamp configurator
three-config
Task description
Human interaction instructions
First: is it the lamp that was asked for - base, arm, joints and shade all there, at least three shade shapes to switch between, arm height and angle adjustable? If this fails, nothing below counts
Change shade, finish and colour - transitions, not snaps
Switch the bulb on; move the dimmer and warmth
Drag to orbit and let go - it should glide to a stop with damping; wheel to zoom; the view should fill the whole canvas with no black bars
GPU particle field
three-particles
Task description
Human interaction instructions
First, the on-screen count and framerate: is it close to a million particles at a smooth rate, and does the motion read as a fluid (momentum, trails) rather than points on springs? If not, nothing below counts
Move the mouse through the field; toggle attract/repel
Watch a pile-up - brighter where particles gather
Watch it for a few seconds - it must keep running steadily, never freeze or stop, and fill the whole canvas
Product hero scene
three-scene
Task description
Human interaction instructions
First, the object: a wireless headphone - band, two cups, cushions, hinges, all there and in believable proportion? If the object is wrong, nothing below counts
Drag to orbit, then let go - it glides to a stop
Switch colour variants; toggle the exploded view
Click a hotspot on the object
Leave it alone for a few seconds - idle animation resumes
Fleet terminal dashboard
tui-dashboard
Task description
Human interaction instructions
First: is the recording a multi-pane terminal dashboard - a service list with status, a sparkline per service, an overall health summary, a scrolling log pane, and ok / warn / crit colour-coded? If not, nothing below counts
Play demo.cast - values move and the log scrolls
Watch for a service crossing into crit
Check sparklines and that problems sort to the top
Human evaluation protocol
The human comparison covers seven designs. For L0–L2, we select one representative intervention per layer: the system verification instruction, the after-edit user reminder, and the user recheck request with the 80% early trigger. These use the same intervention definitions as TB and SWE. For L3, we compare changes-based and trajectory-based review, each with and without required visual inspection. Each design is compared with the baseline for the same task and coding model. Review depth and width are studied separately on Terminal-Bench.
Each task supplies a description and any supporting files without a reference implementation. Tasks run in an environment with Python, Chromium, and ffmpeg, with additional tools where required. Browser artifacts run offline, with bundled libraries only where the task permits them.
Raters and briefing. The raters are members of an internal company data team. Before rating, the interface presents a briefing explaining the study’s purpose, the blinded comparison, the four response options, and a worked example of applying the criteria.
Consent, compensation, and ethics approval. The human evaluation received ethics approval. Raters provided informed consent and were compensated under their existing contracts with the company.
Blinded comparison. Raters compare artifacts for the same task and model with verification conditions hidden and sides randomized. The interface presents the original task brief, its judging criteria, and a short set of task-specific interaction steps. Both artifacts can be inspected side by side or opened individually at full size. Raters interact with live artifacts where available and inspect delivered recordings or renders where appropriate.
Instructions to raters. The rating interface gives the following guidance:
Read the original task brief before comparing the artifacts. Judge against what the task asks for, including its functional and visual requirements.
Follow the task-specific interaction checklist on both artifacts. Click, drag, type, or play as needed to check the requested behavior; use the full-size view when the side-by-side view is too small. For keyboard controls, first click inside the artifact to give it focus.
Choose A or B when one artifact better satisfies the task. Choose a tie when both work and you cannot distinguish their quality. Choose both fail only when neither makes a meaningful attempt at the task, such as when both are blank, broken, or unrelated to the request. An artifact that works poorly does not by itself justify both fail.
If only one side produces a usable deliverable, choose that side even if it is rough. If a page appears blank, refresh it once before judging. Visual polish should not outweigh missing functionality unless visual quality is itself the task’s objective.
Optionally leave a short comment explaining the deciding issue, especially when the two artifacts are difficult to distinguish.
Example interaction checklist. For a Breakout game, raters move the paddle with the arrow keys, launch the ball, clear several bricks, and deliberately let the ball drop. These actions check paddle control, collisions, scoring, and the loss condition. The judgment follows the requested game behavior rather than a screenshot alone.
Expert evaluation interface
Figure 24 shows the English rating interface for the Blender desk-scene task, with rendered images and turntable videos available on both sides. Raters can expand the task brief and judging guidance, follow the task-specific instructions, and inspect the two artifacts side by side or at full size. Four response buttons record a preference for A or B, a tie, or failure of both artifacts; an optional comment records the reason for the judgment.
Figure 24. VisualBench’s blinded evaluation interface showing two Blender deliverables, task-specific instructions, and rating controls.
Detailed VisualBench results
| Model | L0 | L1 | L2 | L3: Independent review | |||
| 5-8 | System | Edit/User | Early | Changes | |||
| + visual | Trajectory | ||||||
| + visual | |||||||
| Qwen3.7-Max | |||||||
| Qwen3.8-Max | |||||||
| GLM-5.2 | |||||||
| DeepSeek V4-Pro | |||||||
| DeepSeek V4-Flash | |||||||
| Kimi-K2.7-Code | |||||||
| MiniMax-M2.5 | |||||||
| All pairs |
Table 12. VisualBench net preference (pp) across all evaluated designs and models. “+ visual” denotes required visual inspection.
L0 results. The system verification instruction yields a net preference of points over the baseline, as shown in Table 12. DeepSeek V4-Flash and Qwen3.7-Max benefit ( and points), while DeepSeek V4-Pro, GLM-5.2, and Kimi-K2.7-Code decline (, , and ). Initial guidance therefore does not provide a general improvement on visual tasks.
L1 results. After-edit reminders with the user message role yield points of net preference, as shown in Table 12. MiniMax-M2.5 gains points, whereas GLM-5.2 and Qwen3.7-Max each lose points.
L2 results. Early user rechecking yields a small positive net preference of points, as shown in Table 12. GLM-5.2 and DeepSeek V4-Pro gain and points, while DeepSeek V4-Flash and Qwen3.7-Max decline by and points. These comparisons suggest a modest benefit from reopening work, with substantial variation across models.
L3 results. All four review designs have positive net preference, ranging from to points, as shown in Table 12. Changes-based review with required visual inspection performs best at points, compared with points without required visual inspection. Trajectory-based review improves from to points with required visual inspection. Changes-based review therefore receives higher net preference in both comparisons.
Case study
Overview of the paired trajectories
We examine ten Terminal-Bench cases across the four verification layers, each paired with a baseline run of the same task and model, as shown in Table 13. Each case has a full-page paired trajectory with tool inputs, returned evidence, harness interventions, and final grading.
| Layer | Successful verification run | Failed verification run |
| L0 | C1: re-reading an edge-orientation rule | C2: endpoint checks, failed integration |
| L1 | C3: deployment with live HTTP checks | C4: clean compile, invalid substitutions; C5: output equality without sufficient speedup |
| L2 | C6: reopened checks reveal an order assumption | C7: state changes during repeated testing |
| L3 | C8: counterexample followed by repair; C9: a boundary test guides numeric repair | C10: a diagnosis before the run deadline |
Table 13. Selected cases spanning all four layers; success and failure refer to final grading.
Figure 25. Case 1 (L0): the baseline retains reversed edges, while the instructed run revisits the orientation rule and corrects the saved CSV.
Figure 26. Case 2 (L0): the baseline resets branch state, while the instructed run deletes and recreates the repository and hook before a failing final integration test.
Figure 27. Case 3 (L1): the reminded run completes deployment and live checks, while the baseline stops with a plan.
Figure 28. Case 4 (L1): compilation succeeds while a constraint on permitted edits remains unsatisfied.
Figure 29. Case 5 (L1): DeepSeek V4-Flash verifies output equality but misses the runtime requirement on query-optimize.
Figure 30. Case 6 (L2): renewed checking reveals that dates before an IP address are missed, and the agent repairs the regex before passing grading.
Figure 31. Case 7 (L2): state-changing tests follow a completion gate, and the final artifact fails grading.
Figure 32. Case 8 (L3): an executed critic counterexample is followed by debugging and a correction to the saved regex.
Figure 33. Case 9 (L3): the critic exposes an unsigned-field mismatch, and the agent repairs the numeric formatting before passing grading.
Figure 34. Case 10 (L3): the critic confirms a cancellation-cleanup defect, but the run times out without a completed post-review repair.
Verification instructions and execution rules
We reproduce the intervention templates and the rules that place them in the conversation. Prompt wording comes from the harness implementation; line wrapping and dash typography are normalized for typesetting. Braced fields such as {detail} are filled at runtime. The critic prompts are presented as an opening, a strategy-specific first step, and a shared remainder, so the four complete prompts can be reconstructed without repeating identical text.
L0: initial instructions
The verification instructions below are appended to the system prompt or the user’s initial task request.
Verification instructions
L1: execution-time reminders
Periodic reminders follow every third turn after the first edit; after-edit reminders follow each edit. Both stop at four. After tool results, reminders with the system role include the marker below; those with the user role contain only the shared body.
Marker for the system role
Shared reminder body
L2: completion gates
A turn without a tool call triggers the gate. Each single-pass condition sends one message and accepts the next stop. The automated designs use the user message role with the name system-reminder; the System design of Run and check uses the system message role. The User designs use the user message role without this marker. Early-trigger variants also fire at the next turn boundary after 80% of the task’s time limit if the agent has not stopped.
Inspect changes (automated)
Run and check (automated or system)
Recheck before finishing (user)
Reject completion (automated)
Reject completion (user)
L3: independent review
The critic receives the review instructions in a system message. A separate user message contains the task and changes; trajectory conditions also include the agent’s reasoning, messages, and actions. Each critic starts in a fresh context and can inspect the live sandbox. The standard single-pass design ends on approval; an objection returns findings to the agent, whose next delivery is accepted without another review.
Prompt assembly. Choose the opening for the design’s strategy and context, append Work in THREE steps:, then the matching first step and the shared steps below. The common remainder includes the non-mutation rule and the JSON output format.
Task-first opening: changes
Task-first opening: trajectory
Claim-guided opening: changes
Claim-guided opening: trajectory
Task-first step 1
Claim-guided step 1
Shared steps 2–3 and verdict format
Feedback after review. The agent receives an objection as a user message using the template below. The detail field contains unmet requirements and, where available, the critic’s feedback.
Feedback after an objection
Required visual inspection on VisualBench. The visual review conditions use the Claim-guided strategy with Changes or Trajectory context. Required-inspection variants enable the critic’s viewing tool and append the following two clauses; the second accompanies temporal capture support.
Required visual inspection
Temporal inspection for moving artifacts
Review depth and width
The TB scaling sweep uses claim-guided review with changes. Depth allows up to critic rounds, subject to the remaining budget. Subsequent rounds receive the critic’s prior checklist and feedback.
Review width. Width uses critics with separate contexts on the same delivery. The implementation runs the reviews sequentially in the shared sandbox; critics do not receive one another’s assessments. Any returned objection sends the work back to the agent, with dissenting findings grouped by critic. Acceptance requires no returned objection. The width sweep uses one panel round, so an agent’s subsequent revision is not reviewed again.
Prompts for additional review rounds
Prior-review context for subsequent critic rounds
Continuation after an objection
References
- [1]Madaan, A., Tandon, N., Gupta, P., Hallinan, S., Gao, L., Wiegreffe, S., Alon, U., Dziri, N., Prabhumoye, S., Yang, Y., Gupta, S., Majumder, B. P., Hermann, K., Welleck, S., Yazdanbakhsh, A., & Clark, P. (2023). Self-Refine: Iterative Refinement with Self-Feedback. https://arxiv.org/abs/2303.17651
- [2]Shinn, N., Cassano, F., Berman, E., Gopinath, A., Narasimhan, K., & Yao, S. (2023). Reflexion: Language Agents with Verbal Reinforcement Learning. https://arxiv.org/abs/2303.11366
- [3]McAleese, N., Pokorny, R. M., Uribe, J. F. C., Nitishinskaya, E., Trebacz, M., & Leike, J. (2024). LLM Critics Help Catch LLM Bugs. https://arxiv.org/abs/2407.00215
- [4]Jimenez, C. E., Yang, J., Wettig, A., Yao, S., Pei, K., Press, O., & Narasimhan, K. (2023). SWE-bench: Can Language Models Resolve Real-World GitHub Issues?. https://arxiv.org/abs/2310.06770
- [5]Olausson, T. X., Inala, J. P., Wang, C., Gao, J., & Solar-Lezama, A. (2023). Is Self-Repair a Silver Bullet for Code Generation?. https://arxiv.org/abs/2306.09896
- [6]Huang, J., Chen, X., Mishra, S., Zheng, H. S., Yu, A. W., Song, X., & Zhou, D. (2023). Large Language Models Cannot Self-Correct Reasoning Yet. https://arxiv.org/abs/2310.01798
- [7]Merrill, M. A., Shaw, A. G., Carlini, N., Li, B., Raj, H., Bercovich, I., et al. (2026). Terminal-Bench: Benchmarking Agents on Hard, Realistic Tasks in Command Line Interfaces. https://arxiv.org/abs/2601.11868
- [8]Cobbe, K., Kosaraju, V., Bavarian, M., Chen, M., Jun, H., Kaiser, L., Plappert, M., Tworek, J., Hilton, J., Nakano, R., Hesse, C., & Schulman, J. (2021). Training Verifiers to Solve Math Word Problems. https://arxiv.org/abs/2110.14168
- [9]Lightman, H., Kosaraju, V., Burda, Y., Edwards, H., Baker, B., Lee, T., Leike, J., Schulman, J., Sutskever, I., & Cobbe, K. (2023). Let's Verify Step by Step. https://arxiv.org/abs/2305.20050
- [10]OpenAI. (2024). Introducing SWE-bench Verified. https://openai.com/index/introducing-swe-bench-verified/openai.com/index/introducing-swe-bench-verified
- [11]Gou, Z., Shao, Z., Gong, Y., Shen, Y., Yang, Y., Duan, N., & Chen, W. (2023). CRITIC: Large Language Models Can Self-Correct with Tool-Interactive Critiquing. https://arxiv.org/abs/2305.11738
- [12]Chen, X., Lin, M., Schärli, N., & Zhou, D. (2023). Teaching Large Language Models to Self-Debug. https://arxiv.org/abs/2304.05128
- [13]Kamoi, R., Zhang, Y., Zhang, N., Han, J., & Zhang, R. (2024). When Can LLMs Actually Correct Their Own Mistakes? A Critical Survey of Self-Correction of LLMs. https://arxiv.org/abs/2406.01297
- [14]Kumar, A., Zhuang, V., Agarwal, R., Su, Y., Co-Reyes, J. D., Singh, A., Baumli, K., Iqbal, S., Bishop, C., Roelofs, R., Zhang, L. M., McKinney, K., Shrivastava, D., Paduraru, C., Tucker, G., Precup, D., Behbahani, F., & Faust, A. (2024). Training Language Models to Self-Correct via Reinforcement Learning. https://arxiv.org/abs/2409.12917
- [15]Huang, D., Zhang, J. M., Luck, M., Bu, Q., Qing, Y., & Cui, H. (2023). AgentCoder: Multi-Agent-based Code Generation with Iterative Testing and Optimisation. https://arxiv.org/abs/2312.13010
- [16]Tang, X., Kim, K., Song, Y., Lothritz, C., Li, B., Ezzini, S., Tian, H., Klein, J., & Bissyande, T. F. (2024). CodeAgent: Autonomous Communicative Agents for Code Review. https://arxiv.org/abs/2402.02172
- [17]Qiu, E. S., & Gill, J. (2026). Adversarial Review: Structured Disagreement for Grounded Agentic Code Review. https://arxiv.org/abs/2608.18167
- [18]Yang, J., Jimenez, C. E., Wettig, A., Lieret, K., Yao, S., Narasimhan, K., & Press, O. (2024). SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering. https://arxiv.org/abs/2405.15793
- [19]Xia, C. S., Deng, Y., Dunn, S., & Zhang, L. (2024). Agentless: Demystifying LLM-based Software Engineering Agents. https://arxiv.org/abs/2407.01489
- [20]Zhu, K., Li, H., Wu, S., Xing, T., Ma, D., Tang, X., Liu, M., Yang, J., Liu, J., Jiang, Y. E., Zhang, C., Lin, C., Wang, J., Zhang, G., & Zhou, W. (2025). Scaling Test-time Compute for LLM Agents. https://arxiv.org/abs/2506.12928
- [21]Kim, J., Yang, W., Niu, K., Zhang, H., Zhu, Y., Helenowski, E., Silva, R., Chen, Z., Iyer, S., Zaheer, M., Fried, D., Hajishirzi, H., Arora, S., Synnaeve, G., Salakhutdinov, R., & Goyal, A. (2026). Scaling Test-Time Compute for Agentic Coding. https://arxiv.org/abs/2604.16529
- [22]Yao, S., Zhao, J., Yu, D., Du, N., Shafran, I., Narasimhan, K., & Cao, Y. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. https://arxiv.org/abs/2210.03629
- [23]Wang, X., Li, B., Song, Y., Xu, F. F., Tang, X., Zhuge, M., Pan, J., Song, Y., Li, B., Singh, J., Tran, H. H., Li, F., Ma, R., Zheng, M., Qian, B., Shao, Y., Muennighoff, N., Zhang, Y., Hui, B., … Neubig, G. (2024). OpenHands: An Open Platform for AI Software Developers as Generalist Agents. https://arxiv.org/abs/2407.16741
- [24]Anthropic. (2026). How Claude Code works. In Claude Code documentation. https://code.claude.com/docs/en/how-claude-code-workscode.claude.com/docs/en/how-claude-code-works
- [25]OpenAI. (2026). Codex CLI. In Official Codex documentation. https://learn.chatgpt.com/docs/codex/clilearn.chatgpt.com/docs/codex/cli
- [26]Google. (2026). Gemini CLI core. In Gemini CLI documentation. https://geminicli.com/docs/core/geminicli.com/docs/core
- [27]Bolin, M. (2026). Unrolling the Codex agent loop. In OpenAI Engineering. https://openai.com/index/unrolling-the-codex-agent-loop/openai.com/index/unrolling-the-codex-agent-loop
- [28]Lopopolo, R. (2026). Harness engineering: leveraging Codex in an agent-first world. In OpenAI Engineering. https://openai.com/index/harness-engineering/openai.com/index/harness-engineering
- [29]Z.ai. (2026). GLM-5.2. In Official model card. https://huggingface.co/zai-org/GLM-5.2huggingface.co/zai-org/GLM-5.2
- [30]Moonshot AI. (2026). Kimi K2.7 Code. In Kimi Code release notes. https://www.kimi.com/code/docs/en/kimi-code/whats-new.html#kimi-k2-7-code-june-12-2026kimi.com/code/docs/en/kimi-code/whats-new.html#kimi-k2-7-code-june-12-2026
- [31]MiniMax. (2026). MiniMax M2.5: Built for Real-World Productivity. In Official model announcement. https://www.minimax.io/news/minimax-m25minimax.io/news/minimax-m25
- [32]DeepSeek-AI, et al. (2026). DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence. https://arxiv.org/abs/2606.19348
- [33]Wang, P., Li, L., Shao, Z., Xu, R., Dai, D., Li, Y., Chen, D., Wu, Y., & Sui, Z. (2024). Math-Shepherd: Verify and Reinforce LLMs Step-by-step without Human Annotations. Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 9426–9439. https://doi.org/10.18653/v1/2024.acl-long.510
- [34]Qu, Y., Zhang, T., Garg, N., & Kumar, A. (2024). Recursive Introspection: Teaching Language Model Agents How to Self-Improve. https://arxiv.org/abs/2407.18219
- [35]Harbor Framework Team. (2026). Harbor: A framework for evaluating and optimizing agents and models in container environments. https://doi.org/10.5281/ZENODO.20953922
- [36]E2B. (2026). E2B Documentation. In Documentation version accessed September 19, 2026. https://docs.e2b.dev/docs.e2b.dev
- [37]Alibaba Cloud. (2026). Model Studio Model Pricing. In Alibaba Cloud Model Studio documentation. https://help.aliyun.com/zh/model-studio/model-pricinghelp.aliyun.com/zh/model-studio/model-pricing
- [38]Alibaba Cloud. (2026). Context Cache. In Alibaba Cloud Model Studio documentation. https://help.aliyun.com/zh/model-studio/context-cachehelp.aliyun.com/zh/model-studio/context-cache
- [39]Anthropic. (2026). Hooks reference. In Claude Code documentation. https://code.claude.com/docs/en/hookscode.claude.com/docs/en/hooks
- [40]Qwen Team. (2026). Qwen3.7: The Agent Frontier. https://qwen.ai/blog?id=qwen3.7qwen.ai/blog?id=qwen3.7
- [41]Qwen Team. (2026). Qwen3.8-Max: A New Bar for Coding and Cowork. https://qwen.ai/blog?id=qwen3.8qwen.ai/blog?id=qwen3.8

































