1.1.引言
随着大模型的发展,智能体Agent越来越成为通往AGI通用人工智能的路径之一。所谓通用人工智能,可以用一句话概括,即具有自主感知,独立思考,自动化行动能力。你看,这不就是描述人类自身吗?
基于此,业界也有了越来越多的智能体开发框架和低代码平台,比如扣子,比如Dify,比如Langchain,比如AutoGPT,以及我们这篇文章的主角MetaGPT。事实上还有更多,我这里仅仅列了几个代表。这些框架,可以分为两类:
- 一类是针对ChatBot,即机器人应用,做问答,对话,比如客服场景。相应框架:扣子,Dify,Langchain
- 一类是针对Autonomous Agent,即自主智能体应用。相应框架:AutoGPT,MetaGPT
两类框架时间分界线,2024年以前舞台中央属于ChatBot类框架,2024年开始舞台中央逐渐倾斜向Autonomous Agent类框架。当然于框架而言,并不是黑白之分只能开发ChatBot应用,或是只能开发Autonomous Agent应用,而是说框架的发展基因重点而言。
比如Langchain发展了LangGraph专门针对Autonomous Atent应用开发,我使用Langchain框架有一段时间了,后续找时间出一些文章分享一下使用心得。
回到今天的主题,今天这篇文章的主角是MetaGPT,国内开源的轻量级智能体开发框架,发展很迅速,框架设计理念和成熟度都很优秀,官方还配套有详尽文档,非常值得关注。
当然,新的框架在使用中难免是要踩一些坑的,MetaGPT在不同的操作系统平台,不同安装使用方式会有一些差异,官方文档主要是针对Linux系统,这没有问题!毕竟于AI领域,首选还是要Linux系统。
另外我们在学习,和开发过程中很多朋友的是windows系统,对于windows系统我已经踩了一遍坑了,所以把相关内容整理出来做一个分享,避免更多的朋友再踩坑!
1.2.MetaGPT介绍
关于MetaGPT,首先给两个地址,一个是项目开源的github地址:github.com/FoundationA…;一个是官方文档地址:docs.deepwisdom.ai/main/zh/gui…。
不管使用什么框架,我的建议是最好先看看官方文档,从官方文档我们可以知道它是什么,可以做什么,最后才是考虑怎么做。
我们来看官方的介绍:
MetaGPT是一个多智能体协作框架,官方介绍以软件公司为列,我们需要抛弃侠义的理解,不要理解成局限于就是一个软件公司,它想要表达的场景是,实现团队,多角色协同工作。
这里有两个核心的概念:智能体,多智能体。
什么是智能体?
什么是多智能体?
一个例子:
示例描述,展示了智能体如何工作:
- 在环境中,存在三个智能体Alice、Bob和Charlie,它们相互作用。
- 他们可以将消息或行动的输出结果发布到环境中,同时也会被其他智能体观察到。
- 下面将揭示智能体Charlie的内部过程,该过程同样适用于Alice和Bob。
- 在内部,智能体Charlie具备我们上述所介绍的部分组件,如LLM、观察、思考、行动。Charlie思考和行动的过程可以由LLM驱动,并且还能在行动的过程中使用工具。
- Charlie观察来自Alice的相关文件和来自Bob的需求,获取有帮助的记忆,思考如何编写代码,执行写代码的行动,最终发布结果。
- Charlie通过将结果发布到环境中以通知Bob。Bob在接收后回复了一句赞美的话
1.3.环境准备
了解了MetaGPT是什么,可以做什么后。下面我们来准备具体的环境,然后跑一个入门示例。这才是重点!
官方文档上有环境相关的内容,非常详细,可以参考:docs.deepwisdom.ai/main/zh/gui…。
我们这里以windows为例,在windows准备MetaGPT环境,需要关注两个地方,一个是修改注册表支持长路径;再一个是当前因为MetaGPT框架自身在快速发展,在即将发布的1.0大版本中,与当前0.8.x版本差别较大,当前直接通过
pip install metagpt
方式安装,可能会不成功。需要从源码的方式安装,从源码方式安装,我需要将分支切换到0.8.x系列版本,才能配套运行当前大多数官方示例。
1.3.1.修改注册表
修改注册表这个事情,我是怎么知道的呢?直接安装报错!这里重点不是解决了这个问题,重点是解决的方式。当我们在使用开源框架碰到问题的时候,不要忘了github中的issue。
你碰到的问题,大概率别人都碰到过了,你搜索一下,即便搜索不到,可以提一个新的issue,通常社区会给出解决方案。这就是开源的力量!
比如注册表这个事情,相对应的issue:github.com/FoundationA…
我本地已经修改过了:
1.3.2.克隆源码
克隆源码,需要安装使用git,开发人员最基础的工具,这个默认大家都会了。打开官方仓库,拷贝克隆地址
最新代码分支:main,为了配套使用0.8.x版本,我们需要切换分支
本地操作切换如下,这是我本地克隆下来的MetaGPT源码
我本地当前已经是0.8.x版本。如果你的不是,可以使用命令:git checkout origin/v0.8-release
1.3.3.安装,运行
到此外部环境,包括源码都已经到位,我们执行安装。这是我给MetaGPT准备示例项目环境
用pycharm打开项目
在控制台,执行如下命令,安装MetaGPT
pip install -e "../MetaGPT" --config-settings editable_mode=compat
依赖有点多,安装需要耐心等待,可以做点别的喜欢的事情再回来!
安装完成,可以查看一下相关的依赖:pip list
运行一个示例看看吧。运行前需要准备一下llm配置,MetaGPT默认配置加载规则
我本地准备好的配置,在操作系统用户目录下
我配置了智谱清言的大模型glm-4。一切准备就绪,跑一个官方的示例: write a cli blackjack game 。我们要求它写一个21点游戏代码。
在控制台,执行命令
metagpt "write a cli blackjack game" > blackjack.txt
执行过程需要时间,耐心等待去做点别的事再回来
最终结果,MetaGPT能帮助我们拆解任务,并最终完成开发任务
自动产出21点游戏项目完整工程代码
当然,入门程序我们跑的是一个官方内置好的Agent示例应用,再下一篇文章,我会给你分享一个我们自己通过MetaGPT框架,来开发一个自己的智能体应用。