Agent 核心范式:ReAct、工具与记忆 · 里程碑长文:给你的笔记装一个会标注出处的嘴
这个里程碑要做什么
做一个能检索你自己笔记(Obsidian 库、Markdown 文件夹、任何真实语料均可)的问答 Agent:用户提问,它检索相关片段,基于片段回答,并且每条关键论断后面标注出处(哪篇笔记、哪一段)。
「引用出处」是验收的硬标准——没有出处的 RAG,只是一个更会一本正经胡说八道的聊天框。规格建议:检索层可以先用最简单的关键词/TF-IDF 或 embedding 检索,不要求上重型向量库;回答层把检索片段塞进 prompt,要求模型逐条引用;出处至少包含文档名加段落定位;检索不到相关内容时,必须明确说「不知道」,而不是硬答。
为什么是它(设计意图)
这是 ReAct 循环的第一个真实应用场景:思考(该检索什么)→ 行动(调检索工具)→ 观察(读片段)→ 再思考(够不够,要不要换关键词再查)。写完它,「Agent = LLM + 循环」会从公式变成肌肉记忆。
「引用出处」这个要求会逼你正视 RAG 的核心矛盾:检索质量决定回答质量。你会很快发现 chunk 切分、metadata 设计、top-k 选择,都比模型本身更影响效果。「不知道就别说」是 Agent 可靠性的第一课,也是第五阶段评测体系的种子。而笔记是每个人都有的真实数据——做出来马上能用,用起来的东西才会被持续打磨。
这个阶段你还会第一次正面撞上「记忆」问题:多轮追问时,上一轮的检索结果要不要带进下一轮?这就是记忆分层的入门课——短期靠上下文、长期靠检索、任务态靠你自己维护的数据结构。想不清楚就先做无状态的单轮版,想清楚再叠加,顺序不能反。
配套资源怎么用
- 主线骨架:Berkeley RDI 的 LLM Agents MOOC(Dawn Song 主讲,Xinyun Chen、Kaiyu Yang 联合授课)。Spring 2025 已结课、证书已发完,但讲座视频仍可在官网大纲页观看——推理、工具、RAG 讲次就是本阶段的理论地图,看视频做练习即可,别惦记证书。
- 开工前一晚:DeepLearning.AI 短课 Functions, Tools and Agents,一小时左右建立工具调用直觉。
- 动手伴手:Hugging Face Agents Course(目前仍发免费证书,想拿证尽早),其 ReAct 与 RAG 章节和本里程碑直接对应,跟着单元做练习。
- 代码参考:Microsoft 的 ai-agents-for-beginners(GitHub,11 课含视频代码),看它的 RAG 示例怎么组织——理解后用自己的方式写,别直接抄框架封装。
- 方法论:Chip Huyen《AI Engineering》(O'Reilly 2025)的 RAG 与 Agent 架构章节,回答「为什么这样设计」。
- 原理加餐:同济子豪兄的论文精读,选 RAG 相关篇目,听不懂英文论文时换中文耳朵。
常见翻车点
- 上来就上向量库全家桶:几百篇笔记,TF-IDF 可能就够了。先回答「检索什么、放在 prompt 哪个位置」,再谈技术选型。
- chunk 切分太粗暴:按固定字符数硬切,语义被切碎,检索回来的片段前言不搭后语。
- 只检索一次就回答:问题模糊时应该允许 Agent 多检索几轮——这正是 ReAct 的价值,单轮 RAG 把它退化成流水线。
- 引用是摆设:模型标了出处但你没校验出处是否真包含该论断——幻觉会转移成「引用幻觉」。
- 没有「不知道」的退路:检索结果为空也硬答,可靠性直接归零。
- 检索工具没有超时与兜底:语料一大检索变慢,Agent 卡死在那里——每个工具调用都要带超时、重试与兜底提示。
验收清单
- 能索引自己至少 100 篇真实笔记,提问后返回相关片段
- 回答中每条关键论断带出处(文档名 + 段落位置)
- 人工抽查 10 条引用,全部真实存在且支持对应论断
- 检索不到相关内容时明确回答「不知道」,不编造
- 支持多轮检索:一次不够时会换关键词再查
- 检索工具有超时与失败兜底
- 能讲清 chunk 大小、top-k、检索方式的选择理由
延伸建议
把这个 Agent 当成第三、四、五阶段的固定实验对象——后面所有重构都在它身上做,你才能精确对比每次架构变更的得失。现在开始记录它答错的 10 个案例,那就是你第五阶段黄金评测集的雏形。可以试试混合检索(关键词与 embedding 取并集),体会工程里常见的「小改进大收益」。最后做一次对照实验:同一个问题,分别用单轮 RAG 和你这个可多轮检索的 ReAct 版回答,对比引用质量——你会直观看到循环带来的增值到底发生在哪。