Session state vs memory vs dependencies
Session state holds what the user is working on right now. Memory holds what’s true about the user across sessions. Dependencies carry config for the current request.
CRUD via tools
The Taskboard agent ships its own CRUD tools instead of relying onupdate_session_state directly. This gives the model cleaner intent labels and lets you validate updates:
session_state gets injected into tool functions automatically (same way RunContext does for Injector). Mutations persist.
When to use session state
If state should survive the user closing the chat and coming back next week, it belongs in memory or a database table the agent reads from, not in session state.
See it in action
session_state. The next turn sees the updated state in context. Refreshing the chat page reloads the state from agno_sessions.
Source: agents/taskboard/agent.py