智能体入门课
three_kinds_of_tools零基础65 分钟

4

RAG 与工具:Agent 怎样接触外部事实

参考:来源 A · Google

学完你能做到

  • 说清"谁去执行"这件事为什么重要
  • 给一个需求能选出该用哪种工具形态
  • 用自己的话讲明白 RAG 是干什么的

Google 白皮书把工具分成三类。分类的依据不是"功能",而是谁去真正执行

这个切分方式一开始看着奇怪,但它直接决定了一件要命的事:你的要放在哪里。

Extension:agent 自己去调

先建立直觉

你给助理一张公司信用卡,他自己去刷。方便,但卡在他手上。

Function:模型只填空,不动手

先建立直觉

助理不拿卡。他把要买的东西列成一张单子给你:「买什么、买几个、多少钱」,你自己去刷卡。

卡始终在你手上,助理碰不到。

你这一侧 AGENT 那一侧 A 你的界面 Agent Extension 外部 API 密钥在这边 B 你的界面 Agent Function 外部 API 真实调用由你发起,密钥留在你这边
红色虚线是执行边界。方案 B 里,真实的 API 调用绕过了 agent——这意味着密钥也不需要交给 agent 那一侧。

Data Store:给 agent 一个资料库

先建立直觉

大模型像一座藏书极多的图书馆,但它不再进新书——只有当初建馆时装进去的那些。

Data Store 就是在旁边加一个"今日报刊阅览室",随时能补充新东西。

RAG 是怎么走的

你的问题 "实验室设备怎么借" 转成一串数字 向量嵌入 在库里找相近的 向量数据库 取出原文 管理办法第三条… Agent 作答 给你答案 1 2 3 4 5
RAG 五步。注意第 4 步之后 agent 可以选择再检索一次,不必立刻回答——这时候 RAG 就变成了 ReAct 循环里的一个动作。

第 2 步在干什么:向量是什么

先建立直觉

想象你给图书馆每本书标一个坐标,内容相似的书坐标就挨得近。

那么"找一本和这本类似的书"就变成了"找坐标最近的点"——这是计算机极其擅长的事,几百万本书也能瞬间找出来。

形态谁去执行什么时候用它
Agent 那一侧希望 agent 自己控制和 API 的交互;需要多跳规划——下一步做什么取决于上一次调用返回了什么
你这一侧安全或认证限制导致 agent 不能直接调;有时序约束(批处理、要人工审核);API 不在公网上
Agent 那一侧要做 :查文档、查网页、查数据库

课堂练习

20 分钟
  1. (a) 让 agent 查询校内教务系统,但教务系统只在校园网内能访问
  2. (b) 让 agent 回答"我们实验室的设备管理规定里怎么说的"
  3. (c) 让 agent 先查天气,再根据结果决定要不要查航班延误
查看参考答案

(a) Function —— API 不在公网上,agent 那一侧够不着,只能由校内的代码去调。

(b) Data Store —— 典型的 RAG 场景,资料是你自己的文档。

(c) Extension —— 多跳规划,第二步做不做取决于第一步的结果,让 agent 自己连续决策更合适。

案例推演:RAG 找到一段话,为什么还不等于有证据

论文助手检索到一个相关片段,片段说“显著改善”,但完整段落限定于某个亚组,表格还显示主要终点不显著。只把命中片段交给模型会制造错误结论。

本节追问:检索、读取、核验和引用之间缺一不可的关系是什么? 先不要急着看结论。沿着下面四步,逐项区分输入、决策、证据和失败信号。

每一步都要回答:看到了什么?为何这样决定?怎样证明? 1 检索定位 用查询找到候选页和段落 观察 → 决策 → 留证据 2 读取原文 读取完整段落、表格和必要上下文 观察 → 决策 → 留证据 3 形成判断 区分主要终点、亚组和作者解释 观察 → 决策 → 留证据 4 验证引用 检查页码、原句与结论是否对应 观察 → 决策 → 留证据 完整案例链:不是记住名词,而是能够用证据作出下一步决定
四步案例推演。手机上可左右滑动查看;每个箭头都代表一次需要证据支撑的状态转换。
阶段本步要做的决定什么算证据最常见的失败
检索定位用查询找到候选页和段落命中结果仅作为阅读入口把相似度高当成结论正确
读取原文读取完整段落、表格和必要上下文模型实际看到支持与限制条件只读搜索摘要或切碎片段
形成判断区分主要终点、亚组和作者解释每个判断有明确证据边界把亚组结果推广到全部人群
验证引用检查页码、原句与结论是否对应引用可回到原文复核先写页码再猜原文

阅读方式:先遮住后两列自己回答,再用“证据”和“失败”两列检查理解。

常见误解

RAG 命中后直接让模型总结

实际上

可观察症状:相关片段缺少否定、范围和表格上下文。

更可靠的修复:实行“搜索只定位—完整读取才取证—断言紧跟引用”的证据协议。

案例工作坊 · 建议真正动手完成

25 分钟
  1. 为论文问答写出检索与读取的不同完成条件。
  2. 列举三种片段脱离上下文会改变含义的情况。
  3. 设计一句“文档无法回答”时的边界表达。
查看参考答案

RAG 提高找到材料的概率,不自动保证证据充分。检索是定位,读取才获得证据,核验确保判断与原文一致,引用提供复查路径。

迁移检查:换一个场景还会不会

向量检索返回相似度 0.92 的片段,下一步最稳妥的是?

检查一下

用 Function(函数调用)而不是 Extension,对安全最直接的好处是什么?

为什么向量搜索比关键词搜索更适合 RAG?