跳转至

P1-14.2 RAG 与工具使用的位置

Section ID: P1-14.2 Version: v2026.07.23

在 P1-14.1 中,我们把 AI 服务看成 模型(model)应用(application)数据(data)工具(tool)编排(orchestration) 的组合。接下来要区分其中两个最容易混淆的部分。

RAG:
找到外部资料,并把它接到模型输入上下文里。

工具使用(tool use):
调用模型之外的系统来查询信息或执行动作。

它们看起来都像是在“使用模型外部的东西”,但角色并不相同。

RAG 是把回答所需资料引入模型上下文的结构,
工具使用则是调用外部系统功能的结构。

这里会把两种结构摆在一起比较,并说明它们分别处在 AI 服务的什么位置。

Part 1 会在这里建立 RAG工具使用(tool use)检索(retrieval)工具调用(tool call)审批(approval) 的基本区分。13.3 已经把 RAG 先介绍成“把检索结果贴到生成输入”的结构,14.1 又把视角放大到完整服务。这一节会把两条脉络接起来,回答:

在一个服务里,RAG 和工具使用到底分别站在什么位置?

先把最容易混在一起的三个词固定下来:

区分 一句话基准 最接近的角色
RAG 找外部文档并贴到模型上下文 阅读与依据补强
工具使用(tool use) 调用外部系统功能来查询或行动 执行与外部连接
agent 为了目标,把 RAG 与工具使用串成多步流程 工作流与状态管理

这张表最重要的点是:RAG工具使用agent 可以互相配合,但它们不是同一个概念。这一节先把 阅读执行 分开,而“把多个步骤持续串起来”的 agent 结构会在紧接着的 P1-14.3 再展开。

这里比较 RAG 与工具使用在服务中的位置。更完整的 agent 结构放到 P1-14.3,MCP 等连接标准放到 P1-14.4,harness、评估、执行日志放到 P1-14.5。

RAG工具使用检索工具调用审批 分别对应不同的阅读、执行与控制步骤。

术语 极简含义 本节中的作用
RAG 找到外部资料并把它贴到输入上下文的结构 连接依据资料的代表方式
工具使用 调用外部系统功能的结构 真正执行查询与动作的路径
检索 找到相关资料或目标的步骤 RAG 的起点
工具调用 用名字和参数执行外部功能的步骤 工具使用的核心动作
审批 在执行前由人或策略确认是否允许 高风险动作的安全装置

这里先把 RAG 是阅读工具使用是执行审批是在行动前做检查 作为基准线。

主题 本节要看的问题
RAG 为什么要把外部资料搜出来并放进输入上下文?
工具使用(tool use) 为什么要调用外部系统?
差异 阅读资料和执行动作究竟哪里不同?
组合 RAG 与工具使用可以一起出现吗?
责任 检索结果与工具执行结果由谁来审查?

RAG 与工具使用在系统中的位置

  • 把 RAG 理解为读取外部资料的结构。
  • 把工具使用(tool use)理解为调用外部系统功能的结构。
  • 区分二者虽然都用了模型外资源,但目的与风险不同。
  • 理解 RAG 与工具使用可以组合使用。
  • 在进入 agent 之前先整理基本构件的角色。

三个基准

这两种结构之所以容易混在一起,是因为它们都“使用模型之外的东西”。阅读正文时,可以先抓住下面三个基准。

基准 为什么重要 本节所需的理解水平
RAG 是找资料并把资料贴进上下文的结构 这能清楚说明“检索 + 生成”到底是什么意思。 只要理解成它会把文档读进回答依据里即可。
工具使用是实际调用外部功能的结构 这能把“参考资料”和“执行动作”区分开。 只要理解成它会调用搜索 API、计算器、数据库、文件工具等即可。
两者能一起用,但角色与风险不同 这为后面的 agent 说明建立边界。 只要理解成阅读与行动不是一回事,审查责任也不同即可。

RAG 会把资料找出来并接到上下文

正如 P1-13.3 所说,RAG 会把 检索(retrieval)生成(generation) 连起来。

用户问题
-> 找相关文档
-> 把检索到的片段放进输入上下文
-> 模型生成回答

RAG 的中心问题是:

模型回答时,应当从哪里取得它要参考的资料?

例如,假设用户问:

在这组文档里,有没有把嵌入解释成“意义本身”?

RAG 可以先在文档集合里找出相关片段。

步骤 作用
问题嵌入 把问题转换成向量
相似度搜索 找出相关文档候选
上下文增强 把检索出的片段加入提示词
回答生成 模型依据资料作答

在这里,RAG 的本质是把外部资料 读进来。它不是在修改文档、发送邮件或触发支付。

工具使用会调用外部系统

工具使用(tool use)允许模型借助外部系统的功能。OpenAI 的 function calling 文档也会说明:模型可以通过这种方式连接到外部数据和系统。

这里可以先这样区分:

模型:
提议要用哪个工具、给什么参数。

应用或服务器:
审核工具调用并真正执行它。

工具:
完成搜索、计算、文件处理、API 调用等工作。

例如,假设用户请求:

查看明天首尔的天气,并把它加到我的日程备注里。

这会混合两类外部动作:

