Today's agents excel at executing well-specified tasks, but have limited contextual reasoning about a user's future behavior. While recommendation systems can predict user preferences within bounded settings (such as social media feeds), reasoning about open-ended human workflows remains an open problem.
Here, Shaikh et al. propose next-action prediction (NAP) as a learning objective for more proactive, personalized agents. Given a user's computer-use history and recent actions, the model predicts the user's most likely next step.
The authors introduce two systems:
- NAPsack: a pipeline that transforms passive computer-use recordings into natural-language action sequences
- LongNAP: a model trained through RL to retrieve past memories, reason about the user, and predict future actions.
Data: NAPsack
NAPsack is a passive data collection and annotation pipeline that converts multimodal computer use recordings into natural-language action descriptions. It records screenshots around user interactions (I/O mouse clicks/movements, scroll, and keyboard) where nearby interactions are grouped into bursts. The screenshots captured before and after bursts (after chunking to maintain VLM context lengths) are fed in temporal order to a VLM, which generates natural language action captions.
The authors compare NAPsack against:
- Naively captioning the 10-minute recording with a single prompt.
- + split: chunking recordings and captioning separately.
- + compress: retaining only interaction-relevant screenshots before chunking.
- + input/output: augmenting the VLM with keyboard and mouse events.
Each chunk of predicted labels is compared with the corresponding ground-truth events . Gemini 3.0 Flash as a judge computes a similarity score .
Results:
| Annotation method | LLM-judge score |
|---|---|
| Naive: caption entire recording | 0.48 |
| + Split into chunks | 0.57 |
| + Event-driven compression | 0.60 |
| + I/O event information* | 0.70 |
These improvements are validated with small-scale human comparisons as well as the LLM judge (claimed to be more useful than embedding or lexical metrics).
The training data for LongNAP comes from the Screenomics dataset, a collection of smartphone activity recorded in 2021. This dataset contains screenshots but no I/O events, so the actions used to train LongNAP do not seem to benefit from NAPsack's strongest annotation.
Model: LongNAP
LongNAP is a VLM trained with RL to predict a user’s future actions, using retrieved memories for in-context learning. It is split into two phases: first, reasoning over recent actions to retrieve past reasoning traces; then, using those traces alongside recent screenshots to refine its reasoning and predict future actions.
Phase 1: reason to retrieve
Given recent observations , the model reasons about possible next steps, generating a reasoning trace . Using this reasoning as a query, it retrieves entries from memory with BM25.
Phase 2: reason to predict
The model refines its initial reasoning with the retrieved memory, generating . This reasoning now incorporates the user's past behavior and preferences, and the model predicts future actions .
During training, the prediction trace with the highest reward (scored by the LLM judge) is saved back into memory . The same rewards are used by GRPO with a group size of 4 to train the two-phase policy with LoRA.
Takeaways
LongNAP outperforms prompting and SFT baselines, but only 17.1% of its predictions align with observed behavior. Combining parametric learning with retrieval of past reasoning improves prediction of open-ended human behavior, but anticipating a user's actions is not equivalent to understanding intent or identifying what assistance would actually help them (for example, a chronic procrastinator may worsen their habits via a learned procrastinator assistant without the proper goal alignment ).