1.2 智能体的构成与运行原理1.2.1 任务环境定义要理解智能体的运作我们必须先理解它所处的任务环境。在人工智能领域通常使用PEAS 模型来精确描述一个任务环境即分析其性能度量(Performance)、环境(Environment)、执行器(Actuators)和传感器(Sensors)。以上文提到的智能旅行助手为例下表 1.2 展示了如何运用 PEAS 模型对其任务环境进行规约。在实践中LLM 智能体所处的数字环境展现出若干复杂特性这些特性直接影响着智能体的设计。首先环境通常是部分可观察的。例如旅行助手在查询航班时无法一次性获取所有航空公司的全部实时座位信息。它只能通过调用航班预订 API看到该 API 返回的部分数据这就要求智能体必须具备记忆记住已查询过的航线和探索尝试不同的查询日期的能力。其次行动的结果也并非总是确定的。根据结果的可预测性环境可分为确定性和随机性。旅行助手的任务环境就是典型的随机性环境。当它搜索票价时两次相邻的调用返回的机票价格和余票数量都可能不同这就要求智能体必须具备处理不确定性、监控变化并及时决策的能力。此外环境中还可能存在其他行动者从而形成多智能体(Multi-agent)环境。对于旅行助手而言其他用户的预订行为、其他自动化脚本甚至航司的动态调价系统都是环境中的其他“智能体”。它们的行动例如订走最后一张特价票会直接改变旅行助手所处环境的状态这对智能体的快速响应和策略选择提出了更高要求。最后几乎所有任务都发生在序贯且动态的环境中。“序贯”意味着当前动作会影响未来而“动态”则意味着环境自身可能在智能体决策时发生变化。这就要求智能体的“感知-思考-行动-观察”循环必须能够快速、灵活地适应持续变化的世界。1.2.2 智能体的运行机制在定义了智能体所处的任务环境后我们来探讨其核心的运行机制。智能体并非一次性完成任务而是通过一个持续的循环与环境进行交互这个核心机制被称为智能体循环 (Agent Loop)。如图 1.5 所示该循环描述了智能体与环境之间的动态交互过程构成了其自主行为的基础。这个循环主要包含以下几个相互关联的阶段感知 (Perception)这是循环的起点。智能体通过其传感器例如API 的监听端口、用户输入接口接收来自环境的输入信息。这些信息即观察 (Observation)既可以是用户的初始指令也可以是上一步行动所导致的环境状态变化反馈。思考 (Thought)接收到观察信息后智能体进入其核心决策阶段。对于 LLM 智能体而言这通常是由大语言模型驱动的内部推理过程。如图所示“思考”阶段可进一步细分为两个关键环节规划 (Planning)智能体基于当前的观察和其内部记忆更新对任务和环境的理解并制定或调整一个行动计划。这可能涉及将复杂目标分解为一系列更具体的子任务。工具选择 (Tool Selection)根据当前计划智能体从其可用的工具库中选择最适合执行下一步骤的工具并确定调用该工具所需的具体参数。行动 (Action)决策完成后智能体通过其执行器Actuators执行具体的行动。这通常表现为调用一个选定的工具如代码解释器、搜索引擎 API从而对环境施加影响意图改变环境的状态。行动并非循环的终点。智能体的行动会引起环境 (Environment)的状态变化 (State Change)环境随即会产生一个新的观察 (Observation)作为结果反馈。这个新的观察又会在下一轮循环中被智能体的感知系统捕获形成一个持续的“感知-思考-行动-观察”的闭环。智能体正是通过不断重复这一循环逐步推进任务从初始状态向目标状态演进。1.2.3 智能体的感知与行动在工程实践中为了让 LLM 能够有效驱动这个循环我们需要一套明确的交互协议 (Interaction Protocol)来规范其与环境之间的信息交换。在许多现代智能体框架中这一协议体现在对智能体每一次输出的结构化定义上。智能体的输出不再是单一的自然语言回复而是一段遵循特定格式的文本其中明确地展示了其内部的推理过程与最终决策。这个结构通常包含两个核心部分Thought (思考)这是智能体内部决策的“快照”。它以自然语言形式阐述了智能体如何分析当前情境、回顾上一步的观察结果、进行自我反思与问题分解并最终规划出下一步的具体行动。Action (行动)这是智能体基于思考后决定对环境施加的具体操作通常以函数调用的形式表示。例如一个正在规划旅行的智能体可能会生成如下格式化的输出Thought: 用户想知道北京的天气。我需要调用天气查询工具。 Action: get_weather(北京)Copy to clipboardErrorCopied这里的Action字段构成了对外部世界的指令。一个外部的解析器 (Parser)会捕捉到这个指令并调用相应的get_weather函数。行动执行后环境会返回一个结果。例如get_weather函数可能返回一个包含详细天气数据的 JSON 对象。然而原始的机器可读数据如 JSON通常包含 LLM 无需关注的冗余信息且格式不符合其自然语言处理的习惯。因此感知系统的一个重要职责就是扮演传感器的角色将这个原始输出处理并封装成一段简洁、清晰的自然语言文本即观察。Observation: 北京当前天气为晴气温25摄氏度微风。Copy to clipboardErrorCopied这段Observation文本会被反馈给智能体作为下一轮循环的主要输入信息供其进行新一轮的Thought和Action。综上所述通过这个由 Thought、Action、Observation 构成的严谨循环LLM 智能体得以将内部的语言推理能力与外部环境的真实信息和工具操作能力有效地结合起来。
Hello-Agents阅读笔记--基础篇--智能体的构成和运行原理
1.2 智能体的构成与运行原理1.2.1 任务环境定义要理解智能体的运作我们必须先理解它所处的任务环境。在人工智能领域通常使用PEAS 模型来精确描述一个任务环境即分析其性能度量(Performance)、环境(Environment)、执行器(Actuators)和传感器(Sensors)。以上文提到的智能旅行助手为例下表 1.2 展示了如何运用 PEAS 模型对其任务环境进行规约。在实践中LLM 智能体所处的数字环境展现出若干复杂特性这些特性直接影响着智能体的设计。首先环境通常是部分可观察的。例如旅行助手在查询航班时无法一次性获取所有航空公司的全部实时座位信息。它只能通过调用航班预订 API看到该 API 返回的部分数据这就要求智能体必须具备记忆记住已查询过的航线和探索尝试不同的查询日期的能力。其次行动的结果也并非总是确定的。根据结果的可预测性环境可分为确定性和随机性。旅行助手的任务环境就是典型的随机性环境。当它搜索票价时两次相邻的调用返回的机票价格和余票数量都可能不同这就要求智能体必须具备处理不确定性、监控变化并及时决策的能力。此外环境中还可能存在其他行动者从而形成多智能体(Multi-agent)环境。对于旅行助手而言其他用户的预订行为、其他自动化脚本甚至航司的动态调价系统都是环境中的其他“智能体”。它们的行动例如订走最后一张特价票会直接改变旅行助手所处环境的状态这对智能体的快速响应和策略选择提出了更高要求。最后几乎所有任务都发生在序贯且动态的环境中。“序贯”意味着当前动作会影响未来而“动态”则意味着环境自身可能在智能体决策时发生变化。这就要求智能体的“感知-思考-行动-观察”循环必须能够快速、灵活地适应持续变化的世界。1.2.2 智能体的运行机制在定义了智能体所处的任务环境后我们来探讨其核心的运行机制。智能体并非一次性完成任务而是通过一个持续的循环与环境进行交互这个核心机制被称为智能体循环 (Agent Loop)。如图 1.5 所示该循环描述了智能体与环境之间的动态交互过程构成了其自主行为的基础。这个循环主要包含以下几个相互关联的阶段感知 (Perception)这是循环的起点。智能体通过其传感器例如API 的监听端口、用户输入接口接收来自环境的输入信息。这些信息即观察 (Observation)既可以是用户的初始指令也可以是上一步行动所导致的环境状态变化反馈。思考 (Thought)接收到观察信息后智能体进入其核心决策阶段。对于 LLM 智能体而言这通常是由大语言模型驱动的内部推理过程。如图所示“思考”阶段可进一步细分为两个关键环节规划 (Planning)智能体基于当前的观察和其内部记忆更新对任务和环境的理解并制定或调整一个行动计划。这可能涉及将复杂目标分解为一系列更具体的子任务。工具选择 (Tool Selection)根据当前计划智能体从其可用的工具库中选择最适合执行下一步骤的工具并确定调用该工具所需的具体参数。行动 (Action)决策完成后智能体通过其执行器Actuators执行具体的行动。这通常表现为调用一个选定的工具如代码解释器、搜索引擎 API从而对环境施加影响意图改变环境的状态。行动并非循环的终点。智能体的行动会引起环境 (Environment)的状态变化 (State Change)环境随即会产生一个新的观察 (Observation)作为结果反馈。这个新的观察又会在下一轮循环中被智能体的感知系统捕获形成一个持续的“感知-思考-行动-观察”的闭环。智能体正是通过不断重复这一循环逐步推进任务从初始状态向目标状态演进。1.2.3 智能体的感知与行动在工程实践中为了让 LLM 能够有效驱动这个循环我们需要一套明确的交互协议 (Interaction Protocol)来规范其与环境之间的信息交换。在许多现代智能体框架中这一协议体现在对智能体每一次输出的结构化定义上。智能体的输出不再是单一的自然语言回复而是一段遵循特定格式的文本其中明确地展示了其内部的推理过程与最终决策。这个结构通常包含两个核心部分Thought (思考)这是智能体内部决策的“快照”。它以自然语言形式阐述了智能体如何分析当前情境、回顾上一步的观察结果、进行自我反思与问题分解并最终规划出下一步的具体行动。Action (行动)这是智能体基于思考后决定对环境施加的具体操作通常以函数调用的形式表示。例如一个正在规划旅行的智能体可能会生成如下格式化的输出Thought: 用户想知道北京的天气。我需要调用天气查询工具。 Action: get_weather(北京)Copy to clipboardErrorCopied这里的Action字段构成了对外部世界的指令。一个外部的解析器 (Parser)会捕捉到这个指令并调用相应的get_weather函数。行动执行后环境会返回一个结果。例如get_weather函数可能返回一个包含详细天气数据的 JSON 对象。然而原始的机器可读数据如 JSON通常包含 LLM 无需关注的冗余信息且格式不符合其自然语言处理的习惯。因此感知系统的一个重要职责就是扮演传感器的角色将这个原始输出处理并封装成一段简洁、清晰的自然语言文本即观察。Observation: 北京当前天气为晴气温25摄氏度微风。Copy to clipboardErrorCopied这段Observation文本会被反馈给智能体作为下一轮循环的主要输入信息供其进行新一轮的Thought和Action。综上所述通过这个由 Thought、Action、Observation 构成的严谨循环LLM 智能体得以将内部的语言推理能力与外部环境的真实信息和工具操作能力有效地结合起来。