Multi-Agent 学习背景

当下项目组在根据 Agent 思维在进行应用层服务开发,运用 LLM 才能为用户提供上层服务,现在市面上 Agent 结构越来越多, 其中最有名的当属 langchain。

Multi-Agent 概念&完结共享

原始文章 : lilianweng.github.io/posts/2023-…

国内翻译 : mp.weixin.qq.com/s/Jb8HBbaKY…

当咱们对 Agent 运用有了必定了解和积累后, 咱们发现 单一 Agent 总会有一些局限性, 咱们为了让某个 Agent 更专业, 会设定他们的 Prompt, 根据这样的场景, 咱们无法很好的去处理一些杂乱的问题.

举个例子, 咱们需要完结一个能够运转的数据分析项目, 要完结质量好的话, 咱们就至少需要 开发&测验 这两个 Agent, 单一 Agent 则无法很好的完结多角色串用.

根据这个局限性, 前沿的实验室输出了许多 Multi-Agent 的规划论文, 根据这个部分, 现在也呈现了许多全新的 Multi-Agent 结构, 例如 MetaGPT, AutoGen, XAgents 等, 当然 Multi-Agent 的结构帮支撑咱们处理一些杂乱的问题, 但也必定程度带来了更多的本钱.

A Survey on Large Language Model based Autonomous Agents

MRKL Systems: A modular, neuro-symbolic architecture that combines large language models, external knowledge sources and discrete reasoning

Multi-Agent 是什么

当要开端学习 Multi-Agent 后, 咱们问了 ChatGPT, 什么是 Multi-Agent

以下是 ChatGPT 给咱们的答复

“Multi Agent”(多智能体)是一个涉及到多个自主智能体(agents)的概念,这些智能体能够在某些环境中独登时或协作地工作。在计算机科学和人工智能范畴,这一般指的是一群能够交互、协作、竞赛或许互相学习的智能体。这些智能体可能是软件(如虚拟机器人、算法或模型)或硬件(如机器人)。

多智能体体系(Multi-Agent Systems, MAS)具有以下特点:

  1. 自治性(Autonomy) :每个智能体都能够自主操控其行为和状态。
  2. 本地视角(Local Views) :每个智能体只能取得部分环境信息。
  3. 去中心化(Decentralization) :没有一个单一的操控智能体操控整个体系。
  4. 协作与竞赛(Cooperation and Competition) :智能体能够相互合作以达到一起目标,也能够为了自己的利益与其他智能体竞赛。

多智能体体系在多个范畴都有应用,例如在自动化操控、社会模拟、资源管理和电子商务中。这些体系的规划和完结涉及到杂乱的交互和协调机制,以及对智能体本身决策才能的研讨。

现在 Multi-Agent 的目的是清晰的(处理杂乱问题), 但还没有呈现一个行业标准的完结思维, 各家都是根据自己的论文思维规划出的 Multi-Agent 的完结

Multi-Agent 开源完结对比

材料 zhuanlan.zhihu.com/p/660045220

作品称号(出品方) 开源地址 特点
AutoGen (微软) github.com/microsoft/a… 支撑人机交互, 多 Agent 并行协作
MetaGPT (深度赋智) github.com/geekan/Meta… 内置(互联网公司类)Agent, 可自定制更像产品级服务, 也开端支撑人机介入
AgentVerse (面壁 & 清华) github.com/OpenBMB/Age… 自界说 Agent & 协作流程(装备), 由 AgentVerse 驱动
Agents (波形智能) github.com/aiwaves-cn/… 和 AgentVerse 概念相似, 但支撑人类参加其中
XAgent github.com/OpenBMB/XAg… 内置的 Agent 协作流, 内置海量东西服务器

测验总结各家完结的思路

基础要求

  • Agent 的输入和输出是在互相之间活动或许共享的.
  • Agent 之间的协同是需要有规则驱动的
  • Agent 完毕是有条件的
    • 最大履行轮数
    • 清晰界说的停止音讯

完结方向

  1. 用户能够自界说参加的Agent, 人类也能够是是一个 Agent (主流)
  2. 界说好 Agent 分工, 用户直接运用.

综合定论

  • 国内做的产品更相似为产品服务, 尽管中心概念都基本共同, 但产品运用上都有自己的定制化规则(装备解析器), 同时再适度捆绑下自己的产品”矩阵”, 导致结构才能不强
  • AutoGen 从现在体现的极强扩展和定制才能, 有潜力生长为 Multi-Agent 的标杆性结构, 也是当下学习和完结的主要参阅方向.

Multi-Agent 协作完结方向

从规划思维来说, 首要咱们必定会聚合一批 Agent, 其次需要让这批 Agent 开端合理协作. 合理协作的完结方式现在有以下几种方向 : 前置, 规则, 后置.

使用 SOP 驱动 Agent – 代表 MetaGPT

