记忆系统架构
AG-Kit 的记忆系统由两个互补层组成,它们协同工作以提供全面的记忆能力:短期记忆(会话记忆)
存储对话事件和消息,具有高效的存储、检索和搜索能力。功能类似传统存储系统,可以基于各种条件进行精确查询和过滤。 主要特性:- 易失性或持久性 - 可选择内存或云存储
- 基于会话 - 为不同对话提供隔离上下文
- Token 感知 - 自动管理 LLM 上下文窗口
- 上下文工程 - 内置压缩和摘要功能,用于长对话(了解更多)
- 快速访问 - 针对最近对话历史优化
- 维护会话内的对话上下文
- 管理多轮对话
- 跟踪工具调用历史
- 处理并发用户对话
长期记忆(知识记忆)
智能地从对话中提取重要信息,以存储用户档案、关键事实和偏好。使用向量化技术支持基于语义相似度的召回,实现高效的相似度搜索。 主要特性:- 持久性 - 信息跨会话保存
- 语义搜索 - 基于向量的相似度匹配
- 智能提取 - 从对话中自动提取记忆
- 知识整合 - 去重和合并相关信息
- 记住用户偏好和事实
- 随时间构建用户档案
- 存储领域知识
- 个性化 Agent 响应
上下文工程
AG-Kit 包含内置的上下文工程来解决长时间对话中的上下文退化问题。随着对话的增长,会面临 token 限制、注意力稀释和性能下降等挑战。三层管理策略
- 正常操作(0-80% 阈值): 完整详细地存储所有消息
- 可逆压缩(80-95% 阈值): 压缩旧消息,同时保留重建能力
- 结构化摘要(95%+ 阈值): 创建结构化摘要,大幅减少 token 数量
主要优势
- 无限对话长度: 对话持续时间没有实际限制
- 保持质量: 即使在长对话中也能保持高性能
- 信息保留: 通过智能管理保留关键上下文
- 成本效益: 大幅减少 token 使用和相关成本
上下文工程自动进行 - 无需手动干预。系统监控 token 使用情况,并根据可配置的阈值应用适当的策略。
记忆工作流
处理流程
- 短期检索: 从对话历史中获取相关上下文
- 长期召回: 语义搜索用户档案和重要事实
- 上下文集成: 结合两个记忆层获得全面上下文
- 响应生成: LLM 使用完整上下文生成响应
- 智能提取: 自动识别并存储重要信息
- 持续学习: 持续积累和优化用户知识
记忆实现
短期记忆实现
InMemoryMemory
内存存储用于开发和测试
- 快速读写操作
- 多会话支持
- 基于内容的搜索
- 零外部依赖
TDAIMemory
云端存储用于生产环境
- 持久化存储
- 分布式会话
- 高级搜索
- 企业级可靠性
CloudBaseMemory
腾讯 CloudBase 云数据库
- Serverless NoSQL 存储
- 实时同步
- 内置认证
- 自动扩展能力
MongoDBMemory
MongoDB 文档数据库
- 灵活的文档存储
- 丰富的查询能力
- 横向扩展
- ACID 事务
MySQLMemory
MySQL 关系型数据库
- ACID 合规性
- 成熟的生态系统
- 高性能
- 企业级功能
TypeORMMemory
TypeORM 多数据库支持
- 数据库无关
- 类型安全查询
- 迁移支持
- 多种数据库后端
长期记忆实现
Mem0LongTermMemory
Mem0 SDK 集成具有 AI 驱动功能
- 自动提取
- 语义搜索
- 图关系
- 智能整合
TDAILongTermMemory
TDAI 云存储用于企业
- 云端持久化
- 基于策略的组织
- 可扩展的基础设施
- 企业级功能
记忆对比
短期记忆 vs 长期记忆
| 方面 | 短期记忆 | 长期记忆 |
|---|---|---|
| 目的 | 对话历史 | 持久化知识 |
| 范围 | 单个会话 | 跨会话 |
| 存储 | 最近消息 | 提取的事实 |
| 检索 | 按时间顺序/搜索 | 语义搜索 |
| 生命周期 | 会话持续时间 | 无限期 |
| 大小限制 | 基于 Token | 无限制 |
| 数据类型 | 原始消息 | 结构化事实 |
| 更新频率 | 每条消息 | 提取时 |
| 主要用途 | 上下文窗口 | 个性化 |
实现对比
| 功能 | InMemory | TDAI | CloudBase | MongoDB | MySQL | TypeORM |
|---|---|---|---|---|---|---|
| 持久性 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 设置 | 无 | 中等 | 中等 | 低 | 低 | 中等 |
| 性能 | 优秀 | 良好 | 良好 | 良好 | 优秀 | 良好 |
| 最适合 | 开发/测试 | 企业 | Serverless | 文档 | 传统 | 多数据库 |
存储后端指南
快速概览
| 后端 | 最适合 | 设置 | 持久性 |
|---|---|---|---|
| InMemory | 开发、测试 | 零配置 | ❌ |
| TDAI | 企业、生产环境 | API key | ✅ |
| CloudBase | Serverless、腾讯云 | 云配置 | ✅ |
| MongoDB | 文档密集型、灵活模式 | 数据库设置 | ✅ |
| MySQL | 传统应用、ACID 合规性 | 数据库设置 | ✅ |
| TypeORM | 多数据库、类型安全 | ORM 配置 | ✅ |
选择合适的后端
按使用场景
- 开发/测试: InMemoryMemory
- 企业生产环境: TDAIMemory、MySQLMemory
- Serverless 应用: CloudBaseMemory、TDAIMemory
- 文档存储: MongoDBMemory、CloudBaseMemory
- 多数据库: TypeORMMemory
快速入门示例
核心概念
会话管理
会话为不同用户或对话线程提供隔离的对话上下文。Token 管理
自动 token 计数和修剪,以管理 LLM 上下文窗口。有关高级策略,请参阅上下文工程指南。记忆策略
按策略组织长期记忆,以更好地分类。语义搜索
使用自然语言查询查找相关记忆。开始使用
1
选择存储后端
根据需求选择:InMemory(开发)、TDAI/CloudBase(云端)或 MySQL/MongoDB(自托管)。
2
初始化记忆层
为对话设置短期记忆和/或为知识设置长期记忆。
3
集成到 Agent
将记忆实例附加到 Agent 配置中。
4
实现会话管理
创建会话 ID 并管理会话生命周期。
5
测试和优化
监控性能并调整 token 限制、缓存和清理策略。