Blolabel
← Notes
analysis 8 min read

Human review recovered up to 8.49 points WebArena-Lite's evaluator missed; phoneshell's 52 failed cross-model runs kept nothing a reviewer could check

Two papers this week treat the evaluator's verdict as a first draft. One audits it by hand, the other refuses to collapse outcome and progress into one number. phoneshell grades from device state precisely to avoid trusting the model, and that only holds if its own checks can be checked.

A human audit of WebArena-Lite, posted on 1 October 2026, found the automatic evaluator had rejected 9 to 14 of GPT-5.5's successes in each of four settings, between 15.5% and 24.6% of the true successes. phoneshell's two public cross-model rounds on an iPhone contain 52 failed runs. In 33 the model said it had succeeded, and 16 of those sit on two tasks where the right app was open and only the final check failed. We cannot say how many were checker misses, because phoneshell kept nothing from the end of any run that a person could look at.

Abstract technical illustration of a row of sealed opaque boxes, a few with faint light leaking from their seams, next to one open transparent box

What the WebArena-Lite audit found

Chengguang Gan, Zimeng He, Yoshihiro Tsujii, Ken-ichiro Kobayashi, Hiroki Itoh and Kotaro Funakoshi (arXiv:2610.01491) ran all 165 WebArena-Lite tasks under six conditions: GPT-5.5 with a memory-and-analysis module (MASM), with and without task guides, at 15 and 25 steps, plus an untrained Qwen3.5-9B. They kept the evaluator's verdict, then had reviewers look at every failure through the actions, before and after screenshots, URL changes and final response. Review recovered 47 successes over the four GPT-5.5 settings. The causes were ordinary: a correct answer in a format the rule rejected, a state change the final rule did not look for, a correct result followed by an invalid stop.

WebArena-Lite success before and after human review, GPT-5.5 evaluator after human review 0 10 20 30 40 50 success on 165 tasks (%) 29.70 35.15 MASM, 15 steps 29.70 36.97 Guide + MASM, 15 26.06 34.55 MASM, 25 steps 30.91 38.18 Guide + MASM, 25 Source: Gan et al., arXiv:2610.01491, Table 1.

The audit also tested the model's own account. Of 102 failures in the strongest setting, 18 claimed at least 80% completion in memory and 7 claimed 100%. Among the 40 that ran out of steps, the mean verified progress was 56.2% and none had verifiably finished. So review cut both ways: it found successes the evaluator missed, and it refused successes the agent asserted. Scroll oscillation was the largest single failure cause, 32 of 102.

MedImageOSWorld keeps outcome and progress apart

MedImageOSWorld (Long, Li, Xing, Yang and others; arXiv:2610.04800, 3 October 2026) runs agents on simulated CT, MR and ultrasound consoles and scores three things it never merges: success, workflow progress in quarters, and acquisition quality against hidden anatomy. Eleven open-weight agents reached 21.5 to 74.5 on progress and 3.0 to 25.0 on success. GPT-6 Sol and Claude Opus 5.5 reached about 34 success, with progress only 9 to 11 points above the best open model (85.5 and 83.4 against 74.5) but acquisition quality about 19 points higher (61.1 and 61.3 against 42.0). Its gates also check cause: on renal MR, Opus 5.5 restored full coverage in all 12 translation-defect cells and passed none, because it fixed the image through a setting other than the one at fault. In 360 CT recovery episodes from two models, no agent corrected the clipped range before closing the study.

ItemWebArena-Lite auditMedImageOSWorldphoneshell xv + xv2Source
Tasks / runs165 tasks x 6 conditions49 tasks, 13 agents80-task pool; 144 + 349 scored runs, 6 models2610.01491 Sec. 4; 2610.04800 Sec. 6.1; HF results
Headline scoreGPT-5.5 26.06% to 30.91% rawopen-weight SR 3.0 to 25.0; proprietary about 3482.6% (xv), 92.3% (xv2)Table 1; Fig. 3; HF results
Evaluator misses found9 to 14 per setting (+5.45 to +8.49 pts)not reportedcannot be measuredTable 1
Failed runs claiming success7 of 102 claim 100%; 0 of 40 verifiednot reported33 of 52Table 7; agent_said on the rig
Progress measureverified subgoals per stepworkflow stages, 0 to 1 in quartersnoneSec. 3; Sec. 5
State kept for reviewscreenshots, URLs, actions, memory, replyrecorded trajectoriescheck details, private 400-character replySec. 3; abstract; runner.py

phoneshell's 52 failures

