Vercel AI SDK
bash
npm install ai @ai-sdk/anthropic memvault zodSetup
typescript
import { generateText } from "ai"
import { anthropic } from "@ai-sdk/anthropic"
import { MemVault } from "memvault"
import { createMemVaultTools } from "memvault/ai-sdk"
const vault = new MemVault({ db: prisma.memvaultMemory })
const memTools = createMemVaultTools({ vault, tenantId: user.id })Usage
The AI SDK handles the tool execution loop internally via maxSteps. No manual loop needed.
typescript
const messages = []
async function chat(userMessage: string) {
messages.push({ role: "user", content: userMessage })
const result = await generateText({
model: anthropic("claude-sonnet-4-6"),
system: "Always call memvault_recall before responding. Save preferences with memvault_remember.",
messages,
tools: {
...memTools,
// add your own tools here
},
maxSteps: 10,
})
messages.push(...result.response.messages)
return result.text
}Combining with your own tools
typescript
import { tool } from "ai"
import { z } from "zod"
const myTools = {
get_weather: tool({
description: "Get current weather for a city",
inputSchema: z.object({ city: z.string() }),
execute: async ({ city }) => fetchWeather(city),
}),
}
const result = await generateText({
tools: { ...memTools, ...myTools },
maxSteps: 10,
// ...
})