Vercel AI SDK integration
@agentmem/vercel-ai-provider plugs AgentMem into Vercel’s AI SDK . Three patterns — pick one or stack them.
npm install @agentmem/vercel-ai-provider aiai and zod are peer deps; if you already use the AI SDK you have them.
Pattern A — middleware (auto-recall)
Wrap any @ai-sdk/* model. Memories auto-inject on every call.
import { generateText, wrapLanguageModel } from 'ai'
import { anthropic } from '@ai-sdk/anthropic'
import { createAgentMemMiddleware } from '@agentmem/vercel-ai-provider'
const cfg = { apiKey: process.env.AGENTMEM_API_KEY!, agentId: 'support-bot' }
const model = wrapLanguageModel({
model: anthropic('claude-opus-4-7'),
middleware: createAgentMemMiddleware(cfg),
})
const { text } = await generateText({ model, prompt: 'How do we handle escalations?' })If memory search fails (network, auth), the middleware logs to stderr and lets the call proceed without injection — the model never blocks on AgentMem.
Pattern B — tools
Let the agent decide when to call memorize / recall.
import { generateText } from 'ai'
import { anthropic } from '@ai-sdk/anthropic'
import { agentmemMemorize, agentmemRecall } from '@agentmem/vercel-ai-provider'
await generateText({
model: anthropic('claude-opus-4-7'),
tools: {
memorize: agentmemMemorize(cfg),
recall: agentmemRecall(cfg),
},
prompt: '...',
})Pattern C — helpers (manual control)
import {
addMemories,
retrieveMemories,
searchMemories,
} from '@agentmem/vercel-ai-provider'
await addMemories('User prefers email.', cfg)
const memories = await retrieveMemories(userMessage, cfg)
const system = `${memories}\n\nYou are a helpful assistant.`
const hits = await searchMemories('what was decided?', cfg)These are name-compatible with @mem0/vercel-ai-provider — switching is a one-line import change plus an env-var rename.
Drop-in migration from @mem0/vercel-ai-provider
- import { addMemories, retrieveMemories } from '@mem0/vercel-ai-provider'
+ import { addMemories, retrieveMemories } from '@agentmem/vercel-ai-provider'
- const cfg = { mem0ApiKey: process.env.MEM0_API_KEY, user_id: 'u1' }
+ const cfg = { apiKey: process.env.AGENTMEM_API_KEY!, agentId: 'u1' }We don’t wrap every model SDK — we apply at the AI SDK level so any @ai-sdk/* provider works.
Config
| Field | Default | Notes |
|---|---|---|
apiKey | — | Required. |
agentId | — | Required on the config or per-call. |
baseUrl | hosted | Self-host override. |
scope | private | Default scope for writes / searches. |
workflowId | — | Default workflow. |
topK | 5 | Hits per recall. |
rerank | false | Re-rank with Gemini (+500-1500ms). |
minScore | 0 | Drop hits below this score. |
prefix | default | Custom text before injected memories. |
Last updated on