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 分钟前
基于AI的新闻推荐系统设计
人工智能·机器学习·ai·系统设计
花千树_01016 分钟前
Java 实现 ReAct Agent:工具调用与推理循环
agent
CoderJia程序员甲30 分钟前
GitHub 热榜项目 - 日榜(2026-04-17)
ai·大模型·llm·github·ai教程
bloglin9999930 分钟前
Ubuntu22.04 离线安装 CUDA12.3 依赖报错解决方案
ai·cuda
一个小浪吴啊30 分钟前
Hermes Agent集成飞书机器人 飞书机器人快速集成Hermes Agent指南
ai·机器人·飞书·ai编程
阿杰学AI1 小时前
AI核心知识125—大语言模型之 混合专家架构(简洁且通俗易懂版)
人工智能·ai·语言模型·智能路由器·aigc·moe·混合专家架构
Cosolar1 小时前
PageIndex技术全解析:基于推理的无向量RAG框架,重构长文档智能检索范式
llm·agent·chatglm (智谱)
Makoto_Kimur2 小时前
Agent 面试速成清单
java·agent
Agent产品评测局2 小时前
酒店行业自动化工具选型,门店运营与客户服务优化:2026精细化运营的技术路径与实测横评
运维·人工智能·ai·chatgpt·自动化
程序员陆业聪2 小时前
Agent时代的工程师危机:当会写代码不再是护城河
agent