Anthropic SDK
bash
npm install @anthropic-ai/sdk memvaultSetup
typescript
import Anthropic from "@anthropic-ai/sdk"
import { MemVault } from "memvault"
import { createMemVaultTools } from "memvault/anthropic"
const anthropic = new Anthropic()
const vault = new MemVault({ db: prisma.memvaultMemory })
const { tools, handleToolCall } = createMemVaultTools({ vault, tenantId: user.id })Agentic loop
typescript
const messages = []
async function chat(userMessage: string) {
messages.push({ role: "user", content: userMessage })
while (true) {
const response = await anthropic.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
system: "Always call memvault_recall before responding. Save preferences with memvault_remember.",
tools,
messages,
})
messages.push({ role: "assistant", content: response.content })
const toolUses = response.content.filter((b) => b.type === "tool_use")
if (!toolUses.length) break
const results = []
for (const tu of toolUses) {
const result = await handleToolCall(tu.name, tu.input)
results.push({ type: "tool_result", tool_use_id: tu.id, content: result })
}
messages.push({ role: "user", content: results })
}
}What happens
- User sends a message
- Claude calls
memvault_recall— loads memories from Postgres - Claude responds with full context
- When user shares preferences → Claude calls
memvault_remember - Next session (empty
messages) → step 2 recalls those memories again