§06 记忆和 RAG 让 Agent 记住你
06.1 金鱼困境
早期 Agent 像金鱼。对话一关,全忘。
2025-2026 年,"长期记忆"从论文变成产品(Mem0、Letta、Zep)。
06.2 记忆分四种
人怎么记,Agent 就怎么记:
| 记忆类型 | 记啥 | 例子 | 标叔的结论 |
|---|---|---|---|
| 工作记忆 | 当前在想啥 | 临时便签 | 一轮任务内用 |
| 语义记忆 | 关于你的常识 | 你爱喝美式 | 长期用户画像 |
| 情景记忆 | 发生过的事 | 上次你发过火 | 避免再踩雷 |
| 程序记忆 | 怎么做事 | 报销先 A 后 B | 固化工作流 |
示意图 10:四种记忆类型
flowchart TD
WM["工作记忆<br/>当前在想啥"]
SM["语义记忆<br/>关于你的常识"]
EM["情景记忆<br/>发生过的事"]
PM["程序记忆<br/>怎么做事"]
style SM fill:#e8f0fe,stroke:#2563eb
06.3 RAG:给 Agent 一本可翻的资料库
光靠模型"脑内知识"不够。它会编。
RAG(检索增强生成)的做法:
你问之前,系统先去你的文档库检索相关段落,塞给模型当"参考资料"。
模型基于真材料答,不凭空编。
生产级 Agent 用多路召回。不是只搜相似度:
# 多路召回:比单一路更准
def retrieve(query):
s = vector_search(query, top_k=10) # 1. 语义相似
k = keyword_search(query, top_k=10) # 2. 关键词精确
g = graph_query(query) # 3. 知识图谱关系
t = temporal_search(query, "7d") # 4. 近期时序
return rerank([s, k, g, t]) # 5. 融合重排
示意图 11:RAG 多路召回 + 融合重排
flowchart LR
Q["用户问题"] --> R1["向量语义召回"]
Q --> R2["关键词精确"]
Q --> R3["知识图谱"]
Q --> R4["近期时序"]
R1 --> Re["融合重排"]
R2 --> Re
R3 --> Re
R4 --> Re
Re --> LLM["基于真材料作答"]
style LLM fill:#0ea5a4,stroke:#0f766e,color:#fff
06.4 记忆要压缩
长期记忆会爆炸。解法叫分层摘要:
- Level 1:原始对话,留 7 天。
- Level 2:每日摘要,留 30 天。
- Level 3:周度总结,留 90 天。
- Level 4:月度洞察,永久留。
每层由"摘要 Agent"生成。留关键的,丢冗余的。
核心建议:想让 Agent 真"懂你",把你的笔记、邮件历史接给它。它从陌生人变老搭档。
§06 讲完"笔记本"。下一章讲"质检员"——评估与反馈,决定靠不靠谱。