智能体课程文档

通过“思想-行动-观察”循环理解AI Agent

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

通过“思想-行动-观察”循环理解AI Agent

Unit 1 planning

在之前的章节中,我们学习了

  • 如何通过系统提示将工具提供给Agent.
  • AI Agent是如何能够“推理”、规划并与环境互动的系统.

在本节中,**我们将探讨完整的AI Agent工作流**,这是一个我们定义为“思想-行动-观察”的循环。

然后,我们将深入探讨这些步骤中的每一步。

核心组成部分

Agent的工作是一个持续的循环:**思考(Thought)→行动(Act)→观察(Observe)**。

让我们一起分解这些行动

  1. **思想**:Agent的LLM部分决定下一步应该是什么。
  2. **行动**:Agent通过调用工具并附带相关参数来执行行动。
  3. **观察**:模型反思工具的响应。

“思想-行动-观察”循环

这三个组件在一个连续的循环中协同工作。用编程的类比来说,Agent使用了一个**while循环**:循环持续进行,直到Agent的目标实现为止。

视觉上,它看起来是这样的

Think, Act, Observe cycle

在许多Agent框架中,**规则和准则直接嵌入到系统提示中**,确保每个循环都遵循定义的逻辑。

在一个简化版本中,我们的系统提示可能如下所示

Think, Act, Observe cycle

我们在此处看到在系统消息中定义了

  • *Agent的行为*。
  • *我们的Agent可以访问的工具*,正如我们在上一节中所述。
  • *“思想-行动-观察”循环*,我们将其融入LLM指令中。

让我们举一个小例子来理解这个过程,然后再深入探讨过程中的每个步骤。

天气Agent阿尔弗雷德

我们创建了天气Agent阿尔弗雷德。

用户问阿尔弗雷德:“纽约现在天气怎么样?”

Alfred Agent

阿尔弗雷德的工作是使用天气API工具回答这个查询。

循环展开如下

思考

内部推理

收到查询后,阿尔弗雷德的内部对话可能是

“用户需要纽约的当前天气信息。我有一个可以获取天气数据的工具。首先,我需要调用天气API来获取最新详细信息。”

这一步显示Agent将问题分解为多个步骤:首先,收集必要的数据。

Alfred Agent

行动

工具使用

根据其推理以及阿尔弗雷德对`get_weather`工具的了解,阿尔弗雷德准备了一个JSON格式的命令,用于调用天气API工具。例如,它的第一个行动可能是

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

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

此处,行动明确指定了要调用的工具(例如,get_weather)以及要传递的参数(“location”:“New York”)。

Alfred Agent

观察

环境反馈

工具调用后,阿尔弗雷德收到一个观察结果。这可能是来自API的原始天气数据,例如

“纽约当前天气:局部多云,15°C,湿度60%。”

Alfred Agent

然后将此观察结果作为附加上下文添加到提示中。它起着现实世界反馈的作用,确认行动是否成功并提供所需的详细信息。

更新的思考

反思

得到观察结果后,阿尔弗雷德更新其内部推理

“既然我已经有了纽约的天气数据,我就可以为用户编写答案了。”

Alfred Agent

最终行动

阿尔弗雷德然后生成一个按照我们指示格式化的最终响应

思考:我现在有了天气数据。纽约目前天气局部多云,气温15°C,湿度60%。

最终答案:纽约目前天气局部多云,气温15°C,湿度60%。

这个最终行动将答案发送回用户,从而闭合了循环。

Alfred Agent

我们在此示例中看到的内容

  • Agent通过循环迭代,直到目标实现。

**阿尔弗雷德的过程是周期性的**。它从一个思想开始,然后通过调用工具进行行动,最后观察结果。如果观察结果表明有错误或数据不完整,阿尔弗雷德可以重新进入循环以修正其方法。

  • 工具集成

调用工具(如天气API)的能力使阿尔弗雷德能够**超越静态知识并检索实时数据**,这是许多AI Agent的一个重要方面。

  • 动态适应

每个循环都允许Agent将新信息(观察结果)融入其推理(思想)中,确保最终答案信息充分且准确。

这个例子展示了**ReAct循环**(我们将在下一节中阐述的概念)背后的核心概念:**思想、行动和观察的相互作用使AI Agent能够迭代地解决复杂任务**。

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


现在让我们更深入地探讨思想、行动、观察作为过程的各个步骤。

< > 在 GitHub 上更新