跳转到主要内容
AG-Kit 提供了一个复杂的双层记忆管理系统,通过协调短期和长期记忆操作,为 AI Agent 提供智能上下文管理和知识存储能力。

记忆系统架构

AG-Kit 的记忆系统由两个互补层组成,它们协同工作以提供全面的记忆能力:

短期记忆(会话记忆)

存储对话事件和消息,具有高效的存储、检索和搜索能力。功能类似传统存储系统,可以基于各种条件进行精确查询和过滤。 主要特性:
  • 易失性或持久性 - 可选择内存或云存储
  • 基于会话 - 为不同对话提供隔离上下文
  • Token 感知 - 自动管理 LLM 上下文窗口
  • 上下文工程 - 内置压缩和摘要功能,用于长对话(了解更多)
  • 快速访问 - 针对最近对话历史优化
使用场景:
  • 维护会话内的对话上下文
  • 管理多轮对话
  • 跟踪工具调用历史
  • 处理并发用户对话

长期记忆(知识记忆)

智能地从对话中提取重要信息,以存储用户档案、关键事实和偏好。使用向量化技术支持基于语义相似度的召回,实现高效的相似度搜索。 主要特性:
  • 持久性 - 信息跨会话保存
  • 语义搜索 - 基于向量的相似度匹配
  • 智能提取 - 从对话中自动提取记忆
  • 知识整合 - 去重和合并相关信息
使用场景:
  • 记住用户偏好和事实
  • 随时间构建用户档案
  • 存储领域知识
  • 个性化 Agent 响应

上下文工程

AG-Kit 包含内置的上下文工程来解决长时间对话中的上下文退化问题。随着对话的增长,会面临 token 限制、注意力稀释和性能下降等挑战。

三层管理策略

  1. 正常操作(0-80% 阈值): 完整详细地存储所有消息
  2. 可逆压缩(80-95% 阈值): 压缩旧消息,同时保留重建能力
  3. 结构化摘要(95%+ 阈值): 创建结构化摘要,大幅减少 token 数量

主要优势

  • 无限对话长度: 对话持续时间没有实际限制
  • 保持质量: 即使在长对话中也能保持高性能
  • 信息保留: 通过智能管理保留关键上下文
  • 成本效益: 大幅减少 token 使用和相关成本
上下文工程自动进行 - 无需手动干预。系统监控 token 使用情况,并根据可配置的阈值应用适当的策略。

记忆工作流

处理流程

  1. 短期检索: 从对话历史中获取相关上下文
  2. 长期召回: 语义搜索用户档案和重要事实
  3. 上下文集成: 结合两个记忆层获得全面上下文
  4. 响应生成: LLM 使用完整上下文生成响应
  5. 智能提取: 自动识别并存储重要信息
  6. 持续学习: 持续积累和优化用户知识

记忆实现

短期记忆实现

InMemoryMemory

内存存储用于开发和测试
  • 快速读写操作
  • 多会话支持
  • 基于内容的搜索
  • 零外部依赖

TDAIMemory

云端存储用于生产环境
  • 持久化存储
  • 分布式会话
  • 高级搜索
  • 企业级可靠性

CloudBaseMemory

腾讯 CloudBase 云数据库
  • Serverless NoSQL 存储
  • 实时同步
  • 内置认证
  • 自动扩展能力

MongoDBMemory

MongoDB 文档数据库
  • 灵活的文档存储
  • 丰富的查询能力
  • 横向扩展
  • ACID 事务

MySQLMemory

MySQL 关系型数据库
  • ACID 合规性
  • 成熟的生态系统
  • 高性能
  • 企业级功能

TypeORMMemory

TypeORM 多数据库支持
  • 数据库无关
  • 类型安全查询
  • 迁移支持
  • 多种数据库后端

长期记忆实现

Mem0LongTermMemory

Mem0 SDK 集成具有 AI 驱动功能
  • 自动提取
  • 语义搜索
  • 图关系
  • 智能整合

TDAILongTermMemory

TDAI 云存储用于企业
  • 云端持久化
  • 基于策略的组织
  • 可扩展的基础设施
  • 企业级功能

记忆对比

短期记忆 vs 长期记忆

方面短期记忆长期记忆
目的对话历史持久化知识
范围单个会话跨会话
存储最近消息提取的事实
检索按时间顺序/搜索语义搜索
生命周期会话持续时间无限期
大小限制基于 Token无限制
数据类型原始消息结构化事实
更新频率每条消息提取时
主要用途上下文窗口个性化

实现对比

功能InMemoryTDAICloudBaseMongoDBMySQLTypeORM
持久性
设置中等中等中等
性能优秀良好良好良好优秀良好
最适合开发/测试企业Serverless文档传统多数据库

存储后端指南

快速概览

后端最适合设置持久性
InMemory开发、测试零配置
TDAI企业、生产环境API key
CloudBaseServerless、腾讯云云配置
MongoDB文档密集型、灵活模式数据库设置
MySQL传统应用、ACID 合规性数据库设置
TypeORM多数据库、类型安全ORM 配置

选择合适的后端

按使用场景

  • 开发/测试: InMemoryMemory
  • 企业生产环境: TDAIMemory、MySQLMemory
  • Serverless 应用: CloudBaseMemory、TDAIMemory
  • 文档存储: MongoDBMemory、CloudBaseMemory
  • 多数据库: TypeORMMemory

快速入门示例

// 开发
const memory = new InMemoryMemory({ sessionId: 'dev' });

// 生产云环境
const memory = new TDAIMemory({
  sessionId: 'user-123',
  clientOptions: { apiKey: process.env.TDAI_API_KEY }
});

// 自托管 MySQL
const memory = MySQLMemory.create({
  host: 'localhost',
  database: 'agkit',
  sessionId: 'user-123'
});

核心概念

会话管理

会话为不同用户或对话线程提供隔离的对话上下文。
# 为不同用户创建隔离的会话
alice_session = 'user-alice-session-1'
bob_session = 'user-bob-session-1'

# 每个会话都有独立的记忆
await memory.add(session_id=alice_session, message=message, state=state)
await memory.add(session_id=bob_session, message=message, state=state)
了解更多: 会话管理指南

Token 管理

自动 token 计数和修剪,以管理 LLM 上下文窗口。有关高级策略,请参阅上下文工程指南
# 在 token 限制内检索事件
events = await memory.list(
    max_tokens=4000,  # 适合 GPT-4 上下文
    session_id='session-123'
)
了解更多: 短期记忆指南

记忆策略

按策略组织长期记忆,以更好地分类。
# 不同的记忆策略
await long_term_memory.record({
    'strategy': 'facts',        # 客观信息
    'content': 'User graduated from MIT'
})

await long_term_memory.record({
    'strategy': 'preferences',  # 用户喜好/厌恶
    'content': 'User prefers dark mode'
})
了解更多: 长期记忆指南

语义搜索

使用自然语言查询查找相关记忆。
# 搜索所有记忆
results = await long_term_memory.semantic_search(
    'What are the user\'s food preferences?'
)
# 返回: "User loves Italian food", "User is allergic to shellfish", 等等
了解更多: 长期记忆指南

开始使用

1

选择存储后端

根据需求选择:InMemory(开发)、TDAI/CloudBase(云端)或 MySQL/MongoDB(自托管)。
2

初始化记忆层

为对话设置短期记忆和/或为知识设置长期记忆。
3

集成到 Agent

将记忆实例附加到 Agent 配置中。
4

实现会话管理

创建会话 ID 并管理会话生命周期。
5

测试和优化

监控性能并调整 token 限制、缓存和清理策略。

下一步