这篇文章介绍一个开源的Agent框架-微软的Autogen。
一,Autogen简介
- 官网:https://microsoft.github.io/autogen/
- git:http://github.com/microsoft/autogen
- discord:https://discord.com/invite/pAbnFJrkgZ
GPTs这么强大,不是挺好吗?为什么要开源的智能体Autogen框架呢?那
GPTs背靠OpenAI,的确非常强悍,但是也有弊端,弊端就在于它完全依赖于ChatGPT,而对于ChatGPT,我们只能在应用层调用其API,无法在大模型层面做一些个性化的调整,比如想让大模型在回答问题的过程中调用本地的应用。
GPTs做不到,但是Autogen框架可以做到。
Autogen可以对接商业化模型,如OpenAI;也可以对接开源的模型,比如说本地部署的KoDrama、WitherCoder、DeepSeek、通义千问。
Autogen可以简单理解为是一个GPTs的一个本地化平替。
Autogen提供一个可视化的UI界面Autogen Studio,提供模型配置、能力配置、工作流配置等能力。通过这些能力,可以实现类似GPTs的功能。
二,Autogen原理
1,Autogen原理图解
接下来,先通过官网的一个例子来理解Autogen的设计架构以及工作原理。
下图是官网提供的一个Autogen智能体架构图。
如上图左侧,Autogen框架默认提供两个agent:
- 一个用户代理,User Proxy Agent
- 一个助理代理,Assistant Agent
工作流程描述如下:
- 用户提出一个需求
- 用户代理接收到需求后,发给助理
- 助理接收到需求后,进行总体规划设计,将这个需求拆解为多个步骤,规定每个步骤需要执行的任务
- 助理将规划整体返回给用户代理
- 用户代理按照规划按步骤执行,执行的过程中,可以持续、多次与助理进行沟通,调整任务的具体内容
2,拆解Autogen是如何完成绘制特斯拉股票趋势图的
以上图中的业务场景为例,用户要求绘制特斯拉最近一年的股票价格的变化趋势图。
助理对这个需求进行拆解,之后的交互过程如下:
- 助理告知用户代理第一个步骤是执行一段代码
- 用户代理执行助理提供的代码
- 用户代理将执行的过程中出现错误的错误反馈给助理
- 助理给出解决方案,提供一个脚本
- 用户代理执行这个脚本后,重新执行代码,成功画出趋势图
- 用户代理对结果进行反馈,需要对结果进行调整,要求绘制百分比趋势图
- 助理接收到反馈后,调整任务内容,给出新的代码
- 用户代理执行新的代码,绘制出满足要求的趋势图
这就是Autogen的工作原理,两个agent协同工作, 完成用户需求。
这是最简单的场景,只涉及两个智能体的交互,实际上Autogen框架支持多智能体间的复杂交互。
相当于可以创建一个公司,这个公司的工作不是由具体的物理世界的人完成的,而是由多个具有不同能力的智能体完成的,每个智能体就像是一个人一样,他们之间也可以像人一样相互写作,完成一个个复杂的任务。
后续将介绍多智能体的交换案例。