Skip to content

[DOCS] Add Dakera as a documented StorageBackend option in memory.mdx #6408

Description

@ferhimedamine

What's missing

The memory.mdx documentation describes the StorageBackend protocol introduced in recent versions, but only mentions LanceDB as an example backend. The set_memory_storage_factory() hook makes it straightforward to plug in any conforming implementation — this should be documented with at least one real example.

Proposed addition

Dakera is a self-hosted memory server with a published CrewAI adapter (crewai-dakera, PyPI 0.2.0) that implements the full StorageBackend protocol.

The integration works with the existing StorageBackend protocol defined in lib/crewai/src/crewai/memory/storage/backend.py:

# crewai/memory/storage/backend.py (excerpt — all 11 methods implemented)
@runtime_checkable
class StorageBackend(Protocol):
    def save(self, records: list[MemoryRecord]) -> None: ...
    def search(
        self,
        query_embedding: list[float],   # CrewAI computes the embedding; backend gets the vector
        scope_prefix=None,
        categories=None,
        metadata_filter=None,
        limit=10,
        min_score=0.0,
    ) -> list[tuple[MemoryRecord, float]]: ...
    def delete(self, ...) -> int: ...
    # + 8 more methods (update, get_record, list_records, get_scope_info, etc.)

Example section to add to docs/v1.15.1/en/concepts/memory.mdx under Storage Backends:

### Dakera (Self-Hosted Persistent Memory)

Install:
```bash
pip install crewai-dakera
from crewai import Crew
from crewai_dakera import DakeraStorageBackend

crew = Crew(
    agents=[...],
    tasks=[...],
    memory=True,
    memory_config={
        "storage": DakeraStorageBackend(
            base_url="http://your-dakera-host:3000",
            api_key="dk_your_key",
        )
    },
)

Why self-hosted: Unlike LanceDB (local-only SQLite), Dakera is a network service — multiple crews, machines, or agents can share the same persistent memory. Supports decay-weighted recall (recent + frequently-accessed memories score higher). Self-host via Docker.

Source · PyPI


## Notes

- `crewai-dakera` 0.2.0 is already published and passing tests against CrewAI 0.100+
- The `StorageBackend` `search()` method receives `query_embedding: list[float]` — CrewAI handles embedding before passing to the backend, so Dakera does pure vector similarity. This is correctly implemented in the adapter.
- I can submit a docs PR if the maintainers are open to it. PRs will have the `llm-generated` label per CONTRIBUTING.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions