--- name: tanstack-ai-memory-mem0 description: Use when wiring mem0() from @tanstack/ai-memory/mem0 — a hosted memory adapter that talks to a mem0 server over plain HTTP (no SDK peer). Requires a running mem0 server. --- # mem0 Memory Adapter Hosted `recall`/`save` adapter backed by a mem0 server. mem0 owns extraction and ranking server-side. Talks to the server over plain HTTP — **no SDK peer dependency**. ## Setup ```ts import { memoryMiddleware } from '@tanstack/ai-memory' import { mem0 } from '@tanstack/ai-memory/mem0' // Build per request from the server-validated session — never from req.body. function memoryFor(session: { userId: string; threadId: string }) { const memory = mem0({ user: session.userId }) // baseUrl defaults to MEM0_URL return memoryMiddleware({ adapter: memory, scope: { threadId: session.threadId, userId: session.userId }, }) } ``` Requires a running mem0 server (self-hosted or hosted). Point it via `baseUrl` (or `MEM0_URL`); pass `apiKey` (or `MEM0_ADMIN_API_KEY`) when secured. ## Options - `user` — mem0 `user_id` (falls back to `scope.userId`, then `'demo-user'`). - `baseUrl` — mem0 server URL (default `MEM0_URL` or `http://localhost:8000`). - `apiKey` — bearer token (default `MEM0_ADMIN_API_KEY`). - `rerank` (default `true`), `threshold` (default `0.1`) — search tuning. **Scope fields:** requests send `user_id` and `run_id` (`scope.threadId`). `tenantId` and `namespace` are not sent — encode multi-tenant isolation into `user` if needed. `save` posts the `{ user, assistant }` turn to `/memories`; `recall` queries `/search` and renders the results into the system prompt. mem0 exposes no LLM tools.