趋近智
基本的智能体循环涉及接收输入和生成行动,但它们通常缺少内部思考的结构化方式,特别是在处理多步骤问题或与外部工具互动时。当行动失败或产生意外结果时,简单的反应式智能体可能难以适应。由 Yao 等人 (2022) 提出的 ReAct 框架,通过在智能体的操作周期内明确地将推理步骤与行动结合,提供了一种更为有效的方法。
ReAct 代表着“推理 + 行动”。其基本原则是为智能体的行动空间增加一个内部推理空间。在每一步,智能体不仅决定下一步做什么(行动);它首先阐明为什么(推理)。这种明确的阐述,常被称为“思考”,具有多重作用:它有助于分解复杂任务,追踪进度,处理异常情况,并根据中间结果动态调整计划。
ReAct 过程迭代进行,通常遵循思考-行动-观察的步骤序列:
此循环持续进行,直到智能体通过其推理过程确定任务完成并生成最终答案或回应。
ReAct 智能体中的迭代流程。观察触发思考,思考指导行动,行动结果成为新的观察。
ReAct 通常通过对提供给 LLM 的提示词进行结构化来实现。提示词指示模型在输出行动命令之前,明确生成与其内部思考过程相对应的文本。一种常见的格式鼓励 LLM 按照以下模板输出回应:
Thought: [智能体的推理过程在此]
Action: [智能体选择的行动,例如,Search[查询] 或 Final Answer: [答案]]
智能体系统随后解析此输出。如果存在 Action,则执行该行动,其输出作为下一个 Observation 附加到提示历史中。更新后的历史随后被反馈给 LLM,用于后续的思考-行动生成。
设想一个智能体,其任务是查找马来西亚首都及其人口。
第一次迭代:
Question: What is the capital of Malaysia and its population?
Think step-by-step. You have access to a Search tool. Use the format:
Thought: [你的推理]
Action: [Search[查询] 或 Final Answer: 答案]
Thought: 问题要求提供两项信息:马来西亚的首都及其人口。我应首先查找马来西亚的首都。我可以使用搜索工具来完成此任务。
Action: Search[马来西亚首都]
第二次迭代:
Search[马来西亚首都]。... [先前的提示历史] ...
Observation: Kuala Lumpur is the capital of Malaysia.
Thought: [你的推理]
Action: [Search[查询] 或 Final Answer: 答案]
Thought: 好的,首都是吉隆坡。现在我需要查找吉隆坡的人口。我应再次使用搜索工具,专门查找吉隆坡的人口。
Action: Search[吉隆坡人口]
第三次迭代:
Search[吉隆坡人口]。... [先前的提示历史] ...
Observation: The population of Kuala Lumpur was estimated to be 1.9 million in 2023.
Thought: [你的推理]
Action: [Search[查询] 或 Final Answer: 答案]
Thought: 我现在已经拥有所需的两项信息:首都(吉隆坡)及其人口(190 万)。我可以制定最终答案了。
Action: Final Answer: 马来西亚的首都为吉隆坡,其人口约为 190 万。
ReAct 框架提供明显的优点:
思考 轨迹为智能体的推理过程提供了清晰的视角,使其更容易调试故障并理解其策略。然而,专家从业者应注意某些考虑事项:
尽管存在这些考虑,ReAct 代表着构建更具能力和更可靠的 LLM 智能体的重要支撑。它强调明确的推理,为处理需要规划、工具使用和适应的问题提供了一种机制。理解和实现 ReAct 是迈向开发复杂智能体系统的一步。下一部分将详细说明实际的实现方法。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造