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 串联流程图 + 一道综合面试题答案"

相关推荐
随读手机21 小时前
多式联运信息交互平台完整方案(2026版)
java·ai·eclipse·云计算·区块链
小贺儿开发21 小时前
《唐朝诡事录之长安》——盛世马球
人工智能·unity·ai·shader·绘画·影视·互动
Agentic AI人工智能与大数据1 天前
数据产品运营指南:如何提升用户活跃度?这4个策略让数据产品不再“沉睡”
大数据·ai·产品运营
Nukepayload21 天前
用拉康的风格理解 AI 智能体 ~从直觉到代码的原型炼成术·番外篇~
ai·提示词工程
测试_AI_一辰1 天前
AI 产品输出格式测试实战:为什么模型返回的 JSON 前端解析总报错
人工智能·ai·自动化·状态模式·ai编程
AIFQuant1 天前
2026 全球股票/外汇/贵金属行情 API 深度对比:延迟、覆盖、价格与稳定性
python·websocket·ai·金融·mcp
hixiong1231 天前
C# TensorRT部署RF-DETR目标检测&分割模型
人工智能·目标检测·计算机视觉·ai·c#
阿里云云原生1 天前
Agent 构建变轻、Agent 架构变薄,什么正在变厚?
agent
码途漫谈1 天前
Easy-Vibe高级开发篇阅读笔记(五)——CC教程之Agent Teams
人工智能·笔记·ai·开源·ai编程
Java后端的Ai之路1 天前
以为AI开发就是调接口?一场25K的面试让我看到真相,原来真正的技术深度在这!
人工智能·面试·职场和发展·agent·ai应用开发