diff --git a/docs/docs.json b/docs/docs.json index b365d258b..17ad68df9 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -1147,6 +1147,10 @@ { "source": "/openmemory/integrations", "destination": "/introduction" + }, + { + "source": "/migration/api-changes", + "destination": "/migration/platform-v2-to-v3" } ] } diff --git a/docs/migration/api-changes.mdx b/docs/migration/api-changes.mdx index e072971f1..ff2e83870 100644 --- a/docs/migration/api-changes.mdx +++ b/docs/migration/api-changes.mdx @@ -71,12 +71,14 @@ def add( def add( self, messages, + *, user_id: str = None, agent_id: str = None, run_id: str = None, metadata: dict = None, - filters: dict = None, - infer: bool = True # ✅ NEW: Control memory inference + infer: bool = True, # ✅ NEW: Control memory inference + memory_type: str = None, # ✅ NEW: e.g. "procedural_memory" + prompt: str = None # ✅ NEW: Custom extraction prompt ) -> dict: # Always returns dict with "results" key ... ``` @@ -90,10 +92,12 @@ def add( | `agent_id` | ✅ | ✅ | Unchanged | | `run_id` | ✅ | ✅ | Unchanged | | `metadata` | ✅ | ✅ | Unchanged | -| `filters` | ✅ | ✅ | Unchanged | +| `filters` | ✅ | ❌ | **REMOVED** — `add()` does not accept `filters` | | `output_format` | ✅ | ❌ | **REMOVED** | | `version` | ✅ | ❌ | **REMOVED** | | `infer` | ❌ | ✅ | **NEW** | +| `memory_type` | ❌ | ✅ | **NEW** | +| `prompt` | ❌ | ✅ | **NEW** | #### Response Format Changes @@ -158,16 +162,19 @@ def search( def search( self, query: str, - user_id: str = None, - agent_id: str = None, - run_id: str = None, - limit: int = 100, - filters: dict = None, # ✅ ENHANCED: Advanced operators - rerank: bool = True # ✅ NEW: Reranking support + *, + top_k: int = 20, # ✅ Renamed from limit + filters: dict = None, # ✅ ENHANCED: Advanced operators; must include user_id/agent_id/run_id + threshold: float = 0.1, # ✅ NEW: Minimum score cutoff + rerank: bool = False # ✅ NEW: Reranking support (default False) ) -> dict: # Always returns dict with "results" key ... ``` + + `user_id`, `agent_id`, and `run_id` are **not** top-level parameters in v1. They must be passed inside `filters`. Example: `m.search("query", filters={"user_id": "alice"})`. + + #### Enhanced Filtering **v0.x Filters (basic):** @@ -289,30 +296,11 @@ m.delete_all(user_id="*", agent_id="*", app_id="*", run_id="*") # NEW — fu ## Platform Client (MemoryClient) Changes -### async_mode Default Changed +### async_mode Removed -#### v0.x -```python -from mem0 import MemoryClient - -client = MemoryClient(api_key="your-key") - -# async_mode had to be explicitly set or had different default -result = client.add("content", user_id="alice", async_mode=True) -``` - -#### v1.0.0 -```python -from mem0 import MemoryClient - -client = MemoryClient(api_key="your-key") - -# async_mode defaults to True now (better performance) -result = client.add("content", user_id="alice") # Uses async_mode=True by default - -# Can still override if needed -result = client.add("content", user_id="alice", async_mode=False) -``` + + `async_mode` was removed in v3. Remove any `async_mode=` argument from your `MemoryClient` calls. + ## Configuration Changes @@ -324,7 +312,6 @@ config = { "vector_store": {...}, "llm": {...}, "embedder": {...}, - "graph_store": {...}, "version": "v1.0", # ❌ v1.0 no longer supported "history_db_path": "...", "custom_instructions": "..." @@ -337,18 +324,21 @@ config = { "vector_store": {...}, "llm": {...}, "embedder": {...}, - "graph_store": {...}, "reranker": { # ✅ NEW: Reranker support "provider": "cohere", "config": {...} }, "version": "v1.1", # ✅ v1.1+ only "history_db_path": "...", - "custom_instructions": "...", - "custom_update_memory_prompt": "..." # ✅ NEW: Custom update prompt + "custom_instructions": "..." # ✅ Use this for custom extraction instructions } ``` + + `graph_store` is no longer a top-level `MemoryConfig` field. Graph support is configured separately. + `custom_update_memory_prompt` has been removed — use `custom_instructions` instead. + + ### New Configuration Options #### Reranker Configuration diff --git a/docs/migration/oss-to-platform.mdx b/docs/migration/oss-to-platform.mdx index c478701e2..d139d4094 100644 --- a/docs/migration/oss-to-platform.mdx +++ b/docs/migration/oss-to-platform.mdx @@ -120,13 +120,14 @@ client = MemoryClient(api_key="m0-...") | Method | Open Source | Platform | | ------ | ----------- | -------- | -| `search()` | `m.search(query, user_id="alex")` | `client.search(query, filters={"user_id": "alex"})` | -| `get_all()` | `m.get_all(user_id="alex")` | `client.get_all(filters={"user_id": "alex"})` | +| `search()` | `m.search(query, filters={"user_id": "alex"})` | `client.search(query, filters={"user_id": "alex"})` | +| `get_all()` | `m.get_all(filters={"user_id": "alex"})` | `client.get_all(filters={"user_id": "alex"})` | | `add()` | `m.add(memory, user_id="alex")` | `client.add(memory, user_id="alex")` | +| `update()` | `m.update(memory_id, data="Updated content")` | `client.update(memory_id, text="Updated content")` | | `delete()` | `m.delete(memory_id)` | `client.delete(memory_id)` | | `delete_all()` | `m.delete_all(user_id="alex")` | `client.delete_all(user_id="alex")` | -Note: `add()` and `delete()` methods remain unchanged. The `update()` method is not available in Platform - use delete + add pattern instead. +Note: `add()` and `delete()` methods remain unchanged. The `update()` method is available in Platform via `client.update(memory_id, text="Updated content")`. @@ -158,18 +159,15 @@ Note: `add()` and `delete()` methods remain unchanged. The `update()` method is ```python Open Source (Old) # Get all memories for a user - memories = m.get_all(user_id="alex", top_k=10) - - # Get memories with pagination - memories = m.get_all(user_id="alex", top_k=5, offset=10) + memories = m.get_all(filters={"user_id": "alex"}, top_k=10) ``` ```python Platform (New) # Get all memories for a user memories = client.get_all(filters={"user_id": "alex"}, top_k=10) - # Get memories with pagination - memories = client.get_all(filters={"user_id": "alex"}, top_k=5, offset=10) + # Get memories with pagination (Platform supports page/page_size) + memories = client.get_all(filters={"user_id": "alex"}, page=2, page_size=10) ``` @@ -218,14 +216,12 @@ Note: `add()` and `delete()` methods remain unchanged. The `update()` method is ```python Open Source (Old) # Update memory content - m.update(memory_id="mem_123", new_memory="Updated content") + m.update(memory_id="mem_123", data="Updated content") ``` ```python Platform (New) - # Update memory (not available in Platform) - # Use delete + add pattern instead - client.delete(memory_id="mem_123") - client.add("Updated content", user_id="alex") + # Update memory content + client.update(memory_id="mem_123", text="Updated content") ``` @@ -392,7 +388,7 @@ The Platform introduces powerful capabilities not available in OSS: | **Add Method** | `m.add(memory, user_id="x")` | `client.add(memory, user_id="x")` | No change | | **Delete Method** | `m.delete(memory_id)` | `client.delete(memory_id)` | No change | | **Delete All** | `m.delete_all(user_id="x")` | `client.delete_all(user_id="x")` | No change | -| **Update Method** | `m.update(memory_id, new_memory)` | Use delete + add pattern | Replace with delete then add | +| **Update Method** | `m.update(memory_id, data="Updated content")` | `client.update(memory_id, text="Updated content")` | Rename `data=` kwarg to `text=` | | **Config** | Local vector store + LLM config | Managed cloud infrastructure | Remove local config setup | ## Rollback plan