Agentuity provides multiple storage options to match different data access patterns.
Storage Types
Key-Value
Fast lookups, caching, configuration
Vector
Semantic search, embeddings, RAG
Object (S3)
Files, images, documents, media
Durable Streams
Large exports, audit logs, real-time data
When to Use Each Type
| Storage Type | Best For | Access Pattern |
|---|---|---|
| Key-Value | Caching, session data, rate limits | Fast key-based lookups |
| Vector | Semantic search, embeddings, RAG | Similarity search |
| Object | Files, images, large blobs | URL-based access |
| Durable Streams | Logs, exports, event streams | Append-only, ordered reads |
| Database | Relational data, complex queries | SQL queries |
Built-in State vs Storage
Agents have built-in state that persists across requests:
| State Type | Scope | Use For |
|---|---|---|
ctx.state | Agent instance | Request-local data |
ctx.thread.state | Thread | Conversation context |
ctx.session.state | Session | User preferences |
Use storage services when you need:
- Custom TTL or expiration
- Data shared across agents
- Persistent data beyond sessions
- External system integration
Access Patterns
| Context | KV | Vector | Object |
|---|---|---|---|
| Agents | ctx.kv | ctx.vectors | ctx.storage |
| Routes | c.var.kv | c.var.vectors | c.var.storage |
Custom Storage
For specialized needs, you can implement custom storage backends that integrate with external systems.