从 RAG 到 Agent:让大模型“会用工具”

大语言模型本身像一个”博学但闭门”的人:它读过很多东西,但知识停留在训练那一刻,也无法主动查资料、算数或执行操作。要让它真正”做事”,需要给它接上外部世界。这条路通常从 RAG 开始,走向 Agent。

RAG:给模型补上”时效”和”依据”

模型有两个常见毛病:一是知识过期,训练之后发生的事它不知道;二是”幻觉”,对不确定的内容也会一本正经地编。检索增强生成(RAG, Retrieval-Augmented Generation)针对的就是这两点。

它的基本流程很直观:

  1. 把你的文档切成小块,转成向量,存进向量库(建立索引,离线完成)。
  2. 用户提问时,把问题也转成向量,到库里检索出最相关的几段。
  3. 把这几段原文连同问题一起塞进提示词,让模型”看着材料回答”。

这样模型回答时有了实时、可追溯的依据,既能覆盖新知识,也能在答案里标注出处,明显降低幻觉。RAG 的效果好坏,很大程度上取决于检索质量——这也是为什么向量检索本身值得单独研究。

工具调用:让模型”动手”

光会查还不够,很多任务需要执行动作:算一笔账、查实时天气、调用公司内部 API。现代模型支持”工具调用”(function calling):开发者把可用的函数以结构化的方式描述给模型,模型在需要时不直接作答,而是输出一个调用请求。

比如模型可能返回这样一段结构化结果:

{
  "tool": "get_weather",
  "arguments": { "city": "上海", "date": "2026-06-18" }
}

你的程序接到它,真正去调用天气接口,把结果再喂回模型,模型据此组织最终回答。关键在于:模型负责”决定调用什么、传什么参数”,真正的执行由你的代码完成。这层分工既安全又灵活。

从单步到多步:Agent 的雏形

把”思考—调用工具—观察结果—再思考”这个循环串起来,模型就具备了多步解决问题的能力。一个经典范式是 ReAct(Reasoning + Acting):模型交替地”推理一下”和”采取一个行动”,根据每一步的观察结果决定下一步,直到任务完成。

在这个基础上加入记忆(记住之前做过什么)、规划(先拆解任务再逐步执行)和多个工具,就构成了我们常说的 Agent。它能完成像”查资料、整理成表格、再发一封邮件”这样跨多个步骤的任务。

别神化 Agent

Agent 很强,但也有现实的局限。步骤越多,错误越容易累积——某一步走偏,后面可能全盘皆错。它对工具的稳定性、提示词的设计、以及”何时停止”的判断都很敏感。因此在工程实践中,往往需要给 Agent 加上约束:限制最大步数、对关键操作做人工确认、把复杂流程拆成可验证的小段。

小结

RAG 让模型”看得到最新、答得有依据”,工具调用让它”做得了事”,多步循环则把这些能力组织成自主完成任务的 Agent。理解这条从”能说”到”能做”的演进路径,是搭建实用 AI 应用的基础。

← 返回首页