MetaGPT教程学习笔记

官方文档:

MetaGPT: 多智能体框架 | MetaGPT

学习手册及教程:

Docs

Docs


第一章 前期准备

安装提供了两种方式,pip和github安装包。

配置也提供了两种方式,执行命令或在config.yaml中修改,需提前获取API key。

或者适配国内的大模型。

 

第二章 AI agent知识体系结构

智能体 = LLM+观察+思考+行动+记忆

多智能体 = 智能体+环境+SOP+评审+路由+订阅+经济。

智能体及智能体案例;

菜单式交互界面变为Agent交互界面;搜索引擎的另一种方式。

思考的树状结构。

ZeroShot零样本学习。

agent像一个类,包含属性和方法,可以与其他类进行交互。

 

第三章 metaGPT框架组件介绍

角色role类被抽象为agent。单agent和多agent。

相对于其他类多了观察和思考功能,自行规划后续动作。

单动作agent-生成代码:

场景:输入需求,执行代码。

两个类SimpleCoder(Role);SimpleWriteCode(Action)。

重写上述两个类。继承的Role和Action中有很多方法,单看修改后的代码不知道整个代码的运行动作,即执行run后,不知道run后都调用了哪些方法。

对消息、观察进行了封装。run方法怎么引用act方法的没看懂。

多动作agent:

场景:输入需求,并执行代码(在本地执行),返回执行结果。

怎么依次执行writeCode和runCode这两个动作的,没看懂。

复杂agent:

场景:写长文档,先让大模型生成文档目录,再基于目录的二级标题进行分块,对于每个小标题生成消息内容,最后将标题与内容进行拼接,解决大模型长文本限制问题。

开发流程:写大纲、基于大纲写内容、角色控制整个过程。

 

第四章:OSS-订阅智能体

业务场景:爬取github-trending上的信息,只筛选前几条,通过discord或wechat发送。

开发流程:爬取网页、解析网页、大模型解析总结、将总结的内容定时发送、discord/wechat接口、角色串联整个动作。

大模型的作用是进行了解析和总结。如果没有大模型,也能实现。

订阅智能体的实现过程:要分别完成SubscriptionRunner运行需要的三个要素:Role、Trigger、Callback,Trigger是触发器,我们实现了一个定时触发器,Callback是回调函数,我们实现了将消息发送到discord/微信,Callback,Trigger这二者比较固定,实现后可以复用.

 

第五章 ActionNode

树状CoT(思维链)。

业务场景:设计一款贪吃蛇的游戏,把不同的流程分给不同的ActionNode。感觉意义不大。属于action类的细分,action类可以实现这样的特点,没必要再添加一个单独的特殊类。

优点为可简化对Action的重新修改,省很多重复代码。

 

第六章 订阅智能体进阶

Role变得通用呢?可以有两个思路:1. 我们实现一个智能体,它可以爬取我们要求的任意网站,然后进行数据的分析,最后再总结;2. 实现一个可以写订阅智能体代码的智能体,这个智能体可以浏览我们需要爬取的网页,写爬虫和网页信息提取的代码,生成Role,甚至根据我们的订阅需求,直接完整调用SubscriptionRunner,实现我们的订阅需求

使用了aiohttp成功爬取了Github Trending的数据,爬取动态网页或有反爬机制实现起来成本太高,可以使用浏览器自动化的方式来爬取网页,从而让我们的网页爬取实现更加简单,python中也有很多的浏览器自动化工具,例如Selenium、Playwright,浏览器自动化是通过编程方式控制和操作浏览器的过程,即通过浏览器直接打开网页,所以正常人可以浏览的页面,基本都可以通过这个方式进行爬取。

但不能找到一个通用的网页特定信息提取方式。所以用思路2——先写爬虫代码。困难点:html内容过长;token容易消耗过多。解决方案:添加一个网页数据分析的Action,并提一个需求实现自动写爬虫,类似爬虫工程师的角色。

如果遇到反爬或动态网页,大模型也不太好解决。

 

总结:该教程介绍了智能体agent,MetaGPT框架。通过智能体的角度将业务场景抽象为角色执行类需求。

各举例场景:

单动作智能体基于需求写代码;多动作智能体基于需求写完代码后,还能再执行下代码;复制智能体可以基于需求写大纲,并基于每个大纲的子标题写内容,最后再将内容拼接起来。

订阅智能体,爬取网页并将爬取内容转发到社交平台。用python就可以实现,通过智能体抽象后,爬取网页、解析网页、大模型理解并总结、触发定时爬取任务、回调函数爬取完成后发到社交平台等各个动作抽象为action,智能体串接和实现整个action。

ActionNode可简化继承和重写Action的相关代码,让COT(思维链)实现起来更简单丝滑。

订阅智能体进阶,目标是让订阅变得更通用,提一个想获取哪个网页的目的信息的需求,智能体能自动实现,方案是加了一个自动观察网页和写爬虫代码的动作,如果某些网页反爬机制比较严格,爬虫代码写不出来,该需求就实现不了了。

总体来看,该框架的Role、Action、Team、Message等抽象容易理解,并在一定程度上可以少写很多代码。感兴趣的点,产品经理、测试QA角色,以及如何通过反复的测试提高代码质量,循环结束后仍不能解决问题怎么办。这个课程确实是一个初级入门课程,但看里面的代码还是有些吃力,python代码理解能力较弱。映射关系也有些复杂,看着看着就找不到上下文了,稍微大点的工程都会遇到这个问题,java还能跳来跳去的找上下文,python不会了。

 

遗留问题点:

1.run方法怎么引用act方法的没看懂。
2.怎么依次执行writeCode和runCode这两个动作的,没看懂。

 

对应的论文看起来很舒服,第二篇没看懂:

MetaGPT META PROGRAMING FOR A MULTI-AGENT COLLABORATIVE FRAMEWORK,2023.

介绍多智能体框架,通过软件工程的理念,将软件开发SOP(标准工作流程)化,抽象多种角色完成复杂的软件开发工作,还引入了自我迭代和优化策略。通过将上述想法抽象为框架,搭建的多智能体组合在大模型测试集上的数据优于所有模型。

 

Data Interpreter An LLM Agent For Data Science

关于数据科学,基于数据集做相关性分析的。

 

 

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值