mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-05-17 12:20:04 +00:00
Some checks failed
Publish AI SDK / publish (push) Has been cancelled
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
147 lines
3 KiB
Text
147 lines
3 KiB
Text
---
|
|
title: "Memory Tools"
|
|
description: "Add memory capabilities to your AI agents with Vercel AI SDK tools"
|
|
sidebarTitle: "Memory Tools"
|
|
---
|
|
|
|
Memory tools allow AI agents to search, add, and fetch memories.
|
|
|
|
## Setup
|
|
|
|
```typescript
|
|
import { streamText } from "ai"
|
|
import { createOpenAI } from "@ai-sdk/openai"
|
|
import { supermemoryTools } from "@supermemory/tools/ai-sdk"
|
|
|
|
const openai = createOpenAI({
|
|
apiKey: "YOUR_OPENAI_KEY"
|
|
})
|
|
|
|
const result = await streamText({
|
|
model: openai("gpt-5"),
|
|
prompt: "Remember that my name is Alice",
|
|
tools: supermemoryTools("YOUR_SUPERMEMORY_KEY")
|
|
})
|
|
```
|
|
|
|
## Available Tools
|
|
|
|
### Search Memories
|
|
|
|
Semantic search through user memories:
|
|
|
|
```typescript
|
|
const result = await streamText({
|
|
model: openai("gpt-5"),
|
|
prompt: "What are my dietary preferences?",
|
|
tools: supermemoryTools("API_KEY")
|
|
})
|
|
|
|
// The AI will automatically call searchMemories tool
|
|
// Example tool call:
|
|
// searchMemories({ informationToGet: "dietary preferences and restrictions" })
|
|
```
|
|
|
|
### Add Memory
|
|
|
|
Store new information:
|
|
|
|
```typescript
|
|
const result = await streamText({
|
|
model: anthropic("claude-3-sonnet"),
|
|
prompt: "Remember that I'm allergic to peanuts",
|
|
tools: supermemoryTools("API_KEY")
|
|
})
|
|
|
|
// The AI will automatically call addMemory tool
|
|
// Example tool call:
|
|
// addMemory({ memory: "User is allergic to peanuts" })
|
|
```
|
|
|
|
### Fetch Memory
|
|
|
|
Retrieve specific memory by ID:
|
|
|
|
```typescript
|
|
const result = await streamText({
|
|
model: openai("gpt-5"),
|
|
prompt: "Get the details of memory abc123",
|
|
tools: supermemoryTools("API_KEY")
|
|
})
|
|
|
|
// The AI will automatically call fetchMemory tool
|
|
// Example tool call:
|
|
// fetchMemory({ memoryId: "abc123" })
|
|
```
|
|
|
|
## Using Individual Tools
|
|
|
|
For more control, import tools separately:
|
|
|
|
```typescript
|
|
import {
|
|
searchMemoriesTool,
|
|
addMemoryTool,
|
|
fetchMemoryTool
|
|
} from "@supermemory/tools/ai-sdk"
|
|
|
|
// Use only search tool
|
|
const result = await streamText({
|
|
model: openai("gpt-5"),
|
|
prompt: "What do you know about me?",
|
|
tools: {
|
|
searchMemories: searchMemoriesTool("API_KEY", {
|
|
projectId: "personal"
|
|
})
|
|
}
|
|
})
|
|
|
|
// Combine with custom tools
|
|
const result = await streamText({
|
|
model: anthropic("claude-3"),
|
|
prompt: "Help me with my calendar",
|
|
tools: {
|
|
searchMemories: searchMemoriesTool("API_KEY"),
|
|
// Your custom tools
|
|
createEvent: yourCustomTool,
|
|
sendEmail: anotherCustomTool
|
|
}
|
|
})
|
|
```
|
|
|
|
## Tool Results
|
|
|
|
Each tool returns a result object:
|
|
|
|
```typescript
|
|
// searchMemories result
|
|
{
|
|
success: true,
|
|
results: [...], // Array of memories
|
|
count: 5
|
|
}
|
|
|
|
// addMemory result
|
|
{
|
|
success: true,
|
|
memory: { id: "mem_123", ... }
|
|
}
|
|
|
|
// fetchMemory result
|
|
{
|
|
success: true,
|
|
memory: { id: "mem_123", content: "...", ... }
|
|
}
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
<CardGroup cols={2}>
|
|
<Card title="User Profiles" icon="user" href="/integrations/ai-sdk">
|
|
Automatic personalization with profiles
|
|
</Card>
|
|
|
|
<Card title="Examples" icon="code" href="/cookbook/ai-sdk-integration">
|
|
See more complete examples
|
|
</Card>
|
|
</CardGroup>
|