Storage¶
VlinderCLI provides two storage systems for agents: object storage (key-value) and vector storage (embedding similarity search).
Object Storage¶
Object storage lets agents read and write data by key. Declare it in agent.toml:
Relative paths are resolved against the agent's manifest directory. The agent can then use the bridge helpers:
| Function | Description |
|---|---|
kv_put(key, content) | Write content to a key |
kv_get(key) | Read content from a key |
kv_list(prefix) | List keys under a prefix |
kv_delete(key) | Delete a key |
Object storage is content-addressed — each write produces a state hash that integrates with the DAG for time-travel debugging.
Vector Storage¶
Vector storage lets agents store and search embeddings for semantic search. Declare it in agent.toml alongside an embedding service:
vector_storage = "sqlite://data/vectors.db"
[requirements.models]
nomic-embed = "nomic-embed-text"
[requirements.services.embed]
provider = "ollama"
protocol = "openai"
models = ["nomic-embed-text:latest"]
Bridge helpers:
| Function | Description |
|---|---|
embed(text) | Generate an embedding vector |
vector_store(key, vector, metadata) | Store a vector with metadata |
vector_search(vector, limit) | Find nearest vectors |
vector_delete(key) | Delete a stored vector |
Using Both Together¶
A full-featured agent might use both storage systems:
object_storage = "sqlite://data/objects.db"
vector_storage = "sqlite://data/vectors.db"
[requirements.models]
inference_model = "claude-sonnet"
embedding_model = "nomic-embed-text"
[requirements.services.infer]
provider = "openrouter"
protocol = "anthropic"
models = ["anthropic/claude-3.5-sonnet"]
[requirements.services.embed]
provider = "ollama"
protocol = "openai"
models = ["nomic-embed-text:latest"]
Storage Backends¶
The storage URI scheme selects the backend. Each backend has its own strengths and platform constraints — the choice of backend is a meaningful architectural decision, not a transparent swap.
All backends implement content-addressed versioning, which is what makes time-travel debugging possible. The specific constraints and capabilities vary by backend.
See Also¶
- Services reference — service types and providers
- Storage Model — design philosophy and content addressing
- agent.toml — declaring requirements