# Agent Loop Documentation - OpenClaw ## Overview The Agent Loop in OpenClaw represents a complete agent execution cycle, encompassing message intake through final reply persistence. An agentic loop is the full run of an agent: intake, context assembly, model inference, tool execution, streaming replies, and persistence. ## Key Components **Entry Points:** The system accepts agent requests via Gateway RPC (`agent` and `agent.wait` commands) and CLI. **Execution Flow:** The process involves parameter validation, session resolution, metadata persistence, and model inference through the pi-agent-core runtime, which handles serialization and event streaming. **Queueing System:** Runs are serialized per-session to prevent concurrency issues. Runs are serialized per session key (session lane) and optionally through a global lane. ## Extension Mechanisms OpenClaw provides two hook systems for customization: 1. **Internal Gateway Hooks** - Event-driven scripts for commands and lifecycle events (bootstrap, commands) 2. **Plugin Hooks** - Extension points including `before_agent_start`, `agent_end`, tool call interception, and message lifecycle events ## Operational Details - **Timeout defaults:** 30 seconds for `agent.wait`; 600 seconds for agent runtime - **Streaming:** Assistant deltas and tool events are emitted as separate streams - **Reply handling:** Payloads are assembled from assistant text, tool summaries, and reasoning, with suppression of duplicate messaging tool outputs