PSPA-Bench: A Personalized Benchmark for Smartphone GUI Agent
Organizations: Northwestern Polytechnical University · Tsinghua University · Peking University · Beijing Institute of Mathematical Sciences and Applications
Abstract
Smartphone GUI agents execute tasks by operating directly on app interfaces, offering a path to broad capability without deep system integration. However, real-world smartphone use is highly personalized: users adopt diverse workflows and preferences, challenging agents to deliver customized assistance rather than generic solutions. Existing GUI agent benchmarks cannot adequately capture this personalization dimension due to sparse user-specific data and the lack of fine-grained evaluation metrics. To address this gap, we present PSPA-Bench, the benchmark dedicated to evaluating personalization in smartphone GUI agents. PSPA-Bench comprises over 12,855 personalized instructions aligned with real-world user behaviors across 10 representative daily-use scenarios and 22 mobile apps, and introduces a structure-aware process evaluation method that measures agents' personalized capabilities at a fine-grained level. Through PSPA-Bench, we benchmark 11 state-of-the-art GUI agents. Results reveal that current methods perform poorly under personalized settings, with even the strongest agent achieving limited success. Our analysis further highlights three directions for advancing personalized GUI agents: (1) reasoning-oriented models consistently outperform general LLMs, (2) perception remains a simple yet critical capability, and (3) reflection and long-term memory mechanisms are key to improving adaptation. Together, these findings establish PSPA-Bench as a foundation for systematic study and future progress in personalized GUI agents.
Figures & tables
| Method | Perception | Reasoning | Memory | Evolution | Collaboration | ||||||
| Type | Name | Text | Vision | Planning | Reflection | Temporary | Persistent | Rules | Toolkits | Single | Multiple |
| LLM | Base | ✓ | ✓ | ✓ | |||||||
| +A11y | ✓ | ✓ | ✓ | ||||||||
| +A11y+SoM | ✓ | ✓ | ✓ | ✓ | |||||||
| +A11y+Thinking | ✓ | ✓ | ✓ | ✓ | |||||||
| General Agent Framework | ReAct | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
| Method | Setting: Clarity fixed at middle, varying complexity | |||||||||||
| Complexity: low | Complexity: middle | Complexity: high | ||||||||||
| APR | PPR | CT | CPT | APR | PPR | CT | CPT | APR | PPR | CT | CPT | |
| LLM-Base | 0.002 | 0 | 236.7 | 0.612 | 0.001 | 0 | 256.6 | 0.501 | 0.002 | 0 | 293.4 | 0.816 |
| +A11y | 0.625 | 0.586 | 176.7 | 0.056 | 0.431 | 0.449 | 189.0 | 0.038 | 0.364 | 0.356 | 229.3 | 0.062 |
| +A11y+SoM | 0.643 | 0.596 | 243.6 | 0.671 | 0.463 | 0.461 | 254.3 | 0.525 | 0.373 | 0.372 | 293.3 | 0.930 |
| +A11y+Thinking | 0.674 | 0.624 | 197.7 | 0.673 | 0.466 | 0.464 | 233.0 | 0.726 | 0.382 | 0.378 | 274.8 | 0.884 |
| Method | Setting (i): Clarity fixed at high, varying complexity | |||||||||||
| Complexity: low | Complexity: middle | Complexity: high | ||||||||||
| APR | PPR | CT | CPT | APR | PPR | CT | CPT | APR | PPR | CT | CPT | |
| LLM-Base | 0 | 0 | 9.28 | 0.20 | 0 | 0 | -17.68 | 0.73 | 0 | 0 | -19.18 | 0.94 |
| +A11y | 0.66 | -0.58 | -12.73 | -0.63 | -0.39 | 0.05 | -2.72 | 0.42 | 0.22 | -0.72 | -8.31 | -0.27 |
| +A11y+SoM | -0.09 | 0.57 | 12.01 | -0.03 | 0.18 | -0.91 | 4.30 | 0.66 | -0.87 | 0.90 | -18.63 | 0.62 |
| +A11y+Thinking | -0.39 | -0.80 | 7.37 | -0.12 | -0.76 | -0.01 | -18.62 | 0.82 | -0.48 | 0.33 | -7.53 | 0.04 |
Appendix figures & tables16 assets
Supplementary material from the paper’s appendix.
Appendix
| Type | Dataset & Benchmark | Environment with physical phones | Third-part apps | User profiles | User preferences | Task instructions | Difficulty dimensions | Fine-grained progress evaluation | Incremental evaluation |
| General GUI benchmark | AndroidArena | ✗ | ✗ | ✗ | ✗ | 221 | ✗ | ✓ | ✗ |
| LlamaTouch | ✗ | ✓ | ✗ | ✗ | 495 | Step length | ✗ | ✗ | |
| MobileAgentBench | ✗ | ✗ | ✗ | ✗ | 100 | Step length | ✗ | ✗ | |
| AndroidWorld | ✗ | ✗ | ✗ | ✗ | Step length | ✗ | ✗ | ||
| SPA-bench | ✓ | ✓ | ✗ | ✗ | 340 | Step length | ✗ | ✗ | |
| Personalized GUI benchmark | LearnGUI | ✗ | ✗ | ✗ | ✗ | 2353 | ✗ | ✗ | ✗ |
| Comparison (Pairwise) | Win-rate Ours | Win-rate Baseline | Tie (%) |
| Ours vs. Static | 72.5% | 24.1% | 3.4% |
| Ours vs. Random | 81.3% | 16.2% | 2.5% |
| Static vs. Random | 59.6% | 38.7% | 1.7% |
| Dimension | Immediate Objective | Long-term Objective |
| Performance | APR: | APR: |
| PPR: | PPR: | |
| Efficiency | CT: | CT: |
| CPT: | CPT: |
| Instruction Type | Acc. | Prec. | Rec. | F1 | |
| Fixed Instructions | 0.94 | 0.93 | 0.96 | 0.94 | 0.88 |
| Flexible Instructions | 0.91 | 0.90 | 0.93 | 0.91 | 0.83 |
| Overall | 0.93 | 0.92 | 0.95 | 0.93 | 0.86 |
| Clarity level | Complexity level | Template Examples (English) |
| High clarity | Low | 1. I want to search for {brand} {category} on {APP}, with prices between {price range} yuan. 2. Help me find a {brand} {category} on {APP}, with prices in the range of {price range} yuan. 3. Check {APP} for a {brand} {category}, keeping the price within {price range} yuan. |
| Medium | 1. I want to buy a {brand} {category} on {APP}, with prices between {price range} yuan, and stop at the product details page. 2. Help me find a {brand} {category} on {APP}, with prices in the range of {price range} yuan, and stay on the product details page. 3. Check {APP} for a {brand} {category}, with prices around {price range} yuan, and stay on the product details page. | |
| High | 1. I want to buy a {brand} {category} on {APP}, with prices between {price range} yuan, add the item to the cart, and finally stay on the cart page. 2. Help me find a {brand} {category} on {APP}, with prices around {price range} yuan, add it to the cart, and finally stay on the cart page. 3. Check {APP} for a {brand} {category}, within {price range} yuan, add it to the cart, and finally stay on the cart page. | |
| Medium clarity | Low | 1. Search {brand} {category} on {APP}, price about {price range}. 2. Help me find {brand} {category} in {APP}, budget {price range}. 3. Check {APP} for {brand} {category}, price around {price range}. |
| Medium | 1. Want to buy {brand} {category} on {APP}, price {price range}, just open the details page. 2. {APP}, find {brand} {category}, around {price range}, go to the details page. 3. Help me search {brand} {category} on {APP}, price {price range}, open the details page. | |
| High | 1. Buy {brand} {category} on {APP}, budget {price range}, add to cart and stay there. 2. {APP}, find {brand} {category}, price about {price range}, add to cart. 3. Help me add {brand} {category} ({price range}) in {APP} to the cart, and stay on the cart page. |
| Clarity level | Complexity level | Template Examples (English) |
| High clarity | Low | 1. I want to search for {singer} on {APP} and go to the singer’s homepage. 2. Help me search for {singer} on {APP} and enter the singer’s homepage. 3. Check {APP} for {singer} and click to open the singer’s homepage. |
| Medium | 1. I want to search for {singer} on {APP}, go to the singer’s homepage, and view the albums. 2. Help me find {singer} on {APP}, enter the singer’s homepage, and check the albums. 3. On {APP}, search for {singer}, open the singer’s homepage, then view the albums. | |
| High | 1. I want to search for {singer} on {APP}, open the singer’s homepage, check the albums, and select a song to play. 2. Help me find {singer} on {APP}, enter the singer’s homepage, view the albums, and then play a song. 3. On {APP}, search for {singer}, open the homepage, view the albums, and finally play a song. | |
| Medium clarity | Low | 1. Search {singer} on {APP}, go to homepage. 2. Help me find {singer} in {APP}, check homepage. 3. {APP} search {singer}, open homepage. |
| Medium | 1. Want to find {singer} on {APP}, check homepage and albums. 2. {APP} search {singer}, enter homepage, view albums. 3. Help me search for {singer} on {APP}, view albums in homepage. | |
| High | 1. Find {singer} on {APP}, view albums, select a song to play. 2. {APP} search {singer}, choose a song from album to listen. 3. Help me find {singer} on {APP}, select a song from album and play. |
| Clarity level | Complexity level | Template Examples (English) |
| High clarity | Low | 1. I want to search for {cuisine type} restaurants on {APP}, with an average spending between {price range} yuan. 2. Help me find a {cuisine type} restaurant on {APP}, with average spending in the range of {price range} yuan. 3. Check {APP} for {cuisine type} restaurants, priced between {price range} yuan. |
| Medium | 1. I want to search for {cuisine type} restaurants on {APP}, with an average spending between {price range} yuan, and stay on the restaurant details page. 2. Help me find a {cuisine type} restaurant on {APP}, with average spending in the range of {price range} yuan, and remain on the details page. 3. Check {APP} for {cuisine type} restaurants, priced between {price range} yuan, and stay on the details page. | |
| High | 1. I want to search for {cuisine type} restaurants on {APP}, with an average spending between {price range} yuan, enter the details page, and view all recommended dishes. 2. Help me find a {cuisine type} restaurant on {APP}, with average spending in the range of {price range} yuan, go to the details page, and view all recommended dishes. 3. Check {APP} for {cuisine type} restaurants, priced between {price range} yuan, enter the details page, and view all recommended dishes. | |
| Medium clarity | Low | 1. Search {cuisine type} on {APP}, around {price range}. 2. Help me find {cuisine type} in {APP}, budget {price range}. 3. Check {APP} for {cuisine type}, price about {price range}. |
| Medium | 1. Want to find {cuisine type} on {APP}, price between {price range}, open details page. 2. {APP} search {cuisine type}, in range {price range}, open details. 3. Help me search {cuisine type} on {APP}, price {price range}, view details. | |
| High | 1. Find {cuisine type} on {APP}, budget {price range}, check recommended dishes. 2. {APP} search {cuisine type}, price {price range}, view recommended dishes. 3. Help me find {cuisine type} ({price range}) on {APP}, view recommended dishes. |
GUI Agents
Graphical user interface (GUI) agents perceive and operate apps through screens, controls, and other software interfaces.
See all 172 papers