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

  1. Sign up. Free, no card. You'll land on a Getting Started page that walks the next two steps.
  2. 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.
  3. 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.

  1. Install:
  2. Terminal
    pip install lumetra-engram "autogen-agentchat" "autogen-core" "autogen-ext"
  3. Vendor engram_autogen.py (~45 LOC) and export your API key:
  4. Terminal
    curl -fsSL https://raw.githubusercontent.com/lumetra-io/engram-autogen/main/engram_autogen.py -o engram_autogen.py
    export ENGRAM_API_KEY="<api-key>"
  5. Attach the tools to any AssistantAgent:
  6. Python
    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.

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.