MetaGPT智能体开发入门1-环境搭建&AI Agent知识

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:


image.png

下面是运行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+评审+路由+订阅+经济(详见相关资料)

image.png

其中,SOP(标准流程)在多智能体协作中起到非常关键的作用。

智能体的未来机会

1. Agent是新的高级物种,为了实现类人智能,大语言模型实现了人脑的20%,我们需要构建AgentStack补齐剩余的80%

2. 99%的互联网入口将由App变为Agent:人类感知的字节数降低到极限

不久的将来,一种可能得场景是不同的公司将提供不通行业的专业智能体,并发布到智能体市场,比如可以雇佣由产品经理+架构师+开发者+测试人员多智能体开发团队完成一个开发项目。目前MetaGPT可以生成100行左右的代码,根据MetaGPT的ROADMAP,短期将会完成2000行中等规模项目的代码生成,这个工作量大概是80人周,所以每个人都应该考虑掌握AI相关的技术,学习LLM、Agent相关技术,特别是MetaGPT这么优秀的框架,以便在未来激烈的竞争中不被抛弃!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容