Files
mem0/docs/platform/advanced-memory-operations.mdx
T
rudrajmehta-mem0 8296c06206 docs: remove deprecated Graph Memory references
Graph Memory was deprecated on April 16, 2026. This removes remaining
mentions across docs that could mislead readers into thinking it is still
a supported feature.

- Platform pages (overview, quickstart, faqs, platform-vs-oss, vibecoding):
  remove graph memory from feature lists, comparison table, and intro copy
- Platform features (platform-overview, mcp-integration,
  advanced-memory-operations): rephrase "graph-powered retrieval" to
  "advanced retrieval"; drop "Enable graph memories" tip; remove graph-edge
  verification step from the metadata example
- Core concepts (add, search, memory-types, memory-evaluation): remove
  "optional graph storage" / "graph features" / "graph writes" / "graph
  toggles"; drop "graph" from Entity Search description; remove outdated
  add/search architecture diagrams (replacement pending)
- Open source features (overview, rest-api): remove "graph relationships"
  and "graph backend(s)" from REST server config narrative
- API reference (organizations-projects): drop "graph settings" from
  Update Project Settings description
- Cookbooks: remove "Graph Memory on Neptune" card (page removed) and
  Neptune mention from AWS Bedrock card; remove "Graph Capabilities"
  bullet from Gemini cookbook; remove graph-memory conditional bullet from
  controlling-memory-ingestion
- CLI: remove --graph / --no-graph flags from mem0 add / mem0 search
  flag tables and MEM0_ENABLE_GRAPH env var
- Images: delete orphan add_architecture.png and search_architecture.png
2026-05-27 18:26:36 -07:00

209 lines
4.9 KiB
Plaintext

---
title: Advanced Memory Operations
description: "Run richer add/search/update/delete flows on the managed platform with metadata, rerankers, and per-request controls."
---
# Make Platform Memory Operations Smarter
<Info>
**Prerequisites**
- Platform workspace with API key
- Python 3.10+ and Node.js 18+
- Async memories enabled in your dashboard (Settings → Memory Options)
</Info>
<Tip>
Need a refresher on the core concepts first? Review the <Link href="/core-concepts/memory-operations/add">Add Memory</Link> overview, then come back for the advanced flow.
</Tip>
## Install and authenticate
<Tabs>
<Tab title="Python">
<Steps>
<Step title="Install the SDK with async extras">
```bash
pip install "mem0ai[async]"
```
</Step>
<Step title="Export your API key">
```bash
export MEM0_API_KEY="sk-platform-..."
```
</Step>
<Step title="Create an async client">
```python
import os
from mem0 import AsyncMemoryClient
memory = AsyncMemoryClient(api_key=os.environ["MEM0_API_KEY"])
```
</Step>
</Steps>
</Tab>
<Tab title="TypeScript">
<Steps>
<Step title="Install the OSS SDK">
```bash
npm install mem0ai
```
</Step>
<Step title="Load your API key">
```bash
export MEM0_API_KEY="sk-platform-..."
```
</Step>
<Step title="Instantiate the client">
```typescript
import { Memory } from "mem0ai";
const memory = new Memory({ apiKey: process.env.MEM0_API_KEY!, async: true });
```
</Step>
</Steps>
</Tab>
</Tabs>
## Add memories with metadata
<Tabs>
<Tab title="Python">
<Steps>
<Step title="Record conversations with metadata">
```python
conversation = [
{"role": "user", "content": "I'm Morgan, planning a 3-week trip to Japan in May."},
{"role": "assistant", "content": "Great! I'll track dietary notes and cities you mention."},
{"role": "user", "content": "Please remember I avoid shellfish and prefer boutique hotels in Tokyo."},
]
result = await memory.add(
conversation,
user_id="traveler-42",
metadata={"trip": "japan-2025", "preferences": ["boutique", "no-shellfish"]},
run_id="planning-call-1",
)
```
</Step>
</Steps>
</Tab>
<Tab title="TypeScript">
<Steps>
<Step title="Capture context-rich memories">
```typescript
const conversation = [
{ role: "user", content: "I'm Morgan, planning a 3-week trip to Japan in May." },
{ role: "assistant", content: "Great! I'll track dietary notes and cities you mention." },
{ role: "user", content: "Please remember I avoid shellfish and love boutique hotels in Tokyo." },
];
const result = await memory.add(conversation, {
userId: "traveler-42",
metadata: { trip: "japan-2025", preferences: ["boutique", "no-shellfish"] },
runId: "planning-call-1",
});
```
</Step>
</Steps>
</Tab>
</Tabs>
<Info icon="check">
Successful calls return memories tagged with the metadata you passed. In the dashboard, verify the `trip=japan-2025` tag exists on the new memory.
</Info>
## Retrieve and refine
<Tabs>
<Tab title="Python">
<Steps>
<Step title="Filter by metadata + reranker">
```python
matches = await memory.search(
"Any food alerts?",
user_id="traveler-42",
filters={"metadata.trip": "japan-2025"},
rerank=True,
include_vectors=False,
)
```
</Step>
<Step title="Update a memory inline">
```python
await memory.update(
memory_id=matches["results"][0]["id"],
content="Morgan avoids shellfish and prefers boutique hotels in central Tokyo.",
)
```
</Step>
</Steps>
</Tab>
<Tab title="TypeScript">
<Steps>
<Step title="Search with metadata filters">
```typescript
const matches = await memory.search("Any food alerts?", {
userId: "traveler-42",
filters: { "metadata.trip": "japan-2025" },
rerank: true,
includeVectors: false,
});
```
</Step>
<Step title="Apply an update">
```typescript
await memory.update(matches.results[0].id, {
content: "Morgan avoids shellfish and prefers boutique hotels in central Tokyo.",
});
```
</Step>
</Steps>
</Tab>
</Tabs>
## Clean up
<Tabs>
<Tab title="Python">
<Steps>
<Step title="Delete scoped memories">
```python
await memory.delete_all(user_id="traveler-42", run_id="planning-call-1")
```
</Step>
</Steps>
</Tab>
<Tab title="TypeScript">
<Steps>
<Step title="Remove the run">
```typescript
await memory.deleteAll({ userId: "traveler-42", runId: "planning-call-1" });
```
</Step>
</Steps>
</Tab>
</Tabs>
## Quick recovery
- Empty results with filters: log `filters` values and confirm metadata keys match (case-sensitive).
<Warning>
Metadata keys become part of your filtering schema. Stick to lowercase snake_case (`trip_id`, `preferences`) to avoid collisions down the road.
</Warning>
<CardGroup cols={2}>
<Card
title="Tune Metadata Filtering"
description="Layer field-level filters on top of advanced operations."
icon="funnel"
href="/open-source/features/metadata-filtering"
/>
<Card
title="Explore Reranker Search"
description="See how rerankers boost accuracy after advanced retrieval."
icon="sparkles"
href="/open-source/features/reranker-search"
/>
</CardGroup>