【大模型专栏—基础篇】智能体入门

在这里插入图片描述

😊你好,我是小航,一个正在变秃、变强的文艺倾年。
🔔本文讲解智能体入门,期待与你一同探索、学习、进步,一起卷起来叭!
🔔文章同步存在格式问题,还请见谅!

目录

  • 一、智能体架构
  • 二、单智能体与多智能体
  • 三、智能体关系
  • 四、算法分类

一、智能体架构

核心组件包括有:

  1. 用户交互界面:捕捉用户的询问或指令。
  2. 核心智能体引擎:作为系统的指挥中枢,协调各功能模块。
  3. 策略规划模块:为智能体规划后续行动路径。
  4. 记忆系统:维护智能体的长期知识库与短期情境记忆。
  5. 工具集成层:使智能体能与外界工具和服务互动,执行具体操作。

下面举个例子,便于大家快速理解:

假设有人类任务:

用户:明天上午要去 A 地出差,下午与 X 开会,帮我订好机票、酒店和会议日程。

转化为智能体任务则是:

1. 规划:通过调用大模型的能力将任务分解,先分为出差行程安排和会议预约两个子任务。
    1.1 出差行程安排继续分解为:
       1.1.1 从用户所在地到所在城市机场:
          a. 其中用户所在地通过感知环境信息获得(可以通过用户初始设置或过往历史存放在记忆组件里面)
          b. 决定出行时间
          c. 决定出行方式:如乘坐出租车,预约
       1.1.2 从用户所在城市机场到A地机场:
          a. 决定出行时间
          b. 决定出行方式,预约
       1.1.3 从A地机场到A地某酒店:
          a. 预订A地某酒店
             1. 决定入住时间
          b. 决定从A地机场到达酒店方式:如乘坐出租车,预约
    1.2 会议预约继续分解为:
       1.2.1 查看用户和X的日程,找到二者都空闲的时间段
       1.2.2 确定会议时间,预约会议
2. 记忆:
    2.1 用户所在地应存放在长期记忆中。
    2.2 根据规划的分解,后面的步骤会依赖前面步骤的结果,那么需要把前面步骤的执行结果存放在短期记忆中。
3. 工具使用:
    3.1 通过调用网约车平台接口预约出租车(需要用户授权,授权信息也可以存储在长期记忆中)
    3.2 通过调用航班信息查询接口获取航班信息,调用航班预订接口订机票(需要用户授权,授权信息也可以存储在长期记忆中)
    3.3 通过调用OTA平台接口完成酒店预订(需要用户授权,授权信息也可以存储在长期记忆中)
    3.4 通过调用支付接口完成支付(需要用户授权,授权信息也可以存储在长期记忆中)
    3.5 通过调用日历接口完成日程查询和会议预订

再举一个复杂点的例子,如某作战系统智能体总体架构:

进一步细看Agent框架:

进一步将智能体具体为任务规划智能体:

作战任务规划Agent通过智能传感器网络获取多模态感知信息,在内部规划系统中根据给定的作战目标分解复杂任务,制定具体作战计划,基于作战决策给集群作战单元下达作战指令。

应用举例:

条件:战场地形复杂、天气多变,我方作战任务是夺取敌方城市中心的指挥中心,同时保护我方关键基础设施,并最小化行动对平民及城市设施的影响。我方装备了最新的人工智能驱动的作战系统,包括无人作战飞机、精确制导武器以及高度自动化的指挥和控制系统。敌方拥有一定数量的传统武装力量,包括步兵、坦克、火炮等,主要依赖传统战术执行防御任务。

作战过程包括五个阶段。

(1)在初始阶段,侦察Agent部署装备有光学、红外、雷达等多种传感器的无人机进行全天候侦察,通过数据融合技术实现对敌方部署的实时监控。情报分析Agent利用深度学习算法分析收集到的大量数据,快速识别敌方布防漏洞,自动生成攻击建议。

(2)在计划阶段,任务规划Agent基于情报分析结果,利用优化算法评估不同攻击路径和战术的成功率,自动生成多套作战方案供指挥官选择。作战仿真Agent通过高精度战场仿真模型,模拟不同作战方案的执行效果,预测战场变量和潜在风险。

(3)在执行阶段,武器控制Agent指挥无人机群和精确制导武器,实施精准打击,同时监控打击效果,动态调整攻击策略。战斗执行Agent在无人机的支援下,迅速机动我方精锐部队,利用精确火力摧毁敌方重要目标。

(4)在调整阶段,情报分析Agent与任务规划Agent持续监控战场态势,根据实时情报调整作战计划,必要时改变攻击目标或增援。

(5)在结束阶段,所有Agent协同作战,确保完全控制敌方指挥中心,同时保护我方重要设施和平民安全。通信管理Agent采用加密通信技术,确保作战过程中的通信安全和信息传输的可靠性。

总结

  • 在作战系统内部,对各Agent进行统一的结构设计,为每个Agent设计标准化的输入/输出接口,确保它们能够以统一的方式接收和发送信息。
  • Agent内包括配置、记忆、认知和行动等模块,根据不同功能允许内部处理机制的多样性。制定统一的数据格式和协议,确保在不同Agent之间交换信息的一致性,减少解析上的误差和延迟。
  • 所有Agent都遵循同一套行动协议,规定在特定情况下的行动策略和响应方式,从而保证各Agent的行为一致和可预测。
  • 考虑系统对可靠性和实时性的高要求,设计具有鲁棒性的通信结构,确保在任何Agent失效时,系统仍能保持运行。

二、单智能体与多智能体

单智能体能够自主执行任务,但面对复杂挑战时可能力有不逮。解决方案是构建多智能体网络,它们协同作业,形成一个综合系统应对用户需求。

Single Agent框架:

  • 执行架构优化:论文数据支撑CoT to XoT,从一个thought一步act到一个thought多个act,从链式的思考方式到多维度思考;
  • 长期记忆的优化:具备个性化能力的agent,模拟人的回想过程,将长期记忆加入agent中;
  • 多模态能力建设:agent能观察到的不仅限于用户输入的问题,可以加入包括触觉、视觉、对周围环境的感知等;
  • 自我思考能力:主动提出问题,自我优化;

“什么神奇的技巧让我们变得智能?窍门就是没有窍门。智慧的力量源于我们巨大的多样性,而不是任何单一的、完美的原则。”

——人工智能先驱 马文·明斯基(Marvin Minsky)

Multi-Agent框架:

  • 环境&通讯:Agent间的交互,消息传递、共同记忆、执行顺序,分布式agent,OS-agent
  • SOP:定义SOP,编排自定义Agent
  • 评审:Agent健壮性保证,输入输出结果解析
  • 成本:Agent间的资源分配
  • Proxy:自定义proxy,可编程、执行大小模型

多智能体的任务协作模式:

  1. 反思模式:其实就是“二人对话”模式,只是给两者设定的角色不同而已,都是通过二人对话协作来解决问题。
  • 工作方式:
    • A智能体接受输入任务,进行输出
    • B智能体对A输出进行反思或审核并反馈给A
    • 重复,直到达到最大迭代次数或B审核通过
  • 示例:
    • 代码生成: 一个负责编码,一个负责审核并反馈意见
    • 代码解释器: 一个负责编码,一个负责执行并反馈结果

  1. 顺序模式:一种多个Agent以确定的顺序工作的模式。一个团队(Crew)内部多个Agent会被分配确定的子任务(Task),按照固定的顺序调度执行,并把子任务结果传递给下一个Agent,直到流程结束。
  • 示例:
    • 营销文案创作:idea生成–>目录结构–>文章创作–>润色审核
    • 市场调查分析: 网络搜索–>调查报告起草–>PPT制作
    • HR简历筛选: 简历下载–>简历筛选–>邮件起草与发送

  1. 层次模式:人类工作中常见的一种管理架构,即由一个管理者带领多个工作人员一起完成任务。需要一个管理者Agent(Manager Agent)来负责分配任务给工作Agent(Worker Agent)
  • 算法设计:管理者在分配任务时,会涉及到不同的决策算法。在CrewAI中,通常为借助LLM与上下文自动判断;在AutoGen中,则存在随机、顺序、自动、自定义等多种决策模式。如果一个任务只拆分给一个工作Agent来完成,可以认为其退化成了“路由”模式。
  • 示例:
    • 团队讨论: 由Manager带领团队围绕话题展开头脑风暴。
    • 分布式研究: Manager负责将复杂的研究任务拆分给不同的工作Agent来协同完成,Manager负责任务的检查、汇总与整理。
    • 智能RAG: 在多数据源的Agentic RAG中,由管理Agent协调多个工作Agent来共同完成不同数据源的检索任务,以回答跨数据源的复杂问题。

  1. 转交模式:任何一个Agent可以借助自己的一个工具将任务转交给其他的Agent。
  • 与顺序模式及层次模式的区别:
    • 没有固定的工作流程。
    • 没有明确的管理Agent负责分配任务,每一个智能体都可以定义多个“转交”工具,由LLM判断是否需要转交任务给其他智能体。
  • 例子:
    • 客户服务分类:在线客户服务中,由一个负责分类的Agent接入客户,并负责根据客户请求转交给销售Agent、服务Agent、甚至人类Agent来完成;复杂具体工作的Agent也可以相互转交任务。

  1. 仿神经网络模式(Mixture-of-Agents,MoA):一种模仿前馈神经网络架构的多代理设计模式,存在多层工作Agent(Worker Agent)以及单个的编排Agent(Orchestrator Agent)。 MoA)架构本质上是一种分布式的任务解决方案,将输入分配给多个代理,逐层优化并整合输出。
  • 工作方式:(以创作一篇论文为例)
    • 第一层的三个工作Agent分别负责生成论文的三个不同部分
    • 第二层的三个工作Agent对论文的三个不同部分进行润色(第一层的任务输出作为输入)
    • 第三层的三个工作Agent接收第二层的任务输出,从三个不同方面做检查与完善,如结构、语义与语言风格
    • 最后由编排Agent对第三层的结果进行聚合,并将最终结果输出
  • 例子:
    • 代码生成:分层生成多模块代码,后续层做调试优化
    • 机器翻译:逐层翻译优化结果,最终输出流畅的表达

  1. 辩论模式:Agent分为多个求解Agent(Solver Agent)与一个聚合Agent(Aggregator Agent),多个求解Agent之间通过交换“意见”来完善自身的任务结果,最后由聚合Agent负责聚合与决策输出最终结果。
  • 算法设计:聚合Agent最后的决策机制,比如多数投票或加权投票等。
  • 工作方式:
    • 用户向聚合Agent输入任务
    • 聚合Agent将任务分发给所有求解Agent
    • 每个求解Agent处理任务,并向其邻居发布一个自己的结果
    • 每个求解Agent利用来自邻居的结果,优化自己的响应结果
    • 重复多次迭代过程后每个求解Agent发布自己的最终结果
    • 聚合Agent使用决策机制(如多数投票),将所有求解Agent的最终回答汇总评判,得出最终答案
  • 例子:
    • 数学问题求解
    • 复杂的逻辑推理任务,比如:
      • 律师团队Agent对法律案例做分析与交换意见,形成最后结果
      • 医疗专家Agent对医学病例做诊断并交换意见,形成最终意见

  1. 嵌套模式:把前面介绍的基础模式中的Agent工作流打包成一个有输入输出的单个Agent,然后参与到另外的协同模式与工作流中。有利于复杂系统的模块化设计与实施,提高模块可重用性,降低模块间的耦合度。 在一个高度复杂的多Agent系统中,可以针对单个业务功能设计独立的、不同模式的多Agent系统,最后再用“搭积木”方式去构建更大的工作流程。
  • 例子:
    • 组建多Agent软件开发团队,每个编码人员又是一个“双人结对编程小组”
    • 当客户提交一个问题时,高层次的多Agent系统会首先进行初步分类(如“售后服务”),然后将问题转发给相应的“虚拟Agent”(如“产品A问题处理系统”)。这个“虚拟Agent”内部的多个Agent会继续协作,直到问题得到解决。

  1. 自定义模式:完全根据自身需要定义的多个Agent协作的工作流程。

其他:

  • 部署:Agent以及workflow的配置化及服务化;分布式部署监控:Multi-Agent可视化、能耗与成本监控。
  • RAG:解决语义孤立问题
  • 评测:agent评测、workflow评测、AgentBench
  • 训练语料:数据标记、数据回流

三、智能体关系

(1)完全竞争关系:AlphaGo

(2)半竞争半合作关系

