RAG + Function Calling + ReAct 详细讲解
RAG Function Calling ReAct 详细讲解Agent 岗位最核心三大件面试必问我给你讲得透彻又好记一、三大核心分别是什么1. RAG检索增强生成Retrieval Augmented Generation是什么让大模型先去外部查资料再回答问题而不是只靠模型内部知识。解决什么模型知识过时私有数据文档、数据库无法访问严重幻觉流程文档加载 → 分块 → 向量化 → 存入向量库用户问题向量化 → 检索最相关片段把问题 检索片段一起喂给 LLMLLM 基于资料生成答案特点不训练模型成本低、安全可控事实性强适合知识库问答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 看你告诉模型每个工具函数名功能描述参数名、类型、是否必填示例例如{name:get_weather,description:获取城市天气,parameters:{type:object,properties:{city:{type:string,description:城市名}},required:[city]}}② 把函数描述拼进 Prompt系统提示词模板你可以调用以下工具get_weather(city: str)当需要调用工具时请严格按 JSON 格式输出…③ LLM 判断是否需要调用工具根据用户问题LLM 推理不需要 → 直接回答需要 → 生成工具调用 JSON典型输出{name:get_weather,parameters:{city:北京}}④ 后端解析并执行函数后端识别到 JSON → 调用真实接口 → 获取结果。⑤ 把工具返回结果再喂给 LLMLLM 根据结果生成最终自然语言回答。3. 核心原理总结面试背诵版通过 Prompt 向 LLM 注入函数元信息名称、参数、用途LLM 理解任务后输出结构化调用指令JSON系统解析 JSON 并执行真实函数/API将执行结果返回给 LLM生成最终回答一句话Function Calling 函数描述Prompt 结构化输出 后端执行调度四、三者在 Agent 中的地位ReAct大脑思考与规划Function Calling手脚执行动作RAG记忆与知识库提供依据如果你需要我可以再给你整理一套“RAG Function Calling ReAct 串联流程图 一道综合面试题答案”。