4. 记忆与检索
4.1 为什么需要记忆与 RAG
LLM 的两大局限:
- 无状态导致对话遗忘:每次请求都是独立的,无法记住之前的对话内容
- 内置知识局限性:训练数据有时间截止点,无法获取最新信息,专业领域知识不足
解决方案:
- 记忆系统:让智能体能够记住对话历史、用户偏好和学习经验
- RAG 系统:从外部知识库检索相关信息,增强模型生成能力
4.2 记忆系统:四层架构
借鉴人类记忆系统,HelloAgents 设计了四种记忆类型:
(1)工作记忆(Working Memory)
- 特点:临时信息,容量有限(默认 50 条),TTL 自动清理
- 存储:纯内存,访问速度快
- 应用:存储当前对话的上下文信息
- 评分公式:
(相似度 × 时间衰减) × (0.8 + 重要性 × 0.4)
(2)情景记忆(Episodic Memory)
- 特点:具体事件和经历,支持时间序列检索
- 存储:SQLite + Qdrant 混合存储
- 应用:记录学习事件、查询历史、重要里程碑
- 评分公式:
(向量相似度 × 0.8 + 时间近因性 × 0.2) × (0.8 + 重要性 × 0.4)
(3)语义记忆(Semantic Memory)
- 特点:抽象知识和概念,支持知识图谱推理
- 存储:Neo4j 图数据库 + Qdrant 向量数据库
- 应用:存储用户偏好、领域知识、概念理解
- 评分公式:
(向量相似度 × 0.7 + 图相似度 × 0.3) × (0.8 + 重要性 × 0.4)
(4)感知记忆(Perceptual Memory)
- 特点:多模态数据(文本、图像、音频),支持跨模态检索
- 存储:按模态分离的向量存储
- 应用:处理文档特征、图像理解、音频转录
4.3 记忆系统的核心操作
MemoryTool 提供的操作:
add:添加记忆(支持 4 种类型)search:搜索记忆(语义检索 + 关键词匹配)forget:遗忘记忆(基于重要性/时间/容量)consolidate:整合记忆(短期 → 长期)summary:获取记忆摘要stats:获取统计信息
记忆生命周期:
编码 → 存储 → 检索 → 整合 → 遗忘
4.4 RAG 系统:知识检索增强
RAG 核心思想:在生成回答前,先从外部知识库检索相关信息,作为上下文提供给模型
工作流程:
- 数据处理阶段:文档提取 → MarkItDown 转换 → 智能分块 → 向量化 → 存储
- 查询阶段:用户提问 → 检索相关文档 → 注入 Prompt → LLM 生成答案
MarkItDown 统一转换:
- 支持格式:PDF、Word、Excel、图片、音频等
- 统一输出:Markdown 格式
- 优势:结构清晰,便于后续处理
智能分块策略:
- 基于 Markdown 标题层次(#、##、###)进行语义分割
- 根据 Token 数量控制分块大小
- 支持重叠策略保持上下文连续性
4.5 高级检索策略
(1)多查询扩展(MQE)
- 原理:生成语义等价的多样化查询
- 优势:提升召回率 30%-50%,避免用词差异导致遗漏
- 示例:"如何学习 Python" → ["Python 入门教程", "Python 学习方法", "Python 编程指南"]
(2)假设文档嵌入(HyDE)
- 原理:用答案找答案,先生成假设答案段落,再用其检索真实文档
- 优势:缩小查询和文档的语义鸿沟,提升检索精度
- 适用:专业领域查询效果显著
(3)统一扩展检索框架
- 整合 MQE 和 HyDE 两种策略
- 通过"扩展-检索-合并"三步流程
- 支持灵活配置,根据场景选择策略
4.6 实际应用:智能文档问答助手
案例功能:
- 智能文档处理:PDF → Markdown → 分块 → 向量化
- 高级检索问答:MQE + HyDE 提升检索质量
- 多层次记忆管理:工作记忆(当前任务)、情景记忆(学习事件)、语义记忆(概念知识)
- 个性化学习支持:基于学习历史的推荐、学习报告生成
核心实现:
# 加载文档
rag_tool.execute("add_document", file_path=pdf_path)
# 智能问答
rag_tool.execute("ask", question=question, enable_mqe=True, enable_hyde=True)
# 记忆管理
memory_tool.execute("add", content=content, memory_type="semantic")
memory_tool.execute("search", query=query, limit=5)
4.7 设计要点总结
记忆系统设计:
- 分层架构:工作记忆(临时)→ 情景记忆(事件)→ 语义记忆(知识)
- 评分机制:综合考虑相似度、时间衰减、重要性权重
- 生命周期管理:自动整合、选择性遗忘、容量控制
RAG 系统设计:
- 统一转换:MarkItDown 处理多格式文档
- 智能分块:基于 Markdown 结构的语义分割
- 高级检索:MQE + HyDE 提升召回率和精度
- 模块化设计:各层可独立优化和替换
核心优势:
- 记忆系统:让智能体具备类人的记忆能力,支持个性化服务
- RAG 系统:突破模型知识局限,支持最新信息和专业领域知识
- 组合使用:RAG 检索外部知识,Memory 记录学习经验,形成完整闭环

评论(没有评论)