Skip to main content

Custom Memory Provider

import { Memory, MemoryProvider } from '@runflow-ai/sdk';

class RedisMemoryProvider implements MemoryProvider {
  async get(key: string): Promise<MemoryData> {
    const data = await redis.get(key);
    return JSON.parse(data);
  }

  async set(key: string, data: MemoryData): Promise<void> {
    await redis.set(key, JSON.stringify(data));
  }

  async append(key: string, message: MemoryMessage): Promise<void> {
    const data = await this.get(key);
    data.messages.push(message);
    await this.set(key, data);
  }

  async clear(key: string): Promise<void> {
    await redis.del(key);
  }
}

// Use custom provider
const memory = new Memory({
  provider: new RedisMemoryProvider(),
  maxTurns: 10,
});

Next Steps