一文读懂「AI Agent」智能体

资料:
2. 💡简单介绍视频:强推👍🏻Zomi酱的 AI Agent视频介绍

一、什么是AI Agent?

定义:智能体agent是通过传感器感知环境(收集信息)并通过执行器作用于该环境(采取行动)的事物

大语言模型和 AI Agent 的区别

1. 在于 AI Agent 可以独立思考并做出行动,和 RPA 的区别在于它能够处理未知环境信息。ChatGPT 诞生后,AI 从真正意义上具备了和人类进行多轮对话的能力,并且能针对相应问题给出具体回答与建议。随后各个领域的“Copilot”推出,如 Microsoft 365 Copilot、GitHub Copilot、Adobe Firefly 等,让 AI 成为了办公、代码、设计等场景的“智能副驾驶”。

2. 大模型与人类之间的交互是基于 prompt 实现的,用户prompt 是否清晰明确会影响大模型回答的效果,例如 ChatGPT 和这些 Copilot 都需要明确任务才能得到有用的回答。而 AI Agent 的工作仅需给定一个目标,它就能够针对目标独立思考并做出行动,它会根据给定任务详细拆解出每一步的计划步骤,依靠来自外界的反馈和自主思考,自己给自己创建 prompt,来实现目标。如果说 Copilot 是“副驾驶”,那么 Agent 则可以算得上一个初级的“主驾驶”。和传统的 RPA 相比,RPA 只能在给定的情况条件下,根据程序内预设好的流程来进行工作的处理,在出现大量未知信息、难以预测的环境中时,RPA 是无法进行工作的,AIAgent 则可以通过和环境进行交互,感知信息并做出对应的思考和行动。

二、Agent结构

AI AGENT = LLM(核心控制器,构建核心能力)+ 规划能力 + 记忆 + 工具。其中基座模型能力至关重要。

2.1 规划Planning

  • Chain-of-Thought 推理只是作为静态黑盒,它没有用外部知识,所以在推理过程中会出现事实幻想(fact hallucination)和错误传递(error propagation)的问题。
  • ReAct 克服了在思维链推理中的幻觉和错误传播问题,通过与简单的维基百科API交互,生成类 似于人的任务解决型轨迹,解释性进一步增强。

1)Chain of thought

2)Self Reflection

自我反思(Self-reflection)允许 Agent 通过完善以往行动决策和纠正以往错误来迭代改进。

  1. Re Act:将动作空间扩展为任务特定的「离散动作和语言空间的组合」,将推理和动作集成在LLM 中。离散动作使 LLM 能够与环境交互,而语言空间促使 LLM 以自然语言生成推理轨迹;

Thought: ... Action: ... Observation: ... ... (Repeated many times)

2. Self-ask:Self-ask是一种follow-up的使用范式,仅仅包含 follow-up, immediate answer步骤,至于 follow-up多少个 step,完全由 Agent 自己决定。

2.2 记忆Memory

  • 感知记忆(Sensory Memory):记忆早期阶段,在原始刺激结束后保持对感官信息(视觉、听觉)的印象。特点:持续时间短,子类包括图像记忆(视觉)、回声记忆(听觉)和触摸记忆(触感)。
  • 短期记忆(STM,Sort-term Memory):短期记忆存储目前所知道的信息,以及执行复杂认知任务(如学习和推理)所需要的信息。 特点:短期记忆持续时间较短(1~2 周)
  • 长期记忆(Long-termMemory,LTM):将信息长时间存储,从几天到几十年不等。
    • 显式记忆(Explicit):对事件的记忆,可以有意识地回忆起来的记忆,如记得小时候我喜欢吃奶瓶;

    • 隐式记忆(Implicit):无意识的记忆,涉及自主执行的技能和惯例,如黄老师傅学会开车;

2.3 工具Tools

二、两大发展方向

基于LLM开发的AI AGENT应用情况,将目前AI AGENT划分为两大类:

  • 自主智能体(Self Reflection):力图实现复杂流程自动化。当给定自主智能体一个目标时,它们能自行创建任务、完成任务、创建新任务、重新确定任务列表的优先级、完成新的首要任务,并不断重复这个过程,直到完成目标。准确度要求高,因而更需要外部工具辅助减少大模型不确定性的负面影响。
  • 智能体模拟(Task Decomposition),力图更加拟人可信。分为强调情感情商的智能体以及强调交互的智能体,后者往往是在多智能体环境中,可能涌现出超越设计者规划的场景和能力,大模型生成的不确定性反而成为优势,多样性使其有望成为AIGC重要组成部分。

三、Agent 智能体的应用

3.1 按应用领域

3.2 按技术分类