MetaGPT 使用 几个中心概念来组成自己的协作流

  • Envrionment : Agent 调查&发布重要音讯的公共存储空间

    • add_role 的时分, role 中去关联这个 Env
  • Observe : Agent 从 Env 中 调查到对自己重要的音讯, 并开端考虑和可能行动

  • Action : Agent 履行动作, 并发布音讯到 Env 中.

docs.deepwisdom.ai/zhcn/guide/…

根据这样的基本设定, 用户能够自界说 Agent 所需要调查 Action 所发生的音讯, 以及发生新的 Action 音讯并发布出去, 根据此, 多个 Agent 之间就能够相互协作

Multi-Agent 概念&完结共享

LLM 前置挑选 Agent – 代表 AutoGen

AutoGen GroupChat 提供了 auto(LLM 挑选), manual(手动), random(随机), round_robin(轮询) 四种协作流程, 其默认为 auto

microsoft.github.io/autogen/doc…

其 auto 的完结原理为, GroupChat 会建议 LLM 问询, 其 Prompt 和 Message 设定为以下代码片段,

能够看出 GroupChat 会将自己假装为角色扮演游戏, 并按照前史音讯和当前一切的 Agent 称号, 让 LLM 判别由哪个 Agent 进行下一位履行.

# groupchat.py
	def select_speaker_msg(self, agents: List[Agent]):
        """Return the message for selecting the next speaker."""
        return f"""You are in a role play game. The following roles are available:
{self._participant_roles(agents)}.
Read the following conversation.
Then select the next role from {[agent.name for agent in agents]} to play. Only return the role."""
        # auto speaker selection
        selector.update_system_message(self.select_speaker_msg(agents))
        final, name = selector.generate_oai_reply(
            self.messages
            + [
                {
                    "role": "system",
                    "content": f"Read the above conversation. Then select the next role from {[agent.name for agent in agents]} to play. Only return the role.",
                }
            ]
        )

Multi-Agent 概念&完结共享

LLM 后置汇总履行成果, 并判别下一步 – 代表 XAgents

XAgents 使用了任务 规划, 分发, 履行, 提交, 批改 的链路, 使用 提交和批改 Agent 来完结后置汇总和判别下一步履行成果

www.bilibili.com/video/BV1BN…

Multi-Agent 概念&完结共享

Multi-Agent 概念&完结共享

额外扩展考虑

看了现在主流的完结思路, 再回过来看咱们真实日子中多人是如何协作, 是否现在咱们的完结还有优化的空间.

前提 : 十几个人都在一个团队, 每个人或多或少都清楚别人干什么的

场景 : 问题到自己这里的时分, 会有两种情况

  1. 自己清楚这个问题该谁处理, 那就会直接找那个人去处理.
  2. 自己无法判别这个问题谁来处理, 那就会问一切人谁会处理或许问团队的负责人谁来处理

咱们发现现在 Multi-Agent 的完结, 基本都是少数 Agent 能了解大局(一切 Agent), AutoGen 的 ChatGroupManger, XAgents 的 PlanAgent.

而如果 Agent 身份界说清晰, 互相之间能够相互了解, 并能考虑问题谁来处理最合适, 那么就能够完结真正拟人的团队协作, 越了解互相的团队, 协作越高效, 本钱也就越低.

但好像现在的 Agent(LLM) 注意力有限, 推理才能有限, 还无法形成一个发现互相并自主驱动的现象.

Multi-Agent 自研规划考虑

如果咱们需要自己做一个 Multi-Agent 的结构完结, 咱们能够拆解下, 咱们至少需要完结哪些, 可选完结哪些.

必备要素(基础)

  1. Agent – 单一 Agent 的才能增强
  2. 团队 – 让一群 Agent(人) 知道周边有哪些 Agent(人)
  3. 协作 – 可定制化的协作流, 能够是 LLM, 能够是 flow
  4. 回忆 – 团队的协作数据流通需要有共享回忆存放

可选要素(完善)

提高履行功率和预期

  1. 单一 Agent 了解周边, 能自主驱动周边
  2. Agent 的并发履行
  3. 人机的调整输入, 支撑重复批改.
  4. 长期有效回忆的保留.

数据(音讯和回忆)的安全性

  1. 数据严格操控, 共享数据的脱敏以及可控分发

附录 – AutoGen 学习材料

AutoGen 介绍视频

Talk | PSU助理教授吴清云:AutoGen-用多智能体对话敞开下一代大型言语模型应用_哔哩哔哩_bilibili 微软 AutoGen 更智能的多 AI Agents 协作结构 | 动画演示 结构中心 | Code 讲解 | Demo 演示_哔哩哔哩_bilibili

AutoGen 理论材料

AutoGen: Enabling next-generation large language model applications Multi-agent Conversation Framework

Auto 中心 Agent 的图谱

Multi-Agent 概念&完结共享

协作原理展示

Multi-Agent 概念&完结共享

Demo 学习

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。