17611538698
webmaster@21cto.com

经验篇:Google专家眼中更多的AI Agent

人工智能 0 191 2025-01-23 07:21:53

图片

Google 在去年九月时,在 Kaggle 平台上公布了一篇由 Julia Wiesinger、Patrick Marlow 和 Vladimir Vuskovic 撰写的 Agent 主题白皮书。

本次文章,我将进行汇整,以让大家更理解 Agent 的概念。

一、什么是 AI Agent?


AI Agent是一种应用程序,其核心功能是透过观察环境并运用工具采取行动,以实现特定目标。


这些Agent具有以下几个关键特征:


  • 自主性(Autonomy):AI代理能够自主运行,不需要人类的直接干预。当赋予明确的目标或相关任务后,它们能够独立完成操作。

  • 目标导向(Goal-Oriented):他们的行动与决策设计是为了实现特定目标,表现出目标驱动的特征。

  • 主动性(Proactiveness):即使缺乏人类明确的指令,人工智能代理也能推理与分析,决定下一步行动,努力完成最终目标。

  • 应用场景广泛:虽然人工智能代理的概念十分通用且强大,但本文重点关注生成式人工智能模型所构建的特定类型代理。


以下是作者提出的一个基础Agent架构:

图片


二. 生成式AI Agents的核心组成


在人工智能领域中,生成式AI Agent 正在迅速成为核心技术。

这些不仅仅是语言模型,而是能够与外部世界交互、完成复杂任务的系统。要理解生成式AI代理的可运作的,必须从其三大核心组成部分来理解:模型(The Model)、工具(The Tools)与指挥层(The Orchestration Layer)。

模型(The Model):AI Agents的智慧核心


模型是AI智能体的「大脑」,负责决策与推理,具备理解指令和逻辑推理的能力。


它通常由一个或多个大型语言模型(如GPT-3或类似技术)构成,并采用不同的推理框架,例如ReAct、Chain-of-Thought (CoT) 或 Tree-of-Thoughts (ToT),来帮助模型深入理解问题并提供合理的解决方案。


根据需求,模型可以是通用型、多模态型,或者经过特定调整以应对特殊任务。虽然模型本身并不包含Agent的具体配置,但可以透过数据进行Fine-Tuning,以确保最佳效果。


就其而言,模型是Agent思考的核心,决定了它的判断与推理能力。


工具(The Tools):连接内外世界的桥梁


工具是AI Agent与外部世界交互的关键因子,帮助Agent克服仅靠语言模型无法直接处理外部系统或数据的限制。这些工具以多种形式存在,例如CRUD方法等。


工具极大地扩展了代理的能力,可访问与处理真实世界信息,例如查询天气或更新资料库。


目前常见的工具类型包括:


  • 扩展(Extensions):标准化地连接API与Agent,让Agent无缝执行操作。

  • 函数(Functions):由模型输出函数与参数,实际API调用由客户端执行,为开发者提供更精细的控制。

  • 数据存储(Data Stores):以提供数据库的形式,存储并提供代理访问动态更新的信息。


工具的存在让人工智能代理能够真正与外部世界产生互动,而不是仅仅针对语言模型本身。

指挥层 (The Orchestration Layer):Agent 的指挥中心


指挥层是AI Agent模型与工具的总指挥,决定了它如何接收信息、进行内部推理,并采取行动。这是一个循环的过程,直到Agent完成目标或到达终点。


指挥层的复杂性不是一,可以是简单的逻辑计算,也可以是高度复杂的规划与推理。它负责维护记忆、状态、推理与规划,并贯穿提示工程(Prompt Engineering)框架来引导推理与行动。例如:


  • ReAct:让模型边推理边行动。

  • Chain-of-Thought (CoT):透过中间步骤实现多步推理。

  • Tree-of-Thoughts (ToT):适用于需要探索或策略性预测的任务。


那么,指挥层确保AI Agent的每一步都按计划进行,相当于「执行大脑」。

三者良好配合:模型、工具与指挥层的协作之美


这三个组成部分相互协作,使得 AI Agent 能够有效地完成任务。模型负责「思考」,工具负责「执行」,而指挥层则负责「规划与控制」。

