diff --git a/docs/api-reference/memory/get-memories.mdx b/docs/api-reference/memory/get-memories.mdx
index be63b949e..275b49cdb 100644
--- a/docs/api-reference/memory/get-memories.mdx
+++ b/docs/api-reference/memory/get-memories.mdx
@@ -53,47 +53,3 @@ memories = client.get_all(
-## Graph Memory
-
-To retrieve graph memory relationships between entities, pass `output_format="v1.1"` in your request. This will return memories with entity and relationship information from the knowledge graph.
-
-
-```python Code
-memories = client.get_all(
- filters={
- "user_id": "alex"
- }
-)
-```
-
-```python Output
-{
- "results": [
- {
- "id": "f4cbdb08-7062-4f3e-8eb2-9f5c80dfe64c",
- "memory": "Alex is planning a trip to San Francisco",
- "entities": [
- {
- "id": "entity-1",
- "name": "Alex",
- "type": "person"
- },
- {
- "id": "entity-2",
- "name": "San Francisco",
- "type": "location"
- }
- ],
- "relations": [
- {
- "source": "entity-1",
- "target": "entity-2",
- "relationship": "traveling_to"
- }
- ]
- }
- ]
-}
-```
-
-
diff --git a/docs/changelog/highlights.mdx b/docs/changelog/highlights.mdx
index bfc713ed6..a20a2e17e 100644
--- a/docs/changelog/highlights.mdx
+++ b/docs/changelog/highlights.mdx
@@ -6,7 +6,7 @@ mode: "wide"
-**New Memory Algorithm — State-of-the-Art Accuracy at 90% Lower Cost**
+**New Memory Algorithm — State-of-the-Art Accuracy at ~3-4x Lower Cost**
Ground-up rewrite of the memory pipeline with 20+ point benchmark improvements:
@@ -15,7 +15,7 @@ Ground-up rewrite of the memory pipeline with 20+ point benchmark improvements:
- **BEAM (1M tokens):** **64.1** — production-scale memory evaluation
- **Agent memories are first-class** — Previous algorithm: 46% on assistant recall. New: **100%**
- **Temporal reasoning works** — "Where did I live before SF?" Previous: 51%. New: **93%**
-- **90% fewer tokens** — Under 7K tokens per retrieval vs 25K+ for full-context approaches
+- **~3-4x fewer tokens** — Under 7K tokens per retrieval vs 25K+ for full-context approaches
- **ADD-only extraction** — Memories accumulate; nothing is overwritten or deleted
- **Hybrid retrieval** — Semantic + BM25 keyword + entity boost, scored in parallel
- **Entity linking** — Entities extracted, embedded, and linked across memories
diff --git a/docs/changelog/platform.mdx b/docs/changelog/platform.mdx
index 70e8839d1..985e9e2c4 100644
--- a/docs/changelog/platform.mdx
+++ b/docs/changelog/platform.mdx
@@ -4,6 +4,13 @@ description: "Release notes for the Mem0 hosted platform — backend, dashboard,
mode: "wide"
---
+
+
+**Improvements:**
+- **UI:** Removed Graph Memory tab, page, and all references from dashboard, sidebar, project settings, playground, and billing
+
+
+
**Bug Fixes:**
diff --git a/docs/cookbooks/essentials/choosing-memory-architecture-vector-vs-graph.mdx b/docs/cookbooks/essentials/choosing-memory-architecture-vector-vs-graph.mdx
deleted file mode 100644
index e763ed90c..000000000
--- a/docs/cookbooks/essentials/choosing-memory-architecture-vector-vs-graph.mdx
+++ /dev/null
@@ -1,328 +0,0 @@
----
-title: Choose Vector vs Graph Memory
-description: "Blend vector search with graph relationships to answer multi-hop questions."
----
-
-
-Most AI agents use vector stores for RAG operations - they work great for semantic search and retrieving relevant context. But there's a gap when queries require understanding connections between entities.
-
-Mem0 brings graph memory into the picture to fill this gap. In this cookbook, we'll create a company knowledge base with Mem0, using both vector and graph stores. You'll learn when each one helps along the way.
-
----
-
-## Vector and Graph Stores
-
-When you add a memory to Mem0, it goes into a **vector store** by default. Vector stores are excellent at semantic search - finding memories that match the meaning of your query.
-
-**Graph stores** work differently. They extract **entities** (people, projects, teams) and **relationships between them** (works_with, reports_to, member_of). This lets you answer questions that need connecting information across multiple memories.
-
-We will go through examples in this cookbook while building a company's knowledge base along the way.
-
----
-
-## Starting Simple
-
-Since we're building a company knowledge base, let's add some employee information:
-
-```python
-from mem0 import MemoryClient
-
-client = MemoryClient(api_key="your-api-key")
-# Add employee info
-client.add("Emma is a software engineer in Seattle", user_id="company_kb")
-client.add("David is a product manager in Austin", user_id="company_kb")
-
-```
-
-Now let's search for Emma's role:
-
-```python
-results = client.search("What does Emma do?", filters={"user_id": "company_kb"})
-print(results['results'][0]['memory'])
-
-```
-
-**Output:**
-
-```
-Emma is a software engineer in Seattle
-
-```
-
-
-**Expected output:** Vector search returned Emma's role instantly. When queries ask for facts directly stored in one memory, vector semantic search is perfect—fast and accurate.
-
-
-This works perfectly. Vector search found the memory that semantically matches "What does Emma do?" and returned Emma's role.
-
----
-
-## Adding Team Structure
-
-Let's add some information about how the team works together:
-
-```python
-client.add("Emma works with David on the mobile app redesign", user_id="company_kb")
-client.add("David reports to Rachel, who manages the design team", user_id="company_kb")
-
-```
-
-Now we have two pieces of information stored:
-
-1. Emma works with David
-2. David reports to Rachel
-
-Let's try asking something that needs both pieces:
-
-```python
-results = client.search(
- "Who is Emma's teammate's manager?",
- filters={"user_id": "company_kb"}
-)
-
-for r in results['results']:
- print(r['memory'])
-
-```
-
-**Output:**
-
-```
-Emma works with David on the mobile app redesign
-David reports to Rachel, who manages the design team
-
-```
-
-Vector search returned both memories, but it didn't connect them. You'd need to manually figure out:
-
-- Emma's teammate is David (from memory 1)
-- David's manager is Rachel (from memory 2)
-- So the answer is Rachel
-
-
-Vector search can't traverse relationships. It returns relevant memories, but you must connect the dots manually. For "Who is Emma's teammate's manager?", vector search gives you the pieces—not the answer. This breaks down as queries get more complex (3+ hops).
-
-
----
-
-## Enter Graph Memory
-
-Let's add the same information with graph memory enabled:
-
-```python
-client.add(
- "Emma works with David on the mobile app redesign",
- user_id="company_kb"
-)
-
-client.add(
- "David reports to Rachel, who manages the design team",
- user_id="company_kb"
-)
-
-```
-
-When graph memory is enabled, Mem0 extracts entities and relationships:
-
-- `emma --[works_with]--> david`
-- `david --[reports_to]--> rachel`
-- `rachel --[manages]--> design_team`
-
-Now the same query works differently:
-
-```python
-results = client.search(
- "Who is Emma's teammate's manager?",
- filters={"user_id": "company_kb"}
-)
-
-print(results['results'][0]['memory'])
-print("\\nRelationships found:")
-for rel in results.get('relations', []):
- print(f" {rel['source']}, {rel['target']} ({rel['relationship']})")
-
-```
-
-**Output:**
-
-```
-David reports to Rachel, who manages the design team
-
-Relationships found:
- emma, david (works_with)
- david, rachel (reports_to)
-
-```
-
-
-**Expected behavior:** Graph memory returns the direct answer—"David reports to Rachel"—plus the relationship chain that got there. No manual connecting needed. The graph traversed: Emma → works_with → David → reports_to → Rachel.
-
-
-Graph memory traversed the relationships automatically: Emma works with David, David reports to Rachel, so Rachel is the answer.
-
----
-
-## How It Connects
-
-Here's what the graph looks like behind the scenes:
-
-```mermaid
-graph LR
- Emma[Emma] -->|works_with| David[David]
- David -->|reports_to| Rachel[Rachel]
- Rachel -->|manages| DesignTeam[Design Team]
- David -->|works_on| MobileApp[Mobile App]
- Emma -->|works_on| MobileApp
-
-```
-
-Graph memory lets you discover relations and memories which are tricky to do with direct vector stores.
-
-Vector search would need the exact words in your query to match. Graph memory follows the connections.
-
----
-
-## When to Use Each
-
-Use **vector store** (default) when:
-
-- Searching documents by semantic similarity
-- Looking up facts that don't need relationships
-- Building FAQs or knowledge bases where each item stands alone
-
-Use **graph memory** when:
-
-- Tracking organizational hierarchies (who reports to whom)
-- Understanding project teams (who collaborates with whom)
-- Building CRMs (which contacts connect to which companies)
-- Product recommendations (what items are bought together)
-
-For our company knowledge base, we'll use both:
-
-- Vector for individual facts: "Emma specializes in React"
-- Graph for relationships: "Emma works with David"
-
----
-
-## Putting It Together
-
-Let's build a small company knowledge base:
-
-```python
-# Facts about individuals
-client.add("Emma specializes in React and TypeScript", user_id="company_kb")
-client.add("David has 5 years of product management experience", user_id="company_kb")
-
-# Relationships
-client.add(
- "Emma and David work together on the mobile app",
- user_id="company_kb"
-)
-
-client.add(
- "David reports to Rachel",
- user_id="company_kb"
-)
-
-client.add(
- "Rachel runs weekly team syncs every Tuesday",
- user_id="company_kb"
-)
-
-```
-
-Now we can ask different types of questions:
-
-```python
-# Direct fact - vector search
-results = client.search("What are Emma's skills?", filters={"user_id": "company_kb"})
-print(results['results'][0]['memory'])
-
-```
-
-**Output:**
-
-```
-Emma specializes in React and TypeScript
-
-```
-
-```python
-# Multi-hop relationship - graph search
-results = client.search(
- "What meetings does Emma's project manager's boss run?",
- filters={"user_id": "company_kb"}
-)
-print(results['results'][0]['memory'])
-
-```
-
-**Output:**
-
-```
-Rachel runs weekly team syncs every Tuesday
-
-```
-
-Graph memory connected: Emma works with David, David reports to Rachel, Rachel runs team syncs.
-
-
-Enable graph memory when your queries need multi-hop traversal: org charts (who reports to whom), project teams (who collaborates), CRMs (which contacts connect to companies). For single-fact lookups, stick with vector search—it's faster and cheaper.
-
-
----
-
-## The Tradeoff
-
-Graph memory adds processing time and cost. Mem0 makes extra LLM calls to extract entities and relationships from each memory.
-
-
-**Cost consideration:** Graph memory extraction adds ~2-3 extra LLM calls per `add()` operation to identify entities and relationships. Use it when your use case benefits from relationship traversal—organizational structures, team hierarchies, and long-term connections.
-
-
-Use graph memory when the relationship traversal adds real value. For most use cases, vector search is sufficient and faster.
-
-```python
-# Long-term organizational structure - benefits from graph
-client.add(
- "Emma mentors two junior engineers on the frontend team",
- user_id="company_kb"
-)
-
-# Temporary notes stored with a run_id for session isolation
-client.add(
- "Emma is out sick today",
- user_id="company_kb",
- run_id="daily_notes"
-)
-
-```
-
----
-
-## What You Built
-
-A hybrid company knowledge base that combines both architectures:
-
-- **Vector search** - Fast semantic lookups for individual facts (Emma's skills, David's experience)
-- **Graph memory** - Multi-hop relationship traversal (Emma's teammate's manager, project hierarchies)
-- **Cost optimization** - Use graph for long-term organizational structure, vector for temporary notes and simple facts
-
-This pattern scales from 10-person startups to enterprise org charts with thousands of employees.
-
----
-
-## Summary
-
-Vector stores handle most memory operations efficiently—semantic search works great for finding relevant information. Add graph memory when your queries need to understand how entities connect across multiple hops.
-
-The key is knowing which tool fits your query pattern: direct questions work with vectors, multi-hop relationship queries need graphs.
-
-
-
- Scope memories across users, agents, apps, and sessions to balance personalization and reuse.
-
-
- Learn how to migrate or audit stored memories with structured exports.
-
-
diff --git a/docs/cookbooks/essentials/controlling-memory-ingestion.mdx b/docs/cookbooks/essentials/controlling-memory-ingestion.mdx
index f1516ccc2..cd0f65c3a 100644
--- a/docs/cookbooks/essentials/controlling-memory-ingestion.mdx
+++ b/docs/cookbooks/essentials/controlling-memory-ingestion.mdx
@@ -513,11 +513,6 @@ These controls prevent retrieval failures and ensure your AI assistant works wit
Start with conservative filters (only store confirmed facts) and iterate based on your application's needs. Combine custom instructions with confidence thresholds for the most reliable memory ingestion pipeline.
-
-
- Learn core memory patterns including temporary vs permanent data handling.
-
-
- Learn when to layer graph memory alongside vectors for multi-hop queries.
-
-
+
+ Learn core memory patterns including temporary vs permanent data handling.
+
diff --git a/docs/docs.json b/docs/docs.json
index 864fbef32..aafc9f099 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -329,8 +329,7 @@
"cookbooks/essentials/entity-partitioning-playbook",
"cookbooks/essentials/controlling-memory-ingestion",
"cookbooks/essentials/tagging-and-organizing-memories",
- "cookbooks/essentials/exporting-memories",
- "cookbooks/essentials/choosing-memory-architecture-vector-vs-graph"
+ "cookbooks/essentials/exporting-memories"
]
},
{
@@ -642,6 +641,10 @@
"source": "/platform/features/graph-memory",
"destination": "/migration/oss-v2-to-v3"
},
+ {
+ "source": "/cookbooks/essentials/choosing-memory-architecture-vector-vs-graph",
+ "destination": "/migration/oss-v2-to-v3"
+ },
{
"source": "/changelog",
"destination": "/changelog/highlights"
diff --git a/docs/images/graph_memory/graph_example1.png b/docs/images/graph_memory/graph_example1.png
deleted file mode 100644
index 0a3ff559a..000000000
Binary files a/docs/images/graph_memory/graph_example1.png and /dev/null differ
diff --git a/docs/images/graph_memory/graph_example2.png b/docs/images/graph_memory/graph_example2.png
deleted file mode 100644
index d939f890a..000000000
Binary files a/docs/images/graph_memory/graph_example2.png and /dev/null differ
diff --git a/docs/images/graph_memory/graph_example3.png b/docs/images/graph_memory/graph_example3.png
deleted file mode 100644
index 59d97d382..000000000
Binary files a/docs/images/graph_memory/graph_example3.png and /dev/null differ
diff --git a/docs/images/graph_memory/graph_example4.png b/docs/images/graph_memory/graph_example4.png
deleted file mode 100644
index 53bbe2ca3..000000000
Binary files a/docs/images/graph_memory/graph_example4.png and /dev/null differ
diff --git a/docs/images/graph_memory/graph_example5.png b/docs/images/graph_memory/graph_example5.png
deleted file mode 100644
index d10d2b803..000000000
Binary files a/docs/images/graph_memory/graph_example5.png and /dev/null differ
diff --git a/docs/images/graph_memory/graph_example6.png b/docs/images/graph_memory/graph_example6.png
deleted file mode 100644
index ce874e704..000000000
Binary files a/docs/images/graph_memory/graph_example6.png and /dev/null differ
diff --git a/docs/images/graph_memory/graph_example7.png b/docs/images/graph_memory/graph_example7.png
deleted file mode 100644
index a63be0390..000000000
Binary files a/docs/images/graph_memory/graph_example7.png and /dev/null differ
diff --git a/docs/images/graph_memory/graph_example8.png b/docs/images/graph_memory/graph_example8.png
deleted file mode 100644
index 8f4cf85b3..000000000
Binary files a/docs/images/graph_memory/graph_example8.png and /dev/null differ
diff --git a/docs/images/graph_memory/graph_example9.png b/docs/images/graph_memory/graph_example9.png
deleted file mode 100644
index b1932f526..000000000
Binary files a/docs/images/graph_memory/graph_example9.png and /dev/null differ
diff --git a/docs/llms.txt b/docs/llms.txt
index ca04aa193..b05b0b23c 100644
--- a/docs/llms.txt
+++ b/docs/llms.txt
@@ -210,7 +210,6 @@ Key differentiators:
- [Controlling Memory Ingestion](https://docs.mem0.ai/cookbooks/essentials/controlling-memory-ingestion): Fine-tune what gets stored in memory and when
- [Tagging and Organizing Memories](https://docs.mem0.ai/cookbooks/essentials/tagging-and-organizing-memories): Advanced memory organization and categorization
- [Exporting Memories](https://docs.mem0.ai/cookbooks/essentials/exporting-memories): Backup and transfer memory data between systems
-- [Choosing Memory Architecture](https://docs.mem0.ai/cookbooks/essentials/choosing-memory-architecture-vector-vs-graph): Vector vs Graph memory architectures comparison
### AI Companion Examples
- [Quickstart Demo](https://docs.mem0.ai/cookbooks/companions/quickstart-demo): Quick demo of building an AI companion with memory
diff --git a/docs/open-source/python-quickstart.mdx b/docs/open-source/python-quickstart.mdx
index d8fa34d9e..108100517 100644
--- a/docs/open-source/python-quickstart.mdx
+++ b/docs/open-source/python-quickstart.mdx
@@ -98,7 +98,7 @@ Learn how to search, update, and manage memories with full CRUD operations
-Explore async support, graph memory, and multi-agent memory organization
+Explore async support and multi-agent memory organization