[docs] add callouts and comparision to clear the problem of when to use Infer=True/False (#3738)
This commit is contained in:
@@ -319,10 +319,25 @@ Metadata: {'verified': True, 'updated_date': '2025-04-02'}
|
|||||||
- No duplicate or contradicting memories
|
- No duplicate or contradicting memories
|
||||||
- Single source of truth for each fact
|
- Single source of truth for each fact
|
||||||
|
|
||||||
|
<Warning>
|
||||||
|
That “no duplicates” promise comes from the inference pipeline. Keep `infer=True` when you rely on automatic updates. Raw imports (`infer=False`) skip conflict checks, so mixing the two modes for the same fact will create duplicates.
|
||||||
|
</Warning>
|
||||||
|
|
||||||
**Maintains relationships:**
|
**Maintains relationships:**
|
||||||
|
|
||||||
- If using graph memory, connections to other entities persist
|
- If using graph memory, connections to other entities persist
|
||||||
|
|
||||||
|
### Pick the right inference mode
|
||||||
|
|
||||||
|
| Mode | What it does | Best for | Watch out for |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `infer=True` *(default)* | Runs the LLM pipeline so Mem0 extracts structured facts and resolves conflicts automatically. | Daily conversations, preference tracking, anything you want deduped. | Slightly slower because inference runs on every write. |
|
||||||
|
| `infer=False` | Stores your payload exactly as-is—no inference, no dedupe. | Bulk imports, compliance snapshots, curated facts you already trust. | Later `infer=True` calls for the same fact will create duplicates you must clean manually. |
|
||||||
|
|
||||||
|
<Tip>
|
||||||
|
Stay consistent per data source. If you need both behaviors, keep them in separate scopes (e.g., different `app_id` or `run_id`) so you always know which memories are inferred vs direct imports.
|
||||||
|
</Tip>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Update vs Delete
|
## Update vs Delete
|
||||||
|
|||||||
@@ -48,6 +48,10 @@ The resulting memories land in managed vector storage (and optional graph storag
|
|||||||
</Step>
|
</Step>
|
||||||
</Steps>
|
</Steps>
|
||||||
|
|
||||||
|
<Warning>
|
||||||
|
Duplicate protection only runs during that conflict-resolution step when you let Mem0 infer memories (`infer=True`, the default). If you switch to `infer=False`, Mem0 stores your payload exactly as provided, so duplicates will land. Mixing both modes for the same fact will save it twice.
|
||||||
|
</Warning>
|
||||||
|
|
||||||
You trigger this pipeline with a single `add` call—no manual orchestration needed.
|
You trigger this pipeline with a single `add` call—no manual orchestration needed.
|
||||||
|
|
||||||
## Add with Mem0 Platform
|
## Add with Mem0 Platform
|
||||||
@@ -140,6 +144,10 @@ const result = memory.add(messages, {
|
|||||||
Use `infer=False` only when you need to store raw transcripts. Most workflows benefit from Mem0 extracting structured memories automatically.
|
Use `infer=False` only when you need to store raw transcripts. Most workflows benefit from Mem0 extracting structured memories automatically.
|
||||||
</Tip>
|
</Tip>
|
||||||
|
|
||||||
|
<Warning>
|
||||||
|
If you do choose `infer=False`, keep it consistent. Raw inserts skip conflict resolution, so a later `infer=True` call with the same content will create a second memory instead of updating the first.
|
||||||
|
</Warning>
|
||||||
|
|
||||||
## When Should You Add Memory?
|
## When Should You Add Memory?
|
||||||
|
|
||||||
Add memory whenever your agent learns something useful:
|
Add memory whenever your agent learns something useful:
|
||||||
|
|||||||
@@ -31,6 +31,10 @@ You can see that the output of the add call is an empty list.
|
|||||||
|
|
||||||
<Note>Only messages with the role "user" will be used for storage. Messages with roles such as "assistant" or "system" will be ignored during the storage process.</Note>
|
<Note>Only messages with the role "user" will be used for storage. Messages with roles such as "assistant" or "system" will be ignored during the storage process.</Note>
|
||||||
|
|
||||||
|
<Warning>
|
||||||
|
Direct import skips the inference pipeline, so it also skips duplicate detection. If you later send the same fact with `infer=True`, Mem0 will store a second copy. Pick one mode per memory source unless you truly want both versions.
|
||||||
|
</Warning>
|
||||||
|
|
||||||
## How to Retrieve Memories
|
## How to Retrieve Memories
|
||||||
|
|
||||||
You can retrieve memories using the `search` method.
|
You can retrieve memories using the `search` method.
|
||||||
|
|||||||
Reference in New Issue
Block a user