@deltamemory/ai-sdk
v0.5.1
Published
DeltaMemory integration for Vercel AI SDK
Downloads
18
Maintainers
Readme
@deltamemory/ai-sdk
DeltaMemory integration for Vercel AI SDK. Provides memory tools that AI agents can use to recall past context and store important information.
Installation
npm install @deltamemory/ai-sdk
# or
yarn add @deltamemory/ai-sdk
# or
pnpm add @deltamemory/ai-sdkThe deltamemory client is included as a dependency, so you don't need to install it separately.
Quick Start
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { deltaMemoryTools, DeltaMemory } from '@deltamemory/ai-sdk';
const client = new DeltaMemory({
apiKey: process.env.DELTAMEMORY_API_KEY, // From dashboard
baseUrl: process.env.DELTAMEMORY_URL // Your assigned endpoint
});
const { text } = await generateText({
model: openai('gpt-4'),
messages: [
{
role: 'system',
content: 'You are a helpful assistant with memory. Use memory tools to recall context and store important information.'
},
{
role: 'user',
content: 'What are my preferences?'
}
],
tools: {
...deltaMemoryTools(client, { userId: 'user-123' })
},
maxToolRoundtrips: 5
});
console.log(text);API
deltaMemoryTools(client, config)
Creates memory tools for Vercel AI SDK.
Parameters:
client: DeltaMemory- DeltaMemory client instanceconfig: DeltaMemoryToolsConfig- Configuration objectuserId: string- User identifier for memory isolation (required)collection?: string- Optional collection namemetadata?: Record<string, string>- Optional metadata for all operations
Returns: Object with recallMemory and storeMemory tools
Tools
recallMemory
Search past conversations and user context.
When to use:
- User references past events
- User asks about preferences or history
- Context would improve the response
Parameters:
query: string- What to search forlimit?: number- Max results (default: 5)
Returns:
profiles- Structured user factsevents- Timeline entriescontext- Pre-formatted context stringmemoryCount- Number of memories found
storeMemory
Store important information for future reference.
When to use:
- User shares preferences
- User asks to remember something
- Important facts emerge
Parameters:
content: string- Information to rememberimportance?: 'low' | 'medium' | 'high'- Importance level
Returns:
memoryIds- IDs of stored memoriesextractedFacts- Automatically extracted factsextractedConcepts- Automatically extracted concepts
Examples
Basic Chat
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { deltaMemoryTools, DeltaMemory } from '@deltamemory/ai-sdk';
const client = new DeltaMemory({
apiKey: process.env.DELTAMEMORY_API_KEY,
baseUrl: process.env.DELTAMEMORY_URL
});
async function chat(userId: string, message: string) {
const { text } = await generateText({
model: openai('gpt-4'),
messages: [{ role: 'user', content: message }],
tools: {
...deltaMemoryTools(client, { userId })
}
});
return text;
}
// First message - stores preference
await chat('user-123', 'I prefer TypeScript over JavaScript');
// Second message - recalls preference
await chat('user-123', 'What programming language should I use?');Streaming
import { streamText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { deltaMemoryTools, DeltaMemory } from '@deltamemory/ai-sdk';
const client = new DeltaMemory({
apiKey: process.env.DELTAMEMORY_API_KEY,
baseUrl: process.env.DELTAMEMORY_URL
});
async function chatStream(userId: string, message: string) {
const { textStream } = await streamText({
model: openai('gpt-4'),
messages: [{ role: 'user', content: message }],
tools: {
...deltaMemoryTools(client, { userId })
}
});
for await (const chunk of textStream) {
process.stdout.write(chunk);
}
}Multi-User
import { deltaMemoryTools, DeltaMemory } from '@deltamemory/ai-sdk';
const client = new DeltaMemory({
apiKey: process.env.DELTAMEMORY_API_KEY,
baseUrl: process.env.DELTAMEMORY_URL
});
async function chat(userId: string, message: string) {
const { text } = await generateText({
model: openai('gpt-4'),
messages: [{ role: 'user', content: message }],
tools: {
...deltaMemoryTools(client, {
userId,
collectionPrefix: 'myapp', // Collection: 'myapp-user-123'
metadata: { source: 'chat' }
})
}
});
return text;
}Documentation
For complete documentation, visit deltamemory.ai/docs
License
Proprietary - See LICENSE file
