# Strands State
Strands Agents separates agent state into three distinct layers, which clarifies what the model actually "sees" versus what tools can use:
- **Conversation History**: the messages, auto-preserved and passed to the model
- **Agent State / App State**: key-value storage accessed by tools but **not** sent to the model context
- **Invocation State**: values that persist within a single event-loop run, not in model context
Tools reach state via a `ToolContext`. This layering is what lets agents carry working data (IDs, config, scratch values) without bloating the [[Context Window|context window]] or leaking internals into the prompt. It underpins session management and memory.
## Related
- [[Strands Agents]]
- [[Strands Agent Loop]]
- [[Strands Context Management]]
- [[Context Window]]