149、MetaGPT:软件公司多智能体前几天我在跑MetaGPT的0.8.1版本,让它自动生成一个俄罗斯方块小游戏。看着屏幕上的日志像瀑布一样往下刷,正等着它交代码,突然评论区滚过一条又一条的消息,ProductManager说“需求已经更新”,Architect跟着说“设计文档已修订”,Engineer说“代码重构完成”,然后PM又说“根据新需求再改一版”,四个人就在那互相踢皮球,根本不执行任务。我Ctrl+C按了三下才断掉,当时心里只有一个念头:这哪是软件公司,这是养老院开晨会。后来翻了半天日志才找到病根。环境里所有角色都订阅了同一个Topic,Engineer写完代码后,这条Message被PM也看到了,于是PM觉得自己还需要再完善一下PRD,谁也没拦着。消息发布出去之后,所有“watch”了这个类型的角色都会收到,无论这消息是不是发给自己的。MetaGPT的机制就是这样的:Environment负责广播,Role用自己的watch名单去筛选感兴趣的消息,然后塞进自己的消息队列,再进入perceive、react、act的循环。听起来很有秩序,实际上一旦某个回复碰巧引出了下一个角色的欲望,所有agent都像打了鸡血一样开始互回,“软件公司”就变成无限消息循环的流水线。当时我就在想,能不能自己定义一组角色,只让它们做两件事:一个出需求,一个写代码。MetaGPT告诉我可以,但你要自己写Role类。比如这样定义一个“话痨”角色:frommetagpt
阅读完成 · 觉得有帮助?