十大热门开源Agent项目:探索autoGPT、metaGPT和autoGen

发表时间: 2024-05-08 06:22

我把开源Agent分为3类:自动agent、半自动agent、领域、自定义sop和支持人为干预的agent。先泼个冷水,目前这些agent项目都是实验品,发展还没有做知识库问答相关开源项目那么成熟,github的社区issue也很少,遇到部署问题容易找不到解决方法,几乎没几个可以部署的

这里我以个人部署、开发的角度列出最近这1年来很火的Agents,以前是LLM火,现在最火的则是这些AI Agent。。个人不倾向于全自动的,现在一直在找一个成熟的可部署的,可人工干预的sop开源agent项目,这篇文章顺便把找的过程中看到的东西分享出来

全自动agent:autoGPT、loopGPT、babyAGI

autoGPT、loopGPT

全自动agent就是人类不可控制,生成结果的流程也无法干预、调整,规则、流程都是封闭起来的,用户能做的只是输入一个问题

AutoGPT用户能做的就是改个名字,流程完全不可控,大模型需要openai的api key,好多朋友评论说autoGPT就是个openai api的印钞机,实际生产效果并不好,更像一个玩具


autoGPT部署截图


loopGPT也是autoGPT,在以下方面做了升级:

  • 在使用token上做了优化,让它不费太多的token
  • 允许人类中间稍稍纠正方向
  • 中断回答时能保留当前模型状态的记忆

建议大家想跑AutoGPT时,先试试LoopGPT,至少Loop还可以有自定义的prompt。建议这种全自动Agent,大家看看就行。想要好的生成效果就算了


Loop部署


babyAGI

跟camel一样,都能根据用户指令来拆解。不过camel只是把用户指令说得更清楚,而babyAGI则拆解成一个个任务,用大模型一个一个地把这些任务执行完。而不是像camel没有把任务分得那么细,让2个甚至3个智能体自动在对话中执行任务,由此看来,这两个在逻辑框架都不一样,另外,babyAGI需要向量数据库来存储,除了llm的api,还需要向量数据库的api

BabyAGI任务循环执行以下步骤:

  1. 从任务列表中提取第一个任务;
  2. 将任务发送给执行代理, 该代理使用 OpenAI API 根据上下文完成任务;
  3. 整理结果并将其存储在 Pinecone /weaviate等向量数据库中;
  4. 基于目标和前一个任务的结果创建新任务, 并根据优先级对任务列表进行排序

支持openai系列模型和llama系列模型

在提供的google colab源代码中,主要功能模块就是task分解agent和执行agent


个人感觉camel要比babyagi好些,可以自定义的地方稍稍多点,适合不复杂、对准确性要求并不太高、发散性的应用场景,我都想部署部署camel用作标题、选题等灵感生成

半自动agent:camel

半自动agent在程序调用、agent角色设定、甚至sop至少可以部分修改,不是全封闭好的

camel

camel的可部署性、部署价值要比上面提到的 autoGPT、loopGPT强,社区也更成熟

特色是引入了2个机器人角色来交流对话角色扮演,用户除了设定目标,也可以设定这两个机器人的角色(具体角色除了框架已经提供的,开发人员应该也能自己进行修改,还可以自己增加角色数量)

还可以添加专门负责api工具调用的agent-----可以浏览互联网、阅读文档、创建图像、音频和视频、图像识别等内容,甚至可以直接执行代码这个就需要有开发经验,自己根据这个框架做增添,在代码里改,也可以加上向量数据库等,from camel.utils import
role_playing_with_function
提供函数调用

下面的例子是用户让发明一个针对股票的交易机器人,agent在用task specifier详细分解需要的任务后,一个担任ai user也就是股票交易员,一个担任ai assistant,就是负责写程序代码的,这两个机器人之间交互

camel官方说明图

在执行中,人类也不可中间干预,两个机器人会一直沟通直到所有程序都执行完


除了openai的key,目前支持的开源大模型:vicuña系列;llama 2系列;有api服务,可以作为应用后端部署;不用向量数据库

大家部署前可以先去https://www.camel-ai.org/官网体验下,看是不是符合自己需求 下面choose the society可以选code和society,code模式下,assistant机器人的角色就是c++,python这些编程语言