(1)Simulations Agent:模拟智能体,在模拟器中包括一个 and/or 多个 Agent 相互作用。

Simulation Agent 包括一个/多个 Agents 相互作用。模拟 Agent 通常包括两个主要组件: 1. 长期记忆 2. 模拟环境

(2)Automatic Agent:自动化智能体,给定一个 and/or 多个长期目标,独立执行这些目标。这些应用程序结合了工具使用和长期内存。 典型的有AutoGPT,BabyAGI。

AutoGPT流程:

  1. 任务定义:通过 Name、Role、Goals,组成 Prompt

  2. 理解任务:对下发的Prompt,ChatGP T通过大模型对语义内容理解

  3. 生成方案: ChatGP T 输出详细的 Step-by-Step 解决方案

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

  5. 执行指令:通过访问外部资源或调用ChatGP T完成任务

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

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

  • AgentGPT 基于 Langchain 和 OpenAI 基础构建 AI Agent。可以通过浏览器或个人计算机中创建、 配置和部署自主 AI 代理。
  • AgentGPT 允许配置和部署自治 AI 代理。命名自己的自定义 AI,让它开始实现任何可以想象的 目标。它将尝试通过思考要做的任务、执行它们并从结果中学习来达到目标。

(3)Multimodal Agent:多模态智能体,不仅可以处理纯文本的信息,还可以拓展到多模态来完成图像,语音,视频的交互。典型的应用有Visual ChatGPT,AssistGPT,HuggingGPT。

  • HuggingGPT 把 LLM 作为一个 Agent,用于管理和组织 Huggingface 上的模型(文生图、图生文、 目标检测等模型),LLM 首先会根据用户的请求规划一个任务清单,然后给每个任务指派一个 HuggingFace 模型,AI 模型执行完以后,LLM收集结果并返回给用户。

四、困难和挑战

局限性I:效率

  1. 执行效率:Agent 作为执行者,需要运行多次和与外界进行交互,LLMs 消耗资源很大,因此导致 Agen ts 运行效率不会太高。

  2. 探索效率:通过 Agent 自行探索并完成整个解决过程仍然比较繁琐耗时,Agent 也很容易把问题复杂 化。考虑到 LLM 调用的成本,要在实际场景落地使用也还需要在这方面做不少优化。一种方式可能是 像 AutoGPT 那样可以中途引入人工的判断干预和反馈输入。

局限性II:依赖 LLM
• 依赖LLM:Agent 所有的衍生技术都严重依赖于 LLMs 基础能力(OpenAI GPT4 API),所以一个 Agents 的好坏,需要看该 LLMs 的训练 or 微调学习是否到位。

  1. 动作有效性。评估过程中, LLMs 并不总是在遵循指令。即 LLMs 预期输出并不总是处于环境可以接受 的输入空间中。如 1)LLMs 没有理解指令,因此没有输出动作;2)LLMs 输出动作,却是错误或不完 整。所以如何确保动作有效,是一个需要改进的方向。

  2. 长上下文。开源模型的上下文长度(如2k tokens)会极大地影响交互任务中的表现,有些任务需要较 长的指令和反馈,可能超过上下文长度,导致模型忽略有用信息。

  3. 多轮一致性,不稳定性。部分任务需要多轮对话,每轮对话简短。会导致 LLMs 在多轮对话中丢失自 我角色(如输出道歉并表示无法回答)。在多轮对话 or 任务中保持一致性,是一个具有挑战性的工作。

局限性III:训练方式和效果

  1. •记忆召回:如果只是做简单的 embedding 相似性召回,很容易发现召回的结果不是很好。这里应该也有不少可以改进的空间,Generative Agents 里对于记忆的更细致的处理,LlamaIndex 中 对于 index 结构的设计也有很多可以选择与调优的地方。
  2. 错误累积:实际上 AI Agent 总体表现并没有那么惊艳,网上 or 论文给出的很多例子都都是经过精挑细算。真正可能会因为前面一些步骤出现偏差,后续的执行步骤逐渐越跑越远。很重要 的问题可能还是任务规划 Planning and 执行 Action,外部工具利用等方面的高质量训练数据相 对匮乏。这或许是 OpenAI 自己做 Tools plugin 体系的原因之一。

总结:未来发展的最终目标是实现通用AGI。

Pre-training or Fine-tuning 阶段实现 Language Agent 与利用 Prompt engineering 实现 Language agent,属于两个完全不同的研发路径,虽然从表面上看起来,都在做language agent。

  1. Google DeepMind 创建的时候主攻 Autonomous Agents,如 AlphaGo、AlphaStat 等。

  2. OpenAI 主攻从预训练到 RLHF 的 Autonomous Agents,如发布从 GPT1 到 GPT4 。