2026-07-12
Rollout Loop vs. Agent Loop: Naming the Two Clocks of an Embodied Agent
This post does one thing: pin down the loop vocabulary for embodied agents. "Loop" crossed from the LLM-agent world into embodied AI and quietly changed meaning on the way — a coding agent's loop ticks on LLM turns, an embodied agent's loop ticks on environment steps, and calling both "the agent loop" hides the difference. Two terms and one composition rule: the rollout loop runs on the environment's clock, the agent loop (ReAct [1]) runs on the reasoner's clock, and a real system couples the two — one nested inside the other, or both running side by side.
1Two Loops, Two Clocks
The rollout loop is not a design choice — embodiment imposes it. Whatever sits in the body is stepped by the environment, once per tick, until the episode ends; a frozen policy like OpenVLA [2] or π0 [3] loops thousands of times with zero reasoning anywhere in the cycle. The agent loop is the opposite in every column: ReAct [1] made it canonical, the LLM turn is the iteration, and no environment is required — coding agents run it for hundreds of turns with no world attached.
2They Compose: Nested or Concurrent
Four couplings recur, in two families. Nested — one loop contains the other and blocks on it: the agent loop as the rollout's policy (1), or the rollout as the agent's tool (2). Concurrent — neither waits: coupled by buffers (3), or gated by events (4).
1 · Agent-as-policy: the agent loop sits in the rollout's policy slot, and
env.step blocks while it deliberates — the natural shape wherever the world can hold still
(simulation, turn-based settings). One number governs it: LLM turns per environment step —
zero, one turn every K steps, or many per step. (A turn may emit one action or a K-step chunk; as long as the
world waits for the turn, it is still this coupling.)
notes — who sits where on the 0…N dial
NavGPT [4] fixes it at one; DiscussNav [5] spends a multi-expert discussion before every step; a VLA eval spends zero. The corners are the degenerate cases — rollout-only (a frozen policy), agent-only (a coding agent, no world) — and everything between is legitimate design space. In AgentCanvas [6] the distinction is structural: the iteration primitive is deliberately called just a loop, whether it is a rollout loop or an agent loop is decided by what you draw in its body, and nesting is scope-in-scope — the ordinary case, not a special one.
2 · Rollout-as-tool — the mirror of 1: the environment's clock sits inside the reasoner's, and the rollout serves as a tool of the agent loop exactly as the agent loop in 1 serves as the rollout's policy. One whole rollout per tool call — at skill granularity (SayCan [7]: each "execute skill" is a closed-loop rollout) or at episode granularity (Reflexion [8]: reason, launch a rollout, read the log, go again).
notes — works with this shape
Voyager [9] grows a skill library by launching Minecraft rollouts and reading what happened; Eureka [10] has GPT-4 write reward code, launch full RL training runs as tool calls, and iterate on the rollout statistics. At the largest granularity this is the shape of any automated design or policy search in which an LLM operates the experiment loop.
The concurrent family next: nothing waits.
3 · Parallel: real time does not wait for a turn. Both loops free-run on their own clocks; the coupling is a pair of buffers — act on the latest plan, reason over the latest observation. The exchange rate is no longer designed: it is the ratio of the two clock speeds.
notes — the same shape in robots and in speech
Dual-system robots are this coupling: a fast System-1 controller with a slow System-2 reasoner riding alongside (Figure's Helix, NVIDIA's GR00T N1), the controller at tens of hertz over a reasoner at seconds per turn. Speech hit the same fork and named it first: turn-based dialogue is the nested coupling, and full-duplex models — listening while speaking, as in Kyutai's Moshi — are the parallel one.
boundary case — pipelined execution (1's schedule, 3's concurrency)
A policy needs ~100 ms per inference and emits a one-second action chunk (chunking: ACT [11]; π0 [3] acts this way). Run blocking, this is coupling 1: move a second, freeze, move again. Pipelined execution overlaps the two — compute plan k+1 while chunk k runs — so motion never stops, and the plan in use is always exactly one chunk stale. Real-Time Chunking [12] is this, made to work for VLAs: freeze the actions certain to execute, inpaint the rest so the boundary stays smooth; real-time MPC has run this way for decades. The exchange pattern is still 1's, only the concurrency is 3's — a boundary case, not a mode.
4 · Event-triggered: concurrency on a condition. Three pieces: the rollout free-runs on a fast policy; the agent loop is not running; a monitor watches for a defined trigger — failure, uncertainty crossing a threshold, a human interjecting. On the trigger the agent loop wakes, runs as many turns as it needs, and hands back a new plan while the rollout keeps itself safe (hold, or follow the old plan). Unlike 3 there is no continuous flow — and no period: between events the coupling is exactly zero.
notes — works with this shape
Inner Monologue [13] replans when success detection or human feedback flags a problem — feedback events gate the LLM's involvement. KnowNo [14] makes the trigger principled: conformal uncertainty decides when the planner must stop and ask a human for help. The escalation pattern — run the fast policy until something goes wrong, then wake the reasoner — is the deployed shape of most "VLA with an LLM fallback" stacks.
| Mode | Exchange initiated by | Who waits | Examples |
|---|---|---|---|
| 1 · Agent-as-policy | The rollout, every step. | The world. | DiscussNav in simulation. |
| 2 · Rollout-as-tool | The agent, per skill or per episode. | The agent. | SayCan · Reflexion. |
| 3 · Parallel | No one — buffers couple the loops. | Neither. | Helix · GR00T N1 · full-duplex dialogue. |
| 4 · Event-triggered | An event raised by the rollout. | Neither — a fallback holds. | A VLA that escalates to an LLM when stuck. |
3The Definitions
| Rollout loop | Agent loop | |
|---|---|---|
| One iteration | One environment step. | One LLM turn. |
| Terminates when | The episode ends — success, failure, or step budget. | The task is judged done, by the model or its harness. |
| Loop body | Anything mapping observation → action. | Reason → tool call → read result. |
| Needs an LLM? | No — the body can be a pure function. | Yes — the LLM turn is the iteration. |
| Needs an environment? | Yes — the env's transition is the loop. | No — tool results are the world. |
| Budget currency | Env steps. | LLM turns / tokens. |
4Position
Reserve agent loop for the LLM-turn loop and call the embodied interaction loop the rollout loop. An embodied agent always has the latter and only sometimes the former. The interesting design space is the coupling between the two clocks — how much deliberation each environment step buys, and whether the world waits for it (the nested couplings) or does not (the concurrent ones). A system description should say which clock its loop runs on, and which coupling it assumes.
References ([1]–[14])
[1] S. Yao et al., "ReAct: Synergizing reasoning and acting in language models," in Proc. Int. Conf. Learn. Representations (ICLR), 2023. arXiv:2210.03629.
[2] M. J. Kim et al., "OpenVLA: An open-source vision-language-action model," in Proc. Conf. Robot Learn. (CoRL), 2024. arXiv:2406.09246.
[3] K. Black et al., "π0: A vision-language-action flow model for general robot control," Physical Intelligence, 2024. arXiv:2410.24164.
[4] G. Zhou, Y. Hong, and Q. Wu, "NavGPT: Explicit reasoning in vision-and-language navigation with large language models," in Proc. AAAI Conf. Artif. Intell. (AAAI), 2024. arXiv:2305.16986.
[5] Y. Long et al., "Discuss before moving: Visual language navigation via multi-expert discussions," in Proc. IEEE Int. Conf. Robot. Autom. (ICRA), 2024. arXiv:2309.11382.
[6] J. Zhou, "AgentCanvas: A typed-graph runtime for embodied agents," 2026. [Online]. Available: docs — Graph-Expressible Agents.
[7] M. Ahn et al., "Do as I can, not as I say: Grounding language in robotic affordances," in Proc. Conf. Robot Learn. (CoRL), 2022. arXiv:2204.01691.
[8] N. Shinn et al., "Reflexion: Language agents with verbal reinforcement learning," in Proc. Adv. Neural Inf. Process. Syst. (NeurIPS), 2023. arXiv:2303.11366.
[9] G. Wang et al., "Voyager: An open-ended embodied agent with large language models," arXiv:2305.16291, 2023.
[10] Y. J. Ma et al., "Eureka: Human-level reward design via coding large language models," in Proc. Int. Conf. Learn. Representations (ICLR), 2024. arXiv:2310.12931.
[11] T. Z. Zhao, V. Kumar, S. Levine, and C. Finn, "Learning fine-grained bimanual manipulation with low-cost hardware," in Proc. Robot.: Sci. Syst. (RSS), 2023. arXiv:2304.13705.
[12] K. Black, M. Y. Galliker, and S. Levine, "Real-time execution of action chunking flow policies," in Proc. Adv. Neural Inf. Process. Syst. (NeurIPS), 2025. arXiv:2506.07339.
[13] W. Huang et al., "Inner Monologue: Embodied reasoning through planning with language models," in Proc. Conf. Robot Learn. (CoRL), 2022. arXiv:2207.05608.
[14] A. Z. Ren et al., "Robots that ask for help: Uncertainty alignment for large language model planners," in Proc. Conf. Robot Learn. (CoRL), 2023. arXiv:2307.01928.