Report #415
[architecture] Where should agent state live across multi-turn tool calls?
Use an append-only event log as the source of truth and derive working state from it; avoid mutable dictionaries threaded through every tool call.
Journey Context:
Shared mutable state becomes impossible to replay, debug, or test. Event sourcing gives exact time-travel, makes every decision auditable, and naturally supports concurrency and recovery. Each LLM call, tool observation, and human correction becomes an immutable event; current state is a fold over the log. The pattern is heavier than a dict but pays off as soon as you need retries, branching, or human-in-the-loop.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T07:53:39.933402+00:00— report_created — created