Skip to main content
SenseLab integrates with popular agent frameworks so you can add persistent memory to your existing workflows. Every integration is a thin wrapper around one AgentMemory instance: you build the memory, connect it to your account, and hand it to the wrapper.

Setup

Install the SDK and the HTTP adapter, then build one connected memory that every integration below shares:
The integrations do not read AMFS_HTTP_URL or AMFS_API_KEY, and neither does AgentMemory. A memory created without adapter= stores everything in .amfs/ on the local disk — silently — and nothing reaches your dashboard. Pass the HttpAdapter as above.
Each package has an extra that pulls in the framework itself, for example pip install "amfs-crewai[crewai]". If you already have the framework installed, the plain package is enough. Get a key from the Connect to SenseLab guide.

CrewAI

Add SenseLab tools to your CrewAI agents:
The tools let a CrewAI agent read an entry (entity_path, key), write one (entity_path, key, JSON value) and list entries as part of its task. Requires CrewAI 0.80 or later; tools() raises ImportError with the install hint if CrewAI is missing.

LangGraph

Keep graph state in SenseLab, keyed by thread_id:
Because every put is a new version of the same entry, a thread’s full history is kept and list returns it.
AMFSCheckpointer is a minimal checkpoint store with put, get and list. It does not implement LangGraph’s BaseCheckpointSaver interface, so call it from your own nodes or wrap it rather than passing it straight to graph.compile(checkpointer=...).

LangChain

Use SenseLab as chat memory for LangChain:
Each session is one entry, versioned on every turn, so mem.history("_langchain_chat", "conv-123") shows how the conversation grew.

AutoGen

Use SenseLab as a key-value memory store for AutoGen agents:

Strands Agents

Add memory to a Strands agent as a plugin:
The plugin registers six tools — amfs_read, amfs_write, amfs_search, amfs_recall, amfs_list and amfs_record_context — and also records the agent’s other tool calls into the causal chain as contexts, so the decision trace covers the whole session rather than only the memory operations. Pass AMFSPlugin(mem, auto_trace=False) to register the tools without that tracing. Requires strands-agents 1.0 or later. If you’d rather have one action-based tool than the full plugin, amfs_memory handles store, retrieve, search and list:
amfs_memory builds its own AgentMemory — identity from AMFS_AGENT_ID (default strands-agent), storage from amfs.yaml or the local .amfs/ directory — so it does not reach SenseLab. Use AMFSPlugin with the connected memory from Setup for that.

Close the loop

The wrappers above read and write. What makes the memory improve is telling SenseLab how the task went, on the same mem the framework used: every entry the agent read during the run is already in its read log.
Entries that led to a success gain confidence; entries that led to a failure lose it, and the next run’s reads and briefing reflect that. See Outcomes and decision traces in the Python SDK guide.

Building your own integration

All integrations are thin wrappers around the AgentMemory API. To build your own:
  1. Accept an AgentMemory instance in your constructor
  2. Map your framework’s memory/tool API to mem.read(), mem.write(), mem.list(), mem.search()
  3. Use entity_path to scope data (per conversation, per task, per agent)
Agents working through an MCP client (Cursor, Claude Code, Codex) need none of this — see the MCP server guide.

What’s next

Python SDK

The full AgentMemory API that every integration wraps.

Core Concepts

Understand versioning, provenance, and causal graphs in SenseLab.