AI Agents系列之AI代理架构体系
1. 引言
智能体架构是定义智能体组件如何组织和交互的蓝图,使智能体能够感知其环境、推理并采取行动。本质上,它就像是智能体的数字大脑——集成了“眼睛”(传感器)、“大脑”(决策逻辑)和“手”(执行器),用于处理信息并采取行动。
选择正确的架构对于构建有效的智能体至关重要。架构决定了智能体在响应速度、处理复杂性、学习适应性和资源需求方面的性能。例如,一个简单的反射式智能体可能在实时反应方面表现出色,但在长期规划方面会失败,而一个决策式智能体可能能够处理复杂的目标,但计算成本更高。了解这些权衡可以让工程师将架构与应用领域相匹配,以实现最佳性能和可靠性。
2. 智能体架构
智能体架构大致可以分为以下几类:
- 反应式
- 决策式
- 混合式
- 神经符号式
- 认知式
作者提供的图像
2.1 反应式架构
最简单的智能体设计模式被称为 ReAct。在这种方法中,一个**大型语言模型(LLM)**首先分析情况并确定下一步要采取的行动。然后在环境中执行该行动,生成一个作为反馈的观察结果。LLM 处理这个观察结果,重新评估下一步动作,选择另一个行动,并继续这个循环,直到它认为任务完成为止。
反应式智能体架构的概念图,传感器输入直接触发条件-动作规则,产生即时响应,没有内部状态或规划。
2.1.1 用例
- 反应式架构非常适合需要瞬间决策且具有可预测、明确定义响应的领域。经典例子包括机器人技术和游戏:一个机器人吸尘器或无人机在传感器检测到障碍物时会立即避开,或者视频游戏中的非玩家角色对玩家动作有脚本化的即时反应(例如,当玩家进入视线时,敌方警卫会发动攻击)。
- 在工业环境中,简单的监控智能体可能会在传感器超出范围时触发警报或关闭设备。这些智能体在实时控制系统中表现出色,但由于它们缺乏全局规划,因此用于相对简单或严格受限的任务,其中所有情况的规则都可以预先定义。
反应式设计模式可以很容易地用纯代码构建,而无需使用框架来处理简单任务。
首先,我们需要一个大型语言模型作为智能体的大脑:
from dotenv import load_dotenv
from openai import OpenAI_ = load_dotenv()
client = OpenAI()
然后我们可以构建一个简单的智能体类,用于返回我们的消息:
class Agent:def __init__(self, system=""):self.system = systemself.messages = []if self.system:self.messages.append({"role": "system", "content": system})def __call__(self, message):self.messages.append({"role": "user", "content": message})result = self.execute()self.messages.append({"role": "assistant", "content": result})return resultdef execute(self):completion = client.chat.completions.create(model="gpt-4o",temperature=0,messages=self.messages)return completion.choices[0].message.content
然后我们需要一个系统提示,为我们的智能体提供完成任务的指令,使用两个其他工具:一个用于数学计算,另一个用于查找给定犬种的平均体重。
import openai
import re
import httpx
import osprompt = """
你将在一个循环中运行,循环顺序为:思考、行动、暂停、观察。
在循环结束时,你输出一个答案。
使用“思考”来描述你对所提问题的看法。
使用“行动”来运行可用的行动之一,然后返回“暂停”。
“观察”将是运行这些行动的结果。你可用的行动有:计算:
例如:计算:4 * 7 / 3
运行计算并返回数字——使用 Python,因此如有必要,请确保使用浮
点数语法平均犬种体重&#x