RAG + Function Calling + ReAct 详细讲解

RAG + Function Calling + ReAct 详细讲解

(Agent 岗位最核心三大件,面试必问,我给你讲得透彻又好记


一、三大核心分别是什么?

1. RAG:检索增强生成

Retrieval Augmented Generation

是什么

让大模型先去外部查资料,再回答问题,而不是只靠模型内部知识。

解决什么

  • 模型知识过时
  • 私有数据(文档、数据库)无法访问
  • 严重幻觉

流程

  1. 文档加载 → 分块 → 向量化 → 存入向量库
  2. 用户问题向量化 → 检索最相关片段
  3. 把问题 + 检索片段一起喂给 LLM
  4. LLM 基于资料生成答案

特点

  • 不训练模型,成本低、安全可控
  • 事实性强,适合知识库问答

2. Function Calling:函数调用

也叫 Tool Calling、工具调用

是什么

LLM 不再只输出文本,而是输出结构化指令,让系统去执行外部函数/API/工具。

比如:

  • 查天气
  • 查数据库
  • 调计算器
  • 发邮件
  • 执行代码

解决什么

  • LLM 只会"说话"不会"做事"
  • 无法获取实时信息
  • 无法操作外部系统

特点

  • 结构化输出(JSON)
  • 精准调用工具
  • Agent 能完成真实任务

3. ReAct:推理 + 行动

Reasoning + Acting

是什么

一种让 LLM 边思考边行动的范式,把"推理"和"工具调用"交替执行。

格式固定为:

  • Thought:我要做什么
  • Action:调用什么工具
  • Observation:工具返回结果
  • Thought:根据结果继续推理
    ...直到得出答案

解决什么

  • 复杂问题无法分步解决
  • 盲目调用工具
  • 缺乏逻辑规划

特点

  • 可解释性强
  • 适合多步、复杂任务
  • 是 Agent 的灵魂架构

二、三者关系(一句话串起来)

  • RAG 负责"查知识"
  • Function Calling 负责"用工具做事"
  • ReAct 负责"规划怎么查、怎么用"

合在一起 = 一个会思考、会查资料、会用工具的智能 Agent。


三、Function Calling 原理(超详细,面试标准答案)

1. 本质原理

Function Calling 的本质是:
把函数信息放进 Prompt,让 LLM 学会输出结构化调用指令,再由后端解析执行。

不是模型内置魔法 ,完全是提示工程 + 结构化解析


2. 详细工作流程

① 定义函数元信息(给 LLM 看)

你告诉模型每个工具:

  • 函数名
  • 功能描述
  • 参数名、类型、是否必填
  • 示例

例如:

json 复制代码
{
  "name": "get_weather",
  "description": "获取城市天气",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {
        "type": "string",
        "description": "城市名"
      }
    },
    "required": ["city"]
  }
}

② 把函数描述拼进 Prompt

系统提示词模板:

你可以调用以下工具:

  1. get_weather(city: str)
    当需要调用工具时,请严格按 JSON 格式输出...

③ LLM 判断是否需要调用工具

根据用户问题,LLM 推理:

  • 不需要 → 直接回答
  • 需要 → 生成工具调用 JSON

典型输出:

json 复制代码
{
  "name": "get_weather",
  "parameters": {
    "city": "北京"
  }
}

④ 后端解析并执行函数

后端识别到 JSON → 调用真实接口 → 获取结果。

⑤ 把工具返回结果再喂给 LLM

LLM 根据结果生成最终自然语言回答。


3. 核心原理总结(面试背诵版)

  1. 通过 Prompt 向 LLM 注入函数元信息(名称、参数、用途)
  2. LLM 理解任务后,输出结构化调用指令(JSON)
  3. 系统解析 JSON 并执行真实函数/API
  4. 将执行结果返回给 LLM,生成最终回答

一句话:
Function Calling = 函数描述Prompt + 结构化输出 + 后端执行调度


四、三者在 Agent 中的地位

  • ReAct:大脑(思考与规划)
  • Function Calling:手脚(执行动作)
  • RAG:记忆与知识库(提供依据)

如果你需要,我可以再给你整理一套
"RAG + Function Calling + ReAct 串联流程图 + 一道综合面试题答案"

相关推荐
葫芦和十三7 分钟前
图解 MongoDB 22|读写关注:持久性与一致性的档位选择
后端·mongodb·agent
doiito11 分钟前
左脚踩右脚:让 LLM 自进化的 Agent 轨迹训练法——为什么它能补上主流范式的最后一块拼图
ai·系统设计
葫芦和十三7 小时前
图解 MongoDB 21|选举与 failover:Primary 是怎么选出来的
后端·mongodb·agent
带刺的坐椅9 小时前
从 Claude Code 隐私争议,看 SolonCode 的设计选择
ai·llm·agent·claudecode·soloncode·codingplan
lincats14 小时前
Claude Code项目越写越乱?这套清理流程能救你
ai·ai agent·claude code
后端小肥肠14 小时前
小红书虚拟商品怎么做?我先用 Skill 跑通了壁纸品类
人工智能·aigc·agent
Java陈序员14 小时前
企业级!一个基于 Java 开发的开源 AI 应用开发平台!
spring boot·agent·mcp
Chen6667815 小时前
我让一个Agent Team长时间自治运行后,发现问题不在“怎么组队”
agent
Randyliu15 小时前
20260508-Agent搭建记录以及对ReAct框架的理解
面试·agent
小九九的爸爸16 小时前
前端想要入门Agent开发,要具备哪些Python基础?
python·agent·ai编程