跳到主要内容

智能体(Agent)系统

背景简介

大型语言模型(LLM)的应用领域正在经历一场革命性的转变。目前的应用主要集中在文本生成、故事叙述、学术论文编写以及编程等相对初级的领域,但LLM的潜能远远超越了这些表面的应用。我们对于人工智能的期待不仅仅停留在模拟人类文本生成的能力上,更希望它能够像人类一样,自主地完成复杂任务。人工智能体(AI Agent)的概念应运而生,它们被设计为具备自我导向能力的实体,能够独立规划任务、设定和调整优先级,直至最终目标的实现。

通过一系列概念验证项目如AutoGPT、GPT-Engineer及BabyAGI,我们已经能够一窥LLM作为通用问题解决者的巨大潜力。这些智能体不仅能执行单一任务,更被赋予了深思熟虑及与环境互动的能力,预示着我们正向更高级别的自主系统的演化迈进。

在深入探索大模型时代的“下半场”阶段,增强智能体的独立思考能力和适应环境的灵活性成为了核心任务。无论是提高智能体自身的智能水平,还是通过整合外部模块来扩展其能力,目标都是为了使以LLM为大脑的智能体能更有效地规划和自主决策,以应对各种复杂场景下的问题和挑战。

智能体架构

Agent指的是以大模型技术(LLM)作为主体或者大脑,能进行自动规划并且拥有自主决策能力,以解决复杂问题的智能体。一个Agent的基本组成应该包含如下四个部分规划(Planning),工具(Tools),执行(Action),和记忆(Memory)。

在一个由LLM驱动的自主智能体中LLM充当大脑,并辅以几个关键组成部分:

  1. 规划(Planning): Agent Planning是Agent能力的核心,一个好的规划决定了agent能否顺利执行以及解决问题。规划 能够将大型任务分解为较小的、可管理的子目标,以便高效的处理复杂任务;Agent可以对过去的行为进行自我批评和反省,从错误中吸取经验教训,并为接下来的行动进行分析、总结和提炼,这种反思和细化可以帮助Agent提高自身的智能和适应性,从而提高最终结果的质量。
  2. 记忆(Memory): 智能体的Memory(记忆)模块是其核心组件之一,它使智能体能够获取、存储、保留以及稍后检索信息。 包括短期记忆和长期记忆。短期记忆类似于模型在上下文中的即时学习能力,而长期记忆则允许智能体长时间保留和回忆信息,通常依赖于外部向量存储和快速检索。
  3. 行动(Action): 智能体通过调用外部接口(APIs)来补充其内在模型所缺乏的信息或者执行外部指令,这一能力是其与外部环境交互的关键机制。这种交互广泛覆盖了从利用Wikipedia搜索API进行详尽的知识查询、执行文件操作,到收集用户输入等多方面。该机制赋予智能体执行复杂功能的能力,从而在各种应用场景下扩展了其作用域和影响力。
  4. 工具(Tools): 工具指的是可被智能体调用的外部API用于额外信息提取或者环境交互。这使得智能体能够处理其核心模型无法直接处理的任务。

智能体工作机制

让我们首先探究用户向智能体(Agent)提出问题后,智能体与大型语言模型及外部工具之间的执行流程。这将有助于我们更加深入地理解智能体的运作原理。下方呈现的是智能体的执行流程图:

  1. 提交任务
    用户设定智能体(Agent)的角色和任务指令,并将任务提交给智能体。用户可以直接提出问题或者给出少量样本示例,以便智能体更好地理解任务目标,从而实现更好的执行结果。
  2. 组装提示词并提交ChatGPT,获取下一步行动指令
    智能体将用户的任务与智能体预设的提示词融合后一并提交给ChatGPT。智能代理采用了一种称为ReAct提示词的技术,这种技术巧妙地结合了推理(Reason)与行动(Act)的元素,以增强ChatGPT的任务处理能力。推理部分基于“链式思考”(Chain of Thought,CoT)技术,旨在引导ChatGPT对任务进行逐步的逻辑分解和推理。行动部分则指导ChatGPT在遇到需要与外部环境进行交互时,如何采取行动。 ChatGPT返回2项内容:

    Thought: 它涵盖了对提交内容的深入思考、逻辑推理、策略规划以及自我评估。
    Action: 指明了基于前述思考过程确定的即将执行的行动指令及其相关参数。

  3. 循环执行:执行命令、观察评估结果、获取下一步行动指令
    3.1 执行行动
    智能体依据ChatGPT的指令决定下一步的具体行动。当ChatGPT提供了一个明确的最终答案时,该系统会将此答案直接反馈给用户。若ChatGPT未能给出最终答案,智能体则会进一步提取和解析所需执行的工具及其参数信息。
    随后,智能体根据提供的参数执行相应的工作,这包括搜索引擎查询、文档检索、处理用户输入、文件操作等多种功能。工具执行完成后会返回一个字符串格式的结果。例如,使用谷歌搜索功能会返回搜索结果的摘要,文件写入操作(write_to_file)会返回文件的写入状态,而文档搜索功能则会提供与查询相关的文档信息。
    3.2. 组装提示词并提交ChatGPT,获取下一步行动指令
    这些值将作为上下文关联信息(Observation)被添加到提示词中。随后,整个上下文信息将再次提交给ChatGPT,以获取下一步的行动指令。

    Thought: ······
    Action: ······
    Observation: 工具执行的结果
    Thought: ······
    Action: ······

  4. 返回结果
    当ChatGPT提供了一个明确的最终答案(Final Answer)时,智能体会将此答案直接反馈给用户。

    Thought: ······
    Action: ······
    Observation: ······
    Thought: ······
    Action: ······
    Observation: ······
    Thought: ······
    Final Answer: 最终结果