Database
Every environment includes a managed database. Store data in named collections, query with expressive filters, and browse your data in the dashboard. No migrations, no schema setup, no external hosting required.
Data model
Each document is free-form. You define the fields. There's no fixed schema. Every document gets three system-managed fields:
_id: auto-generated UUID, unique within the collection_created_at: ISO 8601 timestamp set on insert_updated_at: ISO 8601 timestamp updated on every write
# Every document has these system fields alongside your own data:
{
"order_id": "ORD-001",
"status": "pending",
"amount": 99.50,
"_id": "550e8400-e29b-41d4-a716-446655440000", # auto-generated UUID
"_created_at": "2026-01-15T10:30:00Z",
"_updated_at": "2026-01-15T10:30:00Z",
}Auto-creation
You never need to create a collection explicitly. The first call to db_insert creates the collection.
# No setup needed - the collection "orders" is created automatically
# the first time db_insert runs
result = await db_insert("orders", {
"order_id": "ORD-001",
"customer": "alice@example.com",
"amount": 99.50,
"status": "pending",
})You can also create collections manually from the Storage → Database tab in the dashboard.
Dashboard
The Storage → Database tab in the project dashboard lets you:
- View all collections with document counts and storage sizes
- Browse documents with filter and sort controls
- Insert documents manually
- View the inferred schema: field names, types, and fill rates
- Create and delete collections
Database tools reference
Full reference for db_find, db_insert, db_update, db_upsert, db_delete, db_count, and db_list_collections.
Knowledge base
Semantic search and long-term memory backed by vector embeddings.
Environments
How environments are isolated and how the database is scoped per environment.
Observability
See database tool calls in run traces and monitor usage.