4
RAG 与工具:Agent 怎样接触外部事实
参考:来源 A · Google
学完你能做到
- 说清"谁去执行"这件事为什么重要
- 给一个需求能选出该用哪种工具形态
- 用自己的话讲明白 RAG 是干什么的
Google 白皮书把工具分成三类。分类的依据不是"功能",而是谁去真正执行。
这个切分方式一开始看着奇怪,但它直接决定了一件要命的事:你的要放在哪里。
Extension:agent 自己去调
先建立直觉
你给助理一张公司信用卡,他自己去刷。方便,但卡在他手上。
Function:模型只填空,不动手
先建立直觉
助理不拿卡。他把要买的东西列成一张单子给你:「买什么、买几个、多少钱」,你自己去刷卡。
卡始终在你手上,助理碰不到。
Data Store:给 agent 一个资料库
先建立直觉
大模型像一座藏书极多的图书馆,但它不再进新书——只有当初建馆时装进去的那些。
Data Store 就是在旁边加一个"今日报刊阅览室",随时能补充新东西。
RAG 是怎么走的
第 2 步在干什么:向量是什么
先建立直觉
想象你给图书馆每本书标一个坐标,内容相似的书坐标就挨得近。
那么"找一本和这本类似的书"就变成了"找坐标最近的点"——这是计算机极其擅长的事,几百万本书也能瞬间找出来。
| 形态 | 谁去执行 | 什么时候用它 |
|---|---|---|
| Agent 那一侧 | 希望 agent 自己控制和 API 的交互;需要多跳规划——下一步做什么取决于上一次调用返回了什么 | |
| 你这一侧 | 安全或认证限制导致 agent 不能直接调;有时序约束(批处理、要人工审核);API 不在公网上 | |
| Agent 那一侧 | 要做 :查文档、查网页、查数据库 |
课堂练习
20 分钟- (a) 让 agent 查询校内教务系统,但教务系统只在校园网内能访问
- (b) 让 agent 回答"我们实验室的设备管理规定里怎么说的"
- (c) 让 agent 先查天气,再根据结果决定要不要查航班延误
查看参考答案
(a) Function —— API 不在公网上,agent 那一侧够不着,只能由校内的代码去调。
(b) Data Store —— 典型的 RAG 场景,资料是你自己的文档。
(c) Extension —— 多跳规划,第二步做不做取决于第一步的结果,让 agent 自己连续决策更合适。
案例推演:RAG 找到一段话,为什么还不等于有证据
论文助手检索到一个相关片段,片段说“显著改善”,但完整段落限定于某个亚组,表格还显示主要终点不显著。只把命中片段交给模型会制造错误结论。
本节追问:检索、读取、核验和引用之间缺一不可的关系是什么? 先不要急着看结论。沿着下面四步,逐项区分输入、决策、证据和失败信号。
| 阶段 | 本步要做的决定 | 什么算证据 | 最常见的失败 |
|---|---|---|---|
| 检索定位 | 用查询找到候选页和段落 | 命中结果仅作为阅读入口 | 把相似度高当成结论正确 |
| 读取原文 | 读取完整段落、表格和必要上下文 | 模型实际看到支持与限制条件 | 只读搜索摘要或切碎片段 |
| 形成判断 | 区分主要终点、亚组和作者解释 | 每个判断有明确证据边界 | 把亚组结果推广到全部人群 |
| 验证引用 | 检查页码、原句与结论是否对应 | 引用可回到原文复核 | 先写页码再猜原文 |
阅读方式:先遮住后两列自己回答,再用“证据”和“失败”两列检查理解。
常见误解
RAG 命中后直接让模型总结
实际上
可观察症状:相关片段缺少否定、范围和表格上下文。
更可靠的修复:实行“搜索只定位—完整读取才取证—断言紧跟引用”的证据协议。
案例工作坊 · 建议真正动手完成
25 分钟- 为论文问答写出检索与读取的不同完成条件。
- 列举三种片段脱离上下文会改变含义的情况。
- 设计一句“文档无法回答”时的边界表达。
查看参考答案
RAG 提高找到材料的概率,不自动保证证据充分。检索是定位,读取才获得证据,核验确保判断与原文一致,引用提供复查路径。
迁移检查:换一个场景还会不会
向量检索返回相似度 0.92 的片段,下一步最稳妥的是?
检查一下
用 Function(函数调用)而不是 Extension,对安全最直接的好处是什么?
为什么向量搜索比关键词搜索更适合 RAG?