微信扫码
与创始人交个朋友
我要投稿
前言:
迈入人工智能Agent开发这个新坑一个多月,踩了无数坑。开始作文纪念,与LLM共同进步的日子。今天先记录下用于agnet开发的两个框架:AutoGen和crewAI。
AutoGen和CrewAI都是当前很热门的人工智能Agent开发工具,所以,哪一个更适合你?
AutoGen和crewAI的共同点:
都使用Python编程语言;
都用于创建人工智能Agent应用程序;
都支持多代理对话;
都可以和本地LLM集成;
都可以在执行过程中允许人工输入;
都使用工具或函数来完成特定任务;
代理如何确定是使用现有工具还是使用LLM
AutoGen的特性
AutoGen这个名称估计是是Autogenous的缩写,意思是“从内部或从事物本身产生”。微软于2023年10月与宾夕法尼亚州立大学和华盛顿大学的团队合作发布了它,是比较早诞生的人工智能Agent框架。
AutoGen的LOGO
官方对AutoGen的描述是:
AutoGen is a framework that enables the development of LLM applications using multiple agents that can converse with each other to solve tasks. AutoGen agents are customizable, conversable, and seamlessly allow human participation. They can operate in various modes that employ combinations of LLMs, human inputs, and tools.
粗略翻译一下就是:
AutoGen 是一个框架,可以使用多个代理开发 LLM 应用程序,这些代理可以相互对话以解决任务。AutoGen 代理可定制、可对话,并允许人类无缝参与。它们可以在各种模式下运行,结合使用 LLM、人类输入和工具。
AutoGen的一个不可忽视的重要特性就是能够在Docker容器中执行代码。这保证了您的环境的安全性,并隔离了任何意外问题,不要低估这个特性,这是执行LLM生成的代码时的一个严重问题,关系到安全。
AutoGen的代理之间如何通信
人工智能多代理应用程序的全部意义在于给代理们一个问题,让他们一起工作直到解决问题。在 AutoGen 中,代理们是如何交流和协助的呢?
以下是AutoGen中支持的会话模式列表:
双代理聊天模式:这是最简单的模式。它涉及两个代理,通常是一个UserProxyAgent和一个AssistantAgent。
顺序聊天模式:这种模式下同样也是对于每个任务分配两个代理,这是因为顺序聊天就像一连串的对话,其中每一次新的对话都是以对前一次对话内容的总结概要开始的。
群聊模式:这种模式涉及一组位于池中的代理,然而,它们并不是单独工作的。一个名为 GroupChatManager 的特殊“管理器”代理负责协调何时以及由哪个代理处理消息。管理器支持以下几种策略:
自动(Auto)
手动(Manual)
随机(Random)
轮询(Round robin)
嵌套聊天模式:可以将其视为一个“子对话”或处理问题中特定问题的独立流程,然后将子对话的总结返回给发起者。例如,当你在应用程序上订餐要求外送时,餐厅和接单的司机之间可能会有一段对话,你并不参与其中,但你会收到关于这一交流的总结,即你的订单已完成并正在路上。
AutoGen代理如何执行任务
AutoGen代理使用工具执行操作。虽然代理可以使用LLM的帮助来生成代码,但在大多数情况下,特别是如果您知道如何处理特定任务(如发送电子邮件),则可以为代理提供自己的代码(即工具)。
假设您需要一个代理来发送电子邮件。最明显的方法是注册一个send_email函数,让你的代理使用它。它将包括你的SMTP和其他设置。
CrewAI介绍
crewAI的LOGO
"crew"-AI 指的是人工智能代理组成的一个团队。由João Moura于2023年11月14日发布,crewAI在GitHub上获得了超过13.2k颗星的人气。它通常被认为是AutoGen的一个更简单、更有组织的替代方案。
以下是官方的介绍和描述:
Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks.
简单翻译如下:
用于编排角色扮演、自主AI代理的尖端框架。通过培养协作智能,CrewAI使智能体能够无缝协作,处理复杂的任务。
有两个值得留意的crewAI特性:第一,预期输出,它为任务指定输出以确保期望的结果(例如,可以要求以项目符号列表形式输出而不是段落形式);第二,委派,即当其他代理更适合处理任务时,代理会将任务转交给它们。
crewAI代理如何执行任务
crewAI带有内置工具,使代理能够执行任务。您可以将工具视为代理在遇到工具可以解决的问题时使用的技能或功能。
例如,如果代理需要搜索网站的内容,它可以使用内置的WebsiteSearchTool。
如果你对内置的工具不满意,crewAI可以让你定义你的自定义工具,或者你可以从许多LangChain工具中选择,因为crewAI是建立在LangChain之上的。
crewAI agents 之间如何交流
crewAI目前有两种模式:
顺序模式:这种模式确保以线性顺序执行任务,其中每一步都依赖于前一步。例如,抓取网页,总结其内容,然后通过电子邮件发送摘要。
分层模式:这是一种更高级的模式,其中一个由大型语言模型(LLM)驱动的代理充当“管理器”,负责分配任务、验证输出以及协调代理之间的通信。可以把它想象成 AutoGen 中的群聊模式。
最后,crewAI还是AutoGen,怎样选择?
虽然两者都有各自的优势,但 crewAI 在其模块化设计、代理间的任务委派以及其与 LangChain 的本地集成方面的优势是独一无二的。另一方面,AutoGen 在安全性方面因其支持容器化的代码执行而成为赢家。这两种工具都能与 OpenAI 以及本地的大型语言模型(LLM)无缝集成。
我个人而言,我发现从crewAI入手,稍微容易一些,我暂时选择crewAI,但当我面临安全性考虑的时候,我也会尝试AutoGen。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-03-30
2024-04-26
2024-05-10
2024-04-12
2024-05-28
2024-05-14
2024-04-25
2024-07-18
2024-04-26
2024-05-06
2024-12-22
2024-12-21
2024-12-21
2024-12-21
2024-12-21
2024-12-20
2024-12-20
2024-12-19