核心要点

  • ReAct 是推理和行动交替的 Agent 范式:模型不是一次性回答,而是想一步、调工具、看结果、再继续。

  • Observation 是事实锚点:工具返回结果会纠正模型推理,降低纯 CoT 容易脑补事实的问题。

  • 它不同于 Function Calling:Function Calling 是调用格式,ReAct 是多步推理与行动流程。

  • 工程上要控制轮次和失败回退:否则 Agent 容易无限试错、成本变高或暴露不该展示的中间过程。

简要回答

ReAct 让 LLM 交替输出推理与工具调用,每步把 Observation 反馈给模型,形成「想一步、做一步、看结果、再想」的闭环。

标准回答

一、先用一句话解释 ReAct

ReAct 是 Reasoning + Acting:模型先推理下一步该做什么,再调用工具,拿到 Observation 后继续推理。它解决的是纯 CoT 容易“脑补事实”、纯工具调用又缺少规划的问题。候选人可以把它说成“想一步、做一步、看结果、再决定下一步”。

二、讲清循环过程

典型流程是 Thought → Action → Observation。例如用户问一个需要查资料的问题,模型先判断需要搜索;Action 调用搜索工具;Observation 返回网页摘要;模型再判断是否需要继续查、改写查询或生成答案。这个过程让外部事实进入推理链,模型不是凭记忆硬答。

三、补上工程取舍

ReAct 的优点是可解释、可纠错、适合多步工具任务;缺点是轮次多、延迟高、成本高,还可能暴露不该展示的中间推理。生产环境通常会加 最大步数、工具白名单、失败回退、日志追踪和结果校验。如果任务很简单,直接 Function Calling 或一次性回答可能更合适。

常见误区

⚠️ 常见踩坑

误区一:把 ReAct 等同于 Function Calling。Function Calling 是 API 能力,ReAct 是组织推理和工具调用的流程。

误区二:认为 Thought 必须完整暴露给用户。生产环境常会隐藏、压缩或结构化中间过程,只保留必要的可审计日志

追问

追问 1ReAct 和 Function Calling 是一回事吗?

题库专题:Agent Skill 是什么?它与 MCP、Function Calling 有何区别?

不是。Function Calling 是 API 层的结构化工具调用能力,重点是让模型用固定 JSON 格式表达“我要调用哪个工具、传什么参数”。ReAct 是一种 Agent 推理流程,重点是让模型在多步任务里交替进行推理、行动和观察。它可以用 Function Calling 来实现 Action,也可以用其他工具调用机制实现。面试里可以这样收束:Function Calling 是工具调用接口,ReAct 是组织多步工具调用和推理的工作流

题库延伸:与本追问相关的专题题 → Agent Skill 是什么?它与 MCP、Function Calling 有何区别?

追问 2工具返回错误时 Agent 应如何处理?

题库专题:Agent 调用工具失败时应如何设计重试与回退?

工具错误不能直接吞掉,也不能无限重试。更稳的做法是把错误作为 Observation 返回给模型,让它判断是参数错、权限不足、网络失败还是工具不适合;然后按策略选择重试、换工具、降级回答或向用户澄清。工程上要设置 超时、最大重试次数和错误分类日志,否则 Agent 很容易卡在同一个失败动作里。

题库延伸:与本追问相关的专题题 → Agent 调用工具失败时,应该如何重试、降级和恢复?

追问 3Thought 过长有什么影响?

Thought 过长会带来三个问题:第一是 token 成本和延迟上升;第二是中间过程里可能包含敏感信息或不稳定猜测,不适合直接给用户;第三是长链路更容易累积错误。生产里可以只保留结构化日志,例如当前目标、已调用工具、失败原因和下一步动作,而不是展示完整思维链。

🔗 相似问题

同一考点的不同问法,换着练更稳

延伸学习

按主题分类的相关资源,便于系统复习