Skip to main content
The Taskboard agent is a working task list that lives in one session. State persists across messages in the session. The agent updates it directly.
Three flags do the work:

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 on update_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

Each turn updates 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

Next

Human-in-the-Loop →