Skip to main content

Mem0LongTermMemory

使用 Mem0 SDK 的高级长期记忆实现,具有智能记忆管理、自动提取和 AI 驱动的整合功能。

概述

Mem0LongTermMemory 提供企业级长期记忆能力:
  • 智能提取: 自动识别并提取对话中的重要信息
  • 语义搜索: 基于向量嵌入的高级相似度检索
  • 记忆整合: 自动去重和关系映射
  • 多维组织: 基于策略的分类和过滤
  • 实时更新: 动态记忆更新,带有置信度评分

配置

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

const longTermMemory = new Mem0LongTermMemory({
  apiKey: 'your-mem0-api-key',
  host: 'https://api.mem0.ai',           // 可选的自定义主机
  organizationName: 'my-org',            // 可选的组织
  projectName: 'my-project',             // 可选的项目
  userId: 'user-123',                    // 默认用户 ID
  agentId: 'assistant-v1',               // 默认 Agent ID
  appId: 'my-app'                        // 默认应用 ID
});

配置参数

config
Mem0LongTermMemoryConfig
required
Mem0 配置对象

核心接口方法

Mem0LongTermMemory 实现了标准的长期记忆接口方法。有关包括 record()recordBatch()retrieve()delete()update()clear()extractAndRecord()semanticSearch() 和其他高级方法的完整 API 文档,请参阅 Memory Service API 参考

使用示例

基本记忆操作

// 记录单个记忆
await longTermMemory.record({
  id: 'mem-1',
  strategy: 'user_preferences',
  role: 'user',
  content: '用户偏好暗色模式和简洁的 UI',
  metadata: {
    category: 'ui_preferences',
    confidence: 0.9,
    source: 'explicit_statement'
  },
  createdAt: new Date()
});

// 批量记录多个记忆
const memories = [
  { id: 'mem-2', strategy: 'facts', content: '用户是软件工程师', metadata: {} },
  { id: 'mem-3', strategy: 'preferences', content: '用户喜欢 TypeScript', metadata: {} }
];
await longTermMemory.recordBatch(memories);

智能提取

// 从对话中自动提取
const messages = [
  { role: 'user', content: '我是一名数据科学家,热爱 Python' },
  { role: 'assistant', content: '太好了!Python 非常适合数据科学。' }
];

const extractedMemories = await longTermMemory.extractAndRecord(messages, {
  userId: 'user-123',
  sessionId: 'session-456',
  metadata: { conversation_type: 'onboarding' }
});

console.log('提取的记忆:', extractedMemories);

高级搜索

// 带过滤器的语义搜索
const searchResults = await longTermMemory.semanticSearch('编程语言', {
  threshold: 0.7,
  limit: 10,
  strategy: ['preferences', 'skills'],
  filters: { category: 'technical' }
});

// 复杂查询
const queryResults = await longTermMemory.retrieve({
  strategy: ['user_preferences', 'facts'],
  limit: 20,
  filters: { confidence: { $gte: 0.8 } }
});

记忆管理

// 更新现有记忆
await longTermMemory.update('mem-1', {
  content: '用户强烈偏好暗色模式和干净、简洁的 UI 设计',
  metadata: { confidence: 0.95, last_confirmed: new Date() }
});

// 使用图关系获取相关记忆
const relatedMemories = await longTermMemory.getRelatedMemories('mem-1', 3);

// 触发记忆整合
await longTermMemory.consolidate();

// 按策略清除记忆
await longTermMemory.clear('temporary');

功能特性

自动记忆提取

  • AI 驱动的对话内容分析
  • 智能识别重要信息
  • 按策略自动分类
  • 提取记忆的置信度评分

语义搜索

  • 基于向量的相似度匹配
  • 多维过滤
  • 相关性评分
  • 基于策略的组织

记忆整合

  • 自动去重
  • 关系映射
  • 记忆合并和更新
  • 置信度调整

企业级功能

  • 多租户组织支持
  • 基于项目的隔离
  • 用户和 Agent 特定的记忆
  • 实时同步

最佳实践

  1. 使用描述性策略: 使用清晰的策略名称组织记忆 (user_preferencestechnical_skillsproject_context)
  2. 包含丰富的元数据: 添加上下文、置信度分数和来源信息
  3. 定期整合: 定期触发整合以保持记忆质量
  4. 阈值调优: 根据用例需求调整相似度阈值
  5. 批量操作: 对多个记忆使用批量记录以提高性能

限制

  • 需要 Mem0 API 密钥和互联网连接
  • API 速率限制取决于您的 Mem0 计划
  • 记忆提取质量取决于对话内容质量
  • 向量搜索性能随记忆数据库大小而扩展