导航
HTML
CSS
JavaScript
浏览器 & 网络
版本管理
框架
构建工具
TypeScript
性能优化
算法
UI、组件库
Node
业务技能
针对性攻坚
AI
公共类
第八章 记忆与检索
1. 核心痛点与解决方案 (8.1)
- 痛点一: LLM 是无状态的,聊几句就忘,无法进行长对话(就像“金鱼记忆”)。
- 解法: Memory System (记忆系统) —— 让 Agent 记住你是谁、聊过什么。
- 痛点二: LLM 的知识停留在训练截止日,不懂公司内部文档。
- 解法: RAG (检索增强生成) —— 让 Agent 能够外挂知识库,随查随用。
2. 四大记忆类型 (核心架构) (8.2)
HelloAgents 参考认知科学,设计了四种记忆,分别对应不同的存储和检索策略:
| 记忆类型 |
类比人类 |
存储技术 |
核心机制 |
| 工作记忆 (Working) |
短期记忆 |
纯内存 |
TTL (自动过期)。存当前对话上下文,关机即焚,速度最快。 |
| 情景记忆 (Episodic) |
日记本 |
SQLite + Qdrant |
时间序列。记录具体的事件("昨天加载了文档A"),强调**“近因性”**(最近发生的更重要)。 |
| 语义记忆 (Semantic) |
知识百科 |
Neo4j (图) + Qdrant |
知识图谱。存抽象概念("Python 是一门语言")。能自动提取实体关系,支持逻辑推理。 |
| 感知记忆 (Perceptual) |
感官 |
多模态向量库 |
跨模态。存图片、音频。支持“搜图”、“搜录音”。 |
- 关键操作:
- 遗忘 (Forget): 模拟大脑,基于重要性/时间/容量自动删除垃圾信息。
- 整合 (Consolidate): 睡一觉把“短期记忆”变成“长期记忆”(将重要的工作记忆转存为情景/语义记忆)。
3. RAG 系统:从“搜关键词”到“搜意图” (8.3)
- 全能文档加载: 使用 MarkItDown 库,把 PDF/Word/Excel/图片统统转成 Markdown。
- 优势: 保留了标题层级(# ##),分块更精准,不会切断语义。
- 高级检索策略 (重难点): * MQE (多查询扩展): 你问“怎么学Python”,它自动扩展成“Python入门教程”、“Python学习路线”三个问题同时搜,提升召回率。
- HyDE (假设文档嵌入): “用答案找答案”。先让 LLM 瞎编一个可能的答案,用这个“假答案”去搜“真文档”,解决问题和文档语义不匹配的难题。
4. 实战:智能文档问答助手 (8.4)
- 综合应用: 做了一个 Web 应用,结合了 Memory 和 RAG。
- 工作流闭环:
- 上传 PDF: RAG 系统处理文档,同时在情景记忆里记一笔“某时某刻上传了某书”。
- 提问: * 先查 Memory:看之前聊没聊过相关话题。
- 再查 RAG:用 MQE+HyDE 深挖文档细节。
- 笔记: 用户觉得好的内容,一键存入 语义记忆,形成永久知识。
- 报告: 最后生成一份包含学习时长、提问数、知识点的 JSON 学习报告。
💡 极速总结 (One-Liner)
本章通过 MemoryTool 构建了包含短期、长期、知识图谱的类脑记忆系统,并通过 RAGTool 实现了基于 Markdown 结构化分块和 HyDE 高级检索的外部知识增强,让智能体不仅能“过目不忘”,还能“博古通今”。
第九章 上下文工程
1. 核心痛点:为什么需要“工程化”上下文? (9.1 & 9.2)
- 上下文腐蚀 (Context Rot): 随着输入内容变长,LLM 的注意力会被稀释,准确率下降(类似人看书看多了会走神)。
- 注意力预算 (Attention Budget): 上下文窗口是昂贵的、有限的资源。
- 本质转变:
- 提示工程 (Prompt Engineering): 研究“怎么说话模型才爱听”。
- 上下文工程 (Context Engineering): 研究“给模型看什么资料才最有效”。它是动态的,在每一轮对话前都要实时拼装最优的输入。
2. 核心引擎:ContextBuilder (9.3)
HelloAgents 引入了一个标准的流水线 GSSC 来自动化管理上下文,不再手动拼接字符串。
- Gather (汇集): 把系统指令、RAG 检索结果、对话历史、短期记忆全部抓取过来。
- Select (筛选 - 核心):
- 算法: 基于 相关性 (Relevance) 和 新近性 (Recency) 打分。
- 贪心策略: 像装背包一样,优先装高分信息,直到 Token 预算用完。
- Structure (结构化): 按固定分区(Role, Task, Evidence, Context)排版,保证 LLM 能看懂结构。
- Compress (压缩): 预算超标时的兜底方案(截断或让 LLM 总结摘要)。
3. 两大护法工具 (长程任务神器)
① NoteTool:结构化笔记 (9.4)
- 作用: 解决“长对话遗忘”问题。它是智能体的项目管理软件。
- 形式: Markdown + YAML。人能看懂(笔记),机器也能读懂(元数据)。
- 关键分类:
task_state: 任务进度条。
blocker: 遇到的拦路虎(优先解决)。
action: 下一步计划。
- 实战: 智能体在对话中自动记录“发现 Bug”,并在下一轮对话前自动检索“待解决 Bug”,实现跨会话的记忆接力。
② TerminalTool:即时上下文探索 (9.5)
- 作用: 解决“全部加载太慢”问题。实现 JIT (Just-in-Time) 上下文。
- 原理: 不把整个代码库塞给 AI。而是给它一个终端,让它想看哪个文件就去
cat 哪个文件,想找什么就 grep 什么。
- 安全机制 (重难点):
4. 终极形态:代码库维护助手 (9.6)
本章通过一个案例展示了“上下文工程”的完全体:
- 探索 (Explore): 用
TerminalTool 摸清项目结构(不占上下文)。
- 分析 (Analyze): 发现代码问题,用
NoteTool 记下来(持久化存储)。
- 规划 (Plan): 回顾笔记中的 Blockers,用
ContextBuilder 提取当前任务最相关的技术文档(精准上下文)。
- 执行 (Execute): 给出修改建议。