这种协作就像一位厨房里的厨师中工作:

  • 厨师首先收集信息(食材和指令)。

  • 然后根据信息进行推理(决定菜色与烹饪方式)。

  • 随后执行动作(切菜、烹煮)。

  • 最后根据结果调整步骤(改进与改进)。


通过这样的方式,AI Agent表现出强大的能力与适应能力,能够自主完成复杂的任务。

三.模型和代理的差异


以下提供了一份作者所撰写的差异表格:

图片


从表格中可以看出,模型的知识来源仅限于其训练数据,无法管理多轮对话或持续上下文,也缺乏内建工具和逻辑层支持。

而代理则跨越介接外部工具扩展知识,具备管理多轮会话的能力,并内建推理框架,能够执行更复杂的任务。这使得智能体在处理动态和复杂任务时更具优势。

四. Agent运作的核心概念


就像厨师在昏暗的厨房中,Agent 利用认知架构来完成其高效的目标。


遍历迭代处理信息、做出明智的决策,并根据先前的输出调整下一步的行动,Agent 才能运转。


Agent的核心位于协调层,负责维护记忆、状态、推理和规划。协调层利用快速发展的提示工程技术和相关框架来引导推理和规划,使Agent能够更有效地完成任务并与环境交互。


Agent使用认知架构的兼容步骤


以下是 Agent 如何使用认知架构来执行任务的步骤示例:


  • 信息收集代理:收集信息,例如用户的查询或可用的工具和资源。

  • 内部推理:根据收集到的信息进行推理,考虑可行的选项和行动。

  • 采取行动:根据推理结果采取行动,例如使用工具、搜索信息或产生响应。

  • 调整:在每个阶段,代理人会根据需要进行调整,利用前期的结果完善计划,并确定下一步行动。


推理技术与思考


Agent可以采用多种推理技术与框架,以选择针对用户请求的最佳行动。以下是常见的框架与技术:

  • ReAct(Reasoning and Acting):提供语言模型一种思考过程策略,结合上下文提示进行推理与行动。

  • 链式思考(Chain of Thought, CoT):跨越中间步骤实现推理能力。子技术包括:自我一致性、主动提示、多模式CoT,针对不同的应用场景有其优缺点。

  • 树思维(Tree of Thought, ToT):适合探索或战略性前瞻任务。扩展链式思考,允许模型探索多种解决问题的中间步骤。


协调层兼容范例:ReAct 框架


以下是协调层如何利用 ReAct 框架来引导推理和规划的流程示例:

  • 查询:用户向Agent发送查询。

  • 启动ReAct序列:Agent向模型提供提示,启动ReAct框架步骤。

  • 执行步伐:

  • 问题:从用户查询中提取的具体问题。

  • 想法:模型关于下一步行动的构想。

  • 行动:模型决定采取的行动,例如选择工具或搜索信息。

  • 操作输入:模型决定提供给工具的输入内容。

  • 观察:根据行动结果进行反馈。

  • 最终答案:为原始查询生成的最终响应。


4.结束循环:将最终答案返回给用户。

图片




在指挥层中使用 ReAct 推理的 Agent 示例

五、工具:通往门口世界的入口


工具是我们可以让LLM通往外部世界的途径。虽然语言模型擅长处理信息,但它们缺乏直接获取和影响现实世界的能力。这种限制在于需要与外部系统或数据交互的情况下的用处。这意味着,在某种意义上,语言模型的好坏取决于它从训练数据中学到的东西。但是,无论我们向模型投入多少数据,它们仍然缺乏与外部世界互动的基本能力。

为了使模型能够与外部系统进行即时、采集的交互,可以使用函数(Functions)、扩展(Extensions)和数据存储(Data Stores)等工具来提供这种关键能力。这些工具建立了基础模型和外部世界之间的联系,使代理能够执行更广泛的任务,而且更准确和可靠。

扩展 (Extensions)


