Skip to main content

Memory Types

interface MemoryConfig {
  type?: 'conversation' | 'entity' | 'summary' | 'hybrid';
  maxTurns?: number;              // Max conversation turns to keep
  maxTokens?: number;             // Max tokens to keep
  summarizeAfter?: number;        // Trigger summary after N turns
  summarizePrompt?: string;       // Custom prompt for summarization
  summarizeModel?: ModelProvider; // Custom model for summarization
  memoryKey?: string;             // Custom memory key
}

interface MemoryData {
  sessionId: string;
  messages: MemoryMessage[];
  entities: Record<string, any>;
  summary?: string;
  metadata: {
    createdAt: Date;
    updatedAt: Date;
    totalTurns: number;
    totalTokens: number;
  };
}

interface MemoryMessage {
  role: 'user' | 'assistant' | 'system';
  content: string;
  timestamp: Date;
  metadata?: {
    toolsUsed?: string[];
    ragUsed?: boolean;
    model?: string;
    tokens?: number;
  };
}

Next Steps