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

相关推荐
九卷1 小时前
企业级Agent系统整体技术架构介绍
ai·架构·大模型·llm·agent·智能体
Csvn2 小时前
提示词即代码:有版本、能评审、可回滚(R01)
人工智能·aigc·agent
浮生望3 小时前
Agentic RAG(下):ES + Milvus 多路召回,再用 Rerank 去噪
llm·agent
杨杨杨大侠3 小时前
从一次请求讲透 A2A:Agent 怎么选、怎么协作、记忆放在哪里
人工智能·agent
后端小肥肠4 小时前
做公众号漫画还在纯手搓?这套工具从选题到复刻任意热门漫画一键搞定
人工智能·aigc·agent
俊哥V4 小时前
每日 AI 研究简报 · 2026-10-12
人工智能·ai
阿里云云原生4 小时前
让 Agent 学会判断:从 JEV 接入到完整 Harness 决策流程
agent
阿里云云原生5 小时前
阿里云 AgentCore 产品负责人解读产品全景
云原生·agent
10年前端老司机6 小时前
我用 Vue3 + LangGraph 做了个心理咨询 AI,踩了 9 个坑后总结出来的实战经验
前端·langchain·agent
空堂与归6 小时前
REA登顶GitHub:AI如何逆向一切软件
ai·大模型·agent