可以被认为是建立标准化方式桥接API和Agent之间的差距,允许Agent无缝执行API,而不管它们的底层实际作如何。扩展跨越以下方式桥接Agent和API之间的差距:

  • 使用范例教导 Agent 如何使用 API 端点。

  • 教导Agent成功调用API端点所需的引数或参数。Agent可以使用模型和示例来动态选择最适合解决用户查询的扩展。

图片

示例:Agents-Extension-API 关系图


函数 (Functions)


与软件工程中的函数类似,是完成特定任务且可根据需要重复使用的独立程序码模组。模型可以利用一组已知的函数,并根据其规格决定当使用每个函数以及函数需要哪些引数。函数与扩展的不同用途:


模型输出函数及其引数,但不进行即时API调用。


图片

示例:Agents-Function-API 关系图


函数在客户端执行,而在Agent端执行扩展。函数的调用逻辑和执行从Agent端转移到客户端应用程序,为开发人员提供对应用程序中数据流的更精细的控制。

图片



划分客户端与代理端对扩展和函数调用的控制


数据存储 (Data Stores)


通过提供对更动态和最新信息的访问来解决模型的静态知识限制。数据存储允许开发人员恢复原始格式向代理提供额外的数据,而无需运行的数据转换、模型重新训练或操作。


数据存储通常作为提供数据库, Agent可以在运行时访问该数据库。数据存储允许Agent访问各种格式的数据,例如:


  • 网站内容

  • 形成资料,如PDF、Word文件、CSV、试算表等

  • 非结构化资料,如HTML、PDF、TXT等

图片

示例:Agents-data store-resource关系图


那如果你设计并储存了一个基于RAG的知识库,你也可以参考以下的方式,建立起AI代理的生命周期:

  • 用户查询:用户向代理发布查询。

  • 查询嵌入(Query Embedding):使用嵌入模型将用户查询转换为 Embedding Vector。

  • 支持数据库匹配:将 Embedding Vector 与支持数据库的内容进行匹配。

  • 内容搜索:从提供数据库中搜索匹配的内容,以文字格式输出结果。

  • 代理处理:代理接收用户查询和检索到的内容。

  • 生成响应或采取行动:代理根据用户查询和搜索的内容制定响应或决定下一步的行动。

  • 回覆结果:向用户传达最终回覆。

图片


基于RAG的AI代理的生命周期架构图


作者在文章中,也很贴心的准备了工具追溯,我们整理如下,这将更加深了这三种执行方式之间的差异:

图片


VI. 模型能力的增强


目标模型执行的增强,目标学习( targeted Learning)是一种关键方法,可以提升模型在特定任务中的表现,尤其是在需要超出数据训练范围的知识时。


这种方法类似于从基本烹饪技巧进阶阶到掌握特定菜系,需要急躁的学习以确定更进一步的结果。来源中提到了以下几种方法来帮助模型获得此类特定的知识:


情境学习(In-context Learning)


  • 这种方法在推论时(推理时间)提供通用模型提示(提示)、工具(工具)和少量范例(few-shot Examples),能够「即时」学习如何以及当使用这些工具来完成特定任务时。

  • ReAct 框架就是这种方法的一个例子。它利用自然语言的提示,使模型能够在接收到用户查询时,能够有效地推理并采取行动。

  • 就像厨师收到特定的食谱(提示)、一些关键食材(相关工具)和一些小吃(少量样品),然后根据有限的资讯和一般的烹饪知识,即时查找如何准备最符合食谱和客户偏好的馅饼。


检索式情境学习(检索式情景学习)


  • 这种技术从外部记忆中检索最相关的信息、工具和相关示例,动态地填充模型提示。

  • Vertex AI 扩展中的「范例存储」(示例商店)或前面提到的基于RAG 架构的数据存储就是这种方法的示例。

  • 这就像厨师在厨房里有一个即时丰富的食物预存室(外部资料储存),里面装满了各种食材和食谱(范例和工具)。厨师动态地可以从食物预知室中选择食材和食谱,方便更好地符合客户的食谱和偏好。


