依旧照例先感谢前辈们的慷慨分享。
今天学习的是这篇文章↓
原文:转自公主号“博金斯的AI笔记”
—《10个最受欢迎的开源Agent项目,autoGPT、metaGPT、autoGen…》
文章目录
一、全自动agent:autoGPT、loopGPT、babyAGI
autoGPT、loopGPT
全自动agent就是人类不可控制,生成结果的流程也无法干预、调整,规则、流程都是封闭起来的,用户能做的只是输入一个问题。
AutoGPT用户能做的就是改个名字,流程完全不可控,大模型需要openai的api key,好多朋友评论说autoGPT就是个openai api的印钞机,实际生产效果并不好,更像一个玩具
- loopGPT也是autoGPT,在以下方面做了升级:
- 在使用token上做了优化,让它不费太多的token
- 允许人类中间稍稍纠正方向
- 中断回答时能保留当前模型状态的记忆
建议大家想跑AutoGPT时,先试试LoopGPT,至少Loop还可以有自定义的prompt。建议这种全自动Agent,大家看看就行。想要好的生成效果就算了
babyAGI
跟camel一样,都能根据用户指令来拆解。不过camel只是把用户指令说得更清楚,而babyAGI则拆解成一个个任务,用大模型一个一个地把这些任务执行完。而不是像camel没有把任务分得那么细,让2个甚至3个智能体自动在对话中执行任务,由此看来,这两个在逻辑框架都不一样,另外,babyAGI需要向量数据库来存储,除了llm的api,还需要向量数据库的api
BabyAGI任务循环执行以下步骤:
- 从任务列表中提取第一个任务;
- 将任务发送给执行代理, 该代理使用 OpenAI API 根据上下文完成任务;
- 整理结果并将其存储在Pinecone /weaviate等向量数据库中;
- 基于目标和前一个任务的结果创建新任务, 并根据优先级对任务列表进行排序
支持openai系列模型和llama系列模型
个人感觉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方便。
可以自己添加知识库、model和tool,虽然没有sop,但这种自定义程度已经算高了
autoGen
除了自定义模型、知识库、工具,还可以sop自定义和人为中间干预,但是目前我部署有个bug,改版本作了升级理当需要openai 1版本以上的,实际运营命令又说要低配版本,就中途暂停了
aiwaves波形智能的agents
这个复杂点,不仅可以设定自定义数量的自定义角色,还可以自己修改这些角色之间的对话关系,加入人类纠正在里面也行,很自定义的开源项目。我部署也遇到问题chatGLM3和meta的api出现422问题,目前社区也不成熟,就卡在那了,这个项目也是很有部署价值的
swarms
自定义模型、工具调用、sop停止条件、回答循环次数,像agents一样既可以只有一个agent,也可以有多个agent
综上,在列举的这10个agent中,最下面的4个自定义agent最有应用价值,autogen社区更成熟,superAGI又是国外的,aiwaves的agents和swarms又不太成熟
ps:上面的agent都在github中
《依旧看的晕晕的 需要确定下部署LLM的具体步骤啦》