The xv round (144 runs, 24 tasks, 6 models, 8 September 2026) and the xv2 round (349 runs, iPhone 14 Pro on iOS 26.3.1, 9 September) are on Hugging Face as blolabel/phoneshell-bench. Each task is graded by checks run against the phone after the agent stops: the foreground app, an element that must exist, or a regular expression over the text of the accessibility elements. We split the 52 failures by the model's final reply: 33 claimed success, 11 ran out of time or turns, 7 said they could not finish, 1 left no reply.

52 failed runs in xv and xv2, and what each one left behind 493 scored runs 6 models, 2 rounds 52 failed how the model ended 33 said it succeeded 11 ran out of time or turns 7 said it could not 1 no reply, no error split by keywords in agent_said, then read of the 33 claims 11 clock.timer.set 5 reminders.create app check passed in all 16; only the outcome check failed 2 reported 52 for (12 + 8) x 5 wrong on their face What a reviewer would have, per run kept: task_id, model, passed, turns, seconds, cost, and per check {kind, passed, detail} e.g. "pattern '0?[34]:\d\d|0?5:00' did not match", "'collect parcel' not found anywhere" kept privately: agent_said, the final reply, first 400 characters not kept: final screenshot, final accessibility tree, the actions taken, the step-by-step text the device has moved on; the run cannot be re-inspected Sources: huggingface.co/datasets/blolabel/phoneshell-bench results/xv.jsonl, xv2.jsonl; agent_said from the rig's copies; phoneshell bench/runner.py.

Two tasks hold half of the claims. On clock.timer.set, 11 of 12 runs failed across six models, every one with the Clock app in front and every reply describing a running five-minute timer, two quoting a countdown at 04:59. The check wants 0?[34]:\d\d|0?5:00 somewhere in the element text; the task file records that an earlier pattern had already failed a correct run, and the widened one still failed 11. On reminders.create in xv2, 5 of 6 models failed with Reminders in front and replies saying "collect parcel" had been added; one said the list count went from 7 to 8. These look like the WebArena-Lite pattern: a state the rule did not see. They could also be agents describing what they meant to do. The calculator replies show the second case is real: two runs reported 52 for (12 + 8) x 5.

If all 16 were checker misses, xv would read 86.8% instead of 82.6% and xv2 95.1% instead of 92.3%. That is an upper bound for two tasks, not a correction, and we cannot tighten it: the bench writes one result row per run, the runner never saves the final screenshot or accessibility tree, and the next task's setup changes the phone.

Three ways to score a run, and what each keeps for a second look WebArena-Lite audit evaluator score, kept as is + human review of before and after screenshots, URLs, actions, memory, final reply + first consequential error + verified progress per subgoal 47 successes recovered across 4 GPT-5.5 settings 165 tasks, arXiv:2610.01491 MedImageOSWorld success rate (SR) workflow progress (PR), 0, 0.25, 0.5, 0.75 or 1 acquisition quality (AQ) from hidden ground truth reported side by side, never merged open-weight SR 3.0 to 25.0, PR 21.5 to 74.5 49 tasks, arXiv:2610.04800 phoneshell bench checks read from the device: foreground app, element exists, regex over element text passed only if every check passes no stored final state no progress measure xv 82.6% (119 of 144) xv2 92.3% (322 of 349) 80 tasks, iPhone Sources: arXiv:2610.01491 Sec. 3 and Table 1; arXiv:2610.04800 Sec. 5 and 6.2; phoneshell bench/verify.py and public results.

What it means if you grade agents from device state

Check it yourself

What would prove this wrong

Our expectation is that at least half of the 16 same-task failures were checker misses. Test: rerun clock.timer.set and reminders.create 5 times each with two models, saving the final screenshot and element tree, and have a person grade every run from the saved state alone. If fewer than half of the runs the checks fail and the person passes appear, the checks were right and the agents were overclaiming, and we are wrong. We will publish the saved states and the grades by 31 December 2026, or say we did not run it.

Sources

  1. Gan, He, Tsujii, Kobayashi, Itoh, Funakoshi, Auditing Web Agent Evaluation on WebArena-Lite: Human Review of Outcomes and Trajectories, arXiv:2610.01491v1, 1 October 2026
  2. Long, Li, Xing, Yang et al., MedImageOSWorld: Benchmarking GUI Agents for Medical Image Consoles, arXiv:2610.04800v1, 3 October 2026
  3. blolabel/phoneshell-bench on Hugging Face: results/xv.jsonl and results/xv2.jsonl (last modified 9 September 2026)
  4. phoneshell source: bench/runner.py, bench/verify.py, environments/*.yaml (read 6 October 2026)
  5. Blolabel, earlier note: agents report success, the device disagrees