crewai-memory-core
Shared core for building CrewAI unified-memory StorageBackend implementations. CrewAI 1.10+ has one Memory engine (LLM analysis, consolidation, scope inference, composite scoring) over a pluggable storage protocol; this core implements the whole protocol — save / search / delete / update / get_record / list_records / get_scope_info / list_scopes / list_categories / count / reset / touch_records and the async variants — so a backend only supplies five primitives:
from crewai_memory_core import MemoryBackend
class MyBackend(MemoryBackend):
def _put(self, rows): ... # upsert rows by id
def _get(self, record_id): ... # -> row | None
def _delete_ids(self, ids): ... # -> int deleted
def _scan(self, scope_prefix): ... # every row in the scope subtree
# optional — native ANN; default ranks _scan rows by cosine in Python
def _vector_search(self, vector, scope_prefix, limit): ... # -> [(row, score), ...]
A row is a dict of the MemoryRecord fields plus embedding. Scope paths are hierarchical (/company/team/user); a prefix matches the scope itself and everything under it, never a sibling that merely shares characters (/a does not match /ab).
Use a backend with CrewAI:
from crewai import Crew
from crewai.memory import Memory
memory = Memory(storage=MyBackend(...))
crew = Crew(agents=[...], tasks=[...], memory=memory) # or set_memory_storage_factory(...) once at startup
crewai_memory_core.testing ships FakeEmbedder (deterministic, no network — pass as Memory(embedder=...)) and InMemoryBackend; crewai_memory_core.contract is an importable test suite every provider runs, including an end-to-end pass through CrewAI's real Memory engine with zero LLM calls.
Concrete backends: crewai-memory-dynamodb, crewai-memory-postgres, crewai-memory-cosmosdb, crewai-memory-firestore.
Docs: https://skamalj.github.io/agentstate-reducer/
License
MIT
Release files for crewai-memory-core 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| crewai_memory_core-0.1.0.tar.gz | 8.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| crewai_memory_core-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.5 kB
Release files / crewai_memory_core-0.1.0.tar.gz
| Download URL | crewai_memory_core-0.1.0.tar.gz |
|---|---|
| Size | 8.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f8c23ce4653c8700984c7ee16e2a7f2a7a07adbc23eebe55497b8f91023402d
|
|
BLAKE2b-256 checksum How to use checksums |
a1c48ff24732625a02e352c1e25653755d059bc1478b1bad6e87b0f8e356bc0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / crewai_memory_core-0.1.0-py3-none-any.whl
| Download URL | crewai_memory_core-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3481027f4e0ae778e8a1af2eb72882f364c605cf509f1e650ea6ecc4f2c6ebcc
|
|
BLAKE2b-256 checksum How to use checksums |
1be44f5ce7090b870b3e7a08d3a1d989ee05dea8c02643c11dec45fbbd97d119
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|