ReAct + Tool Calling 是什么?
先把名字拆开:
- ReAct = Reasoning + Acting(推理 + 行动)
- Tool Calling = 让大模型 “调用外部工具”(查天气、搜资料、查数据库、调用 API 等)
合在一起:ReAct + Tool Calling 是一种 AI 智能体(Agent)的工作方式,让大模型能一边思考、一边决定要不要调用工具、拿到结果再继续思考,直到给出答案。
ReAct 本质
它的核心是:思考→行动→观察循环。
ReAct 是一种 prompt / 架构范式,来自论文《REACT: Synergizing Reasoning and Acting in Language Models》。
它把过程拆成三步循环:
- Thought(思考) :我现在缺什么信息?要不要用工具?
- Action(行动) :决定调用哪个工具、参数是什么
- Observation(观察) :拿到工具返回结果,再回到 Thought
例子:
- 用户:“北京今天多少度?”
- Thought:我没有实时天气,需要调用查天气工具
- Action:调用 get_weather (city="北京")
- Observation:28℃,晴
- 再 Thought:信息够了,可以回答
- 最终:北京今天 28℃,晴
也就是说,ReAct用 “自然语言模板” 即可实现工具调用,适用所有模型。当然也可以结合原生 Tool Calling 使用。
Tool Calling 本质
它的核心是:模型输出结构化调用指令。
大模型本来只能输出自然语言,Tool Calling(函数调用 / Function Calling) 让它能输出固定格式的工具调用请求(通常是 JSON),由程序去真正执行工具,再把结果发回模型。
流程:
- 你把 可用工具列表(名字、描述、参数)发给模型
- 模型判断需要工具 → 输出结构化调用(如:
{"name":"get_weather","parameters":{"city":"北京"}}) - 程序解析这个 JSON → 调用真实 API / 函数
- 把结果塞回模型上下文
- 模型结合结果生成最终答案
Tool Calling 是用 “原生 JSON 接口” 实现工具调用。