您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[谷歌]:2025 年代理与基础用白皮书 - 发现报告

2025 年代理与基础用白皮书

信息技术2025-01-07-谷歌大***
AI智能总结
查看更多
2025 年代理与基础用白皮书

作者 : Julia Wiesinger , Patrick Marlow和 Vladimir Vuskovic Acknowledgements 审稿人和撰稿人 Evan Huang EmilyXue Olcan Sercinoglu Sebastian Riedel Satinder BavejaAntonio Gulli AnantNawalgaria 策展人和编辑Antonio Gulli Anant Na walgaria Grace Mollison 技术作家Joey Haymaker Designer迈克尔 · 兰宁 目录 5677881213151821242728323335384042Introduction 4什么是代理人 ?The model工具编排层代理与模型认知架构 : 代理如何运作工具 : 我们通往外部世界的钥匙Extensions示例扩展函数用例函数示例代码数据存储实施和应用工具回顾通过有针对性的学习提高模型性能代理快速入门与 LangChain使用 Vertex AI 代理的生产应用程序Summary尾注 这种推理的组合 ,逻辑 , 并访问外部所有连接的信息生成 AI 模型调用代理人的概念。 Introduction 人类在杂乱无章的模式识别任务中表现卓越。然而,在得出结论之前,他们通常会依赖工具——比如书籍、Google搜索或计算器——来补充自己的先验知识。就像人类一样,生成式AI模型也可以被训练使用工具来访问实时信息或建议实际操作。例如,一个模型可以利用数据库检索工具来获取特定信息,如客户的购买历史,从而生成个性化的购物推荐。或者,根据用户的问题,模型可以通过调用各种API来发送电子邮件回复给同事,或者代表用户完成财务交易。为了做到这一点,模型不仅需要访问一系列外部工具,还需要具备自我规划和执行任何任务的能力。这种推理、逻辑以及与生成式AI模型相连的外部信息组合,引发了代理(agent)的概念,即一个超越生成式AI模型独立能力的程序。本白皮书将更详细地探讨这些及相关方面。 什么是代理人 ? 在最基础的形式下,生成式AI代理可以被定义为一种应用程序,它通过观察世界并利用自身拥有的工具来实现目标。代理具有自主性,可以在没有人类干预的情况下独立行动,尤其是在提供了明确的目标或任务后。代理还可以在达成目标的过程中采取主动策略。即使在没有人类明确指令的情况下,代理也可以推理出为了实现其最终目标下一步应该做什么。虽然在AI中关于代理的概念非常普遍且强大,但本白皮书专注于当时生成式AI模型能够构建的具体类型代理。 为了理解代理人的内部工作机制,让我们首先介绍驱动其行为、动作和决策的基础组件。这些组件的组合可以描述为认知架构,而通过这些组件的不同组合,可以实现多种不同的认知架构。聚焦于核心功能,代理人的认知架构中包含三个基本组件,如图1所示。 The model 在代理的范畴内,模型指的是将作为集中决策者用于代理流程的语言模型(LM)。代理所使用的模型可以是一个或多个大小不一(小/大)的通用语言模型,这些模型能够基于指令推理和逻辑框架(如ReAct、链式思考或树状思考)进行工作。模型可以是通用的、多模态的,或者是根据特定的代理架构需求进行微调。为了获得最佳的生产结果,应选择最适合您期望的应用端的模型,并且理想情况下,该模型应在与您计划在认知架构中使用的工具相关的数据签名上进行了训练。值得注意的是,模型通常不会被训练为特定的配置设置(即工具选择、编排/推理设置)。然而,通过向模型提供展示代理能力的示例,包括代理使用特定工具或在各种情境下的推理步骤,有可能进一步细化模型以适应代理的任务。 工具 基础模型尽管在文本和图像生成方面表现出色,但仍受限于无法与外部世界互动的能力。工具弥补这一差距,赋能代理与外部数据和服务进行交互,并解锁超出底层模型单独作用范围的一系列新动作。工具可以采取多种形式,具有不同的复杂程度,但通常与常见的Web API方法(如GET、POST、PATCH和DELETE)相对应。例如,一个工具可以更新数据库中的客户信息或获取天气数据以影响代理为用户提供旅行建议的能力。借助工具,代理可以访问和处理真实世界的信息。这使它们能够支持更专业的系统,如检索增强生成(RAG),显著扩展了代理自身能力的边界,使其超越了基础模型单独所能实现的功能。我们将在下面详细讨论工具,但最重要的是要理解,工具在代理内部能力与外部世界之间架起了桥梁,开启了更广泛的可能性。 编排层 编排层描述了一个循环过程,该过程规范了代理如何接收信息、进行内部推理,并利用这些推理来指导其下一步行动或决策。通常,这个循环将持续进行,直到代理达到目标或遇到停止点。编排层的复杂性会根据代理及其执行的任务而有很大差异。有些循环可能只是简单的计算和决策规则,而其他循环可能包含链式逻辑、涉及额外的机器学习算法或实施其他概率推理技术。我们将在认知架构部分更详细地讨论代理编排层的具体实现。 代理与模型 为了更清楚地了解代理和模型之间的区别 , 请考虑以下图表 : 认知架构 : 代理如何运作 设想一位繁忙厨房中的厨师。他们的目标是为餐馆顾客制作美味佳肴,这涉及到计划、执行和调整的一个循环过程。 • 他们收集信息 , 例如顾客的订单以及食品室和冰箱中的成分。 • 他们根据刚刚收集到的信息进行一些内部推理,以确定可以创建哪些菜品和口味组合。 • 他们采取行动创造的菜 : 切蔬菜 , 混合香料 , 烧肉。 在流程的每个阶段,厨师根据需要进行调整,随着食材的消耗或收到客户反馈,不断优化他们的计划。他们利用以往的结果集来确定下一步行动方案。这一信息摄入、规划、执行和调整的循环描述了厨师为了达成目标所采用的独特认知架构。 正如厨师通过迭代处理信息、做出有见地的决策,并根据先前的结果细化下一步行动来达到最终目标一样,代理商可以利用认知架构实现这一目标。代理商认知架构的核心是协调层,负责维持记忆、状态、推理和规划。它利用快速发展的提示工程领域及其相关框架来指导推理和规划,使代理商能够更有效地与其环境互动并完成任务。到本文发表时,关于提示工程框架和语言模型任务规划的研究正在迅速发展,产生了各种有前景的方法。尽管这里列出的内容并非详尽无遗,但以下是一些当时最受欢迎的框架和推理技术: 1. **Auto-Paraphrasing**:自动重述技术帮助生成与原始输入意思相同但表述不同的输出,增强语言模型的多样性。 2. **Tree Augmented Neural Networks (TAN)**:树增强神经网络通过添加树结构来提高神经网络的解释性和预测能力,有助于更精细的任务规划。 3. **Incremental Learning**:增量学习允许模型随着时间的推移从新数据中学习,不断改进其性能和适应性。 4. **Memory-Augmented Systems**:记忆增强系统通过集成外部存储机制来提升模型的记忆能力,使其能够更好地处理连续任务和长序列问题。5. **Hierarchical Reasoning**:层次化推理方法将复杂问题分解为多个子任务,逐级解决,以提•ReAct,一种prompt工程框架,为语言模型提供了在处理用户查询时进行推理和采取行动的思维过程策略,既可以有上下文示例也可以没有。ReAct prompting已被证明优于多个SOTA基准,并提高大语言模型与人类交互的可靠性和信任度。 高问题解决效率和准确性。 这些技术不仅丰富了代理人的功能,还促进了人工智能领域的创新和发展,特别是在自然语言处理和交互式智能系统方面。 •思想链(CoT)一种促进推理能力的提示工程框架,通过中间步骤实现。CoT的各种子技术包括自我一致性、主动提示和多模态CoT,每种技术在特定应用中各有优势和不足。 •思想树 (ToT),,一个适合作为探索或战略前瞻任务的快速工程框架。它超越了链式思考提示,并允许模型探索各种作为语言模型解决一般问题中间步骤的思考链。 代理可以利用上述推理技术中的任意一种,或其他多种技术,来选择针对给定用户请求的最佳下一步行动。例如,让我们考虑一个被编程使用ReAct框架选择正确的行动和工具以应对用户查询。事件序列可能如下所示: 1. 用户向代理发送查询 2. 代理开始 ReAct 序列 3. 代理向模型提供提示 , 要求它生成下一个 ReAct 步骤及其相应的输出 : 问题 : 来自用户查询的输入问题 , 与提示一起提供a. b. Thought: The model ’ s thoughts about what it should do next c. Action: The model ’ s decision on what action to take next i. 这是工具选择可能发生的地方 ii. 例如,一个动作可以是[航班、搜索、代码、无]之一,其中前三种代表模型可以选择的已知工具,而最后一种代表“不选择任何工具”。 d. 动作输入 : 模型决定向工具提供什么输入(如果有) e. 观察 : 动作 / 动作输入序列的结果 f.最终答案 :模型的最终答案提供给原始用户查询 4. ReAct 循环结束 , 并将最终答案提供给用户 如图2所示,模型、工具以及代理配置共同协作,根据用户原始查询提供一个基于事实且简洁的回答。虽然模型可以根据其先前的知识猜测答案(即产生幻觉),但它选择使用工具(航班信息)来搜索实时外部信息。这些额外的信息被提供给模型,使其能够在基于真实数据的基础上做出更加明智的决策,并将这些信息总结反馈给用户。 总结而言,代理响应的质量可以直接反映模型在这些各种任务上的推理和行动能力,包括选择合适工具的能力以及这些工具的定义程度。就像厨师使用新鲜食材并密切关注顾客反馈来制作佳肴一样,代理依赖于合理的推理和可靠的信息以实现最优结果。在下一节中,我们将探讨代理如何与新鲜数据建立联系的各种方式。 工具 : 我们通往外部世界的钥匙 尽管语言模型在处理信息方面表现出色,但它们缺乏直接感知和影响现实世界的能力。这限制了它们在需要与外部系统或数据交互的情况下应用。这意味着,从某种意义上说,一个语言模型的性能仅限于它从训练数据中学习的内容。但无论向模型投入多少数据,它们仍然缺乏与外界互动的基本能力。因此,我们如何使模型能够实时、上下文感知地与外部系统进行互动呢?函数、扩展、数据存储和插件等方法都是提供这种关键能力给模型的方式。 虽然它们有许多不同的名称,但工具是在我们基础模型与外部世界之间建立联系的关键。这种与外部系统和数据的连接使我们的代理能够执行更广泛的任务,并且更加准确可靠。例如,工具可以使代理调整智能家居设置、更新日历、从数据库中检索用户信息或根据特定指令发送电子邮件。 截至本报告发布之日,Google模型能够交互的三大工具类型包括扩展(Extensions)、函数(Functions)和数据存储(Data Stores)。通过为代理配备这些工具,我们解锁了它们不仅理解世界,还能在此基础上采取行动的巨大潜力,从而开启了众多新的应用和可能性的大门。 Extensions 理解扩展的最简单方式是将它们视为以标准化方式在API和代理之间搭建桥梁,从而允许代理无缝执行API,而不受其底层实现的影响。假设您构建了一个代理,目标是帮助用户预订航班。您知道想要使用Google Flights API来获取航班信息,但不确定如何让您的代理调用这个API端点。 一种方法可能是实现自定义代码,该代码会接收输入的用户查询,解析查询以提取相关数据,然后调用API。例如,在机票预订场景中,用户可能会说“我想预订机票”。从奥斯汀到苏黎世.”在这种情况下,我们的自定义代码解决方案需要从用户查询中提取“Austin”和“Zurich”作为相关实体,然后再尝试调用API。但如果用户说“我想预订一张机票”,会发生什么?到苏黎世并且如果从