通过思考-行动-观测循环理解 AI Agent

本节将讲述完整的 AI Agent 工作流,即思考-行动-观测(Thought-Action-Observation)循环。


1. 核心组件

Agent 工作在持续的循环中:思考(Thought)→行动(Act)和观测(Observe)

下面分解这些操作:

  1. 思考:Agent 的 LLM 部分决定下一步是什么
  1. 行动:Agent 通过使用相关的参数调用工具的方式,执行行动
  1. 观测:模型对工具的响应作出反应

2. 思考-行动-观测循环

这三个组件一起工作在持续的循环中。使用编程进行类比,Agent 使用 while 循环:该循环持续到 Agent 完成其目标。

在视觉上,如下所示:

在许多 Agent 框架中,直接将规则和指导方针嵌到系统提示词中。确保每次循环都遵循既定逻辑。

简化版本的系统提示词如下:

在该系统消息中可以看到:

  1. Agent 的行为
  1. Agent 可以访问的工具
  1. 融入到 LLM 指令的思考-行动-观测循环

下面通过简单的示例进行说明。


3. Alfred,天气 Agent

我们创建 Alfred,天气 Agent。

用户问 Alfred:“纽约的当前天气如何?”。

Alfred 的工作是使用天气 API 工具回答该查询。

下面是展开的循环:


4. 思考

4.1. 内部推理

收到问询后,Alfred 的内部对话可能是:

该步骤展示 Agent 将问题分解成步骤:首先,收集必要的数据。


5. 行动

5.1. 工具使用

基于其推理,以及 Alfred 知晓 get_weather 工具,Alfred 准备 JSON 格式的命令,调用天气 API 工具。比如其第一个动作可以是:

思考:我需要查看纽约的当前天气:

   {
     "action": "get_weather",
     "action_input": {
       "location": "New York"
     }
   }

该行动清晰地指定使用哪个工具,以及传递什么参数。


6. 观测

6.1. 环境的反馈

在工具调用后,Alfred 收到观察结果。这可能是来自 API 的原始天气数据,比如:

然后将该观察结果作为附加上下文添加到提示词中。其功能是作为真实世界的反馈,确认行动是否成功,以及提供所需的细节。


7. 更新思考

7.1. 反应

拿着观察结果,Alfred 更新其内部推理:


8. 最后的行动

然后,Alfred 按照我们告诉它的格式生成最终响应:

思考:我现在已拥有天气数据。纽约现在的天气是局部多云,15 摄氏度,60% 湿度。

最终答案:纽约现在的天气是局部多云,15 摄氏度,60% 湿度。

最后的行动是将答案发送回用户,结束循环。

在本示例中,我们看到:

Alfred 的过程是循环的。它从思考开始,然后通过调用工具执行行动,最后观察结果。如果观察结果表明出现错误或数据不完整,Alfred 可以重新进入循环进行纠正。

调用工具(比如天气 API)的能力使 Alfred 能够超越静态知识,检索实时数据,这是许多 AI Agent 的重要方面。

每次迭代都允许 Agent 将新信息(观察结果)纳入到其推理(思考)的过程中,确保最终答案是经过充分考量且准确的。

该示例展示 ReAct 循环(ReAct cycle)背后的核心概念:思考、行动和观测的相互作用使 AI Agent 能够迭代地解决复杂的任务

通过理解和应用这些原则,可以设计出不仅能够对任务进行推理,还能有效利用外部工具完成任务的 Agent,同时还能基于环境反馈不断完善其输出。