分享

【AI Agent系列】【MetaGPT多智能体学习】1. 再理解 AI Agent - 经典案例和热门框架综述

 小张学AI 2024-03-23 发布于山东
大家好,我是【同学小张】。持续学习,持续干货输出,关注我,跟我一起学AI大模型技术!
公众号内文章一览



本文为该课程的第二章(智能体综述及多智能体框架介绍)笔记)。

0. 温故而知新 - 再看 AI Agent 是什么

前面文章已经介绍过我理解的 AI Agent 的概念。

  • 智能体就是像人一样,能理解现实中的事务,有记忆,会思考,会总结,会学习,像人一样会规划,会决策,会使用各种工具来完成某项任务。

  • 多智能体,就像一个团队,大了说像我们现在生活的社会,每个智能体有自己的职能和领域,人与人之间通过协作,能完成更加复杂和庞大的目标。

再看这张经典的图:

现在看来,中间的Agent应该换为LLM更为合适,而整张图才能叫做Agent。也就是说:Agent是上图中所有能力的集合,以LLM为大脑,来决定完成任务所需的步骤,规划执行该使用哪些工具,该得到什么结果。再辅以记忆能力,让整个过程像人一样能够自主决策,自主行动以自主达到目的。

1. 一个AI Agent实例介绍 - BabyAGI

项目地址:https://github.com/yoheinakajima/babyagi/blob/main/README.md

其运行流程如下
(1)从任务列表中提取第一个任务
(2)将任务发送到执行代理(Execution Agent),该Agent使用LLM根据上下文完成任务。
(3)丰富结果并将其存储在向量数据库中
(4)创建新任务,并根据上一任务的目标和结果重新确定任务列表的优先级。
(5)重复以上步骤

其中涉及四个Agent,其中前三个Agent都利用了大模型的能力来进行任务规划和总结

  • Execution Agent 接收目标和任务,调用大模型 LLM来生成任务结果。

    Task Creation Agent 使用大模型LLM 根据目标和前一个任务的结果创建新任务。它的输入是:目标,前一个任务的结果,任务描述和当前任务列表。

    Prioritization Agent 使用大模型LLM对任务列表进行重新排序。它接受一个参数:当前任务的 ID

    Context Agent 使用向量存储和检索任务结果以获取上下文。


运行起来后的过程可以参考这篇文章:babyagi: 人工智能任务管理系统
https:///post/7218815501433946173

2. 多智能体框架比较

对市面上多智能体框架了解的不多,目前为止,只用过 MetaGPT、AutoGPT,听过AutoGen。想了解更多的,可以参考这篇文章 基于大语言模型的AI Agents—Part 3(https://www./article/ai-agent-part3),里面总结比较了常见的多智能体框架:


这里我只对MetaGPT和AutoGPT的使用感受做下比较和说明,自己的感受,个人观点,欢迎批评指正。
  • AutoGPT更多的是依赖大模型去进行规划和行动,个人感觉有点过于依赖大模型的能力了。而目前而言,大模型的能力还远没有达到能自主规划和决策行动的地步,这使得AutoGPT的执行结果非常地不可控,很难达到自己想要的效果。并且其是单智能体,能完成的工作相对比较简单。接口也不太好用。

  • MetaGPT更多的是依赖事先定义好的SOP(标准作业流程),这使得任务的执行过程变得相对可控,最大限度的保证任务的正确执行。并且可以是多智能体,能执行的任务相对复杂。接口封装也比较清晰。尤其是Team、Role和Action三个抽象,真的将Agent抽象为人。总结起来,MetaGPT的工作流程就像:SOP是制订了一条标准化的流水线,然后Role是分布在流水线各个位置的打工人,大家各司其职,合作共赢。

3. 警告?

Agent因为涉及到多个步骤,而且大模型的能力并没有我们想象地那么强,如果不加限制,很容易陷入死循环… 这将是你财富的直接损失… 所以一定要谨慎。正如 BabyAGI里的警告:




大家好,我是【同学小张】。持续学习,持续干货输出,关注我,跟我一起学AI大模型技术!
公众号内文章一览

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多