Skip to main content
Agent state has to remain available across conversations, restarts, and replicas. Agents, teams, workflows, and AgentOS share a db interface for sessions, memory, learnings, knowledge metadata, traces, schedules, approvals, evaluations, and metrics. The db parameter accepts JSON file, embedded, relational, document, key-value, and distributed backends.
AgentOS creates the tables and indexes on first boot. Set auto_provision_dbs=False on AgentOS when you manage the schema yourself.

What gets stored

Backend-specific table and collection names may vary.

Pick a backend

Most tutorials use PostgresDb. Pair it with PgVector when you want relational data and embeddings on the same Postgres instance. Postgres-compatible managed services like Neon and Supabase work with PostgresDb directly. Point db_url at the managed instance. Async variants (AsyncPostgresDb, AsyncSqliteDb, AsyncMongoDb, AsyncMySQLDb) are documented under Database.

Vector storage

Knowledge uses a vector store for embedding search.
Other options: LanceDB, Qdrant, Weaviate, Pinecone, Chroma, MongoDB Atlas, Cosmos, Cassandra, ClickHouse, SurrealDB, Milvus. See Vector Stores. For production deployments already using Postgres, pair PostgresDb with PgVector to keep runtime state and hybrid search in one Postgres service.

Splitting concerns across databases

Every agent, team, and workflow can take its own db, overriding the AgentOS default. Use the AgentOS db for shared state and hand individual components a separate database when they need isolation:
Common splits include separate tenant databases, a high-traffic agent on its own engine, or one workflow’s session history on a different backend. Database-level tenant isolation also requires separate credentials and grants.

File and blob storage

Store generated images, audio, and large PDFs in object storage, then reference their paths in agno_knowledge or agno_sessions.

Developer Resources