Manage Content

Memories are mutable: fix them, reorganize them, and prune them.

Update (partial)#

PATCH /v1/memory/collections/notes/memories/{memory_id}
{"text": "corrected text", "importance": 0.9}

Only the fields you send change. Updating text re-embeds the memory so search stays consistent. Read-only keys get 403.

Move between collections#

POST /v1/memory/collections/inbox/memories/{memory_id}/move
{"to_collection": "projects"}

Creates the target collection if needed. The Vault exposes this as drag-and-drop.

Delete#

DELETE /v1/memory/collections/notes/memories/{memory_id}   # one memory (+ its stored files)
DELETE /v1/memory/collections/{name}                       # a whole collection

Deleting a memory also removes its files from object storage.

Semantic forget#

POST /v1/memory/collections/notes/forget
{"query": "everything about project Icarus", "min_score": 0.5, "limit": 10}

Deletes the memories that semantically match the query above min_score — useful for "forget what I said about X" without knowing ids. Start with a high min_score; this is destructive.

Bulk add#

POST /v1/memory/collections/notes/memories/bulk
[{"text": "…", "container_tag": "user-1", "metadata": {"k": "v"}},
 {"text": "…"}]                           # up to 100 per call, one embed batch

Each item takes the same fields as a single create (text plus optional importance, category, source, metadata, container_tag) and returns {"created", "ids"}. The SDKs' add_many / addMany chunk larger lists to the 100-per-call cap for you.

Automatic pruning also exists: remember-extracted facts can carry an expiry and are swept hourly, and superseded facts leave search on their own — see Graph Memory.