ActionEngine: From Reactive to Programmatic Web Agents via State Machine Memory
Organizations: Georgia Tech USA · Microsoft Research USA
Abstract
Many web agents operate through a reactive execution loop: they observe the current interface, reason about the next action, execute it, and repeat. This design incurs latency and cost that grow with the number of actions, while requiring agents to repeatedly rediscover how the same web application works. We present ActionEngine, a novel architecture that replaces step-by-step reasoning with programmatic execution using reusable knowledge of the application. A Crawling Agent explores the application offline and constructs an updatable state-machine memory that represents its GUI states, the operations available in each state, and the transitions between states. Unlike trajectory memory, this representation stores how the application works rather than solutions to individual tasks. At runtime, an Execution Agent uses this memory to synthesize a complete executable program in a single planning step, which is then executed deterministically without further planning calls. When the interface changes or the memory is incomplete, a reactive fallback repairs the failed action and updates the memory for future tasks. On 655 tasks across four WebArena domains, ActionEngine achieves a 91.2% success rate, outperforming the strongest reactive baseline, Claude Code, by 8.5 percentage points while reducing average task latency by 3.2x and cost by 8x.
Figures & tables
| Success Rate (%) | Avg. Latency (s) | ||||||
| Domain | # Tasks | AOccam | Claude | ActionEngine | AOccam | Claude | ActionEngine |
| 106 | 76.2 | 92.4 | 95.0 | 536 | 59 | 18 | |
| Shopping | 187 | 42.7 | 79.7 | 87.0 | 363 | 97 | 28 |
| Shop. Admin | 182 | 58.4 | 74.2 | 95.3 | 1665 | 101 | 31 |
| GitLab | 180 | 58.3 | 89.0 | 89.0 | 499 | 79 | 28 |
| Overall | 655 | 56.8 | 82.7 | 91.2 | 787 | 87 | 27 |
Appendix figures & tables1 asset
Supplementary material from the paper’s appendix.