AI Agent综述

462 阅读7分钟

image.png

AI Agent是什么

将LLM思想链接到一起,自主实现用户设定的任何目标。只需要告诉AutoGPT一个目标,能自主生成执行计划。

吴恩达:“与其争论哪些工作才算是真正的 Agent,不如承认系统可以具有不同程度的 Agentic 特性。”

核心在于将复杂任务分解成多个步骤,并通过循环迭代的方式逐步优化结果。这种工作方式更接近于人类解决问题的思维模式:

  • 目标设定: 明确任务目标;

  • 规划分解: 将任务分解成多个子任务;

  • 迭代执行: 依次执行每个子任务,并根据反馈结果进行调整和优化,最终完成目标。

Agent = LLM+Planning规划+Tool use执行+Feedback纠正偏差

Agent的组成部分

记忆包含:短期记忆和长期记忆

Agent的规划决策(plan)

每种方式都得依赖于提示词

任务分解

思维链CoT

CoT是一种提示词工程方法,会显示输出中间逐步得推理过程:增加大模型的算数、常识和推理能力。

它成为了处理复杂任务的常用手段。

思维树TOT

**「TOT」**可以让LLM:

  • 自己给出多条不同的推理路径

  • 分别进行评估后,决定下一步的行动方案

  • 在必要时向前或向后追溯,以便实现进行全局的决策

TOT比CoT的正确率大大提高

反思与改善

ReAct

ReAct是一种提示词工程方法,它使用小样本学习来教导模型如何解决问题。

ReAct三个核心概念:

  • 思考Thought:是LLM产生下次行为的理由
  • 行动Act:LLM生成的需要执行的具体行为
  • 行为结果/反馈Obs:反馈信息会继续输入到LLM帮助下一步决策

缺点:

  • 完成k步,长度很长需要较大的上下文窗口,需要消耗大量token;
  • 由于工具种类的多样以及输出的不稳定,在LLM被广泛使用的指令微调在增强式语言模型中很难倾泄可范化性的工具使用能力到小模型上。(可以说,指令微调不可避免的会导致让小模型“背住”训练集中的工具输出)

ReWOO

将推理过程与外部观察分离,从而减少token的消耗。ReWOO分成三个独立的模块:

  • Solver:分解任务,制定一个相互依存的规划蓝图,每个任务都分给Worker
  • Worker:从工具中检索结果
  • Solver:综合所有规划和结果,生成初始任务的最终答案

AI Agent和LLM的对比

AI Agent是基于多个大模型实现的。

训练方式:

LLM(大语言模型)通常基于监督学习算法进行训练,能够根据事先设定的规则进行行为决策,适用于已知的环境和任务;

而Agent则通常基于强化学习算法进行训练,能够通过与环境的交互来学习最优的行为决策,适用于未知的环境和任务。

LLM是一种基于海量文本数据进行训练的人工智能模型,旨在理解和生成人类语言。它具有庞大的参数规模,能够学习语言数据中的复杂模式,执行文本总结、翻译、情感分析等任务。LLM的特点包括长期记忆和短期记忆模块,能够记住大量的上下文信息,并在执行任务时调用相关知识。

Agent是一种在分布式系统或协作系统中能够持续自主发挥作用的计算实体。广义上,Agent指具有智能的任何实体,可以是计算机硬件或软件。Agent具有自治性、社交能力、反应能力和预动能力等特性,能够在没有其他Agent干预的情况下运作,并与其他Agent进行交互。

应用场景:

LLM更偏向于事先设定好的规则和任务,适用于已知的环境和任务;而Agent更注重自主学习和适应能力,适用于未知的环境和任务

形态:

LLM和agent都可以实现为一个对话系统

LLM只响应用户的查询指令,实现一些生成任务,比如生成代码、文章

Agent开源的项目

AutoGPT

以LLM作为主控制器来建立AI Agents,作者提供了很多API代码来解析数据格式,帮助AI agents更好的理解和处理NL,目前还处于试验的阶段。AutoGPT是开源的,是由GPT-4驱动。

执行流程:

1、任务定义:通过name+role+goal组成prompt

2、理解任务: chatgpt对prompt通过大模型进行语义理解

3、生成方案:chatgpt输出详细的一步一步(step-by-step)解决方案

4、生成指令: LLM根据规划plan生成可执行的操作或指令

5、执行指令:调用外部工具或者chatgpt完成任务

6、输出结果:指令操作完成后,系统返回执行结果

7、评估结果:AI会评估结果以确定是否达到预期目标或是否需要进一步完善

BabyAGI

通过运行一个无线循环来工作,该循环执行以下流程:

1、从任务列表中提取第一个任务

2、将任务发送给执行代理,该代理使用Open API根据上下文完成任务

3、整理结果并将结果存储在Pinecone中

4、基于目标和前一个任务的结果创建新任务,并根据优先级对任务列表进行排序

HuggingGPT

LLM作为中心Agent,模型作为Tool和Action,执行分为以下4个阶段:

1、任务规划:LLM把用户要求分解成任务集合,决定执行顺序和任务之间的资源依赖

2、模型选择:把任务安排给对应的模型

3、任务执行:模型执行任务

4、响应生成:LLM集成模型生成结果,返回给用户

Agent系统设计和业务应用

设计一个 Agent,自动选择使用以下工具回答用户的问题:

  • 查看目录下的文件
  • 基于给定的文档回答用户问题
  • 查看与分析 Excel 文件
  • 撰写文档
  • 调用 Email 客户端发邮件

AI Agent现状

效果不是很好,存在很大的局限性,因为上下文token有限,记忆功能容易丢失,另外是一个复杂的系统,所以特别消耗内存。

执行效率

  • 需要多次与外界进行交互,LLMs消耗资源大;通过Agent自行探索并完成整个解决过程仍然比较繁琐时,也容易把问题复杂化

依赖LLM

  • 所用技术严重依赖于LLM基础能力

训练方式与效果

  • 错误积累,前面的一些步骤导致偏差,似的后续步骤越走越远。

我的话术

用2句话描述agent:agent可以说是将多个LLM思想链接到一起,agent通过prompt自动将给定的复杂任务分解为多个子任务,每个子任务去调用对应的工具,通过循环迭代的方式逐步优化结果,最后面整合出结果。虽然很智能,但是也有一些局限性,比如需要多次与外界交互,消耗资源大,导致执行效率慢,也严重依赖LLM的基础能力,如果前面一些步骤有偏差导致错误积累,所以效果不会很好。

我觉得开源项目最好可以用AutoGPT和HuggingGPT,我在coze种测试过流模式,效果不错 。

链接

www.yuque.com/eosphoros/d… dbgpt