Skip to main content

MySQLMemory

MySQL 优化的记忆存储,扩展 TypeORMMemory,具有 MySQL 特定的配置和优化。

导入

import { MySQLMemory } from '@ag-kit/agents/storage';

构造函数

constructor(config: MySQLMemoryConfig)

配置

config
MySQLMemoryConfig
required
MySQL 特定配置,扩展 TypeORMMemory 和 BaseMemory

基本用法

// 带优化的 MySQL 连接
const memory = new MySQLMemory({
  connection: {
    host: 'localhost',
    port: 3306,
    username: 'agkit_user',
    password: 'secure_password',
    database: 'agkit_memory',
    charset: 'utf8mb4',
    timezone: '+00:00',
    extra: {
      supportBigNumbers: true,
      bigNumberStrings: true,
      multipleStatements: false
    }
  },
  sessionId: 'user-session-123',
  eventTableName: 'conversation_events',
  enableContextManagement: true
});

// 继承所有 TypeORMMemory 功能
await memory.add({
  message: {
    id: 'msg-1',
    role: 'user',
    content: '你好,我需要帮助处理我的项目',
    timestamp: new Date()
  },
  state: { userId: 'user-123' }
});

const events = await memory.list({ limit: 10, maxTokens: 4000 });

核心接口方法

MySQLMemory 继承自 BaseMemory,并实现了所有标准记忆接口方法,完全支持分支。有关包括 list()add()addList()delete()retrieve()clear()getCount()isEmpty() 和所有分支方法的完整 API 文档,请参阅 BaseMemory API 参考

连接字符串支持

// 从连接字符串创建
const memory = MySQLMemory.fromConnectionString(
  'mysql://user:pass@localhost:3306/mydb',
  'session-123',
  {
    eventTableName: 'custom_events',
    enableContextManagement: true
  }
);

独特功能

  • MySQL 特定优化: 预配置的 MySQL 设置(字符集、时区、大数字)
  • 简化设置: 使用 MySQL 最佳实践自动创建 DataSource
  • 连接字符串支持: 使用连接字符串轻松初始化
  • 表自定义: 事件、状态和摘要的自定义表名
  • 安全默认值: 通过 multipleStatements: false 防止 SQL 注入
  • UTF-8 支持: 国际内容的默认 utf8mb4 字符集

继承

MySQLMemory 扩展 TypeORMMemory,继承其所有功能:
  • 会话分支和时间旅行
  • 上下文工程和 Token 管理
  • 高级查询和过滤
  • 事务支持

限制

  • MySQL 依赖: 需要 MySQL 服务器安装和管理
  • TypeORM 开销: 继承 TypeORM 的复杂性和设置要求