docs: refresh references stale since the v3 pipeline landed
Commita488e1904deleted mem0/graphs/ and mem0-ts/src/oss/src/graphs/ when the v3 pipeline landed, and3f717e545reframed 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:
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user