Integration
Long-term memory for Microsoft AutoGen
AutoGen's built-in memory is per-session and per-agent. In a team (`RoundRobinGroupChat`, `SelectorGroupChat`, `MagenticOneGroupChat`, `Swarm`), agents can't share state by default. `engram_tools(bucket=...)` returns two `FunctionTool` instances. Pass them to every `AssistantAgent` in the team and the whole crew reads and writes the same durable bucket.
Install
Three steps: sign up for an Engram API key, paste a BYOK LLM-provider key on /models, then drop the snippet below into AutoGen.
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-autogen: durable memory for Microsoft's multi-agent framework
Two FunctionTool instances bound to one Engram bucket. Pass the same bucket= to multiple agents in a GroupChat and they share a memory layer. Source: github.com/lumetra-io/engram-autogen.
- Install:
- Vendor
engram_autogen.py(~45 LOC) and export your API key: - Attach the tools to any
AssistantAgent:
pip install lumetra-engram "autogen-agentchat" "autogen-core" "autogen-ext"curl -fsSL https://raw.githubusercontent.com/lumetra-io/engram-autogen/main/engram_autogen.py -o engram_autogen.py
export ENGRAM_API_KEY="<api-key>"from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from engram_autogen import engram_tools
agent = AssistantAgent(
name="researcher",
model_client=OpenAIChatCompletionClient(model="gpt-4o-mini"),
tools=engram_tools(bucket="my-team"),
)What you can do once memory's wired in
- Give a `SelectorGroupChat` of planner, coder, and reviewer agents a shared memory layer so they see the same context
- Persist across `team.run()` calls so multi-step jobs survive worker restarts
- Use per-team buckets with `engram_tools(bucket=f'team-{team_id}')`
- Run a memory-aware reasoning chain where the team curates which facts to persist
FAQ
Does this work with `AssistantAgent` and other AgentChat agents?
Yes. Anything that subclasses `BaseChatAgent` and exposes a `tools=[...]` parameter (notably `AssistantAgent`) works. The `FunctionTool` interface is the AutoGen `autogen-core` convention, and AgentChat agents consume it directly.
What about `autogen-core` vs `autogen-agentchat`?
The tools are core-level (`FunctionTool` lives in `autogen-core`); the agents are AgentChat. Install all three packages (`autogen-agentchat`, `autogen-core`, `autogen-ext`); that's the recommended 0.4+ install set.
Is it PyPI-installable?
Vendor `engram_autogen.py` for now (~45 LOC). PyPI release coming.
Related integrations
Ship durable memory in AutoGen 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.