Not All Graphs Are Maps: A Task-Agnostic Exploration Framework for Mobile GUI Navigation
Organizations: Concordia University · Mila – Quebec AI Institute · McMaster University
Abstract
Modern mobile GUI agents can perceive visible screens and execute local actions, but they still lack persistent app-specific navigation knowledge: where functions live, which pages contain them, and which screens are equivalent across repeated visits. We introduce TAG-Nav, a Task-Agnostic Graph Navigation framework that wraps existing GUI-agent backbones with reusable destination memory. Offline exploration is distilled into compact records of app functions, target pages, and waypoint routes before any evaluated instruction is seen. When a future task's destination is covered, TAG-Nav retrieves the destination and provides route guidance without task-specific demonstrations. This separates mobile GUI destination navigation from full task completion: many tasks share the prefix of reaching the right page, while final actions may enter content, send data, make purchases, delete information, or change sensitive settings. To evaluate route finding without downstream execution confounds, we introduce DestBench, a navigation-only protocol that asks whether an agent reaches the correct pre-action destination screen. DestBench enables a controlled graph-memory study comparing no-memory agents with random, automated BFS, and clean graph memory. Graph-derived memory improves strict navigation success rate of UI-TARS-1.5-7B from 52.4% without graph memory to 58.3% with automated BFS memory, and improves Qwen-VL-Max success rate from 59.5% to 71.4% on the same conditions. Together, TAG-Nav and DestBench show that destination coverage and route cleanliness strongly shape graph-memory value, making graph quality a measured variable rather than an assumed benefit of exploration.
Figures & tables
| Systems | What is retrieved online | Actor |
|---|---|---|
| AutoDroid, AppAgent ( Wen et al., 2024 ; Zhang et al., 2025a ) | Per-element hints or app docs | No |
| KG-RAG, GUI-explorer ( Guan et al., 2025 ; Xie et al., 2025 ) | Trajectory pairs or current-screen cues | No |
| PG-Agent, GraphPilot ( Chen et al., 2025b ; Yu et al., 2026 ) | Page-graph guidelines or one-shot plans | No |
| TAG-Nav | Destination page + waypoint route | Yes |
| App | Tasks | Records | Hypernodes | Edges | Covered | |
|---|---|---|---|---|---|---|
| Google Maps | 24 | 415 | 364 | 1,192 | 20 | |
| Amazon | 17 | 287 | 257 | 652 | 8 | |
| YouTube | 15 | 229 | 196 | 483 | 9 | |
| Settings | 9 | 94 | 84 | 128 | 7 | |
| Clock | 9 | 93 | 91 | 322 | 6 | |
| Calendar | 10 | 50 | 40 | 182 | 5 |
| Backbone | DestBench | DroidTask-Nav | SPA-Bench-Nav |
|---|---|---|---|
| SR (%) | SR (%) | SR (%) | |
| UI-TARS-1.5-7B | 52.4 58.3 | 63.3 71.3 | 66.7 76.7 |
| 0.383 | 0.073 | 0.508 | |
| Qwen-VL-Max | 59.5 71.4 | 66.0 70.7 § | 76.7 93.3 |
| 0.076 | 0.265 | 0.125 | |
| Avg. gain | +8.9 | +6.4 | +13.3 |
| Graph | Success | Gain (pp) | 95% CI (pp) | |
|---|---|---|---|---|
| UI-TARS-1.5-7B | ||||
| No memory | 44/84 | – | – | – |
| Random | 54/84 | +11.9 | [0.0, 23.8] | 0.087 |
| Auto-BFS | 49/84 | +6.0 | [ , 16.7] | 0.383 |
| Manual | 59/84 | +17.9 | [8.3, 27.4] | 0.0007 |
| Qwen-VL-Max | ||||
| No memory | + TAG-Nav | |||
| App | UI-TARS- 1.5-7B | Qwen-VL- Max | UI-TARS- 1.5-7B | Qwen-VL- Max |
| DroidTask-Nav (12 apps, 150 tasks) | ||||
| AppLauncher | 2/5 | 4/5 | 5/5 | 2/5 |
| Calendar | 11/17 | 9/17 | 12/17 | 12/17 |
| Camera | 5/15 | 5/15 | 4/15 | 5/15 |
| Clock | 7/12 | 9/12 | 11/12 | 11/12 |
| Condition | Targets | Routes | SR (%) |
|---|---|---|---|
| (a) No memory | – | – | 59.5 |
| (b) Random exploration | auto | noisy | 64.3 |
| (c) TAG-Nav (Auto-BFS) | auto | auto | 71.4 |
| (d) Manual targets + auto routes | manual | auto | 70.2 |
| (e) Auto targets + manual routes | auto | manual | 79.8 |
| (f) Manual exploration | manual | manual | 66.7 |
| System | Success | SR (%) |
|---|---|---|
| Prior memory-format adaptations | ||
| PG-Agent † | 36/84 | 42.9 |
| GUI-Explorer | 47/84 | 56.0 |
| Backbone agents without / with TAG-Nav | ||
| AgentCPM-GUI | 28/84 | 33.3 |
| + TAG-Nav | 33/84 | 39.3 (+6.0) |
| App | No memory | + TAG-Nav |
|---|---|---|
| Airbnb | 7/13 | 10/13 |
| Chrome | 4/13 | 6/13 |
| eBay | 11/16 | 13/16 |
| 4/13 | 2/13 | |
| TikTok | 2/13 | 4/13 |
| Total | 28/68 (41.2%) | 35/68 (51.5%) |
Appendix figures & tables21 assets
Supplementary material from the paper’s appendix.
Appendix
| App | Category | Core 6 |
|---|---|---|
| Amazon | Shopping | |
| Calendar | Productivity | |
| Clock | Utility | |
| Google Maps | Travel | |
| Settings | Utility | |
| YouTube | Entertainment |
| App | User instruction | Target page (destination) | Stopping boundary |
|---|---|---|---|
| Amazon | “View past orders.” | “Your Orders” history page | Before opening any order detail |
| Calendar | “Change the default reminder time for events to 15 minutes.” | “Default notification time” settings row | Before tapping the time picker |
| TikTok | “Open the privacy settings for who can comment on my videos.” | “Who can comment” configuration page | Before selecting a permission |
| Chrome | “Clear browsing history from the last hour.” | “Clear browsing data” time-range dialog | Before tapping “Clear data” |
| Google Maps | “Switch the map style to satellite.” | Map-style selector with satellite option | Before confirming the style change |
| “Turn off read receipts.” | “Read receipts” toggle row | Before flipping the toggle |
| Metric | Value |
|---|---|
| Total calibration tasks | 530 |
| Binary agreement | 517 / 530 (97.5%) |
| False pass | 10 |
| False fail | 3 |
| Cohen’s (binary) | 0.95 |
| Setting | UI-TARS-1.5-7B | Qwen-VL-Max |
|---|---|---|
| Image resolution | native (1080p portrait) | native |
| Max input tokens | 8192 | API-controlled |
| Max output tokens | 512 | API-controlled |
| Temperature | 0.0 | 0.0 |
| Top- | 1.0 | 1.0 |
| Action space | mobile-ops | mobile-ops |
| No memory | + TAG-Nav | |||
| App | UI-TARS-1.5-7B | Qwen-VL-Max | UI-TARS-1.5-7B | Qwen-VL-Max |
| Amazon | 9/17 | 8/17 | 10/17 | 11/17 |
| Calendar | 5/10 | 7/10 | 4/10 | 7/10 |
| Clock | 1/9 | 4/9 | 3/9 | 7/9 |
| Google Maps | 12/24 | 12/24 | 15/24 | 17/24 |
| Settings | 8/9 | 7/9 | 7/9 | 7/9 |
| App | Graph condition | Success | No memory | pp | 95% CI pp | Exact |
|---|---|---|---|---|---|---|
| Amazon | Random | 11/17 | 9/17 | +11.8 | [+0.0, +29.4] | 0.500 |
| Calendar | Random | 7/10 | 5/10 | +20.0 | [-30.0, +60.0] | 0.688 |
| Clock | Random | 4/9 | 1/9 | +33.3 | [+0.0, +66.7] | 0.250 |
| Google Maps | Random | 16/24 | 12/24 | +16.7 | [-8.3, +41.7] | 0.344 |
| Settings | Random | 7/9 | 8/9 | -11.1 | [-33.3, +0.0] | 1.000 |
| YouTube | Random | 9/15 | 9/15 | +0.0 | [-33.3, +33.3] | 1.000 |
| App | Graph condition | Success | No memory | pp | 95% CI pp | Exact |
|---|---|---|---|---|---|---|
| Amazon | Random | 9/17 | 8/17 | +5.9 | [-17.6, +29.4] | 1.000 |
| Calendar | Random | 8/10 | 7/10 | +10.0 | [-20.0, +40.0] | 1.000 |
| Clock | Random | 7/9 | 4/9 | +33.3 | [+0.0, +66.7] | 0.250 |
| Google Maps | Random | 12/24 | 12/24 | +0.0 | [-25.0, +25.0] | 1.000 |
| Settings | Random | 6/9 | 7/9 | -11.1 | [-44.4, +22.2] | 1.000 |
| YouTube | Random | 12/15 | 12/15 | +0.0 | [-26.7, +26.7] | 1.000 |
| Benchmark | Backbone | Success | No memory | pp | 95% CI pp | Exact |
|---|---|---|---|---|---|---|
| DroidTask-Nav | UI-TARS-1.5-7B | 107/150 | 95/150 | +8.0 | [+0.0, +16.0] | 0.073 |
| DroidTask-Nav | Qwen-VL-Max | 106/150 | 99/150 | +4.7 | [-2.0, +12.0] | 0.265 |
| SPA-Bench-Nav | UI-TARS-1.5-7B | 23/30 | 20/30 | +10.0 | [-10.0, +30.0] | 0.508 |
| SPA-Bench-Nav | Qwen-VL-Max | 28/30 | 23/30 | +16.7 | [+0.0, +33.3] | 0.125 |
| Arm (excluded apps: memory received) | No mem. | Arm | pp [95% CI] | ||
|---|---|---|---|---|---|
| UI-TARS-1.5-7B random (YouTube, Settings: Auto-BFS) | 60 | 27 | 38 | +18.3 [5.0, 31.7] | 0.027 |
| UI-TARS-1.5-7B manual (Clock: random-graph targets) | 75 | 43 | 56 | +17.3 [8.0, 28.0] | 0.002 |
| Qwen-VL-Max random (Settings: Auto-BFS) | 75 | 43 | 48 | +6.7 [ , 20.0] | 0.424 |
| Qwen-VL-Max manual (Clock: random-graph targets) | 75 | 46 | 50 | +5.3 [ , 18.7] | 0.557 |
| App | No memory | Random | Auto-BFS | Manual |
| Amazon | 9/17 | 11/17 | 10/17 | 12/17 |
| Calendar | 5/10 | 7/10 | 4/10 | 6/10 |
| Clock | 1/9 | 4/9 | 3/9 | 3/9 |
| Google Maps | 12/24 | 16/24 | 15/24 | 20/24 |
| Settings | 8/9 | 7/9 | 7/9 | 8/9 |
| YouTube | 9/15 | 9/15 | 10/15 | 10/15 |
| Injected-route measure | Point-biserial | ||
|---|---|---|---|
| Route length (waypoints) | 313 | 0.006 | |
| Transition-hint count | 313 | 0.001 | |
| Loop count | 313 | 0.652 | |
| Backtrack count | 313 | 0.467 | |
| Detour count | 313 | 0.783 |
| Core app | Walks | Forward actions |
|---|---|---|
| Maps | 869 | 3,166 |
| Amazon | 804 | 2,440 |
| YouTube | 638 | 2,174 |
| Clock | 994 | 3,990 |
| Settings | 148 | 510 |
| Calendar | 209 | 655 |
| Record condition | eBay | Total | |
|---|---|---|---|
| Transition hints | 4/11 | 13/16 | 17/27 |
| Full record | 2/11 | 12/16 | 14/27 |
| No memory | 4/11 | 10/16 | 14/27 |
| Route only | 2/11 | 11/16 | 13/27 |
| Goal only | 2/11 | 10/16 | 12/27 |
| Condition | Success | ||
|---|---|---|---|
| No memory | 35/80 | – | – |
| Goal-only record | 39/80 | +4 | 0.388 |
| Hand-written app manual | 41/80 | +6 | 0.109 |
| Full record | 39/80 | +4 | 0.541 |
| Route-only record | 42/80 | +7 | 0.167 |
| Transition-hints record | 44/80 | +9 | 0.108 |
| System | Backbone | Protocol adaptation |
|---|---|---|
| GUI-Explorer | GPT-4o | Used their published interaction-triple KB, retrieval, and guideline-generation pipeline on our emulator/app versions; exploration was not rerun. |
| PG-Agent | Qwen2.5-VL-72B | Built a page graph from DestBench task episodes with their construction pipeline, retrieved page guidelines by screen embedding, and replaced the multi-agent planner with a single Qwen2.5-VL-72B navigator. |
| Class | N | % | Addressed by |
|---|---|---|---|
| A: wrong retrieval | 22 | 46 | embeddings, coverage |
| B: near miss | 15 | 31 | target selection |
| C: execution failure | 11 | 23 | step budget, replanning |
| System | Stored memory | Retrieved unit | Coupling |
|---|---|---|---|
| AutoDroid / AppAgent | UI graph + element notes | Element hint / note | Own LLM |
| KG-RAG | UTG distilled into KG store | Intent–trajectory pair | Own agent loop |
| GUI-explorer | Interaction-triple store | Current-screen cue | Own MLLM |
| GUI-Xplore | Video transition graph | App-level prior | Own VLM |
| PG-Agent / GraphPilot | Page / app knowledge graph | Guideline or action rule | Planner + validator |
| TAG-Nav | Nav. graph + dest. records | Target page + compact route | Unmodified actor |
| App | Condition | Matched | Updated |
|---|---|---|---|
| No memory | 4/11 | 1/11 | |
| Full record | 2/11 | 2/11 | |
| Transition hints | 4/11 | 4/11 | |
| eBay | No memory | 10/16 | 10/16 |
| Full record | 12/16 | 9/16 | |
| Transition hints | 13/16 | 11/16 |
Graph-Based Agent Memory
Graph-based agent memory organizes an agent’s experiences, facts, and procedures as linked structures for persistent, evidence-aware retrieval and reuse.
See all 133 papers