Blolabel
← Notes
event 8 min read

PrefDiag-Bench's best model clears 47.17% of Process preferences even with the profile handed to it directly; phoneshell has zero of its 80 tasks built to need one

The agent was not asked to infer what the user wanted. It was handed a written profile and still failed more than half the time on one preference type. The bottleneck is not reasoning about preferences, it is finding the right fact and knowing when it applies. phoneshell has no task that creates either problem.

A benchmark posted four days ago, "Diagnosing Personalization Failures in Mobile GUI Agents" (PrefDiag-Bench, arXiv:2610.30573, Zhixin Lin, Dongliang Xu, Jungang Li, Shidong Pan, Jun Feng, Yanbin Sun, Jing Li, Liang Liu and Yue Yao, submitted 22 October 2026), runs 1,664 stage-wise probes across five preference types against 11 agent systems, under both an explicit user profile and a behavioral memory log the agent has to read preferences out of itself. The headline number is specific and uncomfortable: Seed-2.0-Pro, the best-performing model the paper reports, clears only 47.17% of Process-type preferences even when the profile is handed to it directly rather than inferred. Agents complete non-personalized tasks at comparatively high rates; the moment a task requires a preference to shape how a multi-step action gets carried out, performance drops hard, and Ranking and Process preferences are the two hardest categories.

Abstract technical illustration on a dark background of a hand placing a labelled document directly into a mechanism, with the mechanism's output gauge still reading below half scale, cool blues and teals with one amber accent on the gauge needle

What changed, and when

PrefDiag-Bench's design isolates the question that matters: is a personalization failure a reasoning failure, or a plumbing failure. The paper's own diagnosis names two bottlenecks, selecting the relevant evidence out of a user's history, and recognizing when a given preference should actually apply to the current step, and its own controlled intervention supports that reading over a reasoning-deficit story: supplying the relevant evidence directly, rather than making the agent retrieve it, raises end-to-end task success by up to 7.06 points. That is a retrieval-and-timing problem dressed up as a capability problem in every prior benchmark that only measured overall task success rather than diagnosing the stage at which execution actually broke.

phoneshell's 80 tasks were never built to have this problem, in either direction. Every task starts from a deterministic setup state, carries one sentence of instruction, and is graded by reading the device afterward; covered here on 24 October, phoneshell has no persona, no multi-app memory category and no cross-app identity in its schema at all, the same structural gap iOSWorld's invented identity Jordan Avery exposed from a different angle. PrefDiag-Bench adds a sharper version of that same gap: not just "no persona," but no preference field, no behavioral log, and no mechanism by which an instruction could even specify "the way I usually do this." Of the five preference types PrefDiag-Bench diagnoses, Content, Ranking, Process, Timing and whatever the fifth category contributes to its 1,664 probes, phoneshell's current task definitions have an equivalent for exactly zero.

What the benchmark measures against what phoneshell has to measure it with

dimensionPrefDiag-Benchphoneshellsource
preference types diagnosed5, including Ranking and Process (the two hardest)0; no preference field exists in the task schemaarXiv:2610.30573 abstract; README.md task spec
probes / scored items1,664 stage-wise probes80 tasks, 153 assertions, none testing preference applicationarXiv:2610.30573 abstract; README.md
agent systems evaluated11, under explicit profile and behavioral log conditions6 frontier models on the public board, none tested for preference handlingarXiv:2610.30573 abstract; results.json
best reported score, hardest category, easiest conditionSeed-2.0-Pro: 47.17% on Process preferences, explicit profile suppliednot applicable; no Process-preference task exists to scorearXiv:2610.30573 abstract
diagnosed bottleneckevidence selection from user history, and timing of when a preference appliesno equivalent failure mode is possible, because no task carries a preference to select or timearXiv:2610.30573 abstract
effect of removing the retrieval step+7.06 points end-to-end when relevant evidence is supplied directlynot applicablearXiv:2610.30573 abstract
What moves the Process-preference score, and what phoneshell has to move 47.17% Seed-2.0-Pro, Process explicit profile supplied ≤54.23% + evidence intervention up to +7.06 points 0 of 5 types phoneshell preference tasks no field exists to score Source: arXiv:2610.30573 abstract; phoneshell README.md task schema, read 26 October 2026.
Even with the fix the paper itself identifies, the best reported score on the hardest category tops out in the mid-fifties. phoneshell is not failing this test. It has never taken it.
A pipeline with a preference stage, and one without PrefDiag-Bench: diagnose each stage profile orbehavioral log select relevantevidence (bottleneck 1) decide if it appliesnow (bottleneck 2) execute action47.17% at best phoneshell: no preference stage exists deterministicsetup state one sentence ofinstruction, no profile device-state checkspass or fail only Source: arXiv:2610.30573 abstract; phoneshell README.md task schema.
PrefDiag-Bench can name which of two stages failed. phoneshell's pipeline has no corresponding stages to fail, because it never stores or retrieves a preference in the first place.

What it means for someone building or scoring a personalized phone agent

The useful finding here is not "agents are bad at preferences," which was already assumed by anyone who has watched one. It is that the badness is disproportionately a plumbing problem: an agent with the preference written down in front of it, no inference required, still gets the hardest category wrong more than half the time, and a large chunk of the gap closes when someone else does the evidence retrieval for it. That reframes where engineering effort should go for anyone building a personalization layer onto a GUI agent. The expensive-looking problem, teaching a model to reason about what a user probably wants, is smaller than the cheap-looking problem of building reliable retrieval over a behavioral log and a trigger for when a stored preference is actually relevant to the step in front of the agent right now.

For phoneshell, the finding does not land as a failure, because the benchmark measures a capability phoneshell was never built to have. Every one of its 80 tasks is a closed, single-session, single-instruction unit, by design, which is exactly what makes its device-state grading reproducible: there is no history to misread and no stored preference to misapply, because there is no history or stored preference at all. That is a real limitation relative to what PrefDiag-Bench diagnoses, not a different, unrelated design choice. A phone agent that has to respect "the way I usually book a flight" needs a memory substrate and a retrieval step before the question PrefDiag-Bench asks becomes answerable one way or the other, and phoneshell's current schema has neither.

Check it yourself

# PrefDiag-Bench's abstract and probe design
curl -s https://arxiv.org/abs/2610.30573

git clone https://github.com/Blomega/phoneshell && cd phoneshell
grep -n "persona\|profile\|preference\|memory" environments/*.yaml   # expect zero matches
cat README.md | sed -n '98,133p'   # the task schema: setup, instruction, checks, nothing else

What would prove this wrong

Sources

  1. Lin, Xu, Li, Pan, Feng, Sun, Li, Liu, Yao, "Diagnosing Personalization Failures in Mobile GUI Agents," arXiv:2610.30573, v1, 22 October 2026.
  2. Blolabel, iOSWorld ties 133 tasks to one invented identity, Jordan Avery, across 26 apps, 24 October 2026.
  3. Blolabel, README.md, "The benchmark" section, read 26 October 2026.