cognee.remember() (for import) and
cognee.export() (for export). This page explains what it is so the
migration tools make sense.
Why a common format
Every memory tool stores data differently: Mem0 has short memory strings, Letta has agent memory blocks and message history, Zep and Graphiti have entity graphs with time-stamped facts. Without a shared format, importing from N tools and exporting to M tools would need N × M one-off converters. COGX collapses that into N + M. Each tool only has to translate to or from COGX once:- On import, a source adapter reads one tool’s export and emits COGX records. A single loader ingests those records — identical no matter where they came from.
- On export, Cognee dumps a dataset’s graph into a COGX archive that you can store, restore, or hand to another system.
What’s in COGX
COGX represents memory as a stream of typed records. Each record describes one kind of thing a memory system can hold:
Typed records also carry a scope (
user_id, agent_id, session_id,
run_id) and timestamps, so ownership and time information survive the move.
Raw nodes preserve their original graph properties verbatim.
Archive layout
An exported COGX archive is just a directory you can inspect:manifest.json records the COGX version the archive was written with. A reader
refuses to load an archive written by a newer major version than it
understands, so an out-of-date Cognee won’t silently misread a future archive.
Import modes
When records enter Cognee, amode controls how much processing they get. This
is the main knob you’ll actually set:
Each source picks a sensible default (Mem0, LangMem, and Letta default to
re-derive, Zep/Graphiti to hybrid, COGX archives to preserve), and you can
override it.
A Cognee-origin
cogx archive writes each document chunk twice — as a
Document record and as a Raw node carrying the chunk’s original
properties. A preserve restore rehydrates the raw node, so facts that
reference the chunk keep their graph topology instead of dangling, and the
chunk’s content survives the round-trip. As a result, CHUNK and hybrid search
work against the dataset after a Cognee → Cognee import.Where to go next
Migrate Memory Systems
Import from Mem0, Letta, Zep, or Graphiti — with runnable examples
remember()
The operation that ingests COGX records into the graph