LoopArena: Benchmarking Models as Runtime Controllers for Loop Engineering
Organizations: DreamX Team, Alibaba Group · Beijing University of Posts and Telecommunications · UNSW Sydney; Data61, CSIRO
Abstract
Loop Engineering is emerging as a practice for organizing development work around coding agents. Instead of writing each prompt by hand, practitioners design loops that monitor progress, assign work, run checks, and decide what the agent should do next. Even with a capable coding agent, a loop may trust a stale progress note, skip needed verification, spend its budget in the wrong direction, or stop before the task is safe to submit. Yet the final outcome of one end-to-end run cannot tell whether success or failure reflects the loop's guidance or the coding agent's ability to carry out the task. We introduce LoopArena, a benchmark for evaluating how well one model can guide a separate coding agent through a long-running task. The model under evaluation is the Controller: after each coding round, it receives a structured summary of the run and instructs a separate, fixed coding agent, the Worker, on what to do or verify next, or decides whether to stop. LoopArena evaluates this ability in three complementary settings that differ in execution scope and cost. Type I consists of 160 low-cost control questions; its execution cost is incurred once during benchmark construction, so each new Controller is evaluated through a single four-way choice with no code execution. Type II evaluates Controller guidance on 80 selected task slices, while Type III evaluates the corresponding 80 full tasks from their original states. On full tasks, the best observed Strict Success Rate is 36.25%, leaving substantial room for improvement in long-horizon loop control. Across Controllers, the paired reduction in estimated inference cost averages 60.6%, and Type II produces a positively correlated ordering under the main Core criterion (Spearman's rho = 0.7353). We release the benchmark data and evaluation code at https://github.com/AMAP-ML/LoopArena.
Figures & tables
| Instances | Per-run statistics | |||
|---|---|---|---|---|
| Setting | Total | By source | Worker turns | Control cycles |
| Type I | 160 | 40 / 53 / 67 | — | — |
| Type II | 80 | 21 / 29 / 30 | 86.61–145.30 | 3.55–5.42 |
| Type III | 80 | 21 / 29 / 30 | 189.41–355.94 | 8.16–13.45 |
| Type I | Type II (task slice) | Type III (full task) | |||
| Method | Contract Acc. (%) | SSR (%) | Est. cost (\downarrow$ | SSR (%) | Est. cost (\downarrow$ |
| Reference policies | |||||
| No control | — | 49.17 | 1.62 | 27.50 | 2.61 |
| Fixed control | — | 55.00 | 5.62 | 31.25 | 9.47 |
| Controller models | |||||
| Qwen3.6-35B-A3B | 43.125 | 55.83 | 4.21 | 33.75 | 11.58 |
| Controller | SSR (%) | Worker turns | Controller cost ($/run) | Total cost ($/run) |
|---|---|---|---|---|
| Qwen3.6-35B-A3B | 33.75 | 224.36 | 0.20 | 11.58 |
| Qwen3.7-Plus | 34.17 | 243.33 | 0.23 | 12.69 |
| DeepSeek-V4-Flash-0731 | 28.33 | 330.58 | 0.15 | 32.66 |
| GLM 5.2 | 24.17 | 189.41 | 0.81 | 11.97 |
| GPT-5.5 | 36.25 | 355.94 | 6.18 | 34.68 |
| Claude Opus 4.8 | 33.75 | 324.09 | 7.16 | 20.63 |
| Candidate | Next instruction | Label |
|---|---|---|
| A | Remove a dependency required by a newly supported Django configuration. | Incorrect |
| B | Remove a dependency still used by the active latest-version environment. | Incorrect |
| C | Keep the unused drf39 dependency and inspect the matrix again. | Incorrect |
| D | Remove the orphaned drf39 dependency while preserving active configurations. | Correct |
| Setting | Check | Requirement |
|---|---|---|
| All | task binding | task text, starting workspace, and evaluator refer to the same frozen source instance |
| All | solution leakage | model-visible inputs exclude official solution code, private scoring output, and later trajectory events |
| Type I | answer stability | the two predeclared replay schedules identify the same unique winner |
| Type I | post-freeze audit | reviewers assess clarity, candidate plausibility, and leakage without changing the replay-defined answer |
| Type II | task-slice validity | the prepared starting workspace fails at least one selected-stage check, while the source-provided completed state passes all requirements through that stage |
| Type II/III | evaluator validity | the frozen evaluator distinguishes a completed source task from an incomplete state |
| Controller | Type I inference interface |
|---|---|
| Qwen3.6-35B-A3B | API; temperature 0; maximum 20,480 output tokens |
| Qwen3.7-Plus | API; temperature 0; maximum 20,480 output tokens |
| DeepSeek-V4-Flash-0731 | API; temperature 0; maximum 20,480 output tokens |
| GLM 5.2 | API; temperature 0; maximum 20,480 output tokens |
| GPT-5.5 | API ( gpt-5.5-0424-global ); provider-default thinking; no temperature or seed; maximum 20,480 output tokens |
| Claude Opus 4.8 | API ( claude-opus-4-8 ); provider-default thinking; no temperature or seed; maximum 20,480 output tokens |
| Quantity | Value or reporting rule |
|---|---|
| Type I panel | 160 questions; one response per Controller and question |
| Type II panel | 80 task slices paired with Type III |
| Type III panel | 80 unique full tasks |
| Executable repeats | separate runs for every Controller, reference policy, and task |
| Reference reuse | one no-control set and one fixed-control set per task and Worker configuration, shared across Controllers |
| Primary executable score | Strict Success Rate |
| Controller | Correct | Accuracy (%) | Invalid (%) | Est. cost ($/160 questions) |
|---|---|---|---|---|
| Qwen3.6-35B-A3B | 69/160 | 43.125 | 0.000 | 1.57 |
| Qwen3.7-Plus | 97/160 | 60.625 | 0.000 | 1.45 |
| DeepSeek-V4-Flash-0731 | 73/160 | 45.625 | 0.625 | 0.56 |
| GLM 5.2 | 87/160 | 54.375 | 1.875 | 6.81 |
| GPT-5.5 | 99/160 | 61.875 | 0.000 | 21.67 |
| Claude Opus 4.8 | 90/160 | 56.250 | 0.000 | 30.56 |
| Controller | SCBench (40) | BeyondSWE (53) | LoopsBench (67) |
|---|---|---|---|
| Qwen3.6-35B-A3B | 18/40 (45.00) | 32/53 (60.38) | 19/67 (28.36) |
| Qwen3.7-Plus | 33/40 (82.50) | 41/53 (77.36) | 23/67 (34.33) |
| DeepSeek-V4-Flash-0731 | 21/40 (52.50) | 32/53 (60.38) | 20/67 (29.85) |
| GLM 5.2 | 29/40 (72.50) | 37/53 (69.81) | 21/67 (31.34) |
| GPT-5.5 | 35/40 (87.50) | 46/53 (86.79) | 18/67 (26.87) |
| Claude Opus 4.8 | 29/40 (72.50) | 40/53 (75.47) | 21/67 (31.34) |
| Model | Input tokens per call | Input price ($/1M tokens) | Output price ($/1M tokens) |
|---|---|---|---|
| Qwen3.6-35B-A3B | all supported | 0.2652 | 1.5911 |
| Qwen3.7-Plus | up to 256K | 0.2946 | 1.1786 |
| 256K–1M | 0.8839 | 3.5358 | |
| DeepSeek-V4-Flash-0731 | all supported | 0.1473 | 0.2946 |
| GLM 5.2 | all supported | 1.1786 | 4.1250 |
| GPT-5.5 | up to 272K | 5.0000 | 30.0000 |
| Estimated cost ($/run) | Execution length | |||||
| Worker | Reporter | Controller | Total | Worker turns | Control cycles | |
| Type II (task slice) | ||||||
| No control | 1.62 | — | — | 1.62 | 68.50 | — |
| Fixed control | 5.62 | — | — | 5.62 | 105.82 | 2.85 |
| Qwen3.6-35B-A3B | 3.86 | 0.26 | 0.10 | 4.21 | 103.37 | 4.24 |
| Qwen3.7-Plus | 5.62 | 0.31 | 0.10 | 6.04 | 114.56 | 4.15 |
| Type II | Type III | |||
|---|---|---|---|---|
| Controller | Qwen | DeepSeek | Qwen | DeepSeek |
| Qwen3.6-35B-A3B | 36/60 | 34/60 | 28/60 | 20/60 |
| Qwen3.7-Plus | 33/60 | 36/60 | 26/60 | 23/60 |
| DeepSeek-V4-Flash-0731 | 26/60 | 27/60 | 19/60 | 15/60 |
| GLM 5.2 | 29/60 | 31/60 | 19/60 | 12/60 |
| Analysis | Information retained | Accuracy (%) |
|---|---|---|
| Uniform random | none | 25.00 |
| Majority position | answer position only | 30.625 |
| Prefer advance | action labels only | 24.271 |
| Prefer verify | action labels only | 28.490 |
| Prefer stop | action labels only | 22.813 |
| Shortest candidate | serialized candidate length | 23.125 |
| Method | Type II tasks 0/3, 1/3, 2/3, 3/3 | Type III tasks 0/3, 1/3, 2/3, 3/3 |
|---|---|---|
| No control | 29, 10, 15, 26 | 51, 6, 9, 14 |
| Fixed control | 27, 6, 15, 32 | 51, 3, 6, 20 |
| Qwen3.6-35B-A3B | 26, 7, 14, 33 | 45, 8, 8, 19 |
| Qwen3.7-Plus | 28, 5, 10, 37 | 46, 9, 2, 23 |
| DeepSeek-V4-Flash-0731 | 29, 10, 11, 30 | 48, 10, 8, 14 |
| GLM 5.2 | 30, 18, 17, 15 | 53, 5, 13, 9 |
| Method | Type II SCBench | Type II BeyondSWE | Type II LoopsBench | Type III SCBench | Type III BeyondSWE | Type III LoopsBench |
|---|---|---|---|---|---|---|
| No control | 34/63 | 39/87 | 45/90 | 5/63 | 21/87 | 40/90 |
| Fixed control | 43/63 | 37/87 | 52/90 | 3/63 | 19/87 | 53/90 |
| Qwen3.6-35B-A3B | 38/63 | 40/87 | 56/90 | 5/63 | 20/87 | 56/90 |
| Qwen3.7-Plus | 38/63 | 39/87 | 59/90 | 6/63 | 19/87 | 57/90 |
| DeepSeek-V4-Flash-0731 | 36/63 | 36/87 | 50/90 | 6/63 | 19/87 | 43/90 |
| GLM 5.2 | 18/63 | 36/87 | 43/90 | 0/63 | 17/87 | 41/90 |
| Evaluation setting | Model output | Execution | Evaluated object |
|---|---|---|---|
| Final-state coding benchmark | patch or repository state | evaluated coding stack | end-to-end coding ability |
| Interactive agent benchmark | action trajectory | evaluated agent stack | agent plus scaffold |
| Process or critique benchmark | score, label, or critique | usually no fixed downstream executor | local step quality |
| Loop-system benchmark | loop or harness configuration | coding model inside each submitted system | complete loop system |
| LoopArena Type I | one candidate instruction | no Worker execution during evaluation | single control decision |
| LoopArena Type II | repeated Loop Contracts | fixed Worker on a selected task slice | runtime loop control on a selected task slice |
| Component | Prompt composition |
|---|---|
| Worker | The shared Worker system prompt, the task instruction, and either the bootstrap instruction or a Controller-derived continuation. |
| Reporter | The Reporter system prompt and a reporting request containing the task instruction and quoted Worker conversation. |
| Controller | The Controller system prompt followed by successive rendered Evidence Packets in one persistent Controller conversation. |
| Type I | The Controller decision policy with a selection-specific instruction, followed by one rendered Packet, four candidate decisions, and the answer instruction. |
| Reference policies | No control uses the shared Worker prompt with an autonomous-start instruction. Fixed control uses the shared Worker prompt and a deterministic continuation at each handoff; it invokes neither a Reporter nor a model Controller. |
LLM Agent Orchestration
Large language model agent orchestration coordinates models, tools, and workflows to complete complex tasks reliably and efficiently.
See all 463 papers