ReAct Prompting
探索 ReAct 提示,构建自主 AI 智能体。了解推理与行动如何和 LLM 及 Ultralytics YOLO26 等视觉工具协同工作。
ReAct(推理与行动)提示是一种先进的提示工程范式,使大型语言模型(LLM)能够动态交替执行逐步推理与特定任务的操作。这项技术发表于 2022 年颇具影响力的学术论文《ReAct:协同语言模型中的推理与行动》,能将静态语言模型转变为交互式AI 智能体。ReAct 框架通过明确生成对问题的思考,并执行操作来检索外部信息,显著提升了复杂人工智能工作流中的事实准确性和决策能力。
推理与行动的机制#
在传统交互中,模型完全依据内部知识生成回答,这往往会导致LLM 幻觉。ReAct 架构通过由思考、行动和观察构成的持续循环,将 AI 置于外部环境中,从而解决这一问题。
遇到查询时,模型首先生成一个“思考”来概述策略。然后,它会触发一项“行动”,例如查询搜索引擎、与数据库交互,或通过称为函数调用的概念调用视觉 API。环境会返回“观察结果”,提供事实数据。模型评估这些新信息、更新推理,并重复这一循环,直到得出最终答案。ReAct 提示工程指南对此方法有更详细的介绍。该方法模拟了人类解决问题的过程,并建立了高度透明、可控的智能体行为。
实际应用#
ReAct 提示擅长处理需要迭代解决问题和多步工具调用的场景,因此是现代智能体 AI 系统的基础。
- 自动化客户支持智能体: 在企业环境中,IT 服务台智能体使用 ReAct 来解决用户问题。如果用户报告网络中断,智能体会推断自己需要检查服务器状态。接着,智能体通过调用诊断 API 执行操作,观察结果,然后根据检索到的事实升级工单或提供故障排除指南,从而简化传统的检索增强生成(RAG)流水线。
- 动态视觉分析:计算机视觉系统借助 ReAct 处理复杂的视觉问答任务。负责库存管理的机器人智能体可能会先观察货架,再推断需要统计特定商品,随后调用目标检测模型执行操作,并使用返回的边界框数据完成计数。这种协同弥合了基于文本的推理与空间理解之间的差距。
使用计算机视觉实现 ReAct#
对于使用 Python的开发者,ReAct 智能体通常会协调感知模型与物理世界交互。以下概念代码展示了 ReAct 推理循环如何无缝调用 Ultralytics YOLO26模型作为外部工具,观察环境并报告结果。
from ultralytics import YOLO
def vision_tool(image_path: str) -> str:
"""Action tool for a ReAct agent to detect objects in an image."""
model = YOLO("yolo26n.pt") # Load highly efficient YOLO26 nano model
results = model(image_path)
# Format the observation for the LLM's reasoning loop
detected_classes = [model.names[int(c)] for c in results[0].boxes.cls]
return f"Observation: Found {len(detected_classes)} objects: {', '.join(detected_classes)}"
# Simulated ReAct agent executing an action
agent_observation = vision_tool("https://ultralytics.com/images/bus.jpg")
print(agent_observation)你可以使用 Ultralytics Platform全面简化这些视觉工具的数据集管理和实验跟踪,该平台为现代 AI 部署提供了完整解决方案。想从头开始构建这些智能体的开发者,也可以研究官方 ReAct 仓库中的基础逻辑。
区分相关概念#
要设计近期学术对齐研究中探讨的稳健多模态架构,必须将 ReAct 与相关工程模式区分开来:
- 与思维链提示的比较: 思维链(CoT)鼓励模型逐步思考,但完全依赖静态的内部知识。ReAct 在推理过程中加入动态“行动”,以获取最新的外部观察结果,从而扩展了 CoT。
- 与提示链的比较: 提示链会硬编码一系列独立的 LLM 调用,并自动将一个步骤的输出传递给下一步。ReAct 则是一种更自主的范式:单个智能体会根据持续获得的观察结果,动态决定使用哪些工具或采取哪些连续行动,而不是遵循固定的链式脚本。
通过将逻辑推演与执行多模态模型等专用外部工具相结合,ReAct 提示能够推动高能力通用 AI 系统的开发。









