MetaGPT简介
MetaGPT 是基于大型语言模型(LLMs)的多智能体协作框架,GitHub地址https://github.com/geekan/MetaGPT 。
为什么这么关注这个项目
一是 理论基础 :可以在论文《METAGPT: META PROGRAMMING FOR A
MULTI-AGENT COLLABORATIVE FRAMEWORK》 详细了解
二是 项目的发起者 :首先要看这个开源项目的发起者背景也是很NB的。发起者吴承霖是90后。 2019 年,吴承霖开始创业,成立深度赋智,开发出了 AutoML 产品全自动 AI 中台;28 岁入选福布斯 30 位 30 岁以下精英和胡润 30 位 30 岁以下创业领袖,29 岁成为 CEO,拿到多个 AI 顶级竞赛的世界冠军,在人工智能顶级期刊 TPAMI 上发表论文。 作者在一个月内完成MetaGPT的核心框架4000多行Python代码(目前代码规模已增加到1.4万+),代码架构非常精炼,目前只有160个类和766个函数左右。之所以开源是因为他有着更高的眼光,Agent智能体大家已经基本上是公认为LLM后面的一个发展方向,那就是MetaGPT 的竞争者不是别人,而是OpenAI,让更多的人参与进来才有可能。只要贡献超过10行有效代码即可成为commiter,我目前应该算是有9行吧:)
说了这么多还是看看怎么使用吧
环境搭建
这些是基本操作,只做简单的记录。
首先将代码clone到本地
git clone https://github.com/geekan/MetaGPT.git
使用你喜欢的IDE打开工程,MeataGPT是使用python写的,所以这里使用的是pycharm。
要运行项目中的例子,需要配置大模型的API,可以使用OpenAI, 或者Azure OpenAI、智谱AI,Azure OpenAI的好处是可以在国内使用,具体自己上网查阅。我这里使用的是国产的智谱AI,初次注册还赠送200万TOKEN,可以运行examples目录下大部分示例了。
有了API KEY就可以开干了,在config文件夹下修改config.yaml或复制config.yaml为key.yaml文件(防止敏感信息被误提交入口),建议配置在key.yaml,如下所示配置ZHIPUAI_API_KEY:
下面是运行build_customized_agent.py的日志:
D:\workspace\sourcecode\MetaGPT\venv\Scripts\python.exe D:\workspace\sourcecode\MetaGPT\examples\build_customized_agent.py
2024-01-14 18:25:15.903 | INFO | metagpt.const:get_metagpt_package_root:32 - Package root set to D:\workspace\sourcecode\MetaGPT
2024-01-14 18:25:16.122 | INFO | metagpt.config:get_default_llm_provider_enum:126 - API: LLMProviderEnum.ZHIPUAI
2024-01-14 18:25:20.527 | INFO | metagpt.config:get_default_llm_provider_enum:126 - API: LLMProviderEnum.ZHIPUAI
2024-01-14 18:25:20.531 | INFO | __main__:main:99 - write a function that calculates the product of a list and run it
2024-01-14 18:25:20.536 | INFO | __main__:_act:83 - Alice(RunnableCoder): to do SimpleWriteCode(SimpleWriteCode)
def list_product(lst):
product = 1
for num in lst:
product *= num
return product
# Test case 1
test_list1 = [2, 3, 4, 5]
expected_result1 = 120
assert list_product(test_list1) == expected_result1, f"Expected {expected_result1}, but got {list_product(test_list1)}"
# Test case 2
test_list2 = [-2, 3, -4, 5]
expected_result2 = -30
assert list_product(test_list2) == expected_result2, f"Expected {expected_result2}, but got {list_product(test_list2)}"
print("Test Case 1: Passed")
print("Test Case 2: Passed")
runnable_test_case1 = [2, 3, 4, 5]
runnable_test_case2 = [-2, 3, -4, 5]
runnable_test_cases = [
runnable_test_case1,
runnable_test_case2
]
for test_case in runnable_test_cases:
print(f"Product of {test_case} is {list_product(test_case)}")
2024-01-14 18:25:35.627 | INFO | metagpt.utils.cost_manager:update_cost:48 - Total running cost: $0.000 | Max budget: $10.000 | Current cost: $0.000, prompt_tokens: 55, completion_tokens: 330
2024-01-14 18:25:35.628 | INFO | __main__:_act:83 - Alice(RunnableCoder): to do SimpleRunCode(SimpleRunCode)
2024-01-14 18:25:35.899 | INFO | __main__:run:50 - code_result=''
2024-01-14 18:25:35.901 | INFO | __main__:main:101 - RunnableCoder:
其他例子可以自行探索。
AI Agent知识
什么是智能体?
智能体 = LLM+观察+思考+行动+记忆
多智能体 = 智能体+环境+SOP+评审+路由+订阅+经济(详见相关资料)
其中,SOP(标准流程)在多智能体协作中起到非常关键的作用。
智能体的未来机会
1. Agent是新的高级物种,为了实现类人智能,大语言模型实现了人脑的20%,我们需要构建AgentStack补齐剩余的80%
2. 99%的互联网入口将由App变为Agent:人类感知的字节数降低到极限
不久的将来,一种可能得场景是不同的公司将提供不通行业的专业智能体,并发布到智能体市场,比如可以雇佣由产品经理+架构师+开发者+测试人员多智能体开发团队完成一个开发项目。目前MetaGPT可以生成100行左右的代码,根据MetaGPT的ROADMAP,短期将会完成2000行中等规模项目的代码生成,这个工作量大概是80人周,所以每个人都应该考虑掌握AI相关的技术,学习LLM、Agent相关技术,特别是MetaGPT这么优秀的框架,以便在未来激烈的竞争中不被抛弃!