Back to Ai

Supermemory

content/providers/03-community-providers/42-supermemory.mdx

2.1.104.3 KB
Original Source

Supermemory

Supermemory is a long-term memory platform that adds persistent, self-growing memory to your AI applications. The Supermemory provider for the AI SDK enables you to build AI applications with memory that works like the human brain:

  • Persistent Memory: Long-term storage that grows with each interaction
  • Semantic Search: Find relevant memories using natural language queries
  • Automatic Memory Management: AI automatically saves and retrieves relevant information
  • Easy Integration: Simple setup with existing AI SDK applications
  • Memory Router: Direct integration with language model providers
  • Free Tier Available: Get started with a free API key

Learn more about Supermemory's capabilities in the Supermemory Documentation.

Setup

The Supermemory provider is available in the @supermemory/tools module. You can install it with:

<Tabs items={['pnpm', 'npm', 'yarn', 'bun']}> <Tab> <Snippet text="pnpm add @supermemory/tools" dark /> </Tab> <Tab> <Snippet text="npm install @supermemory/tools" dark /> </Tab> <Tab> <Snippet text="yarn add @supermemory/tools" dark /> </Tab> <Tab> <Snippet text="bun add @supermemory/tools" dark /> </Tab> </Tabs>

Provider Instance

You can obtain your Supermemory API key for free at https://console.supermemory.ai.

There are two ways to integrate Supermemory with your AI applications:

1. Using Supermemory Tools

Import and use Supermemory tools with your existing AI SDK setup:

typescript
import { supermemoryTools } from '@supermemory/tools/ai-sdk';

2. Using the Memory Router

Use the Memory Router for direct integration with language model providers:

typescript
import { createAnthropic } from '@ai-sdk/anthropic';

const supermemoryRouter = createAnthropic({
  baseUrl: 'https://api.supermemory.ai/v3/https://api.anthropic.com/v1',
  apiKey: 'your-provider-api-key',
  headers: {
    'x-supermemory-api-key': 'supermemory-api-key',
    'x-sm-conversation-id': 'conversation-id',
  },
});

Examples

Here are examples of using Supermemory with the AI SDK:

generateText with Tools

javascript
import { generateText } from 'ai';
import { createOpenAI } from '@ai-sdk/openai';
import { supermemoryTools } from '@supermemory/tools/ai-sdk';

const openai = createOpenAI({
  apiKey: 'YOUR_OPENAI_KEY',
});

const { text } = await generateText({
  model: openai('gpt-5-mini'),
  prompt: 'Remember that my name is Alice',
  tools: supermemoryTools('YOUR_SUPERMEMORY_KEY'),
});

console.log(text);

streamText with Automatic Memory

javascript
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 = streamText({
  model: openai('gpt-5'),
  prompt: 'What are my dietary preferences?',
  tools: supermemoryTools('YOUR_SUPERMEMORY_KEY'),
});

// The AI will automatically call searchMemories tool
// Example tool call:
// searchMemories({ informationToGet: "dietary preferences and restrictions" })
// OR
// addMemory({ memory: "User is allergic to peanuts" })

for await (const chunk of result.textStream) {
  console.log(chunk);
}

Using Memory Router

javascript
import { streamText } from 'ai';
import { createAnthropic } from '@ai-sdk/anthropic';

const supermemoryRouter = createAnthropic({
  baseUrl: 'https://api.supermemory.ai/v3/https://api.anthropic.com/v1',
  apiKey: 'your-provider-api-key',
  headers: {
    'x-supermemory-api-key': 'supermemory-api-key',
    'x-sm-conversation-id': 'conversation-id',
  },
});

const result = streamText({
  model: supermemoryRouter('claude-3-sonnet'),
  messages: [
    { role: 'user', content: 'Hello! Remember that I love TypeScript.' },
  ],
});

For more information about these features and advanced configuration options, visit the Supermemory Documentation.

Additional Resources