Persistent, searchable, semantic memory for AI agents — so they learn, adapt, and improve across every session. Built in Rust. Single binary.
# Store agent memory
POST /v1/memory/store
{
"agent_id": "assistant-1",
"text": "User prefers TypeScript",
"memory_type": "semantic",
"importance": 0.9
}
# Recall by meaning
POST /v1/memory/recall
{
"query": "language preferences",
"top_k": 5
}
# → Result
{ "score": 0.97, "text": "User prefers TypeScript" }
Every session starts from zero. Every mistake repeated. Every preference forgotten. Context windows aren't memory.
Agent memory, hybrid search, built-in embeddings, knowledge graphs, 45 MCP tools, and a 34-page admin dashboard. One binary.
dk CLI. Query builder, batch ops, analytics.Native SDKs for Python, TypeScript, Go, and Rust. Plus REST and gRPC APIs.
from dakera import DakeraClient
client = DakeraClient("http://localhost:3000")
# Store agent memory
client.memory_store(
agent_id="assistant-1",
text="User prefers TypeScript",
memory_type="semantic",
importance=0.9
)
# Recall by meaning
memories = client.memory_recall(
agent_id="assistant-1",
query="language preferences",
top_k=5
)import { DakeraClient } from "dakera"
const client = new DakeraClient("http://localhost:3000")
await client.memoryStore({
agentId: "assistant-1",
text: "User prefers TypeScript",
memoryType: "semantic",
importance: 0.9
})
const memories = await client.memoryRecall({
agentId: "assistant-1",
query: "language preferences",
topK: 5
})import "github.com/dakera/dakera"
client := dakera.NewClient("http://localhost:3000")
client.MemoryStore(ctx, &dakera.Memory{
AgentID: "assistant-1",
Text: "User prefers TypeScript",
MemoryType: "semantic",
Importance: 0.9,
})
memories, _ := client.MemoryRecall(ctx, "assistant-1", "language preferences", 5)use dakera_client::DakeraClient;
let client = DakeraClient::new("http://localhost:3000");
// Store agent memory
client.memory_store(&Memory {
agent_id: "assistant-1".into(),
text: "User prefers TypeScript".into(),
memory_type: "semantic".into(),
importance: 0.9,
..Default::default()
}).await?;
// Recall by meaning
let memories = client
.memory_recall("assistant-1", "language preferences", 5)
.await?;# Store memory
curl -X POST localhost:3000/v1/memory/store \
-H "Content-Type: application/json" \
-d '{"agent_id":"assistant-1","text":"User prefers TS","importance":0.9}'
# Recall
curl -X POST localhost:3000/v1/memory/recall \
-d '{"agent_id":"assistant-1","query":"language preferences","top_k":5}'
# Text search with auto-embedding
curl -X POST localhost:3000/v1/namespaces/docs/query-text \
-d '{"text":"semantic search systems","top_k":5}'Nine Rust crates. One binary. No external dependencies.
The memory engine purpose-built for AI agents. No vendor lock-in. One binary.