docs: refresh references stale since the v3 pipeline landed

Commit a488e1904 deleted mem0/graphs/ and mem0-ts/src/oss/src/graphs/ when the
v3 pipeline landed, and 3f717e545 reframed the docs as Platform-only, but the
agent-facing context files were never updated. Agents reading them still
believe OSS graph memory exists and propose graph_store config that cannot work.

- AGENTS.md: drop graphs/ from the directory map and dependency tree, correct
  the provider table (4 categories, not 5; LLMs 24->18, vector stores 30->25,
  embeddings 15->12), and rewrite the Graph Memory section as Platform-only
- skills: replace the OSS graph-memory prompt example and stop indexing
  /open-source/features/graph-memory, which 404s; also fix four other
  SECTION_MAP paths that no longer resolve
- mem0/exceptions.py: DependencyError example referenced kuzu/graph_store
- tests/test_telemetry.py: drop four mock_memory.config.graph_store lines;
  graph_store is not a MemoryConfig field and telemetry never reads it
- CONTRIBUTING.md: add the three missing release tag prefixes (opencode-v*,
  pi-agent-v*, n8n-nodes-mem0-v*) and note Zapier deploys off-registry
This commit is contained in:
kartik-mem0
2026-08-11 20:18:49 +05:30
parent 4debc58a83
commit 49df324d99
8 changed files with 32 additions and 31 deletions
+11 -11
View File
@@ -18,7 +18,7 @@ This is a **polyglot monorepo** containing Python and TypeScript packages, CLIs,
| Directory | Description |
|-----------|-------------|
| `mem0/` | Core Python SDK (`mem0ai` on PyPI) — memory, LLMs, embeddings, vector stores, graphs, rerankers |
| `mem0/` | Core Python SDK (`mem0ai` on PyPI) — memory, LLMs, embeddings, vector stores, rerankers |
| `mem0-ts/` | TypeScript SDK (`mem0ai` on npm) — client + OSS memory |
| `cli/python/` | Python CLI (`mem0-cli` on PyPI) — Typer-based, entry point `mem0` |
| `cli/node/` | Node CLI (`@mem0/cli` on npm) — Commander-based, entry point `mem0` |
@@ -46,8 +46,7 @@ mem0 (Python SDK) mem0-ts (TypeScript SDK)
├── mem0/llms/ └── src/oss/ (Memory — self-hosted)
├── mem0/embeddings/ ├── src/llms/
├── mem0/vector_stores/ ├── src/embeddings/
├── mem0/graphs/ ├── src/vector_stores/
└── mem0/reranker/ └── src/graphs/
└── mem0/reranker/ └── src/vector_stores/
cli/python/ ──▶ mem0ai (optional, for OSS mode)
cli/node/ ──▶ mem0ai (npm, for API calls)
@@ -304,7 +303,7 @@ python -m benchmarks.beam.run --project-name my-test --backend cloud --mem0-api-
### Python Conventions
- **Provider pattern:** All providers (LLMs, embeddings, vector stores, graphs, rerankers) inherit from a `base.py` abstract class in their directory. Config classes live in `configs.py`.
- **Provider pattern:** All providers (LLMs, embeddings, vector stores, rerankers) inherit from a `base.py` abstract class in their directory. Config classes live in `configs.py`.
- **Pydantic v2** for all data models and configuration.
- **Ruff** is the single linting and formatting tool — no black, no flake8.
- Root SDK: line length **120**
@@ -337,23 +336,24 @@ cd <package> && pnpm run typecheck # or: tsc --noEmit
### Provider Pattern
The SDK uses a consistent plugin architecture across 5 categories. Each category has a `base.py` abstract class and concrete provider implementations:
The SDK uses a consistent plugin architecture across 4 categories. Each category has a `base.py` abstract class and concrete provider implementations:
| Category | Count | Examples |
|----------|-------|---------|
| **LLMs** | 24 | OpenAI, Anthropic, AWS Bedrock, Azure OpenAI, Gemini, Groq, Ollama, Together, DeepSeek, vLLM, LiteLLM, LM Studio, xAI |
| **Vector Stores** | 30 | Qdrant, Pinecone, Chroma, Weaviate, Milvus, MongoDB, Redis, Elasticsearch, pgvector, Supabase, Faiss, S3 Vectors |
| **Embeddings** | 15 | OpenAI, Azure OpenAI, Gemini, HuggingFace, FastEmbed, Together, AWS Bedrock, Ollama, Vertex AI |
| **Graph Stores** | 4 | Neo4j, Memgraph, Kuzu, Apache AGE |
| **LLMs** | 18 | OpenAI, Anthropic, AWS Bedrock, Azure OpenAI, Gemini, Groq, Ollama, Together, DeepSeek, vLLM, LiteLLM, LM Studio, xAI |
| **Vector Stores** | 25 | Qdrant, Pinecone, Chroma, Weaviate, Milvus, MongoDB, Redis, Elasticsearch, pgvector, Supabase, Faiss, S3 Vectors |
| **Embeddings** | 12 | OpenAI, Azure OpenAI, Gemini, HuggingFace, FastEmbed, Together, AWS Bedrock, Ollama, Vertex AI |
| **Rerankers** | 5 | Cohere, HuggingFace, LLM-based, Sentence Transformer, Zero Entropy |
### Two Usage Modes
Self-hosted `Memory` / `AsyncMemory` classes and hosted-platform `MemoryClient` — both in Python and TypeScript.
### Graph Memory
### Graph Memory (Platform only)
Optional layer on top of vector memory for relationship-aware retrieval. Configured via the `graph` section of `MemoryConfig`.
**Removed from the OSS SDKs.** `mem0/graphs/` and `mem0-ts/src/oss/src/graphs/` were deleted in `a488e1904` when the v3 pipeline landed; relationship-aware retrieval in OSS is now handled by entity extraction inside the v3 pipeline itself. There is no `graph_store` key in `MemoryConfig` and no `enable_graph` flag in the OSS SDKs.
Graph memory remains a hosted Platform feature. Do not add `graph_store` config, Neo4j/Memgraph/Kuzu/Apache AGE providers, or graph examples to OSS code, docs, or skills. See `3f717e545` for the docs framing.
### MCP Integration
+7
View File
@@ -161,6 +161,13 @@ is created with the correct tag prefix.
| `@mem0/cli` (Node CLI) | npm | `cli-node-v*` | `cli-node-v0.1.2` |
| `@mem0/vercel-ai-provider` | npm | `vercel-ai-v*` | `vercel-ai-v2.0.6` |
| `@mem0/openclaw-mem0` | npm | `openclaw-v*` | `openclaw-v1.0.1` |
| `@mem0/opencode-plugin` | npm | `opencode-v*` | `opencode-v1.0.1` |
| `@mem0/pi-agent-plugin` | npm | `pi-agent-v*` | `pi-agent-v1.0.1` |
| `@mem0/n8n-nodes-mem0` | npm | `n8n-nodes-mem0-v*` | `n8n-nodes-mem0-v1.0.1` |
The Zapier app (`integrations/zapier-mem0`) deploys to Zapier's own platform rather
than a package registry, so it has no release tag. Deploy it manually with
`gh workflow run zapier-mem0-cd.yml --ref main`.
### How to Release
@@ -40,7 +40,7 @@ After installing, just ask Claude:
- "Add memory to my chatbot"
- "Help me search user memories with filters"
- "Integrate mem0 with my LangChain app"
- "Add graph memory to track entity relationships"
- "Migrate my app from mem0 v2 to v3"
## What's Inside
@@ -56,7 +56,7 @@ skills/mem0/
├── sdk-guide.md # All SDK methods (Python + TypeScript)
├── api-reference.md # REST endpoints, filters, memory object
├── architecture.md # Processing pipeline, lifecycle, scoping, performance
├── features.md # Retrieval, graph, categories, MCP, webhooks, multimodal
├── features.md # Retrieval, entity linking, categories, MCP, webhooks, multimodal
├── integration-patterns.md # LangChain, CrewAI, Vercel AI, LangGraph, LlamaIndex, etc.
└── use-cases.md # 7 real-world patterns with Python + TypeScript code
```
@@ -36,9 +36,8 @@ SECTION_MAP = {
"platform": [
"/platform/overview",
"/platform/quickstart",
"/platform/features",
"/platform/features/graph-memory",
"/platform/features/selective-memory",
"/platform/features/advanced-retrieval",
"/platform/features/custom-categories",
"/platform/features/v2-memory-filters",
"/platform/features/async-client",
@@ -57,10 +56,10 @@ SECTION_MAP = {
"/open-source/overview",
"/open-source/python-quickstart",
"/open-source/node-quickstart",
"/open-source/features",
"/open-source/features/graph-memory",
"/open-source/features/overview",
"/open-source/features/rest-api",
"/open-source/configure-components",
"/open-source/features/metadata-filtering",
"/open-source/configuration",
],
"sdks": [
"/sdks/python",
+2 -2
View File
@@ -393,8 +393,8 @@ class DependencyError(MemoryError):
raise DependencyError(
message="Required dependency missing",
error_code="DEPS_001",
details={"package": "kuzu", "feature": "graph_store"},
suggestion="Please install the required dependencies: pip install kuzu"
details={"package": "chromadb", "feature": "vector_store"},
suggestion="Please install the required dependencies: pip install chromadb"
)
"""
def __init__(self, message: str, error_code: str = "DEPS_001", details: dict = None,
+2 -2
View File
@@ -54,7 +54,7 @@ After installing, just ask Claude:
- "Add memory to my chatbot"
- "Help me search user memories with filters"
- "Integrate mem0 with my LangChain app"
- "Add graph memory to track entity relationships"
- "Migrate my app from mem0 v2 to v3"
## What's Inside
@@ -74,7 +74,7 @@ skills/mem0/
├── sdk-guide.md # All SDK methods (Python + TypeScript)
├── api-reference.md # REST endpoints, filters, memory object
├── architecture.md # Processing pipeline, lifecycle, scoping, performance
├── features.md # Retrieval, graph, categories, MCP, webhooks, multimodal
├── features.md # Retrieval, entity linking, categories, MCP, webhooks, multimodal
├── integration-patterns.md # LangChain, CrewAI, OpenAI Agents, LangGraph, LlamaIndex, etc.
└── use-cases.md # 7 real-world patterns with Python + TypeScript code
```
+4 -5
View File
@@ -36,9 +36,8 @@ SECTION_MAP = {
"platform": [
"/platform/overview",
"/platform/quickstart",
"/platform/features",
"/platform/features/graph-memory",
"/platform/features/selective-memory",
"/platform/features/advanced-retrieval",
"/platform/features/custom-categories",
"/platform/features/v2-memory-filters",
"/platform/features/async-client",
@@ -57,10 +56,10 @@ SECTION_MAP = {
"/open-source/overview",
"/open-source/python-quickstart",
"/open-source/node-quickstart",
"/open-source/features",
"/open-source/features/graph-memory",
"/open-source/features/overview",
"/open-source/features/rest-api",
"/open-source/configure-components",
"/open-source/features/metadata-filtering",
"/open-source/configuration",
],
"sdks": [
"/sdks/python",
-4
View File
@@ -83,7 +83,6 @@ class TestTelemetryEnabled:
mock_at = MagicMock()
with patch.object(telemetry_module, "_oss_telemetry_instance", mock_at):
mock_memory = MagicMock()
mock_memory.config.graph_store.config = None
mock_memory.api_version = "v1"
telemetry_module.capture_event("test.event", mock_memory)
mock_at.capture_event.assert_called_once()
@@ -223,7 +222,6 @@ class TestTelemetrySingleton:
with patch("mem0.memory.telemetry.get_or_create_user_id", return_value="u"):
with patch("atexit.register"):
mock_memory = MagicMock()
mock_memory.config.graph_store.config = None
mock_memory.api_version = "v1"
telemetry_module.capture_event("e1", mock_memory)
@@ -242,7 +240,6 @@ class TestTelemetrySingleton:
with patch("mem0.memory.telemetry.get_or_create_user_id", return_value="u"):
with patch("atexit.register"):
mock_memory = MagicMock()
mock_memory.config.graph_store.config = None
mock_memory.api_version = "v1"
for i in range(50):
@@ -421,7 +418,6 @@ class TestTelemetryNullUserIdHandling:
with patch.object(telemetry_module, "_oss_telemetry_instance", mock_at):
mock_memory = MagicMock()
mock_memory.config.graph_store.config = None
mock_memory.api_version = "v1"
# This should not raise, even when telemetry fails