微调学习(基于微调的学习)


  • 这种方法涉及在推论之前使用更大的特定范例数据集来训练模型。

  • 这有助于模型理解何时以及如何应用某些工具,甚至在接收到任何用户查询之前。

  • 这就像我们送厨师去学习一个新的菜系或一系列菜系(在更大的特定样本数据集上进行预训练)。这让厨师能够更深入地理解未来未见过的客户食谱。


综上所述,这些目标学习方法各有优点,在速度、成本和延迟方面都有所不同。在Agent框架中结合这些技术,可以利用各自的优势并最小化其缺点,从而实现更强大的且这些方法使模型能够根据基础,提取信息、工具、以及示例,提升处理复杂任务的能力。

七. 如何在 Google Vertex AI 实践 AI Agent


Vertex AI 平台提供了一个完整的托管环境,简化了当前生产级 AI Agent 的流程,其中包含前面讨论的核心元件,以及其他工具。以下是关于 Vertex AI 上目前生产应用程序的重点:


简化开发流程


开发人员可以使用自然语言介绍,定义Agent的关键要素,包括快速目标、任务指示、工具、用于任务分派的子Agent和示例。这让开发人员能够更加关注当前和完善Agent,而不必担心基础设施、安装和维护的复杂性。


整合开发工具


Vertex AI平台提供了一系列的开发工具,用于测试、评估、快速高效地执行Agent、排除错误并改善Agent的整体质量。这确保了开发出的Agent是可靠且可靠的。


综合代理框架


Vertex AI 平台集成了多种功能,例如 Vertex Agent Builder、Vertex Extensions、Vertex Function Calling 和 Vertex Example Store,这些功能可以共同分享目前完整的端对端 Agent 架构。该架构能够满足生产应用程序的各种需求。


可扩展性管理


Vertex AI 作为一个全托管平台,处理基础设施的管理、维护和部署,让开发人员可以专注于应用程序的开发和优化。


作者在 Vertex AI 平台上提供了一个目前的 Agent 架构示例,展示了如何利用各种功能来创建生产级应用程序。该架构结合了多个必需的元件,确保了 Agent 的有效运行。

图片

  • 工具:用户可以从官方文件中尝试初步的 Agent 架构示例。


VIII. 结论


作者总结了生成式AI Agent的基础组成要素、组成方式以及如何以认知架构的形式有效实施它们。以下是作者在总结中提出的几个重点:


代理利用工具来扩展语言模型的能力。代理可以访问即时信息、提出真实世界的行动建议,并自主规划和执行复杂的任务。代理可以利用一个或多个语言模型来决定如何转换状态,并使用外部工具来完成模型本身难以或不可能完成的复杂任务。


Agent运作的核心是指挥层。指挥层是一种认知架构,它架构了推理、规划、决策并指导Agent的行动。


多种推理技术,例如ReAct、Chain-of-Thought和Tree-of-Thoughts,为指挥提供支持层提供了一个框架,以接收信息、执行内部推理并产生明智的决策或回应。


工具(Tools),例如补充功能(Extensions)、函式(Functions)和数据仓库区(Data Stores),是Agent通往外部世界的接口。它们允许Agent与外部系统交互并访问超出其训练数据范围的知识。

  • 新增功能(Extensions)提供了Agent和外部API之间的桥梁,能够执行API呼叫并检索即时资讯。

  • 函式(Functions)通过分工合作为开发者提供了更便捷的控制,允许代理产生函式参数,这些参数可以在客户端执行。

  • 数据仓库区(Data Stores)为Agent提供了对格式化或非格式化数据的访问,从而实现了数据驱动的应用方案。


随着工具变得更加复杂,推理能力得到增强,Agent将有能力解决迫切复杂的问题。此外,「代理链(代理链)」的策略方法将继续获得发展。突破结合突破特定领域或任务的专业Agent,我们可以创建一个「混合 Agent 专家」方法,能够在各个行业和问题领域提供卓越的成果。

构建复杂的Agent架构需要迭代的方法。实验和改进是针对特定业务案例和组织需求找到解决方案的关键。由于支持其架构的基础模型的生成功能,没有两个Agent是几十的。

然而,利用每个基础组件的优势,我们可以创建有影响力的应用程序,扩展语言模型的功能并驱动真实世界。

作者:万能的大雄

评论