Helloagent chapter8 ragmemory

📅 2026/7/14 4:55:56 👁️ 阅读次数 📝 编程学习
Helloagent chapter8 ragmemory

1. 基于LLM的智能体而言,通常面临两个根本性局限:对话状态的遗忘和内置知识的局限

局限一:无状态导致的对话遗忘:

上下文丢失:窗口限制

个性化缺失:无法记住用户喜好

一致性问题:前后矛盾

学习能力:无法学会改进自己

局限二:模型内置知识的局限性

知识时效性:大模型的训练数据有时间截止点

专业领域知识:通用模型在特定领域的深度知识可能不足(微调加强,通用模型/专用模

型选择专用模型更佳

事实准确性:通过检索验证,减少模型的幻觉问题(模型幻觉是指:模型生成了看起来

合理、表达流畅,但实际上没有事实依据、与资料矛盾,甚至完全虚构的内容)大语言

模型的基本任务是预测下一个 token,而不是查询事实数据库。通过检索验证,可以找

到事实依据再进行回答,这就是RAG的基本逻辑。

ps:

但rag的错误会体现在资料错误、rerank错误、chunk截断、过度推断、证据是否充

足(没有就返回没有,别强憋一个答案出来)

所以建议rag用混合检索(BM25+向量检索)+rerank

2. 记忆系统设计

a. infra+存储抽象层+记忆type层+顶端调用(由下往上)

b. 不同的记忆类型对应不同的存储抽象层

WorkingMemory工作记忆:短期记忆,对应内存

EpisodicMemory情景记忆:包含了丰富的上下文信息,并支持按时间序列或主题进行回

顾式检索

SemanticMemory语义记忆:更为抽象的知识、概念和规则。例如,通过对话了解到的

用户偏好、需要长期遵守的指令或领域知识点

PerceptualMemory感知记忆:多模态信息

c.人的记忆过程

编码 存储 检索 整合 遗忘

编码:

embeding

存储:

结构?

检索:

整合:

短期记忆上升为长期记忆

遗忘:

基于重要性、时效

3. RAG架构设计

多模态转化 -> 分快 -> 统一嵌入(向量化) -> 检索(MQE、HyDE)

分块(Chunk):

专门针对markdown的分块策略:标准Markdown文本 → 标题层次解析 → 段落语义分割 → Token计算分块 → 重叠策略优化(其中重叠策略优化,切分相邻chunk时,保留一部分重复内容,重叠太少会导致上下文语义的断裂,重叠太多会导致空间的存储失效,这是一个tradeoff)

向量化:

检索:

MQE(Multi-Query Expansion):同一个问题可以有多种不同的表述方式,而不同的表述可能匹配到不同的相关文档。例如,"如何学习Python"可以扩展为"Python入门教程"、"Python学习方法"、"Python编程指南"等多个查询。通过并行执行这些扩展查询并合并结果,系统能够覆盖更广泛的相关文档,避免因用词差异而遗漏重要信息。

HyDE(Hypothetical Document Embeddings,HyDE):传统的检索方法是用问题去匹配文档,HyDE通过让LLM先生成一个假设性的答案段落,然后用这个答案段落去检索真实文档,从而缩小了查询和文档之间的语义鸿沟。