新智元报道
编辑:桃子
【新智元导读】AutoGPT之后,AutoGen逆袭成功。
AI智能体热度,只增不减。
发布仅2周,微软、PSU和华盛顿大学等团队开发的智能体AutoGen瞬间登顶GitHub热榜,狂揽10k星。
这是一个让LLM智能体相互聊天,进而解决任务的框架,可定制、可对话,并允许人类无缝参与。
它还可以直接替代openai.Completion或openai.ChatCompletion作为增强型推理 API。
现在,你只需要几行代码,就能完成非常复杂的任务。
对此,研究人员还发布了一份关于AutoGen的43页技术报告。
论文地址:https://arxiv.org/pdf/2308.08155.pdf
接下来,一起来看看这个爆火项目背后的技术吧。
动嘴做任务
若想使用,首先得安装AutoGen。需要Python版本>=3.8版本,只需一步,非常简单。
代码语言:javascript复制pip install pyautogen
然后,就能上手用了。
比如,我想要一个股价可视化图,首先自定义一个「编码智能体」,能够下载数据并绘制图表。
然后,自定一个「user proxy agents」,去做跑代码、获取结果等任务。
最后一步,给定明确任务——绘制一份Meta和微软当前YTD股价图。
然后,两个智能体便开始对话,忙着去做表了。
当然了,不仅2个智能体,你还可以添加更多AI帮你干活,比如再自定义一个「产品经理」,让它去脑暴想法。
然后,使用它们一起查找最近一篇GPT-4的研究,以及关于其在软件中的应用。
接下来,3个智能体就开始「密谋」了。
以上的演示,仅是一个前菜。
根据技术报告,给出了通过AutoGen6个应用的构建,可以解决数学问题,检索增强型聊天、ALF聊天、多智能体编码、动态群组聊天、国际象棋对弈。
在自主解决数学问题上,研究人员通过AutoGen与AutoGPT、ChatGPT Plugin、ChatGPT Code Interpreter等进行了定性和定量评估。
通过在对MATH数据集中的2个数学问题评估中,每个LLM系统都在每个问题上测试了3次,只有AutoGen的胜率最高。
AutoGen框架
AutoGen背后的基本理念是,创建智能体,即由LLM(如GPT-4)驱动的编程模块。
这些智能体通过自然语言交互,以完成各种任务。
智能体可以通过提示工程,和外部工具对进行定制和增强,使其能够检索信息或执行代码。
借助AutoGen,开发人员可以创建一个「智能体生态系统」,这些智能体可以专门从事不同的任务并相互协作。
这一生态系统的一个简化视图是,将每个智能体视为一个单独的ChatGPT会话,并有独特的系统指令。
例如,一个智能体可以作为编程助手,根据用户请求生成Python代码。另一个智能体可以是代码审查员,负责获取Python代码片段并排除故障。
第一个智能体的响应可以作为输入,传递给第二个智能体。
其中一些智能体甚至可以访问外部工具,这相当于ChatGPT插件,如Code Interpreter或Wolfram Alpha。
AutoGen在这里的作用就是,为创建这些智能体并使它们能够自动交互提供了必要工具。
上图中,说明了如何使用AutoGen对多智能体对话进行编程。
最上面的子图展示了AutoGen提供的内置智能体,有统一的对话界面,并且可以自定义。
中间的子图展示了使用AutoGen开发具有自定义回复功能的「双智能体系统」的示例。底部的子图展示了程序执行期间,「双智能体系统」产生的自动智能体聊天。
另外,多智能体应用可以是完全自主的,但也可以通过「user proxy agents」进行调节。
「user proxy agents」允许用户介入AI智能体之间的对话,来监督和控制他们的过程。在某种程度上,人类用户变成了监督多个人工智能团队的团队领导者。
user agents适用于智能体框架必须做出敏感决策,并需要用户确认的应用程序,比如购买或发送电子邮件。
当智能体开始向错误的方向发展时,用户还可以帮其指引方向。例如,用户可以从最初的应用程序构想开始,在智能体的帮助下,在开始编写代码时逐步完善构想,添加或修改功能。
AutoGen的模块化架构,还允许开发人员创建可重复使用的通用组件,这些组件可以组合在一起,快速构建自定义应用程序。
有了多个AutoGen智能体,就可以协作完成复杂的任务。
假如你需要编写特定任务的代码,直接交给「编码助理智能体」。
对于用多个智能体编码的整个流程框架如下。
它可以生成并返回代码,然后user agents可以使用代码执行模块对代码进行验证。
然后,两个人工智能智能体可以一起排除代码故障,并生成最终的可执行版本,人类用户可以在任何时候打断或提供反馈。
这种协作方法可以显著提高效率。微软称,AutoGen可以将编码速度提高多达4倍。
此外,AutoGen还支持更复杂的场景和架构,比如LLM智能体的分层排列。
再比如,「群组聊天管理智能体」可以控制多个人类用户和LLM智能体之间的对话,并根据一系列规则在它们之间传递信息。
最后,研究人员还拿当前流行的智能体进行了对比,AutoGen的优势在于能够构建基础设施,允许灵活的对话模式,能够执行LLM生成的代码。
甚至,还可以让人工参与系统的执行过程。
项目作者
Chi Wang是这项研究的通讯作者,现任微软研究院首席研究员,目前的研究重点是LLMOps。
除了创建AutoGen开源库,他也创建了一个用于自动机器学习和调整的快速库FLAML,在微软内外被广泛使用,例如在Azure、Microsoft 365、Microsoft Fabric和Visual Studio中。
他曾在伊利诺伊大学香槟分校(UIUC)计算机科学系取得了博士学位,并在2015年获得SIGKDD数据科学/数据挖掘博士论文奖。
他曾在清华获得计算机科学学士学位。
网友上手体验
有网友通过AutoGen创建了一个「博客写作智能体」,并且还没有超过GPT4的最大/最小token限制。
它们大部分时间都在闲逛,聊着计划......AGI成真。
还有网友创建了一个「人工智能治疗师智能体」与人工智能角色的对话,所有脚本均由AI编辑生成。
为了验证概念,还有人用AutoGen创建了一个自我改进的智能体——AgentXP。
「它让我看到,很快它们就会自己编写。在它开始让我的电脑震动之前,已经自主运行了10次卷积代码。输出结果远远超出了我的预期。」
使用AutoGen智能体自动生成并运行代码,以创建细胞原子缩时摄影。
参考资料:
https://venturebeat.com/ai/microsofts-autogen-framework-allows-multiple-ai-agents-to-talk-to-each-other-and-complete-your-tasks/
https://github.com/microsoft/autogen