AI应用开发必会:ReAct + Tool Calling

0 阅读2分钟

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》。

它把过程拆成三步循环:

  1. Thought(思考) :我现在缺什么信息?要不要用工具?
  2. Action(行动) :决定调用哪个工具、参数是什么
  3. Observation(观察) :拿到工具返回结果,再回到 Thought

image.png

例子:

  • 用户:“北京今天多少度?”
  • Thought:我没有实时天气,需要调用查天气工具
  • Action:调用 get_weather (city="北京")
  • Observation:28℃,晴
  • 再 Thought:信息够了,可以回答
  • 最终:北京今天 28℃,晴

也就是说,ReAct用 “自然语言模板” 即可实现工具调用,适用所有模型。当然也可以结合原生 Tool Calling 使用。

Tool Calling 本质

它的核心是:模型输出结构化调用指令。

大模型本来只能输出自然语言,Tool Calling(函数调用 / Function Calling) 让它能输出固定格式的工具调用请求(通常是 JSON),由程序去真正执行工具,再把结果发回模型。

流程:

  1. 你把 可用工具列表(名字、描述、参数)发给模型
  2. 模型判断需要工具 → 输出结构化调用(如:{"name":"get_weather","parameters":{"city":"北京"}}
  3. 程序解析这个 JSON → 调用真实 API / 函数
  4. 把结果塞回模型上下文
  5. 模型结合结果生成最终答案

Tool Calling 是用 “原生 JSON 接口” 实现工具调用。