Migrate to RememberOS

Already using another memory layer for your agents? Moving to RememberOS is mostly a rename: the core operations map one-to-one, and you bring your existing data over with a short import loop. This guide is provider-agnostic — export from your current tool (see their docs for the export format), then map and load.

How the concepts map#

Most memory APIs share the same primitives. Here's how they line up with RememberOS:

What you're doing todayRememberOS
Store / upsert a memoryadd(text, collection=…) — embeds and stores verbatim, no LLM cost
Semantic query / searchsearch(query) — hybrid (vector + full-text, RRF-fused) by default
Fact / profile extraction, "memory that updates"remember(text) — extracts atomic typed facts and supersedes contradicted ones, so search returns the current truth
Namespace / index / projectcollection — one per project or per app
Per-end-user scoping (one memory space per your user)container_tag — sub-scope inside a collection, filterable at search time
Delete / forget; data-subject requestsDELETE a memory, plus self-service GDPR export & one-call erasure

The one thing most stores don't have is remember's graph supersession — that's the difference between recalling everything you were ever told and answering what is true now. See the eval.

Bring your data over#

Export your existing memories from your current provider (consult their docs for the export endpoint and format), then load them into RememberOS. Use add() for a verbatim copy, or remember() if you want RememberOS to extract and supersede facts as it ingests:

from longmem import Longmem

mem = Longmem()                       # reads LONGMEM_API_KEY

# `exported` is whatever you pulled from your previous tool — a list of dicts.
# Bulk-import verbatim in batched calls (chunks of 100), keeping per-user scope:
items = [{"text": e["text"], "container_tag": e.get("user_id")} for e in exported]
mem.add_many(items, collection="memories")

# …or let RememberOS extract + supersede facts instead (one call per item):
# for e in exported:
#     mem.remember(e["text"], collection="memories", container_tag=e.get("user_id"))

For large or ongoing migrations, point a pipeline at RememberOS instead of looping by hand: the dlt destination ingests any dlt source, and the connector recipes (Notion, Slack, Drive, Postgres, Gmail, Linear, Confluence) cover common sources directly.

Why switch#

See the honest comparison for where RememberOS fits — and where it might not.

Next steps#