Python SDK for Dakera AI — the memory engine for AI agents
| Dakera | Others | |
|---|---|---|
| LoCoMo accuracy | 87.8% (1,540 Q standard eval) | 60–92% |
| Deployment | Single binary, Docker one-liner | External vector DB + embedding service required |
| Embeddings | Built-in — no OpenAI key needed | Requires external embedding API |
| Search modes | Vector · BM25 · Hybrid · Knowledge Graph | Usually one or two |
| Transport | HTTP + gRPC | HTTP only |
→ Full benchmark results · dakera.ai
docker run -d \
--name dakera \
-p 3300:3300 \
-e DAKERA_ROOT_API_KEY=dk-mykey \
ghcr.io/dakera-ai/dakera:latest
curl http://localhost:3300/health # → {"status":"ok"}For persistent storage with Docker Compose:
curl -sSfL https://raw.githubusercontent.com/Dakera-AI/dakera-deploy/main/docker-compose.yml \
-o docker-compose.yml
DAKERA_API_KEY=dk-mykey docker compose up -dFull deployment guide (Docker Compose, Kubernetes, Helm): dakera-deploy
pip install dakeraFor async support (AsyncDakeraClient):
pip install dakera[async]Works with LangChain, LlamaIndex, CrewAI, AutoGen, and any Python agent framework.
from dakera import DakeraClient
client = DakeraClient(base_url="http://localhost:3300", api_key="dk-mykey")
# Store an agent memory
client.store_memory(
agent_id="my-agent",
content="User prefers concise responses with code examples",
importance=0.9,
tags=["preference"],
)
# Recall memories (semantic search)
response = client.recall(agent_id="my-agent", query="what does the user prefer?", top_k=5)
for m in response.memories:
print(f"[{m.importance:.2f}] {m.content}")
# Upsert vectors
client.upsert("my-namespace", vectors=[
{"id": "vec1", "values": [0.1, 0.2, 0.3], "metadata": {"category": "docs"}},
])
# Hybrid search (vector + BM25)
results = client.hybrid_search("my-namespace", query="completed task", top_k=5, vector_weight=0.7)
for r in results:
print(r.id, r.score)import asyncio
from dakera import AsyncDakeraClient
async def main():
client = AsyncDakeraClient(base_url="http://localhost:3300", api_key="dk-mykey")
response = await client.recall(agent_id="my-agent", query="preferences", top_k=5)
for m in response.memories:
print(m.content)
asyncio.run(main())- Agent Memory — store, recall, search, and forget memories with importance scoring
- Sessions — group memories by conversation with auto-consolidation on session end
- Knowledge Graph — traverse memory relationships, find paths, export graphs
- Vector Search — ANN queries with metadata filters and batch operations
- Full-Text Search — BM25 ranking with stemming and stop-word filtering
- Hybrid Search — combine vector similarity with keyword matching
- Text Auto-Embedding — server-side embedding generation (no local model needed)
- Namespaces — isolated vector stores per project, tenant, or use case
- Feedback Loop — upvote/downvote/flag memories to improve recall quality
- Entity Extraction — GLiNER NER for automatic entity detection
- Streaming — SSE event subscriptions for real-time memory updates
- Sync + Async — full parity between
DakeraClientandAsyncDakeraClient - Typed Models — full type annotations with strict mypy, PEP 561
py.typedmarker - Retry & Rate Limiting — built-in exponential backoff and rate-limit header tracking
- Filter DSL —
F.eq(),F.gt(),F.contains()typed filter builder
from dakera import DakeraClient, RetryConfig
# Self-hosted
client = DakeraClient(base_url="http://your-server:3300", api_key="your-key")
# Cloud (early access)
client = DakeraClient(base_url="https://api.dakera.ai", api_key="your-key")
# With custom retry config
client = DakeraClient(
base_url="http://localhost:3300",
api_key="your-key",
retry_config=RetryConfig(max_retries=5, base_delay=0.2),
)See the examples/ directory:
basic_usage.py— vectors, namespaces, queries, filtershybrid_search.py— full-text, vector, and hybrid search
| Documentation | Full API reference and guides |
| Python SDK docs | Python-specific reference |
| Benchmark | LoCoMo evaluation results |
| dakera.ai | Website and early access |
| GitHub Org | All public repos |
| dakera-deploy | Self-hosting guide |
| SDK | Package |
|---|---|
| dakera-js | @dakera-ai/dakera (npm) |
| dakera-rs | dakera-client (crates.io) |
| dakera-go | github.com/dakera-ai/dakera-go |
| dakera-cli | CLI tool |
| dakera-mcp | MCP server for Claude/Cursor |
dakera.ai · Docs · Benchmark · Request Early Access
Built with Rust. Single binary. Zero external dependencies.
