Skip to content

Vercel AI SDK

bash
npm install ai @ai-sdk/anthropic memvault zod

Setup

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,
  // ...
})

Released under the MIT License.