当前位置: 首页 > news >正文

AI Agents系列之AI代理架构体系

1. 引言

智能体架构是定义智能体组件如何组织和交互的蓝图,使智能体能够感知其环境、推理并采取行动。本质上,它就像是智能体的数字大脑——集成了“眼睛”(传感器)、“大脑”(决策逻辑)和“手”(执行器),用于处理信息并采取行动。

选择正确的架构对于构建有效的智能体至关重要。架构决定了智能体在响应速度、处理复杂性、学习适应性和资源需求方面的性能。例如,一个简单的反射式智能体可能在实时反应方面表现出色,但在长期规划方面会失败,而一个决策式智能体可能能够处理复杂的目标,但计算成本更高。了解这些权衡可以让工程师将架构与应用领域相匹配,以实现最佳性能和可靠性。
在这里插入图片描述

2. 智能体架构

智能体架构大致可以分为以下几类:

  1. 反应式
  2. 决策式
  3. 混合式
  4. 神经符号式
  5. 认知式

架构图

作者提供的图像

2.1 反应式架构

最简单的智能体设计模式被称为 ReAct。在这种方法中,一个**大型语言模型(LLM)**首先分析情况并确定下一步要采取的行动。然后在环境中执行该行动,生成一个作为反馈的观察结果。LLM 处理这个观察结果,重新评估下一步动作,选择另一个行动,并继续这个循环,直到它认为任务完成为止。

反应式架构

反应式智能体架构的概念图,传感器输入直接触发条件-动作规则,产生即时响应,没有内部状态或规划。

2.1.1 用例

  1. 反应式架构非常适合需要瞬间决策且具有可预测、明确定义响应的领域。经典例子包括机器人技术和游戏:一个机器人吸尘器或无人机在传感器检测到障碍物时会立即避开,或者视频游戏中的非玩家角色对玩家动作有脚本化的即时反应(例如,当玩家进入视线时,敌方警卫会发动攻击)。
  2. 在工业环境中,简单的监控智能体可能会在传感器超出范围时触发警报或关闭设备。这些智能体在实时控制系统中表现出色,但由于它们缺乏全局规划,因此用于相对简单或严格受限的任务,其中所有情况的规则都可以预先定义。

反应式设计模式可以很容易地用纯代码构建,而无需使用框架来处理简单任务。

首先,我们需要一个大型语言模型作为智能体的大脑:

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
http://www.xdnf.cn/news/18451.html

相关文章:

  • 解决splice改变原数组的BUG(拷贝数据)
  • threadLocal的内存泄漏及解决方法
  • python 对接支付宝账单流程及问题处理
  • 写论文时降AIGC和降重的一些注意事项
  • Linux系统之----冯诺依曼结构
  • 基础编程题目集 6-1 简单输出整数
  • CUDAfy的使用
  • 【工具】gtest
  • 2025年大一训练-DP1
  • 【Qt】初识Qt(二)
  • 多模态大语言模型arxiv论文略读(二十七)
  • python——字符串使用
  • linux 学习 4.1 目录查询的相关命令(不涉及修改的命令)
  • 电脑里的AI帮手:Open Interpreter智能助手食用指南
  • rocketMQ 常见问题记录
  • 010数论——算法备赛
  • 1panel第三方应用商店(本地商店)配置和使用
  • 实时直播弹幕系统设计
  • 面试算法高频08-动态规划-02
  • pgsql中使用jsonb的mybatis-plus和jps的配置
  • 初识Redis · 客户端“Hello world“
  • 研0大模型学习(第四、五天)
  • java输出HelloWorld
  • 微服务调用中的“大对象陷阱”:CPU飙高问题解析与优化
  • 华为openEuler操作系统全解析:起源、特性与生态对比
  • 大模型微服务架构模块实现方案
  • CAPL编程系列_02
  • windows dns远程添加A记录
  • Android 证书 是什么
  • Redis ③-Linux下载Redis