Skip to content

[Memory] Add DakeraMemoryService — persistent, decay-weighted cross-session memory #6255

Description

@ferhimedamine

Summary

This issue proposes adding DakeraMemoryService, a new implementation of BaseMemoryService backed by a self-hosted Dakera server.

Motivation

The existing InMemoryMemoryService is an excellent starting point for development, but memories are discarded on process restart and do not scale beyond a single process. VertexAiMemoryBankService and VertexAiRagMemoryService cover the managed-cloud use case, but a growing number of ADK users need persistent, self-hosted memory without a dependency on Google Cloud.

Dakera is an open-deployment vector memory server that provides:

  • Semantic search over stored memories via a built-in HNSW vector index and embedding model.
  • Decay-weighted importance — memories that have not been accessed recently receive lower recall scores, mirroring how human memory fades.
  • Cross-session persistence — memories survive process restarts and can be shared across multiple agent instances.
  • Zero external-cloud dependency — the server runs as a single Docker container or binary on any Linux host.

Proposed API

from google.adk.memory import DakeraMemoryService

memory_service = DakeraMemoryService(
    base_url="http://localhost:3000",  # or DAKERA_API_URL env var
    api_key="sk-...",                  # or DAKERA_API_KEY env var
    top_k=10,
)

Plug it into any ADK Runner that accepts a memory_service parameter:

from google.adk.runners import Runner

runner = Runner(
    agent=my_agent,
    app_name="my_app",
    session_service=session_service,
    memory_service=memory_service,
)

Implementation plan

  • src/google/adk/memory/dakera_memory_service.pyDakeraMemoryService(BaseMemoryService) using httpx.AsyncClient
    • add_session_to_memory(session)POST /v1/memories per event
    • search_memory(app_name, user_id, query)POST /v1/memories/searchSearchMemoryResponse
  • src/google/adk/memory/__init__.py — lazy-import export alongside existing services
  • tests/unittests/memory/test_dakera_memory_service.py — unit tests with httpx mock transport

Self-hosting

docker run -p 3000:3000 dakera/dakera:latest

Full deployment guide: https://dakera.ai

Related

  • BaseMemoryService ABC in src/google/adk/memory/base_memory_service.py
  • InMemoryMemoryService — in-process reference implementation

Metadata

Metadata

Assignees

Labels

services[Component] This issue is related to runtime services, e.g. sessions, memory, artifacts, etc
No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions