小白学Agent技术[5](Agent框架)

文章目录

  • Agent框架
    • Single Agent框架
      • BabyAGI
      • AutoGPT
      • HuggingGPT
      • HuggingGPT工作原理说明
      • GPT-Engineer
      • AppAgent
      • OS-Copilot
    • Multi-Agent框架
      • 斯坦福虚拟小镇
      • TaskWeaver
      • MetaGPT
      • 微软UFO
      • AgentScope
      • 现状
  • 常见Agent项目比较
    • 概述
    • 技术规格和能力
    • 实际应用案例
    • 开发体验比较
    • ChatChain模式

Agent框架

  • Agent课程地址
  • 提醒:Agent如果有文件系统访问权限,要在docker容器中运行保证安全性。

Single Agent框架

  • Single Agent框架优点:
  1. 简单性:设计、实现和管理相对简单,因为不需要考虑多个智能体之间的交互和协调问题。
  2. 专业性:可以针对特定任务进行优化,专注于执行单一任务,效率较高。
  3. 易于开发:由于系统组件较少,开发和部署速度更快。
  4. 成本效益:相比多智能体系统,单智能体系统通常需要较少的计算资源。
  • Single Agent框架缺点:
  1. 灵活性有限:对于需要多个智能体协作才能完成的复杂任务,单智能体系统可能无法提供最佳解决方案。
  2. 扩展性差:增加新功能或适应新环境可能需要重构整个系统。一旦面临极其错综复杂、计算量密集的任务,Single-Agent会遭遇算力瓶颈,无法高效完成处理,性能将大打折扣。
  3. 鲁棒性低:系统对故障的容忍度较低,单点故障可能导致整个系统失效。

BabyAGI

  • github项目
  • 文档
  • babyAGI决策流程:
    1. 根据需求分解任务;
    2. 对任务排列优先级;
    3. 执行任务并整合结果;
  • 作为早期agent的实践,babyagi框架简单实用,里面的任务优先级排序模块是一个比较独特的feature,后续的agent里大多看不到这个feature。
    在这里插入图片描述

AutoGPT

  • github项目
  • 文档
  • AutoGPT定位类似个人助理助用户完成指定的任务,如调研某个课题。AutoGPT比较强调对外部工具的便用,如搜索引擎、页面浏览等。同样,作为早期agent,autoGPT麻雀虽小五脏俱全,虽然也有很多缺点,比如无法控制选代次数、工具有限。但是后续的模仿者非常多,基于此演变出了非常多的框架

HuggingGPT

  • 论文
  • github项目
  • 由浙大&微软联合发布的一个大模型协作系统。研究者提出用ChatGPT作为任务规划器,连接HuggingFace社区中的各种Al模型,完成多模态复杂任务。整个过程只需要做的是:用自然语言将你的需求输出。
    在这里插入图片描述

HuggingGPT工作原理说明

  1. 任务规划:使用ChatGPT分析用户请求,将其分解为多个子任务,并规划任务顺序和依赖关系。
  2. 模型选择:根据HuggingFace中可用的功能描述选择模型。
  3. 任务执行:使用所选的AI模型执行每个子任务。
  4. 响应生成:根据AI模型执行结果进行总结和输出。

  • HuggingGPT的工作原理可以概括为以下几点:

  • 语言作为接口:HuggingGPT将语言作为连接LLM和AI模型的通用接口,通过将模型描述结合到提示中。使LLM能够管理AI模型,如计划、调度和合作。

  • 任务规划:LLM首先解析用户请求,将其分解为一系列结构化任务,并确定这些任务的依赖关系和执行顺序。

  • 模型选择:LLM根据HuggingFace中的模型描述,将解析后的任务分配给专家模型。

  • 任务执行:每个专家模型在推理端点上执行所分配的子任务,并将执行信息和推理结果记录到LLM。

  • 响应生成:最后,LLM总结执行过程日志和推理结果,并将摘要返回给用户。

  • HuggingGPT的亮点:HuggingGPT与AutoGPT的不同之处在于,它可以调用HuggingFace上不同的模型来完成更复杂的任务,从而提高了每个任务的精确度和准确率。然而,总体成本并没有降低太多。

GPT-Engineer

  • github项目
  • 文档
  • 基于langchaln开发,单一的工程师agent,解决编码场景的问题,目的是创建一个完整的代码仓库,在需要时要求用户额外输入补充信息。
  • 亮点:code-copilot的自动化升级版。

AppAgent

  • github项目
  • 论文
  • 基于ground-dino以及gptview模型做多模态处理的Agent。
  • 亮点:基于视觉/多模态appagent,os级别的agent,可以完成系统级别的操作,直接操控多个app。
  • 缺点:由于需要系统级权限、只支持安卓系统。

OS-Copilot

  • github项目
  • 论文
  • 文档
  • OS级别的Agent,FRIDAY能够从图片、视频或者文本中学习,并且能够执行一系列的计算机任务,比辑在Excel中绘图,或者创建一个网站。
  • 最重要的是,FRIDAY能够通过做任务来学习新的技能,就像人类一样,通过不断的尝试和练习变得更程长。
  • 亮点:自我学习改进,学习如何更有效地使用软件应用、执行特定任务的最佳实践等。

Multi-Agent框架

  • 论文Large Language Model based Multi-Agents:A Survey of Progress and Challenges

  • Exploring Collaboration Mechanisms for LLMAgents:A Social Psychology View

  • LONGAGENT:Scaling Language Models to 128k Context through Multi-Agent Collaboration

  • 将多个Agent,按照一定的工作流进行编排,每个Agent负责不同的任务,即组成了多智能体架构(Multi-Agent)。这非常类似于我们实际中的工作流程或组织

  • 结构:拥有不同能力的人,负责不同的任务,每个工序执行的结果给到下一个工序,最终得到最后的任务成果。


  • multiagent的例子,它允许不同角色的Agent完成任务,其中某个Agent撞长检索数据,余下的Agent则擅长数据分析或数据可视化。
  • 设计一个智慧城市的数据分析工作流,由于数据来源比较复杂,并且要同时考虑模型的经济和分析地高效,可以设计三个不同的Agent:
    1. Agent-1代理负责数据收集,从各种数据源(如气象部门、交通部门、环保部门的数据共享接口),收集原始数据,并进行去重、缺失值填补、格式转换等数据预处理工作。为了经济,使用GPT-3.5模型。
    2. Agent-2拿到Agent-1的结果,然后进行数据加载和深度数据分析,使用本地微调过的Mistral7B模型。
    3. Agent-3则负责最终的数据可视化,将上一步的数据分析结果展示为可视化图表,并提供用户界面,可以选择允许用户与可视化结果进行交互,如筛选、放大、导出等。

  • 优点:
    1. 协作性:智能体之间可以相互通信和协作,共同完成复杂任务。
    2. 灵活性和适应性:能够适应多变的环境和任务需求,智能体可以自主调整行为和策略。
    3. 可扩展性:通过增加更多的智能体来扩展系统的功能和处理能力。
    4. 鲁棒性和容错性:系统中的智能体可以互为备份,提高了系统的可靠性和容错性。
    5. 分布式处理:可以分散处理任务,提高效率和吞吐量。
    6. 专业化:每个智能体可以拥有特定领域的专业知识,提高问题解决能力。
  • 缺点:
    1. 复杂性高:需要设计和实现智能体之间的通信、协调和协作机制,增加了系统的复杂性。
    2. 开发难度大:相比单智能体系统,多智能体系统需要更多的开发工作和专业知识。
    3. 成本较高:可能需要更多的计算资源和开发投入,简单的问题singleAgent也能解决

  • 单智能体=大语言模型(LLM)+观察(obs)+思考(thought)+行动(act)+记忆(mem)
  • 多智能体=智能体+环境+SOP+评审+通信+成本

斯坦福虚拟小镇

  • github项目

  • 论文

  • 斯坦福虚拟小镇(Smallille)是一个由斯坦福大学和谷歌的研究人员创建的虚拟社区项目,旨在模拟人类行为。

  • 项目通过使用大型语言模型(LLM),特别是ChatGPTAPI,来实现25个AI智能体的自然语言交互和社会行为模拟。这些AI智能体在虚拟小镇中生活,他们有工作,会八卦,能组织社交活动,结交新朋友,甚至举办派对,每个"小镇居民“都有独特的个性和背景故事。Smallvile虚拟小镇包含了多种公共场景,如咖啡馆、酒吧、公园、学校、宿舍、房屋和商店,智能体可以在这些场景中自由活动,进入或离开场所,甚至与其他智能体打招呼和互动。这些智能体的行为模仿了人类的日常活动,例如果看到早餐着火了,会走过去关掉炉子;如果看到浴室有人,会在外面等待;如果遇到一个想交谈的个体丁会停下来聊天。虚拟小镇作为早期的multi-agent项目,很多设计也影响到了其他multi-agent框架,里面的反思和记忆检素feature,模拟人类的思考方式

  • 代理(Agents)感知他们的环境,当前代理所有的感知(完整的经历记录)都被保存在一个名为”记忆流”(memory stream)中。基于代理的感知,系统检索相关的记忆,然后便用这些检索到的行为来决定下一个行为。这些检索到的记忆也被用来形成长期计划,并创造出更高级的反思,这些都被输入到记忆流中以供未来使用。

TaskWeaver

  • github项目
  • 文档
  • TaskWeaver:面向数据分析任务,通过编码片段解释用户请求,并以函数的形式有效协调各种插件来执行数据分析任务。
  • TaskWeaver不仅仅是一个工具,更量一个复杂的离统,能够解释命令,将它们转换为代码,并精确地执行在势。
  • TaskWeaver的工作流程涉及几个关键组件和过程。它由三个关键组件组成:规划器(Planner)、代码生成器(CG)和代码执行器(CE)。
  • 代码生成器和代码执行器由代码解释器(CI)组成。
    在这里插入图片描述

MetaGPT

  • MetaGPT github项目
  • MetaGPT文档
  • MetaGPT是国内开源的一个Multi-Agent框架,目前整体社区活跃度较高和也不断有新feature出来,中文文档支持的很好。
  • MetaGPT输入一句话的老板需求,输出用户故事/竞品分析/需求/数据结构/APIs/文件等。
  • MetaGPT以软件公司方式组成,内部包括产品经理/架构师/项目经理/工程师,它提供了一个软件公司的全过程与精心调配的SOP。
    在这里插入图片描述
  • Pole特从Environment中_observeMessage。如果有一个Role_watch的特定Action引起的Message,那么这是一个有效的观察,触发Role的后续思考和操作。在_think中,Role将选择其能力范围内的一个Action并将其设置为要做的事情。在_act中,Role执行要做的事情,即运行Action并获取输出。将输出封装在Message中,最终publish_message到Environment,完成了一个完整的智能体运行。

微软UFO

  • 微软UFO github项目
  • UFO是面向Windows系统的Agent,结合自然语言和视觉操作WindowsGUI。
    在这里插入图片描述
  • UFO(UI-Focused Agent)的工作原理基于先进的视觉语言模型技术,特别是GPT-Vision。以及一个独特的双代理框架,使其能够理解和执行Windows操作系统中的图形用户界面(GUI)任务。
    以下是UFO工作原理的详细解释:
  1. 双代理框架双代理架构:UFO由两个主要代理组成,AppAgent和ActAgent,分别负责应用程序的选择与切换,以及在这些应用程序内执行具体动作。
    • 应用程序选择代理(AppAgent):负责决定为了完成用户请求需要启动或切换到哪个应用程序。它通过分析用户的自然语言指令和当前桌面的屏幕截图来做出选择。一旦确定了最适合的应用程序,AppAgent会制定一个全局计划来指导任务的执行。
    • 动作选择代理(ActAgent):一旦选择应用程序,ActAgent就会在该应用程序中执行具体的操作,如点击按钮、输入文本等。ActAgent利用应用程序的屏幕截图和控件信息来决定下一步最合适的操作,并通过控制交互模块将这些操作转化为对应用程序控件的实际动作。
  2. 控制交互模块UFO的控制交互模块是将代理识别的动作转换为应用程序中实际执行的关键组成部分。这个模块使UFO能够直接与应用程序的GUI元素进行交互,执行如点击、拖动、文本输入等操作,而无需人工干预。
  3. 多模态输入处理UFO能够处理多种类型的输入,包括文本(用户的自然语言指令)和图像(应用程序的屏幕截图)。这便UFO能够理解当前GUI的状态、可用控件和它们的属性,从而做出准确的操作决策。
  4. 用户请求解析当接收到用户的自然语言指令时,UFO首先解析这些指令,以确定用户的意图和所需完成的任务。然后,它将这个任务分解成一系列子任务或操作步骤,这些步骤被AppAgent和ActAgent按顺序执行。
  5. 应用程序间的无缝切换如果完成用户请求需要多个应用程序的操作,UFO能够在这些应用程序之间无缝切换。它通过AppAgent来决定何时以及如何切换应用程序,并通过ActAgent在每个应用程序中执行具体的操作。
  6. 自然语言命令到GUI操作的映射UFO的核心功能之一是将用户的自然语言命令映射到具体的GUI操作上。这一过程涉及到理解命令的意图,识别相关的GUI元素。以及生成和执行操作这些元素的动作。通过这种方式,UFO可以自动完成从文档编辑和信息提取到电子邮件撰写和发送等一系列复杂的任务,大大提高用户在Windows操作系统中工作的效率和便捷性。
    在这里插入图片描述

AgentScope

  • AgentScope github项目
  • AgentScope 论文
  • AgentScope agent平台
  • 阿里开源的Multi-agent框架,亮点是支持分布式框架,并且做了工程链路上的优化及监控。
    在这里插入图片描述

现状

  • Multi-Agent并不是Agent框架的终态,Multi-Agent框架是当前有限的LLM能力背景下的产物,更多还是为了解决当前LLM的能力缺陷,通过LLM多次迭代、弥补一些显而易见的错误,不同框架间仍然存在着极高的学习和开发成本。
  • 随着LLM能力的提升,未来的Agent框架肯定会朝着更加的简单、易用的方向发展
  • 游戏场景(npc对话、游戏素材生产)、内容生产、私域助理、OS级别智能体、部分工作的提效
  • 在利用LLM多智体解决各种任务方面取得了有希望的结果,如软件开发、多机器人系统、社会模拟、策略模拟和游戏模拟。
  • 由于该领域跨学科研究的性质,它吸引了各种各样的研究人员,从A专家扩展到社会科学、心理学和政策研究专家。研究论文的数量正在迅速增加。

常见Agent项目比较

LangGraphAutogenCrewai
开发难度
拓展性
集成能力中断

概述

  • LangGraph:一个基于图的多智能体系统开发平台,可以创建复杂的智能体交互。
  • Autogen:一个自动代码生成平台,通过自动代码生成简化了多智能体系统的开发过程。
  • Crewai:一个云平台,提供可扩展和安全的解决方案,适用于复杂的多智能体系统开发。

技术规格和能力

  • 架构:LangGraph采用图架构,Autogen便用自动代码生成方法,而Crewai便用云基础设施。
  • 可扩展性:三者都能扩展,但复杂度不同。
  • 集成能力:Autogen的集成能力较强,更易于集成多个系统和服务。

实际应用案例

  • LangGraph:一家物流公司利用LangGraph优化了供应链管理,减少了25%的交货时间。
    0 Autogen:一家金融机构利用Autogen开发了一个用于投资组合优化的多智能体系统,提高了投资回报率。
  • Crewai:一个研究团队利用Crewai的云基础设施部署了一个气候模型,提高了预测准确性和决策质量。

开发体验比较

  • LangGraph:开发过程较为复杂,需要理解图系统的知识。
  • Autogen:自动代码生成使得开发过程更简单,易于开发者便用。
  • Crewai:云基础设施对不熟悉云计算的开发者来说可能有一定难度

ChatChain模式

  • 本质上,通过相互聊天能完善用户需求,能详细生成推理步骤,能提升模型规划能力,正确拆解任务。
  • crewa和AutoGen等项目采用ChatChain模式的原因在于,这种模式特别适合于构建能够协同工作的多代理系统,通过代理间的对话和协作来解决问题。

以下是ChatChain模式的相关信息:

  • 代理协作:ChatChain模式允许创建多个代理,这些代理可以相互对话,共同完成任务。这种模式非常适合需要多个步骤或多个参与者协同工作的场景。
  • 任务分解与分配:在ChatChain中,复杂的任务可以被分解成多个子任务,并由不同的代理负责处理。这种任务分解和分配的方式提高了处理复杂问题的效率。
  • 灵活性与可扩展性:ChatChain模式支持多种会话模式,如双代理聊天、顺序聊天、群聊等,使得系统可以根据不同的需求灵活调整代理间的交互方式。

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

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

相关文章

AI写论文提示词指令大全,快速写论文

目录 一、十大学术写作提示词1、研究主题2、研究问题3、论文架构4、学术论证5、文献关键要素6、专业文本可读性转换7、学术语言规范化8、提高语言准确性9、多维度、深层论证10、优化文本结构 二、快速写论文提示词1、确认研究选题2、整理相关资料3、快速完成论文大纲4、整合文献…

电子电气架构 ---常见车规MCU安全启动方案

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

HCIP第二讲作业

一、连接拓扑图 二、配置要求 1.学校内部的HTTP客户端可以正常通过域名www.baidu.com访问到百度网络中的HTTP服务器 2.学校网络内部网段基于192.168.1.0/24划分,PC1可以正常访问3.3.3.0/24网段,但是PC2不允许 3.学校内部路由使用静态路由,R1…

Linux第六讲:进程控制

Linux第六讲:进程控制 1.进程创建1.1回顾fork1.2写时拷贝 2.进程终止2.1exit与_exit 3.进程等待3.1进程等待的方法(wait和waitpid) 4.进程程序替换4.1自定义shell的编写4.1.1输出命令行提示符4.1.2获取用户输入的命令4.1.3命令行分析4.1.4指令…

BI 工具响应慢?可能是 OLAP 层拖了后腿

在数据驱动决策的时代,BI 已成为企业洞察业务、辅助决策的必备工具。然而,随着数据量激增和分析需求复杂化,BI 系统“卡”、“响应慢”的问题日益突出,严重影响分析效率和用户体验。 本文将深入 BI 性能问题的根源,并…

PPT内视频播放无法播放的原因及解决办法

PPT内视频无法播放,通常是视频编解码的问题。目前我遇到的常见的视频编码格式有H.264,H.265,VP9,AV1这4种。H.264编解码的视频,Windows原生系统可以直接播放,其他的视频编码格式需要安装对应的视频编解码插…

【AIGC系列】6:HunyuanVideo视频生成模型部署和代码分析

AIGC系列博文: 【AIGC系列】1:自编码器(AutoEncoder, AE) 【AIGC系列】2:DALLE 2模型介绍(内含扩散模型介绍) 【AIGC系列】3:Stable Diffusion模型原理介绍 【AIGC系列】4&#xff1…

Navigation的进阶知识与拦截器配置

Navigation的进阶知识与拦截器配置 写的不是很详细,后续有时间会补充,建议参考官方文档食用 1.如何配置路由信息 1.1 创建工程结构 src/main/ets ├── pages │ └── navigation │ ├── views │ │ ├── Mine.ets //…

多模态推理模型相关开源工作

多模态推理模型相关开源工作 1. 训练策略1.1 R1-V① 介绍② 训练流程③ 关键注意点④ 主要问题⑤ 是否可以去掉 KL 约束? 1.2 open-r1-multimodal① 介绍② 代码改进 1.3 VisualThinker-R1-Zero① 研究意义② 训练方法③ 结论④ 代码改进⑤ 其他发现 1.4 Efficient-…

LaTex安装流程(附安装包)LaTex超详细保姆级图文安装教程

文章目录 前言一、LaTex下载二、Texlive 2024安装教程三、Texstudio安装教程 前言 本安装流程将以清晰、易懂的方式,详细的价绍 LaTeX安装教程,助你顺利踏入专业排版的大门 。 一、LaTex下载 LaTeX 是由美国计算机科学家莱斯利・兰伯特(Les…

Ultravox:融合whisper+llama实现audio2text交互

Ultravox是由Fixie AI开发的一种创新型多模态大语言模型,专为实时语音交互设计。与传统的语音交互系统不同,Ultravox无需单独的语音识别(ASR)阶段,可以直接理解文本和人类语音,实现更快速、更自然的交互体验。Ultravox v0.5在语音理解基准测试中超越了OpenAI的GPT-4o Realt…

KL散度详解与应用

前言 本文隶属于专栏《机器学习数学通关指南》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见《机器学习数学通关指南》 ima 知识库 知识库广场搜索&#…

【Java并发】【synchronized】适合初学者体质入门的synchronized

👋hi,我不是一名外包公司的员工,也不会偷吃茶水间的零食,我的梦想是能写高端CRUD 🔥 2025本人正在沉淀中… 博客更新速度 👍 欢迎点赞、收藏、关注,跟上我的更新节奏 📚欢迎订阅专栏…

数据库的搭建

一、MySQL的安装 第一种: 直接下载相应的软件: 比如说MySQL installer、或者phpstudy第二种: 1.压缩包下载 下载地址:https://downloads.mysql.com/archives/community/ 2.解压软件包 将MySQL软件包解压在没有中文和空格的目…

React:类组件(上)

kerwin老师我来了 类组件的创建 class组件&#xff0c;js里的类命名首字符大写&#xff0c;类里面包括构造函数&#xff0c;方法 组件类要继承React.Component才有效 必须包含render方法 import React from react class App extends React.Component{render() {return <…

以教育之道御AI之术:培养未来人才的关键策略

在当今这个人工智能(AI)技术日新月异的时代,AI已经渗透到我们生活的方方面面,教育领域也不例外。然而,面对AI的浪潮,我们不仅要学会利用它来提升教学效率,更要坚守教育的本质,即“以教育之道御AI之术”,培养出能够适应未来社会需求的创新型人才。 AI技术为教育带来的…

基于qiime2的16S数据分析全流程:从导入数据到下游分析一条龙

目录 创建metadata 把数据导入qiime2 去除引物序列 双端合并 &#xff08;dada2不需要&#xff09; 质控 &#xff08;dada2不需要&#xff09; 使用deblur获得特征序列 使用dada2生成代表序列与特征表 物种鉴定 可视化物种鉴定结果 构建进化树&#xff08;ITS一般不构建进化树…

DeepSeek V3 并行训练、推理优化点(一)

训练优化1&#xff0c; FP8计算 DeepSeek-V3在训练过程中统一使用E4M3格式&#xff0c;并通过细粒度的per-tile&#xff08;1x128&#xff09;和per-group&#xff08;128x128&#xff09;量化来降低误差。 FP8的好处还体现在节省显存上&#xff08;尤其是激活值&#xff09;…

comctl32!ListView_OnSetItem函数分析LISTSUBITEM结构中的image表示图标位置

第一部分&#xff1a; BOOL ListView_SetSubItem(LV* plv, const LV_ITEM* plvi) { LISTSUBITEM lsi; BOOL fChanged FALSE; int i; int idpa; HDPA hdpa; if (plvi->mask & ~(LVIF_DI_SETITEM | LVIF_TEXT | LVIF_IMAGE | LVIF_STATE)) { …

Docker基础篇——Ubuntu下Docker安装

大家好我是木木&#xff0c;在当今快速发展的云计算与云原生时代&#xff0c;容器化技术蓬勃兴起&#xff0c;Docker 作为实现容器化的主流工具之一&#xff0c;为开发者和运维人员带来了极大的便捷 。下面我们一起进行Docker安装。 Docker的官方Ubuntu安装文档&#xff0c;如…