Let the screen select the step.
Match the current screen to recorded states in task-relevant trajectories, using the GUI backbone’s latent representations. Supply the matching action as a reference, and repeat after every observation.
1 Nanyang Technological University2 Alibaba Group
Two ways to make an agent personal
Illustrative simulation of the method. App screens, preferences, prices, and weather are example data; no live agent or real transaction.
Within-trajectory step success
Relative to no history, averaged across four backbonesHistory tokens
Compared with task-level retrievalProactive suggestion MCC
Approximately, vs. the strongest proactive baseline“Order my usual coffee” leaves a lot unsaid. Personal history can identify the app and the drink. But a relevant past journey doesn’t tell the agent which action fits this screen—or whether coffee is even due now.
Task-level retrieval strongly improves the opening decision, yet offers little sustained benefit over the remaining 90% of steps. ExpActivator turns personalization into a decision-time selection problem: use the current situation to activate the experience that applies.
Retrieval helps most at the opening. Activation continues to help across the 7,140 actions that follow. Source: Table 2.
Personal Graphical User Interface (GUI) agents rely on interaction history to infer what a user wants from ambiguous instructions and to anticipate recurring routines. Existing approaches retrieve task-relevant history and append it to the policy’s context, implicitly assuming that experience relevant to a task remains useful for each decision within it. We find that this help is largely spent at the first decision: retrieved history strongly improves the opening step of an episode, yet provides little sustained benefit over the remaining 90% of steps, and offers weak guidance on whether a proactive suggestion is warranted. A relevant record may tell the agent where to begin, but not which past action applies to the current screen or whether a routine is due now. The underlying issue is that relevance does not imply applicability: relevance is determined at the task level, whereas applicability depends on the situation at decision time.
We therefore recast personalization as experience activation and introduce ExpActivator, a training-free framework that activates only the experience applicable to the current situation. During execution, ExpActivator matches each new screen to historical states in the frozen GUI backbone’s latent space and supplies the corresponding action as a reference. Before execution, it activates a recurring intent only when the current time and scenario provide sufficient support, and otherwise abstains. Across four GUI backbones, ExpActivator improves within-trajectory step success by 28% on average, achieves the best personalized execution on every backbone while using about one-fifth as many history tokens, and reaches approximately 2.3× the Matthews correlation coefficient of the strongest proactive baseline. Experience pays where it is activated, not where it is appended.
A frozen backbone, with experience selected at the moment it matters.
Match the current screen to recorded states in task-relevant trajectories, using the GUI backbone’s latent representations. Supply the matching action as a reference, and repeat after every observation.
Evaluate recurring intents against the current time and scenario. Suggest a representative intent only when the supporting history is sufficient. Otherwise, abstain.

The best personalized execution on all four evaluated backbones. No fine-tuning required.
Evaluated on AndroidIntent: 82 users, 135 applications, 775 execution episodes, and 315 proactive states. Within each backbone, every method shares the same history and frozen policy.
| Backbone / method | Type ↑ | SSR ↑ | CSR ↑ | Sem. ↑ | P ↑ | BA ↑ | MCC ↑ |
|---|
730.6 → 144.6History tokens per step, Retrieve → ExpActivator.
18.35% → 26.67%Within-trajectory step success with the same comparison.
“Check the next bus from PGPR to Kent Ridge MRT.”

Experience pays where it is activated,
not where it is appended.
@misc{zhang2026expactivator,
title = {Relevance Does Not Imply Applicability:
Experience Activation for Personal GUI Agents},
author = {Fuyao Zhang and Xuan Wang and Zherui Li and
Jiaming Zhang and Longtao Huang and Wei Yang Bryan Lim},
year = {2026},
url = {https://fyzhang1.github.io/ExpActivator}
}