大家读完觉得有帮助记得关注和点赞!!!
Agent 可以理解为是一个扩展了大模型出厂能力的应用程序。
工具的使用,是人类区别于动物的标志 —— 也是 Agent 区别于大模型的标志。
1 引言
1.1 人类的先验知识与工具的使用
人类很很好地处理复杂和微妙的模式识别任务。 能做到这一点是因为,我们会通过书籍、搜索或计算器之类的工具来补充我们头脑中的先验知识, 然后才会给出一个结论(例如,“图片中描述的是 XX”)。
1.2 人类的模仿者
与以上类似,我们可以对生成式 AI 模型进行训练, 让它们能使用工具来在现实世界中获取实时信息或给出行动建议。 例如,
- 利用数据库查询工具获取客户的购物历史,然后给出购物建议。
- 根据用户的查询,调用相应 API,替用户回复电子邮件或完成金融交易。
为此,模型不仅需要访问外部工具,还要能够自主规划和执行任务。 这种具备了推理、逻辑和访问外部信息的生成式 AI 模型,就是 Agent 的概念; 换句话说,Agent 是一个扩展了生成式 AI 模型出厂能力的程序。
2 什么是 Agent?
2.1 概念:应用程序
宽泛地来说,生成式 AI Agent 可以被定义为一个应用程序, 通过观察周围世界并使用可用的工具来实现其目标。
- Agent 是有自主能力的(autonomous),只要提供了合适的目标,它们就能独立行动,无需人类干预;
- 即使是模糊的人类指令,Agent 也可以推理出它接下来应该做什么,并采取行动,最终实现其目标。
在 AI 领域,Agent 是一个非常通用的概念。本文接下来要讨论的 Agent 会更具体, 指的是本文写作时,基于生成式 AI 模型能够实现的 Agents。
2.2 架构:cognitive architecture
为了理解 Agent 的内部工作原理,我们需要看看驱动 Agent 行为、行动和决策(behavior, actions, and decision making)的基础组件。
这些组件的组合实现了一种所谓的认知架构(cognitive architecture), 通过这些组件可以实现许多这样的架构。我们后面还会就这一点展开讨论。
2.3 组件
Agent 架构中有三个核心组件,如图所示,
Figure 1. 典型 Agent 架构与组件。
2.3.1 模型(model)
这里指的是用作 Agent 中用来做核心决策的语言模型(LM)。
- 可以是一个或多个任何大小的模型,能够遵循基于指令的推理和逻辑框架,如
ReAct、Chain-of-Thought、Tree-of-Thoughts
。 - 可以是通用的、多模态的,或根据特定 Agent 架构的需求微调得到的模型。
- 可以通过“能展示 Agent 能力的例子或数据集”来进一步微调模型,例如 Agent 在什么上下文中使用什么工具,或者执行什么推理步骤。
2.3.2 工具(tool)
基础模型在文本和图像生成方面非常强大,但无法与外部世界联动极大限制了它们的能力。 工具的出现解决了这一问题。有了工具,Agent 便能够与外部数据和服务互动,大大扩展了它们的行动范围。
工具可以有多种形式,常见是 Web API
方式,即 GET、POST、PATCH 和 DELETE 方法。 例如,结合用户信息和获取天气数据的 tool,Agent 可以为用户提供旅行建议。
有了工具,Agent 可以访问和处理现实世界的信息,这使它们能够支撑更专业的系统,如检索增强生成(RAG),显著扩展了 Agent 的能力。
2.3.3 编排层(orchestration)
编排层描述了一个循环过程:Agent 如何接收信息,如何进行内部推理,如何使用推理来结果来指导其下一步行动或决策。
- 一般来说,这个循环会持续进行,直到 Agent 达到其目标或触发停止条件。
- 编排层的复杂性跟 Agent 及其执行的任务直接相关,可能差异很大。 例如,一些编排就是简单的计算和决策规则,而其他的可能包含链式逻辑、额外的机器学习算法或其他概率推理技术。
我们将在认知架构部分更详细地讨论 Agent 编排层的详细实现。
2.4 Agent 与 model 的区别
为了更清楚地理解 Agent 和模型之间的区别,这里整理个表格,
模型 | Agent | |
---|---|---|
知识范围 | 知识仅限于其训练数据。 | 通过工具连接外部系统,能够在模型自带的知识之外,实时、动态扩展知识。 |
状态与记忆 | 无状态,每次推理都跟上一次没关系,除非在外部给模型加上会话历史或上下文管理能力。 | 有状态,自动管理会话历史,根据编排自主决策进行多轮推理。 |
原生工具 | 无。 | 有,自带工具和对工具的支持能力。 |
原生逻辑层 | 无。需要借助提示词工程或使用推理框架(CoT、ReAct 等)来形成复杂提示,指导模型进行预测。 | 有,原生认知架构,内置 CoT、ReAct 等推理框架或 LangChain 等编排框架。 |
3 认知架构:Agent 是如何工作的
3.1 类比:厨师做菜
想象厨房中一群忙碌的厨师。他们的职责是根据顾客的菜单,为顾客烹制相应的菜品。 这就涉及到我们前面提到的“规划 —— 执行 —— 调整”循环。具体来说, 厨师们需要执行以下步骤,
- 收集信息(输入):顾客点的菜,后厨现有的食材等等;
- 推理(思考):根据收集到的信息,判断可以做哪些菜;
- 做菜(行动):包括切菜、加调料、烹炒等等。
在以上每个阶段,厨师都根据需要进行调整 —— 例如某些食材不够用了,或者顾客反馈好吃或难吃了 —— 进而不断完善他们的计划。 这个信息接收、规划、执行和调整(information intake, planning, executing, and adjusting)的循环描述的就是一个厨师用来实现其目标的特定认知架构。
3.2 Agent 推理框架
跟以上厨师类似,Agent 也可以使用认知架构处理信息、做出决策,并根据前一轮的输出调整下一个行动,如此循环迭代来实现其最终目标。
- 在 Agent 中,认知架构的核心是编排层,负责维护记忆、状态、推理和规划(memory, state, reasoning and planning)。
- 它使用快速发展的提示词工程及相关框架(prompt engineering and associated frameworks)来指导推理和规划,使 Agent 能够更有效地与环境互动并完成任务。
在写作本文时,有下面几种流行的推理框架和推理技术。
3.2.1 ReAct
为语言模型提供了一个思考过程策略。
已经证明 ReAct 优于几个 SOTA 基线,提高了 LLM 的人机交互性和可信度。
3.2.2 Chain-of-Thought (CoT)
通过中间步骤实现推理能力。CoT 有各种子技术,包括自我一致性、主动提示和多模态 CoT,适合不同的场景。
3.2.3 Tree-of-Thoughts (ToT)
非常适合探索或战略前瞻任务。概括了链式思考提示,并允许模型探索各种思考链,作为使