diff --git a/docs/v2/guides/migrations/mem0.mdx b/docs/v2/guides/migrations/mem0.mdx
index 33c6b287..76ab7514 100644
--- a/docs/v2/guides/migrations/mem0.mdx
+++ b/docs/v2/guides/migrations/mem0.mdx
@@ -9,13 +9,13 @@ Interested in transferring your data from Mem0 to Honcho? This guide covers why
## Why Honcho?
-Mem0 stores facts. Honcho understands users.
+Mem0 & Honcho both store your data. Only Honcho reasons about it. [Read more about our approach](https://blog.plasticlabs.ai/blog/Memory-as-Reasoning).
-**Inference, Not Just Storage** - Honcho builds evolving profiles of each participant through rich logic-based reasoning. Rather than retrieving facts, Honcho infers communication styles, values, patterns, and relationships - adapting to how users interact, not just what they say.
+**Compounding Insights** - Honcho extracts insights that build on each other over time. The more your users interact, the richer and more accurate their profiles become.
**Superior Performance** - Higher accuracy on memory retrieval benchmarks with faster inference times (more details soon!).
-**Competitive Pricing** - Flexible pricing with generous free tier and volume discounts.
+**Competitive Pricing** - Mem0 charges for retrieval, not ingestion. Meaning you pay to access your own data. Honcho offers straightforward pricing with a generous free tier.
**Advanced Multi-Peer Sessions** - Honcho offers configurable observation settings (who builds memories about whom), representation-based queries between participants, and first-class peer objects.
@@ -25,10 +25,12 @@ We would love to support the transfer and cost—just [book a call!](https://cal
## Quick Migration
-For the best results, we recommend importing your raw messages directly into Honcho. This gives Honcho the full context to build rich, accurate representations. However, if you'd like to get started quickly, you can migrate your existing Mem0 memories directly. The code below demonstrates this faster approach.
+For the best results, we recommend importing your raw messages directly into Honcho. This gives Honcho the full context to build rich, accurate representations and enables features like session summaries.
+
+However, if you'd like to get started quickly, you can migrate your existing Mem0 memories directly as **observations**.
-Get your API key at [app.honcho.dev/api-keys](https://app.honcho.dev/api-keys). New accounts start with $100 credits (plenty to get you going).
+Get your API key at [app.honcho.dev/api-keys](https://app.honcho.dev/api-keys). New accounts start with $100 credits.
@@ -47,13 +49,18 @@ user = honcho.peer("user123")
session = honcho.session("imported")
session.add_peers([user])
-# Import memories
+# Import memories directly as observations
+observations = []
for memory in memories['results']:
content = memory.get("memory") or memory.get("messages", [{}])[0].get("content", "")
if content:
- session.add_messages([user.message(content)])
+ observations.append({"content": content, "session_id": "imported"})
-print(f"Migrated {len(memories['results'])} memories!")
+# Batch create observations (up to 100 at a time)
+if observations:
+ user.observations.create(observations)
+
+print(f"Migrated {len(observations)} memories as observations!")
```
```typescript TypeScript
@@ -66,24 +73,29 @@ const mem0 = new MemoryClient({ apiKey: "your-mem0-api-key" });
const memories = await mem0.getAll({ filters: { user_id: "user123" }, page_size: 100 });
// Initialize Honcho
-const honcho = new Honcho({ apiKey: "your-honcho-api-key"});
+const honcho = new Honcho({ apiKey: "your-honcho-api-key" });
const user = await honcho.peer("user123");
const session = await honcho.session("imported");
await session.addPeers([user]);
-// Import memories
-for (const memory of memories.results) {
- const content = memory.memory || memory.messages?.[0]?.content || "";
- if (content) {
- await session.addMessages([user.message(content)]);
- }
+// Import memories directly as observations
+const observations = memories.results
+ .map(memory => ({
+ content: memory.memory || memory.messages?.[0]?.content || "",
+ session_id: "imported"
+ }))
+ .filter(obs => obs.content);
+
+// Batch create observations (up to 100 at a time)
+if (observations.length > 0) {
+ await user.observations.create(observations);
}
-console.log(`Migrated ${memories.results.length} memories!`);
+console.log(`Migrated ${observations.length} memories as observations!`);
```
-That's it! The user's Mem0 memories are now in Honcho. For richer representations, consider importing your raw messages as described in the [Step-by-Step Migration](#step-by-step-migration) section.
+That's it! The user's Mem0 memories are now searchable in Honcho as observations. For richer representations with deductive reasoning and session summaries, consider importing your raw messages as described in the [Step-by-Step Migration](#step-by-step-migration) section.
For more details on replacing Mem0 API calls with Honcho equivalents go to [API Comparison](#api-comparison).
@@ -95,9 +107,11 @@ Prefer a more detailed walkthrough? Follow these steps:
Importing raw user messages gives Honcho the full conversational context to build the most accurate representations. We recommend using a data structure that preserves the session and peer structure.
+
If you need any help with this transfer or have any questions, please reach out at hello@plasticlabs.ai or [book a call!](https://cal.com/team/plasticlabs/migration-to-honcho)
+
-Alternatively, if you want to import the Mem0 memories, follow the example above and learn more at Mem0's [export API documentation](https://docs.mem0.ai/cookbooks/essentials/exporting-memories).
+Alternatively, if you want to import the Mem0 memories, follow the example above and find more info in Mem0's [export API documentation](https://docs.mem0.ai/cookbooks/essentials/exporting-memories).
### 2. Install the Honcho SDK
@@ -126,7 +140,7 @@ pnpm add @honcho-ai/sdk
### 3. Initialize the Honcho Client
-Get your API key at [app.honcho.dev/api-keys](https://app.honcho.dev/api-keys). New accounts start with $100 credits (plenty to get you going).
+Get your API key at [app.honcho.dev/api-keys](https://app.honcho.dev/api-keys). New accounts start with $100 credits.
@@ -234,24 +248,25 @@ Reference the [API Comparison](#api-comparison) to replace your Mem0 API calls w
|-----------|------|--------|-------|
| **Initialize** | `MemoryClient(api_key=...)` | `Honcho(api_key=...)` | |
| **Identity** | `user_id` string param | `peer = honcho.peer("id")` | Peers can be users or AI agents |
-| **Add data** | `client.add(messages, user_id=...)` | `session.add_messages([peer.message(...)])` | Session-scoped, preserves conversation order |
-| **Search** | `client.search(query, filters={"user_id": ...})` | `peer.search(query)` or `session.search(query)` | Scoped to peer or session |
-| **List all** | `client.get_all(filters={"user_id": ...})` | `session.get_messages()` | Use .search() to filter for specific users |
+| **Add messages** | `client.add(messages, user_id=...)` | `session.add_messages([peer.message(...)])` | Session-scoped, triggers reasoning |
+| **Add observations** | | `peer.observations.create([...])` | Direct observation or "memory" import, no processing |
+| **Search** | `client.search(query, filters={"user_id": ...})` | `peer.search(query)` or `peer.observations.query(...)` | Scoped to peer or session |
+| **List all** | `client.get_all(filters={"user_id": ...})` | `session.get_messages()` or `peer.observations.list()` | Messages or observations |
| **Update** | `client.update(memory_id, data=...)` | `honcho.update_message(message, metadata=...)` | Metadata updates only |
-| **Delete** | `client.delete(memory_id)` | `session.delete()` | Session-level deletion |
+| **Delete** | `client.delete(memory_id)` | `peer.observations.delete(id)` or `session.delete()` | Observation or session-level |
### Honcho-Only Capabilities
Mem0 requires manual assembly of context from `search()` results. Honcho's `session.get_context()` returns a ready-to-use `SessionContext` object with built-in token limits, auto-included summaries, and format helpers (`.to_openai()`, `.to_anthropic()`).
-
+
Learn more about token-optimized context retrieval
Mem0's `search()` returns basic vector, semantic, or raw memory matches. Honcho's `peer.chat()` enables your agent to *reason* about what it knows—returning synthesized natural language insights with streaming support and scoped queries.
-
+
Learn more about inference-powered queries
@@ -267,13 +282,13 @@ Additional features with **no Mem0 equivalent**:
## Next Steps
-
+
Understand peers and sessions
-
+
Inference responses
-
+
Integration examples