(3)完全合作关系

  • 不需要协作机制
  • 隐式的协作机制:例如多机器人避碰,仓库物件分发是该问题的常见场景

四、算法分类

(1)协作类算法:研究如何通过集中式的训练达到各智能体独立执行策略,常见的算法:VDN、QMIX、QTRAN、MADDPG。

(2)通信类算法:建立多智能体之间的联系从而实现协同合作。常见的算法:RIAL、CommNet、BiCNet、ATOC、IC3Net、TarMAC、SchedNet、DGN。

📌 [ 笔者 ]   文艺倾年
📃 [ 更新 ]   2025.2.2
❌ [ 勘误 ]   /* 暂无 */
📜 [ 声明 ]   由于作者水平有限,本文有错误和不准确之处在所难免,
              本人也很想知道这些错误,恳望读者批评指正!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/963607.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入理解linux中的文件(上)

1.前置知识: (1)文章 内容 属性 (2)访问文件之前,都必须打开它(打开文件,等价于把文件加载到内存中) 如果不打开文件,文件就在磁盘中 (3&am…

算法题(55):用最少数量的箭引爆气球

审题: 本题需要我们找到最少需要的箭数,并返回 思路: 首先我们需要把本题描述的问题理解准确 (1)arrow从x轴任一点垂直射出 (2)一旦射出,无限前进 也就是说如果气球有公共区域(交集&…

21款炫酷烟花代码

系列专栏 《Python趣味编程》《C/C趣味编程》《HTML趣味编程》《Java趣味编程》 写在前面 Python、C/C、HTML、Java等4种语言实现21款炫酷烟花的代码。 Python Python烟花① 完整代码:Python动漫烟花(完整代码) ​ Python烟花② 完整…

【最长上升子序列Ⅱ——树状数组,二分+DP,纯DP】

题目 代码&#xff08;只给出树状数组的&#xff09; #include <bits/stdc.h> using namespace std; const int N 1e510; int n, m; int a[N], b[N], f[N], tr[N]; //f[i]表示以a[i]为尾的LIS的最大长度 void init() {sort(b1, bn1);m unique(b1, bn1) - b - 1;for(in…

k8s支持自定义field-selector spec.hostNetwork过滤

好久没写博客啦&#xff0c;年前写一个博客就算混过去啦&#x1f602; 写一个小功能&#xff0c;对于 Pod&#xff0c;在没有 label 的情况下&#xff0c;支持 --field-selector spec.hostNetwork 查询 Pod 是否为 hostNetwork 类型&#xff0c;只为了熟悉 APIServer 是如何构…

GNN-Attention——基于动态图神经网络GNN和注意力机制Attention的时间序列预测

1 数据集介绍 ETT(电变压器温度)&#xff1a;由两个小时级数据集&#xff08;ETTh&#xff09;和两个 15 分钟级数据集&#xff08;ETTm&#xff09;组成。它们中的每一个都包含 2016 年 7 月至 2018 年 7 月的七种石油和电力变压器的负载特征。 traffic(交通) &#xff1a;描…

ASP.NET Core与配置系统的集成

目录 配置系统 默认添加的配置提供者 加载命令行中的配置。 运行环境 读取方法 User Secrets 注意事项 Zack.AnyDBConfigProvider 案例 配置系统 默认添加的配置提供者 加载现有的IConfiguration。加载项目根目录下的appsettings.json。加载项目根目录下的appsettin…

c++可变参数详解

目录 引言 库的基本功能 va_start 宏: va_arg 宏 va_end 宏 va_copy 宏 使用 处理可变参数代码 C11可变参数模板 基本概念 sizeof... 运算符 包扩展 引言 在C编程中&#xff0c;处理不确定数量的参数是一个常见的需求。为了支持这种需求&#xff0c;C标准库提供了 &…

Q#使用教程

Q# 是一种用于量子计算的编程语言&#xff0c;主要用于编写量子算法。 1. 环境配置 安装vscode2017以上 QDK下载地址&#xff1a;Azure Quantum Development Kit (QDK) - Visual Studio Marketplace 将下载好的QDK作为拓展配置到vscode里面。 2.代码 import Microsoft.Qu…

万字长文深入浅出负载均衡器

前言 本篇博客主要分享Load Balancing&#xff08;负载均衡&#xff09;&#xff0c;将从以下方面循序渐进地全面展开阐述&#xff1a; 介绍什么是负载均衡介绍常见的负载均衡算法 负载均衡简介 初识负载均衡 负载均衡是系统设计中的一个关键组成部分&#xff0c;它有助于…

云原生(五十三) | SQL查询操作

文章目录 SQL查询操作 一、数据库DDL操作 1、登陆数据库 2、创建DB数据库 二、数据表DDL操作 1、创建数据表 2、RDS中SQL查询操作 三、SQL查询操作 1、RDS中SQL查询操作 SQL查询操作 一、数据库DDL操作 1、登陆数据库 2、创建DB数据库 创建一个普通账号&#xff0c…

potplayer字幕

看视频学习&#xff0c;实时字幕可以快速过滤水字数阶段&#xff0c;提高效率&#xff0c;但是容易错过一些信息。下面就是解决这一问题。 工具ptoplayer 一.生成字幕 打开学习视频&#xff0c;右键点击视频画面&#xff0c;点选字幕。勾选显示字幕。点选创建有声字幕&#…

TensorFlow简单的线性回归任务

如何使用 TensorFlow 和 Keras 创建、训练并进行预测 1. 数据准备与预处理 2. 构建模型 3. 编译模型 4. 训练模型 5. 评估模型 6. 模型应用与预测 7. 保存与加载模型 8.完整代码 1. 数据准备与预处理 我们将使用一个简单的线性回归问题&#xff0c;其中输入特征 x 和标…

langchain基础(二)

一、输出解析器&#xff08;Output Parser&#xff09; 作用&#xff1a;&#xff08;1&#xff09;让模型按照指定的格式输出&#xff1b; &#xff08;2&#xff09;解析模型输出&#xff0c;提取所需的信息 1、逗号分隔列表 CommaSeparatedListOutputParser&#xff1a;…

docker安装MySQL8:docker离线安装MySQL、docker在线安装MySQL、MySQL镜像下载、MySQL配置、MySQL命令

一、镜像下载 1、在线下载 在一台能连外网的linux上执行docker镜像拉取命令 docker pull mysql:8.0.41 2、离线包下载 两种方式&#xff1a; 方式一&#xff1a; -&#xff09;在一台能连外网的linux上安装docker执行第一步的命令下载镜像 -&#xff09;导出 # 导出镜…

【MySQL】语言连接

语言连接 一、下载二、mysql_get_client_info1、函数2、介绍3、示例 三、其他函数1、mysql_init2、mysql_real_connect3、mysql_query4、mysql_store_result5、mysql_free_result6、mysql_num_fields7、mysql_num_rows8、mysql_fetch_fields9、mysql_fetch_row10、mysql_close …

建表注意事项(2):表约束,主键自增,序列[oracle]

没有明确写明数据库时,默认基于oracle 约束的分类 用于确保数据的完整性和一致性。约束可以分为 表级约束 和 列级约束&#xff0c;区别在于定义的位置和作用范围 复合主键约束: 主键约束中有2个或以上的字段 复合主键的列顺序会影响索引的使用&#xff0c;需谨慎设计 添加…

本地缓存~

前言 Caffeine是使用Java8对Guava缓存的重写版本&#xff0c;在Spring Boot 2.0中取而代之&#xff0c;基于LRU算法实现&#xff0c;支持多种缓存过期策略。 以下摘抄于https://github.com/ben-manes/caffeine/wiki/Benchmarks-zh-CN 基准测试通过使用Java microbenchmark ha…

视觉状态空间模型(VMamba)的解读

在计算机视觉领域&#xff0c;设计计算高效的网络架构一直是研究的热点。今天&#xff0c;我想和大家分享一篇发表在 NIPS 2024 上的论文——VMamba&#xff1a;Visual State Space Model&#xff0c;这篇论文提出了一种新的视觉骨干网络&#xff0c;具有线性时间复杂度&#x…

Kanass基础教程-创建项目

Kanass是一款国产开源免费的项目管理工具&#xff0c;工具简洁易用&#xff0c;开源免费&#xff0c;之前介绍过kanass的一些产品简介及安装配置方法&#xff0c;本文就从如何创建第一个项目来开始kanass上手之旅吧。 1. 创建项目 点击项目->项目添加 按钮进入项目添加页面…