PrivacyGuard: Source-Linked Sanitization and Locally Resolvable PII References for Cloud GUI Agents
Abstract
Cloud graphical user interface (GUI) agents send instructions and screenshots to remote planners, exposing personally identifiable information (PII). Existing placeholder defenses mask detected spans and reuse exact strings. Fragmented or changed forms can expose PII or break entity continuity across turns. PrivacyGuard addresses this private reference problem with source-linked sanitization (SAN) and a structured reference lifecycle (REF). SAN reconstructs fragmented or overlapping evidence and rewrites the complete source extent. REF links changed appearances to session entities and supports locally resolvable references without returning raw values to the upload path. In five-turn sessions scored against common gold, PrivacyGuard reduces audited source-value leakage by 33.55%--82.60% relative to the closest prior full-pipeline system in all four reader--language combinations. REF raises strict cross-form continuity from 0.04 under exact-value reuse to 0.81. In reference-required Android tasks, verified completion rises from 8/30 and 7/30 to 17/30 and 20/30. On AndroidLab, PrivacyGuard achieves the highest or tied-highest task-success point estimate among protection pipelines for all four planners. On PrivScreen, it reduces fixed-reader field exposure by 62.72%--62.84% relative to the same baseline. PrivacyGuard lowers upload exposure while preserving a locally resolvable task path.
Figures & tables
| English | Chinese | ||||
| Input | Method | GenR @1.0 | GenR @1.0 | ||
| Text | Best baseline | 0.7912 | 0.1283 | 0.5048 | 0.3998 |
| Ours | 0.9740 | 0.0125 | 0.9971 | 0.0023 | |
| Address stress | AbI | 0.3448 | 0.5094 | 0.0986 | 0.8921 |
| PrA | 0.1160 | 0.3968 | 0.1944 | 0.6628 | |
| PrG | 0.6247 | 0.0537 | 0.6567 | 0.0114 | |
| Lang. | Method | Native | Shared Det-P | Shared [email protected] | Shared |
| Dataset: CrossTurnPII | |||||
| EN | AbI | 0.1850 | 0.3249 | 0.5521 | 0.3397 |
| EN | PrA | 0.1733 | 0.4313 | 0.5629 | 0.0482 |
| EN | PrG | 0.4454 | 0.4542 | 0.5486 | 0.3071 |
| EN | Ours | 0.0316 | 0.8125 | 0.9113 | 0.0316 |
| ZH | AbI | 0.5673 | 0.9802 | 0.3720 | 0.5657 |
| Mechanism | Endpoint | Without | With |
| Adjudication | EN address [email protected] | 0.3315 | 0.8981 |
| OCR recon. | PrivScreen [email protected] | 0.7219 | 0.8600 |
| PrivScreen Det-P | 0.6760 | 0.9122 | |
| Local repo. | EN prompt [email protected] | 0.9740 | 0.9867 |
| ZH prompt [email protected] | 0.9971 | 1.0000 |
| Planner | SAN | Local | Exact | Full |
| Qwen | 0 | 0/30 | 8/30 | 17/30 |
| Gemini | 0 | 1/30 | 7/30 | 20/30 |
| Single view | Five turns | |||
| Reader | AbI | Ours | AbI | Ours |
| Qwen | 0.0602 | 0.0130 | 0.0622 | 0.0299 |
| Gemini | 0.0716 | 0.0159 | 0.0644 | 0.0273 |
| Lang. | Reader | AbI | Ours | [95% CI] |
| EN | Qwen | 0.3486 | 0.2080 | [ ] |
| EN | Gemini | 0.3271 | 0.2174 | [ ] |
| ZH | Qwen | 0.7022 | 0.1222 | [ ] |
| ZH | Gemini | 0.7163 | 0.1426 | [ ] |
| Qwen | Gemini | |||
| Method | Exposure | Utility | Exposure | Utility |
| AbI Full | 0.2134 | 0.914 | 0.2229 | 0.950 |
| Ours Full | 0.0793 | 0.910 | 0.0831 | 0.966 |
| Planner | Original | AbI Full | Ours Full |
| Gemini-3-Flash-Preview | 60.87 | 57.25 | 63.04 |
| Qwen3.7-Plus | 55.80 | 56.52 | 56.52 |
| Qwen3.7-Max | 58.70 | 55.07 | 55.80 |
| GPT-4o | 45.65 | 38.41 | 42.03 |
| Metric | Value |
| OCR latency, mean | 1142.6 ms |
| Preprocessing latency, mean | 60.5 ms |
| Detection latency, mean | 35.7 ms |
| Entity-binding latency, mean | 18.6 ms |
| Reference-rendering latency, mean | 120.9 ms |
| Return resolution and restore, mean | 15.5 ms |
Appendix figures & tables27 assets
Supplementary material from the paper’s appendix.
Appendix
| Method | Lang | [email protected] | [email protected] | EPred_gt | ECov_char | |
| Presidio + rules | EN | 0.4985 | 0.4985 | 0.5940 | 0.1250 | 0.5356 |
| PrA | EN | 0.6749 | 0.6749 | 0.2627 | 0.4782 | 0.0070 |
| PrG | EN | 0.7912 | 0.8593 | 0.1283 | 0.3089 | 0.0829 |
| AbI | EN | 0.5456 | 0.8212 | 0.2979 | 0.7252 | 0.0000 |
| Ours | EN | 0.9740 | 0.9794 | 0.0125 | 0.0016 | 0.0000 |
| Presidio + rules | ZH | 0.4725 | 0.4725 | 0.4767 | 0.0000 | 0.0000 |
| Lang | PII type | AbI | PrG | Presidio + rules | PrA | Ours | |
| EN | Account ID | 126 | 0.9841/0.0202 | 0.6111/0.1759 | 0.9762/0.0151 | 0.0000/0.8652 | 0.9365/0.0469 |
| EN | Address | 625 | 0.0000/0.5208 | 0.0000/0.2245 | 0.0000/0.8237 | 0.0000/0.4218 | 0.9200/0.0136 |
| EN | Bank card | 150 | 1.0000/0.0000 | 1.0000/0.0000 | 1.0000/0.0000 | 1.0000/0.0000 | 1.0000/0.0000 |
| EN | Driver license | 328 | 1.0000/0.0000 | 1.0000/0.0000 | 1.0000/0.0000 | 0.9848/0.0000 | 1.0000/0.0000 |
| EN | 262 | 1.0000/0.0000 | 0.9924/0.0004 | 1.0000/0.0000 | 1.0000/0.0000 | 1.0000/0.0000 | |
| EN | License plate | 135 | 0.9926/0.0000 | 1.0000/0.0000 | 0.3704/0.5825 | 0.0000/0.8653 | 1.0000/0.0000 |
| Method | Surfaces | Protected | Neutral | Explicit neg. |
| Ours | 319 | 269 (84.33%) | 26 (8.15%) | 24 (7.52%) |
| AbI | 238 | 182 (76.47%) | 32 (13.45%) | 24 (10.08%) |
| Planner | Baseline | SR pp [95% CI] | Ours win/loss/tie |
| Qwen3.7-Plus | SAN-only | [ , ] | 20/11/107 |
| Qwen3.7-Plus | Original | [ , ] | 12/11/115 |
| Qwen3.7-Plus | AbI | [ , ] | 12/12/114 |
| GPT-4o | Original | [ , ] | 8/13/117 |
| GPT-4o | AbI | [ , ] | 17/12/109 |
| Gemini-3-Flash-Preview | SAN-only | [ , ] | 11/7/120 |
| Planner | SAN-only | Full | pp |
| Gemini-3-Flash-Preview | 60.14 | 63.04 | |
| Qwen3.7-Plus | 50.00 | 56.52 |
| Variant | EN | EN (Exact / Under / Empty) | ZH | ZH (Exact / Under / Empty) |
| to_city | 360/360 | 1.000 / 0.000 / 0.000 | 360/360 | 1.000 / 0.000 / 0.000 |
| to_district | 360/360 | 1.000 / 0.000 / 0.000 | 360/360 | 0.936 / 0.064 / 0.000 |
| to_road | 339/360 | 1.000 / 0.000 / 0.000 | 360/360 | 0.758 / 0.242 / 0.000 |
| full | 360/360 | 0.000 / 1.000 / 0.000 | 360/360 | 0.000 / 1.000 / 0.000 |
| ocr_noise | 360/360 | 0.000 / 1.000 / 0.000 | 360/360 | 0.000 / 1.000 / 0.000 |
| Method | 2-block | 3-block | ||
| EN | ZH | EN | ZH | |
| Presidio + rules + Exact | 0.442 / 0.000 | 0.000 / 0.000 | 0.383 / 0.000 | 0.000 / 0.000 |
| PrA+Exact | 0.979 / 0.000 | 0.681 / 0.000 | 0.881 / 0.000 | 0.582 / 0.000 |
| PrG+Exact | 1.000 / 0.000 | 0.475 / 0.000 | 1.000 / 0.000 | 0.482 / 0.000 |
| AbI | 0.971 / 0.000 | 0.367 / 0.000 | 0.708 / 0.000 | 0.250 / 0.000 |
| Ours | 0.992 / 0.925 | 0.952 / 0.667 | 0.944 / 0.817 | 0.915 / 0.538 |
| Lang | Method | Chain | |||
| EN | GLiNER + AbI | 0.2538 | 0.5773 | 0.1465 | 0.0000 |
| EN | PrA+Exact | 0.0882 | 0.3921 | 0.0346 | 0.0000 |
| EN | PrG+Exact | 0.9150 | 0.0546 | 0.0499 | 0.0000 |
| EN | Ours | 0.8886 | 0.9098 | 0.8084 | 0.8708 |
| ZH | GLiNER + AbI | 0.0047 | 0.0000 | 0.0000 | 0.0000 |
| ZH | PrA+Exact | 0.0313 | 0.2351 | 0.0074 | 0.0000 |
| Planner | Reference case | Family | Turn-local | Exact reuse | Full lifecycle |
| Qwen | PHONE | Root-like | 0/6 | 5/6 | 6/6 |
| FULL_ADDRESS | Root-like | 0/6 | 3/6 | 5/6 | |
| CITY | Component-like | 0/6 | 0/6 | 3/6 | |
| DISTRICT | Component-like | 0/6 | 0/6 | 1/6 | |
| DTL | Component-like | 0/6 | 0/6 | 2/6 | |
| Gemini | PHONE | Root-like | 0/6 | 5/6 | 4/6 |
| Outcome | Qwen | Gemini | Automatic definition |
| Successful reference path | 17 | 20 | One issued target reference has the required projection and restores to gold. |
| Reference not submitted | 7 | 5 | The final answer does not submit a target-class reference. |
| Projection or granularity mismatch | 5 | 0 | The submitted address projection does not match the requested component or requested full-address granularity. |
| Wrong issued-root selection | 0 | 3 | The planner submits another valid root issued earlier in the trajectory. |
| Spurious parsed root | 1 | 1 | The submitted root was issued from a detector/parser candidate that does not denote the target entity. |
| Unresolved or malformed restore | 0 | 1 | Restoration fails or leaves a reference token unresolved. |
| Policy | Unique reuse | Multi-root selection | Order-dependent groups | Policy violations | Path agreement |
| Component-projection recent-first | 119/119 | 290/290 | 16/16 | 0/443 | 443/443 |
| Policy | Unique success | Ambiguous success | Overall exact success | Exact failures |
| Recent-first | 4,236/4,236 | 1,050/1,764 | 5,286/6,000 (0.881) | 714 |
| Fresh-on-ambiguity | 4,236/4,236 | 0/1,764 | 4,236/6,000 (0.706) | 1,764 |
| Lang | Method | View | Qwen | Gemini |
| EN | AbI | SAN | 0.2775 | 0.2800 |
| EN | PrA | SAN | 0.4758 | 0.4826 |
| EN | PrG | SAN | 0.5754 | 0.5815 |
| EN | Ours | SAN | 0.1289 | 0.1332 |
| EN | AbI | Full | 0.3559 | 0.3444 |
| EN | Ours | Full | 0.1310 | 0.1353 |
| Qwen | Gemini | ||||
| Method | View | Exposure | Utility | Exposure | Utility |
| Original | Original | 0.9802 | 0.912 | 0.9811 | 0.968 |
| AbI | SAN | 0.1992 | 0.914 | 0.2096 | 0.990 |
| PrA | SAN | 0.3683 | 0.896 | 0.3692 | 0.876 |
| PrG | SAN | 0.3579 | 0.844 | 0.3560 | 0.934 |
| Ours | SAN | 0.0585 | 0.916 | 0.0576 | 0.994 |
| AbI Full | Ours Full | |||||||
| Lang | Reader | Gold | Per-view | Five-turn | Increment | Per-view | Five-turn | Increment |
| EN | Qwen | 1,394 | 0.3486 | 0.3486 | 0.0000 | 0.2066 | 0.2080 | 0.0014 |
| EN | Gemini | 1,394 | 0.3271 | 0.3271 | 0.0000 | 0.2145 | 0.2174 | 0.0029 |
| ZH | Qwen | 1,424 | 0.7022 | 0.7022 | 0.0000 | 0.1208 | 0.1222 | 0.0014 |
| ZH | Gemini | 1,424 | 0.7163 | 0.7163 | 0.0000 | 0.1405 | 0.1426 | 0.0021 |
| Method | Overall | Person | Phone | Location | Account | IP address | |
| Original | .9802/.9811 | .9752/.9752 | .9867/.9867 | .9900/.9900 | .9700/.9800 | .9742/.9742 | 1/1 |
| AbI SAN | .1992/.2096 | .4134/.4257 | .0533/.0533 | 0/0 | .3400/.4000 | .0129/.0129 | 0/0 |
| PrA SAN | .3683/.3692 | .7574/.7500 | 0/0 | .1250/.1250 | .2300/.2600 | .2194/.2194 | .0400/.0600 |
| PrG SAN | .3579/.3560 | .1955/.1931 | .9200/.9133 | .0200/.0200 | .4600/.4600 | .7226/.7226 | 0/0 |
| Ours SAN | .0585/.0576 | .1139/.1114 | 0/0 | 0/0 | .1100/.1100 | 0/0 | .1000/.1000 |
| AbI Full | .2134/.2229 | .4406/.4505 | .0533/.0800 | 0/0 | .3800/.4000 | .0129/.0129 | 0/0 |
| Reader | Method | Lang | New/protected | RER [95% CI] | Net [95% CI] |
| Qwen | AbI | EN | 240/2,018 | 0.1189 [0.0966,0.1442] | [ ] |
| ZH | 20/706 | 0.0283 [0.0161,0.0411] | [ ] | ||
| Ours | EN | 26/2,433 | 0.0107 [0.0050,0.0175] | [ ] | |
| ZH | 107/2,715 | 0.0394 [0.0274,0.0527] | [ ] | ||
| Gemini | AbI | EN | 199/2,011 | 0.0990 [0.0807,0.1177] | [ ] |
| ZH | 16/682 | 0.0235 [0.0130,0.0334] | [ ] |
| Reader | Single EN | Single ZH | Five-turn EN | Five-turn ZH |
| Qwen | 23/2,510 | 43/2,550 | 42/1,454 | 43/1,393 |
| Gemini | 25/2,510 | 55/2,521 | 39/1,454 | 38/1,365 |
| Method | OCR | Det-P (core) | [email protected] | [email protected] | Mod | |
| AbI | EasyOCR | 0.7165 | 0.6410 | 0.6476 | 0.2018 | 2.1025 |
| PP-v5-Mobile | 0.6611 | 0.6743 | 0.6762 | 0.1582 | 2.5224 | |
| PP-v5-Server | 0.7083 | 0.7029 | 0.7076 | 0.1636 | 2.5433 | |
| Tesseract | 0.4141 | 0.3286 | 0.3581 | 0.3669 | 2.8747 | |
| PrA | EasyOCR | 0.3769 | 0.3848 | 0.3876 | 0.1882 | 6.3520 |
| PP-v5-Mobile | 0.4820 | 0.4200 | 0.4200 | 0.1779 | 4.6360 |
| Coverage family | Cases | Representative forms |
| Canonical roots, projections, and length metadata | 17 | ADDR#1 , ADDR#1.DIST , NAME#4 , ALNUM#8.LEN=8 |
| Session-history reuse | 9 | Turn-2 address, phone, number, and name roots/projections |
| Allowlisted normalized variants | 14 | Whitespace, full-width, and separator-confusable forms |
| Invalid family | Cases | Representative references |
| Unknown entity id | 3 | [[ADDR#999.CITY]] , [[PHONE#999]] , [[NAME#777]] . |
| Foreign-session root absent locally | 3 | Address, email, and license-plate roots recorded only in another session and absent from the active-session mapping. |
| Future-turn unavailable | 3 | Address, ID-number, and alphanumeric roots that are not yet present in the current session state. |
| Type mismatch | 4 | [[PHONE#1]] , [[EMAIL#4]] , [[NAME#5]] . |
| Unsupported scalar projection | 7 | [[NAME#4.CITY]] , [[ORG#10.CITY]] , [[TIME#11.ROAD]] . |
| Unsupported address projection | 3 | [[ADDR#1.DOMAIN]] , [[ADDR#1.LEN=4]] , [[ADDR#1.TIME]] . |
| Evidence family | PrivacyGuard profile | Evidence supplied |
| Text, address, screenshot metrics | Common RTX 4090 server | Algorithm and end-to-end output under shared inputs. |
| Controlled REF tests | Common RTX 4090 server | Binding and local-restoration mechanism behavior. |
| Audited planner-use paths | Server-hosted service + Android UI | Cloud sees mediated views; trusted base includes interface, runner, and server-hosted service. |
| Android runtime profile | Native OCR + embedded Python mediation in packaged Android host | Handset endpoint feasibility and component cost. |
| Live Android utility | Server-hosted protection + Android UI/harness | End-to-end planner utility under common protection-pipeline placement. |
| State source | Lifetime | Permitted role |
| Static detection resources | Packaged, read-only | Public priors, formats, contexts, and negative boundaries used only as candidate evidence. |
| Local privacy repository | Persistent, opt-in | User-linked typed values, aliases, and address/name components used only as detection evidence. |
| Session mapping store | Session/goal scoped; in-memory by default | Issued roots, typed records, projections, and raw values; the sole authority for local reference resolution and restoration. |
| Evidence source | Available evidence | Role and scope |
| CrossTurnPII controlled corpus | Exact values and spans, rendered regions, text–image links, five-turn entity identity, and component projections | Supports RQ1 SAN source removal and reader exposure, RQ2 attachment and reconstruction, and RQ3 controlled Full upload-view leakage. It does not provide external screenshot or broad task generality. |
| Structured-address stress | 7,800 forms, component gold, 11 English and 12 Chinese perturbation families, and two-/three-block forms | Supports RQ1 complete-source coverage and RQ2 cross-form continuity and PCR. It is a controlled form-distribution stress test rather than external workload evidence. |
| PrivScreen [ 33 ] | 500 captured screens with visible-PII and geometry labels, benchmark privacy questions, and visual questions | Supports external RQ1 SAN evaluation and RQ3 Full final-view privacy and visual utility. It does not provide cross-turn identity or local-resolution gold. |
| Fixed live-interface suite | Fixed Android tasks, trajectory-issued references, resolved actions, and automatically scored answers | Supports RQ2 verification of reference-required completion and planner-use paths. It is a targeted capability suite rather than a broad task benchmark. |
| AndroidLab [ 27 ] | 138 public tasks over nine apps, fixed resets and judgments, task and action metrics, and retained trajectories | Its SAN-only-to-Full contrast supports RQ2 mechanism attribution, while complete Full-system comparisons support RQ3 task utility. It does not provide exact source-extent, entity-identity, or projection gold. |
| Randomized multi-root stress | Seeded compatible roots, generator-provided intended roots, ambiguity strata, and exact continuation outcomes | Supports RQ2 binding-policy conformance and policy–intent agreement. Its outcomes are conditioned on the declared generator. |
| Corpus / type | Unique gold | Whole-value exact | Identifier exact | Structural atom median / p95 | Public-prior atom median / p95 |
| Prompt EN / all | 2,313 | 0 (0.00%) | 0 | 0.0000 / 0.5000 | 0.0000 / 0.6000 |
| NAME | 321 | 0 (0.00%) | 0 | 0.0000 / 0.0000 | 0.5556 / 0.6667 |
| ADDRESS | 598 | 0 (0.00%) | 0 | 0.2222 / 0.6000 | 0.0000 / 0.5833 |
| Prompt ZH / all | 2,186 | 15 (0.69%) | 0 | 0.0000 / 0.2500 | 0.0000 / 0.3333 |
| NAME | 328 | 0 (0.00%) | 0 | 0.0000 / 0.0000 | 0.3333 / 0.3333 |
| ADDRESS | 474 | 15 (3.16%) | 0 | 0.1429 / 0.4286 | 0.0769 / 0.5000 |
| Reader | Lang | AbI Full ALR | Ours SAN-only-or-Full ALR | (95% CI) |
| Qwen | EN | 0.3486 | 0.2202 | [ ] |
| ZH | 0.7022 | 0.1264 | [ ] | |
| Gemini | EN | 0.3271 | 0.2260 | [ ] |
| ZH | 0.7163 | 0.1503 | [ ] |
| Setting | Lang | Method | [email protected] [95% CI] | [95% CI] |
| Text | EN | PrG | 0.7912 [0.7808, 0.8015] | 0.1283 [0.1202, 0.1359] |
| Text | EN | Ours | 0.9740 [0.9619, 0.9846] | 0.0125 [0.0075, 0.0186] |
| Text | ZH | PrA | 0.5048 [0.4710, 0.5389] | 0.3998 [0.3808, 0.4193] |
| Text | ZH | Ours | 0.9971 [0.9931, 0.9997] | 0.0023 [0.0002, 0.0054] |
| Address | EN | PrG | 0.6247 [0.6127, 0.6352] | 0.0537 [0.0465, 0.0612] |
| Address | EN | Ours | 0.8981 [0.8691, 0.9238] | 0.0430 [0.0318, 0.0559] |
GUI Agents
Graphical user interface (GUI) agents perceive and operate apps through screens, controls, and other software interfaces.
See all 178 papers