Skip to main content

citadeldb-crewai

CrewAI memory backed by Citadel. Encrypted at rest, embedded in your process, and deletes that destroy the record's key rather than its row.

pip install citadeldb-crewai

Route your crews' memory through Citadel in one call at startup:

from citadeldb_crewai import use_citadel

use_citadel("crew_memory.cdl", key="your-passphrase")

Crews then work unchanged:

crew = Crew(agents=[...], tasks=[...], memory=True)

A crew that names its own backend keeps it, so this will not displace a deliberate storage="qdrant-edge". Crews may also name Citadel outright once use_citadel has run: Memory(storage="citadel").

To route one crew instead of the whole process, hand the backend over directly and skip the startup call:

from crewai.memory.unified_memory import Memory
from citadeldb_crewai import CitadelBackend

backend = CitadelBackend("crew_memory.cdl", key="your-passphrase")
crew = Crew(agents=[...], tasks=[...], memory=Memory(storage=backend))

Or drive the backend directly

from citadeldb_crewai import CitadelBackend
from crewai.memory.storage.backend import MemoryRecord

backend = CitadelBackend("crew_memory.cdl", key="your-passphrase")

backend.save([
    MemoryRecord(
        content="the deploy failed because the disk was full",
        scope="/team/ops",
        categories=["incident"],
        metadata={"env": "prod"},
        importance=0.9,
    )
])

hits = backend.search(query_embedding, scope_prefix="/team", limit=5)
for record, score in hits:
    print(f"{score:.3f}  {record.content}")

Deletes destroy the key

Every record is sealed under its own key. Deleting destroys that key, so the bytes on disk stay unreadable instead of being marked deleted and living on in backups.

backend.delete(record_ids=["abc123"])                      # one record
backend.delete(scope_prefix="/team/ops", categories=["incident"])
backend.delete(scope_prefix="/team", older_than=cutoff)    # retention sweep
backend.reset("/users/alice")                              # a whole subtree

reset on a per-user scope is what a data-deletion request usually needs: the subtree becomes unreadable rather than merely unlisted.

Importance is a real ranking signal

MemoryRecord.importance maps onto Citadel's native atom score, so it survives as something recall ranks by rather than as metadata the store carries and ignores.

Notes

CrewAI embeds queries itself and hands the backend a vector, so search runs vector recall plus the scope, category, and metadata predicates the protocol defines.

Citadel is embedded and takes an exclusive lock on the file, so build one backend per database and share it. use_citadel does that for you.

Your crew's own embeddings are stored as-is, so recall runs in the same vector space the crew queries with, and no text is re-embedded. Set dim to your embedding model's width if it is not OpenAI's 1536-wide text-embedding-3-small:

use_citadel("crew_memory.cdl", key="pw", dim=768)

A record saved without an embedding still stores and still comes back through get_record, list_records, and every delete filter; it just does not rank in vector search.

License

Apache-2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

citadeldb_crewai-1.15.0.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

citadeldb_crewai-1.15.0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file citadeldb_crewai-1.15.0.tar.gz.

File metadata

  • Download URL: citadeldb_crewai-1.15.0.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for citadeldb_crewai-1.15.0.tar.gz
Algorithm Hash digest
SHA256 dff78cfc67bc7eae7a6498c6cca588381ac3a29e3b3f6e894d102f58cb31190b
MD5 207231f0526fe63ffb094f783a5f9641
BLAKE2b-256 62df4579d716318564e409ae933455cf7401d1c7fb4690f63d6f8aa90305d49d

See more details on using hashes here.

Provenance

The following attestation bundles were made for citadeldb_crewai-1.15.0.tar.gz:

Publisher: release-crewai.yml on yp3y5akh0v/citadel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file citadeldb_crewai-1.15.0-py3-none-any.whl.

File metadata

File hashes

Hashes for citadeldb_crewai-1.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3c2c764c33ecf158bb125371cb6d6fd399ff782f7b99021136773772a6cbc651
MD5 0c9a916befea20bb42c5acd18736b21f
BLAKE2b-256 a5f189c9006903cab3426f2f74ce0a6fc137744058251c499fb26c951c28c4fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for citadeldb_crewai-1.15.0-py3-none-any.whl:

Publisher: release-crewai.yml on yp3y5akh0v/citadel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page