camel ai 官网

user role则还是提前设定好的律师、医生、股票交易员等society模式下的角色。下面的give me a preliminary 就是我们想要这些agent做的,比如写个贪吃蛇游戏

with task specifier可勾选,选择了就会把用户的指令进行进一步拆解后再交给agent,word limit for task specifier设置task specifier生成字数的限制

领域agent:chatDev、metaGPT

目前agent流程只适用于特定领域,尤其是代码生成和编程,这两个开源项目都是让一群agent程序员来构建软件。角色已经设定:

chatDev包括执行官,产品官,技术官,程序员 ,审查员,测试员,设计师 等。这些智能体形成了一个多智能体组织结构,其使命是“通过编程改变数字世界”。ChatDev内的智能体通过参加专业的功能研讨会来 协作,包括设计、编码、测试和文档编写等任务

MetaGPT输入一句话的老板需求,输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等 MetaGPT内部包括产品经理 / 架构师 / 项目经理 / 工程师,它提供了一个软件公司的全过程与精心调配的SOP

这两个都是国产的,部署、社区上更成熟些,适合有这方面AI编程需求的部署。我这边对这两个项目没什么需求

这两个项目亮眼的还是sop的引进,可以自定义sop,即使自局限于他们提供的这些角色,是对camel的一个发展

自定义agent:superAGI、autoGen、agents、swarms

SuperAGI

可自定义模型、知识库和工具

superAGI要比上面提到的哪个都成熟,目前已经有了根据superAGI开发的商用产品了,可惜就是国外的,对国产模型和应用支持不好。国产想要可自定义模型、知识库和工具,可以去看fastGPT,虽然主要是针对知识库调用的,也是有自定义模型、工具甚至sop自定义的,我个人部署过,效果要比autoGen、agents好多了

superAGI功能:

  • 提供、生成和部署自主 AI agent
  • 使用工具调用
  • 无缝运行并发代理
  • 图形用户界面
  • 操作控制台
  • 多向量数据库
  • 多模式代理
  • 代理轨迹微调
  • 性能遥测
  • 优化token使用,更节省token
  • 代理内存存储
  • 循环检测启发式
  • 并发代理
  • 资源管理器

支持以下这些工具调用,包括Notion 、twitter、duckduckgo、slack、Instagram等国外主流app

接入可以从项目的config文件看出,需要相应应用的api key

除此之外基本的openai api、向量数据库api,用到replicate、huggingface的模型需要replicate、huggingface的api

superAGI需要的api

在配置agent时,可以自定义知识库、工具调用、model和基本的description、name和goals。这些我在国产的fastGPT上也见过,就是工具调用没有superAGI方便

SuperAGI自己配置agent可以修改的参数

可以自己添加知识库、model和tool,虽然没有sop,但这种自定义程度已经算高了

autoGen

除了自定义模型、知识库、工具,还可以sop自定义和人为中间干预,但是目前我部署有个bug,改版本作了升级理当需要openai 1版本以上的,实际运营命令又说要低配版本,就中途暂停了

大家可以试试autoGen,玩好了能做很多有实际价值的应用

aiwaves波形智能的agents

这个复杂点,不仅可以设定自定义数量的自定义角色,还可以自己修改这些角色之间的对话关系,加入人类纠正在里面也行,很自定义的开源项目。我部署也遇到问题chatGLM3和meta的api出现422问题,目前社区也不成熟,就卡在那了,这个项目也是很有部署价值的

我部署agents遇到的问题

不过现在也已经有人根据这个项目在做销售机器人了

项目提供的代码实例就有很多个,包括类似chatDEV和metaGPT的IT机器人,也有单个的电商机器人

swarms

自定义模型、工具调用、sop停止条件、回答循环次数,像agents一样既可以只有一个agent,也可以有多个agent

swarms官方代码截图

多个agent设置,代码要比agents简单很多

缺点是这个项目比较新,社区不成熟,可以关注关注


综上,在列举的这10个agent中,最下面的4个自定义agent最有应用价值,autogen社区更成熟,superAGI又是国外的,aiwaves的agents和swarms又不太成熟

ps:上面的agent都在github中