ActionEngine: From Reactive to Programmatic GUI Agents via State Machine Memory
This addresses efficiency and reliability issues for GUI automation tasks, offering a scalable solution with significant improvements over existing methods.
The paper tackles the problem of high costs and limited accuracy in GUI agents by proposing ActionEngine, a framework that uses a two-agent architecture to transition from reactive execution to programmatic planning, achieving 95% task success with a single LLM call and reducing cost by 11.8x and latency by 2x on Reddit tasks.
Existing Graphical User Interface (GUI) agents operate through step-by-step calls to vision language models--taking a screenshot, reasoning about the next action, executing it, then repeating on the new page--resulting in high costs and latency that scale with the number of reasoning steps, and limited accuracy due to no persistent memory of previously visited pages. We propose ActionEngine, a training-free framework that transitions from reactive execution to programmatic planning through a novel two-agent architecture: a Crawling Agent that constructs an updatable state-machine memory of the GUIs through offline exploration, and an Execution Agent that leverages this memory to synthesize complete, executable Python programs for online task execution. To ensure robustness against evolving interfaces, execution failures trigger a vision-based re-grounding fallback that repairs the failed action and updates the memory. This design drastically improves both efficiency and accuracy: on Reddit tasks from the WebArena benchmark, our agent achieves 95% task success with on average a single LLM call, compared to 66% for the strongest vision-only baseline, while reducing cost by 11.8x and end-to-end latency by 2x. Together, these components yield scalable and reliable GUI interaction by combining global programmatic planning, crawler-validated action templates, and node-level execution with localized validation and repair.