工作 可能方式
查询天气 调用天气 API 工具
写入日程备注 调用日历或备忘录 API 工具
解释结果 由模型生成自然语言说明

工具使用可以读取外部系统状态,也可以改变外部系统状态。因此,它承担的执行责任通常比 RAG 更重。

RAG:
把资料找来并接到输入里。

工具使用:
调用外部系统来查询或行动。

RAG 与工具使用的目的不同

把二者并排放在一起看,差异会更清楚:

区分 RAG 工具使用(tool use)
中心目的 找到回答所需资料 执行外部功能
主要对象 文档、知识库、搜索索引 API、数据库、文件系统、业务系统
与模型输入的关系 检索结果进入提示词上下文 工具结果返回给模型或应用
代表性问题 模型应该参考什么? 系统应该执行什么?
主要风险 资料错误、过期或无关 执行错误、权限问题、外部状态改变

同样是“会议记录”,也可能走向不同结构:

请解释会议记录里的决议事项。
-> 主要是 RAG 或文件检索

请从会议记录里找出决议事项,并登记到日历里。
-> RAG + 工具使用

第一个请求主要是找资料并总结;第二个请求则需要在找到资料之后,进一步对外部系统执行动作。

两者可以组合使用

真实 AI 服务里,RAG 与工具使用往往会同时出现。

例如,想象一个使用组织内部文档的工作助手:

用户:
请按照差旅报销规定处理这张发票。

可能的流程如下:

  1. 用 RAG 检索差旅报销规定。
  2. 模型比较规定与发票内容。
  3. 如果必要字段缺失,就继续追问用户。
  4. 如果符合条件,就调用报销系统 API。
  5. 向用户展示处理结果与依据文档。

在这条流程里,RAG 与工具使用分工不同:

步骤 结构 作用
检索规定 RAG 找到判断依据
解读发票 模型 阅读并整理输入资料
提交报销 工具使用 执行外部业务系统
展示结果 应用 呈现结果与依据

这种组合也可能进一步发展成一个 agent 结构。但这一节不会深入到“多个步骤如何自动串起来”的 agent 解释里去。

工具使用需要权限与审批流

因为工具使用会调用外部系统,所以 权限(permission)审批(approval) 很重要。

如果 RAG 检错文档,主要影响的是回答质量;工具使用出错时,可能直接改变外部系统状态。

情况 风险
发错邮件 错误信息发给真实收件人
错误支付 可能造成资金损失
访问无权限文档 可能泄露隐私或机密信息
错误修改文件 可能破坏工作产出
重复 API 调用 同一动作可能被执行多次

因此,工具使用通常必须同时回答下面这些问题:

这个用户是否有权限调用该工具?
这个工具会改变什么外部状态?
是否需要用户审批后才能执行?
如果执行失败,怎样回滚或记录?
如何审查执行结果?

这也会连到安全(security)、隐私(privacy)、运维(operation)等问题。但更长的伦理、版权与安全讨论会留到 P1-15。

模型提出调用,系统负责执行

讲工具使用时,有一个边界尤其重要:

不是模型自己直接改变外部世界,
而是应用与服务器代码真正执行工具调用。

模型可以生成类似下面的内容:

工具名:
calendar.create_event

参数:
日期、时间、标题、参与人

但真正去调用日历 API 的,仍是应用或服务器代码。它必须做权限检查、参数校验,并在需要时请求用户审批。

这个区分能让责任更清楚:

组成部分 责任
模型(model) 生成工具与参数的候选
应用/服务器(application/server) 检查权限、校验输入、决定是否执行
工具(tool) 查询或操作外部系统
用户(user) 在需要时审批或修改

这个视角对于理解 Codex 这类 agent 风格工具也很重要。即使模型提出了动作建议,真正的文件修改、命令执行、提交与部署,仍然发生在执行环境和权限策略之内。

用一个小例子看位置差异

拿“检查并更新一篇较长的学习文档”来举例:

请求:
核对向量搜索说明的依据,并补强相关段落。

可能的流程如下:

步骤 结构 说明
读取当前文档 工具使用 从文件系统读取当前 section
查找支撑资料 搜索或 RAG 找到相关论文和文档候选
审查依据 模型 + 人 判断资料是否真的支撑当前论断
修改文档 工具使用 对文件打补丁
验证构建 工具使用 运行 MkDocs build
汇报结果 应用或对话 UI 展示修改与验证结果

在这条流程里,RAG 更接近 找到支撑资料并补强回答上下文 的部分;工具使用则是 读文件打补丁构建提交 这种真正触碰外部环境的部分。

检查清单

  • 能把 RAG 解释为检索外部资料并把它贴进输入上下文的结构。
  • 能把工具使用(tool use)解释为调用外部系统功能的结构。
  • 能把两者的差别说明成 阅读资料执行动作 的差别。
  • 能举例说明 RAG 与工具使用可以在同一服务流程里组合出现。
  • 能说明工具使用为什么需要权限(permission)、审批(approval)、校验(validation)、执行日志(log)。
  • 能说明模型可以提出工具调用,但真正执行的是应用或服务器。
  • 能在比较 RAG 与工具使用时,把 阅读资料执行外部功能行动前审批 这三种责任分开。

出处与参考资料