Integration
Long-term memory for CrewAI
CrewAI's built-in memory is opt-in and locked to local disk: short-term, long-term, entity, and contextual layers all backed by ChromaDB plus SQLite under `./.crewai/memory`. Fine for a laptop project, awkward the moment you want multi-tenant isolation or shared memory across machines. `engram_tools(bucket='my-crew')` returns two `BaseTool` instances bound to one Engram bucket, so every agent in the crew reads and writes the same hosted store: durable across runs, scoped per crew, queryable across machines.
Install
Three steps: sign up for an Engram API key, paste a BYOK LLM-provider key on /models, then drop the snippet below into CrewAI.
Three steps to memory in your agent
- Sign up. Free, no card. You'll land on a Getting Started page that walks the next two steps.
- Add your LLM key. Engram is BYOK. Paste an OpenAI / Anthropic / Groq / Together / Fireworks key and we'll route every extraction and query call through your provider. You pay your provider directly. We never see your inference.
- Paste the snippet below into your agent and restart it. Use
Authorization: Bearer <api-key>with the API key from your portal.
engram-crewai: shared crew memory
Two CrewAI Tool instances bound to one Engram bucket so every agent in the crew reads and writes the same durable store. Crew knowledge survives across kickoff() calls. Source: github.com/lumetra-io/engram-crewai.
- Install:
- Vendor
engram_crewai.py(~60 LOC) and export your API key: - Bind the tools to every agent in the crew:
pip install lumetra-engram crewaicurl -fsSL https://raw.githubusercontent.com/lumetra-io/engram-crewai/main/engram_crewai.py -o engram_crewai.py
export ENGRAM_API_KEY="<api-key>"from crewai import Agent, Crew, Task
from engram_crewai import engram_tools
tools = engram_tools(bucket="my-crew")
researcher = Agent(role="Researcher", goal="...", tools=tools, ...)
writer = Agent(role="Writer", goal="...", tools=tools, ...)
crew = Crew(agents=[researcher, writer], tasks=[...])
crew.kickoff()What you can do once memory's wired in
- Give a researcher-and-writer crew the same shared institutional memory: the researcher stores facts, the writer queries them
- Use per-project buckets with `engram_tools(bucket=f'crew-{project_id}')` for isolation by project, no leakage
- Persist findings across multiple `kickoff()` calls so week-long research projects survive deploys
- Combine with CrewAI's task pipeline: store the summarized output of each task as memory for the next
FAQ
Do I need to give every agent the same tools list?
Yes, that's the design. Same `bucket` value, same `BaseTool` instances, same memory. Different agents can have different *prompts* about how to use the memory, but they share the store.
Does CrewAI's built-in memory conflict with this?
No. They're independent. CrewAI's built-in handles short-term task state (and persists to local ChromaDB/SQLite when enabled), while Engram is the durable, cross-machine, multi-tenant layer. Use both if you want both.
Is it PyPI-installable?
Vendor `engram_crewai.py` from the repo (~60 LOC) for now. PyPI release coming.
Related integrations
Ship durable memory in CrewAI today
Free tier: 10K memories and 50K retrievals per month. No credit card. Same Engram backend powers all 41 integrations, so memories you write from one client are immediately queryable from the rest.