我把开源Agent分为3类:自动agent、半自动agent、领域、自定义sop和支持人为干预的agent。先泼个冷水,目前这些agent项目都是实验品,发展还没有做知识库问答相关开源项目那么成熟,github的社区issue也很少,遇到部署问题容易找不到解决方法,几乎没几个可以部署的
这里我以个人部署、开发的角度列出最近这1年来很火的Agents,以前是LLM火,现在最火的则是这些AI Agent。。个人不倾向于全自动的,现在一直在找一个成熟的可部署的,可人工干预的sop开源agent项目,这篇文章顺便把找的过程中看到的东西分享出来
全自动agent就是人类不可控制,生成结果的流程也无法干预、调整,规则、流程都是封闭起来的,用户能做的只是输入一个问题
AutoGPT用户能做的就是改个名字,流程完全不可控,大模型需要openai的api key,好多朋友评论说autoGPT就是个openai api的印钞机,实际生产效果并不好,更像一个玩具
autoGPT部署截图
loopGPT也是autoGPT,在以下方面做了升级:
建议大家想跑AutoGPT时,先试试LoopGPT,至少Loop还可以有自定义的prompt。建议这种全自动Agent,大家看看就行。想要好的生成效果就算了
Loop部署
跟camel一样,都能根据用户指令来拆解。不过camel只是把用户指令说得更清楚,而babyAGI则拆解成一个个任务,用大模型一个一个地把这些任务执行完。而不是像camel没有把任务分得那么细,让2个甚至3个智能体自动在对话中执行任务,由此看来,这两个在逻辑框架都不一样,另外,babyAGI需要向量数据库来存储,除了llm的api,还需要向量数据库的api
BabyAGI任务循环执行以下步骤:
支持openai系列模型和llama系列模型
在提供的google colab源代码中,主要功能模块就是task分解agent和执行agent
个人感觉camel要比babyagi好些,可以自定义的地方稍稍多点,适合不复杂、对准确性要求并不太高、发散性的应用场景,我都想部署部署camel用作标题、选题等灵感生成
半自动agent在程序调用、agent角色设定、甚至sop至少可以部分修改,不是全封闭好的
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流程只适用于特定领域,尤其是代码生成和编程,这两个开源项目都是让一群agent程序员来构建软件。角色已经设定:
chatDev包括执行官,产品官,技术官,程序员 ,审查员,测试员,设计师 等。这些智能体形成了一个多智能体组织结构,其使命是“通过编程改变数字世界”。ChatDev内的智能体通过参加专业的功能研讨会来 协作,包括设计、编码、测试和文档编写等任务
MetaGPT输入一句话的老板需求,输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等 MetaGPT内部包括产品经理 / 架构师 / 项目经理 / 工程师,它提供了一个软件公司的全过程与精心调配的SOP
这两个都是国产的,部署、社区上更成熟些,适合有这方面AI编程需求的部署。我这边对这两个项目没什么需求
这两个项目亮眼的还是sop的引进,可以自定义sop,即使自局限于他们提供的这些角色,是对camel的一个发展
可自定义模型、知识库和工具
superAGI要比上面提到的哪个都成熟,目前已经有了根据superAGI开发的商用产品了,可惜就是国外的,对国产模型和应用支持不好。国产想要可自定义模型、知识库和工具,可以去看fastGPT,虽然主要是针对知识库调用的,也是有自定义模型、工具甚至sop自定义的,我个人部署过,效果要比autoGen、agents好多了
superAGI功能:
支持以下这些工具调用,包括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,但这种自定义程度已经算高了
除了自定义模型、知识库、工具,还可以sop自定义和人为中间干预,但是目前我部署有个bug,改版本作了升级理当需要openai 1版本以上的,实际运营命令又说要低配版本,就中途暂停了
大家可以试试autoGen,玩好了能做很多有实际价值的应用
这个复杂点,不仅可以设定自定义数量的自定义角色,还可以自己修改这些角色之间的对话关系,加入人类纠正在里面也行,很自定义的开源项目。我部署也遇到问题chatGLM3和meta的api出现422问题,目前社区也不成熟,就卡在那了,这个项目也是很有部署价值的
我部署agents遇到的问题
不过现在也已经有人根据这个项目在做销售机器人了
项目提供的代码实例就有很多个,包括类似chatDEV和metaGPT的IT机器人,也有单个的电商机器人
自定义模型、工具调用、sop停止条件、回答循环次数,像agents一样既可以只有一个agent,也可以有多个agent
swarms官方代码截图
多个agent设置,代码要比agents简单很多
缺点是这个项目比较新,社区不成熟,可以关注关注
综上,在列举的这10个agent中,最下面的4个自定义agent最有应用价值,autogen社区更成熟,superAGI又是国外的,aiwaves的agents和swarms又不太成熟
ps:上面的agent都在github中