[Topic DIscussion] AI Agent 技术的发展与项目介绍
Tofloor
poster avatar
流浪的加菲
deepin
2024-07-08 17:02
Author

一、什么是 AI Agent

在 LLM 语境下,Agent 可以理解为某种能自主理解、规划决策、执行复杂任务的智能体。Agent 并非 ChatGPT 升级版,它不仅告诉你 “如何做”,更会帮你去做。如果 CoPilot 是副驾驶,那么 Agent 就是主驾驶。

这里有必要延伸下AI Agent 能力等级划分

image.png

AI Agent能力划分:

  • L0 - 没有人工智能
    在这一级别,Agent并不具备人工智能特性,只能执行预定或固定的任务,没有感知、决策或学习的能力。
  • L1 - 规则符号智能
    Agent开始具备基于规则的决策能力,能够根据预设的规则和符号进行简单的判断和执行。这种智能体通常只能处理特定情境下的任务,且缺乏灵活性和适应性。
  • L2 - 推理决策智能
    Agent能够利用逻辑推理能力来解决问题,不再仅仅依赖于预设的规则。它能够根据当前的环境信息和目标,进行一定程度的推理和决策,以选择最合适的行动方案。
  • L3 - 记忆反思智能
    在L3级别,Agent不仅具备推理决策能力,还开始拥有记忆和反思的能力。它能够记住过去的经验和教训,并在未来的决策中加以利用。这种智能体能够自我优化和改进,以适应不断变化的环境和任务。
  • L4 - 自主学习智能
    自主学习是L4级别Agent的主要特征。它能够自主地从数据中学习新知识和技能,无需人类的明确指导。这种智能体能够处理更复杂的问题,并在面对新情境时展现出更强的适应性和创造力。
  • L5 - 个性群体智能
    在最高级别,Agent不仅具备高度自主的学习和决策能力,还展现出个性化的特征。它能够根据自身的特点和偏好来执行任务,并与其他Agent进行协作和沟通。此外,L5级别的Agent还能够理解和适应人类社会的复杂性和多样性,与人类实现更加紧密和自然的交互。

二、AI Agent 系统结构

image.png

shamed 翻译过来就是:

image.png

  • Planning(规划):
    • 子目标和分解:AI Agents 能够将大型任务分解为较小的、可管理的子目标,以便高效的处理复杂任务
    • 反思和细化:Agents 可以对过去的行为进行自我批评和反省,从错误中吸取经验教训,并为接下来的行动进行分析、总结和提炼,这种反思和细化可以帮助 Agents 提高自身的智能和适应性,从而提高最终结果的质量
  • Memory(记忆):
    • 短期记忆:所有上下文学习都是依赖模型的短期记忆能力进行的
    • 长期记忆:这种设计使得 AI Agents 能够长期保存和调用无限信息的能力,一般通过外部载体存储和快速检索来实现
  • Tool use(工具使用):
    • AI Agents 可以学习如何调用外部 API,以获取模型权重中缺少的额外信息,这些信息通常在预训练后很难更改,包括当前信息、代码执行能力、对专有信息源的访问等

三、知名的Agent项目

1720428179133.jpg

AUTO-GPT

  • 简介:虽然内部设计为单个智能体,但其自我批判的逻辑被视为多智能体策略的简化版本。AutoGPT能够根据反馈调整其行为,体现了智能体自我改进的能力。
  • 应用:自动化任务执行、问题解决、基于指令的编程任务。

image.png

框架结构简单,但其设计理念具有重要意义,后续框架设计的思路都有这个的影子

创建一个初始的计划,然后进入主循环

系统会让模型判断在当前计划下该进行何种行动,接着会执行行动

执行完毕后,结果会写入下一次循环中

如此,每次决策都会基于之前的结果、记忆和计划,从而制定出新的行动方案

  • 优点:

    • 内存和上下文管理:与 AutoGen 一样,AutoGPT 在内存和上下文等领域也表现出色,为需要这些功能的 LLM 应用程序提供了优势。
  • 缺点:

    • 可视化构建器依赖性:应用程序设计依赖于可视化构建器,这可能会限制那些宁愿用代码定义设计的团队的灵活性。

AutoGen

  • 简介:AutoGen是一个开源框架,它通过多智能体对话来构建下一代大型语言模型应用。这个框架允许智能体通过对话相互协作,完成复杂任务,体现了智能体间的高度互动性和任务的灵活性。
  • 应用项目:AutoGen被设计为一个通用平台,可以应用于自动代码生成、复杂问题解决、自动化工作流程设计等领域。

image.png

论文链接:https://arxiv.org/abs/2308.08155

项目链接:https://github.com/microsoft/autogen

  • 优点:
    • 完善:AutoGen 拥有一个非常活跃的社区,非常适合寻求支持和协作的开发人员。
    • 可定制的代理:它还提供可定制的代理,可以集成 LLM、工具和人工反馈,使任务执行高度灵活。
  • 缺点:
    • 复杂性:这是一个相当复杂的框架,对于新用户来说可能是一个挑战,需要陡峭的学习曲线才能有效利用其功能。
    • 结构性较差:一些开发人员可能会发现 AutoGen 与其他框架相比结构性较差,这可能会影响实施的难易程度。

XAgent

1720428995765.jpg

  • 双循环机制
  • 外循环负责宏观规划,而内循环则负责细节的执行
  • 效果碾压 AutoGPT

项目链接:https://github.com/OpenBMB/XAgent

官方博文:https://blog.x-agent.net/blog/xagent/

总结:

  1. 能力强大,但极耗 token
  2. 运行极慢,单次执行 30min
  3. 可扩展性比较强,可基于 ToolServer(基于智谱的另外一个项目 ToolBench)扩展自定义接口

OPENAI Assistants

论文链接:https://arxiv.org/abs/2308.00352

GitHub地址:

  • 优点:
      丰富的库:它还附带一个丰富的预定义代理库,无需进行大量自定义开发即可实现一系列功能。
  • 缺点:
    • Asyncio 依赖性:严重依赖 asyncio,这对于网络密集型 I/O 来说可能很好,但与其他 python 原生并行处理方法相比,它有一些相当严重的限制。

    适合人群:需要复杂的多代理交互和预定义复杂行为的项目。非常适合网络密集型异步操作和需要高级协作功能而无需大量定制的项目


    对AI Agent感兴趣的同学可以查看原文:

    AI Agent技术的最新进展与改变世界的典型项目巡礼

Reply Favorite View the author
All Replies
流浪的加菲
deepin
2024-07-08 17:16
#1

Agent Hotsweat

Reply View the author
晚秋(lateautumn)
Moderator
2024-07-08 17:18
#2

学习了。like

Reply View the author
131******66
deepin
2024-07-08 17:22
#3

like

Reply View the author