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

2025 年代理与基础用白皮书(英文版)

信息技术2025-01-13谷歌
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 人类在处理混乱模式识别任务方面表现卓越。然而,在得出结论之前,他们通常会依靠工具——如书籍、谷歌搜索或计算器——来补充自己的先验知识。就如人类一样,生成式人工智能模型可以被训练来使用工具获取实时信息或建议实际操作。例如,一个模型可以通过利用数据库检索工具访问特定信息(如客户的购买历史),从而生成定制化的购物推荐。或者,基于用户的查询,模型可以调用各种API发送电子邮件回复给同事,或代您完成财务交易。要做到这一点,模型不仅需要能够访问一组外部工具,还需要具备自我驱动地规划并执行任何任务的能力。这种集推理、逻辑以及与生成式人工智能模型相连的外部信息为一体的组合激发了代理(agent)的概念,即超越单一生成式人工智能模型能力的程序。本文档深入探讨了所有这些相关方面及其关联细节。 什么是代理人 ? 在最根本的形式下,生成式AI代理可以被定义为一种应用程序,它通过观察世界并利用自身拥有的工具来实现目标。代理具有自主性,可以在没有人类干预的情况下独立行动,尤其是在提供了明确的目标或任务之后。代理还可以在其达到目标的过程中采取主动策略。即使在没有人类显式指令集的情况下,代理也可以推理出为了实现其最终目标下一步应该做什么。尽管在AI中关于代理的概念非常普遍且强大,但本白皮书专注于生成式AI模型在撰写时能够构建的具体类型代理。 为了理解代理内部的工作原理,让我们首先介绍驱动代理行为、动作和决策的基础组件。这些组件的组合可以描述为认知架构,而通过这些组件的不同组合,可以实现多种不同的认知架构。聚焦于核心功能,如图1所示,代理的认知架构中包含三个基本组成部分。 The model 在一个代理的范围内,模型指的是将作为代理过程的集中决策制定者的语言模型(LM)。代理所使用的模型可以是一个或多个大小(小/大)不等的LM,这些模型能够基于指令进行推理和逻辑框架。模型可以是通用的、多模态的,也可以根据特定代理架构的需求进行微调。为了获得最佳的生产结果,您应该利用最适合您所需应用场景的模型,并且最好是在与您计划在认知架构中使用的工具相关联的数据签名上进行了训练的模型。需要注意的是,模型通常不会专门针对代理的具体配置设置(例如工具选择、编排/推理设置)进行训练。然而,通过提供展示代理能力的例子,包括代理使用特定工具或推理步骤的各种上下文实例,可以进一步细化模型以适应代理的任务。 工具 基础模型尽管在文本和图像生成方面表现出色,但仍受限于其无法与外部世界互动的能力。工具bridging 这个差距,赋能代理与外部数据和服务进行交互,并解锁超出基础模型单独功能范围的一系列新动作。工具可以采用多种形式,具有不同的复杂程度,但通常与常见的 Web API方法(如 GET、POST、PATCH 和 DELETE)相对应。例如,一个工具可以更新数据库中的客户信息或获取天气数据以影响代理向用户提供的旅行建议。借助工具,代理能够访问和处理现实世界的信息。这赋予了它们支持更专业化系统的能力,如检索增强生成(RAG),显著扩展了代理自身所能实现的功能范围。我们将在下文中详细讨论工具,但最重要的是理解工具如何在代理的内部能力与外部世界之间架起桥梁,从而解锁更多可能性。 编排层 协调层描述了一个周期性过程,它规范了代理如何接收信息、执行内部推理,并使用这些推理来指导其下一步行动或决策。一般来说,这个循环会持续进行直到代理达到目标或到达停止点。协调层的复杂度因代理及其执行的任务而异。有些循环可能只是简单的决策规则计算,而其他循环则可能包含链式逻辑、涉及额外的机器学习算法或实现其他概率推理技术。我们将在认知架构部分更详细地讨论代理协调层的具体实现。 代理与模型 为了更清楚地了解代理和模型之间的区别 , 请考虑以下图表 : 认知架构 : 代理如何运作 想象一位忙碌厨房中的厨师。其目标是为餐厅客人制作美味的菜肴,这一过程涉及规划、执行和调整的循环。 • 他们收集信息 , 例如顾客的订单以及食品室和冰箱中的成分。 • 他们根据刚刚收集到的信息进行一些内部推理,以确定可以创建哪些菜品和口味组合。 • 他们采取行动创造的菜 : 切蔬菜 , 混合香料 , 烧肉。 在每个阶段,厨师根据需要进行调整,随着食材的耗尽或收到客户反馈,不断细化和完善他们的计划。厨师利用之前的结果来确定下一步的行动计划。这一信息摄入、规划、执行和调整的循环过程描述了一种独特的认知架构,厨师利用这种架构来达成目标。 就像厨师一样,代理可以通过迭代处理信息、做出有根据的决策,并根据之前的输出优化下一步行动来达到最终目标。代理认知架构的核心是协调层,负责维护记忆、状态、推理和规划。它利用快速发展的提示工程领域及其相关框架来指导推理和规划,从而使代理能够更有效地与环境互动并完成任务。在提示工程框架和语言模型任务规划领域的研究正在迅速发展,产生了多种有前景的方法。尽管这里列出的内容并非详尽无遗,但以下是一些在本出版物发布时最受欢迎的框架和推理技术: 1. **LLM Prompt Engineering Framework**: 这一框架专注于通过定制的提示(prompt)设计来增强大型语言模型(LLM)的能力,以完成特定任务,如对话生成、文本总结或代码编写等。 2. **Reasoning as Planning (RAP) Techniques**: RAP 技术将推理视为规划过程,允许代理基于其当前知识和目标构建详细的行动计划,以高效地解决问题。 3. **Hierarchical Prompt Design**: 该方法涉及创建层次结构化的提示,使得复杂的任务可以分解为一系列小步骤,每一步都由一个专门设计的提示引导,从而简化任务执行。 4. **Feedback Loop Optimization**: 通过建立从代理执行到结果反馈的闭环系统,优化提示设计和执行策略,以提高任务完成的效率和准确性。5. **Contextual Prompt Adaptation**: 根据不同的任务上下文动态调整提示,以更好地匹配特定情境下的需求,提高代理的适应性和有效性。•ReAct,一种prompt工程框架,为语言模型提供了一种思维过程策略,使其能够在有或没有上下文示例的情况下对用户查询进行推理和采取行动。ReAct prompting已被证明优于多个当前最佳 baseline,并提高了LLMs与人类交互的可靠性和信任度。 这些框架和技巧的发展展示了在代理智能领域中,如何通过精细的提示设计和有效的推理规划来提升其性能和应用范围。随着研究的不断深入,我们期待看到更多创新性的方法和技术,进一步推动代理认知能力的边界。 •思想链(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. 这是工具选择可能发生的地方 例如,一个操作可以是[航班、搜索、编码、无]之一,其中前三个代表模型可以选择的已知工具,而最后一个表示“无工具选择”。 d. 动作输入 : 模型决定向工具提供什么输入(如果有) e. 观察 : 动作 / 动作输入序列的结果 f.最终答案 :模型的最终答案提供给原始用户查询 4. ReAct 循环结束 , 并将最终答案提供给用户 如图2所示,模型、工具以及代理配置共同协作,根据用户原始查询提供一个基于事实且简洁的回答。尽管模型可以根据其先前的知识猜测答案(幻觉),但它选择了使用工具(航班信息)来搜索实时外部信息。这些额外的信息被提供给模型,使其能够在基于真实数据的基础上做出更明智的决策,并将这些信息总结反馈给用户。 总结而言,代理响应的质量可以直接关联到模型进行各种任务推理和行动的能力,包括选择合适工具的能力以及这些工具定义的准确性。就像厨师精心选用新鲜食材并根据顾客反馈调整菜肴一样,代理依赖于精确的推理和可靠的信息来实现最优结果。在接下来的部分中,我们将深入探讨代理如何与新数据建立联系。 工具 : 我们通往外部世界的钥匙 尽管语言模型在处理信息方面表现出色,但它们缺乏直接感知和影响现实世界的能力。这限制了它们在需要与外部系统或数据进行交互的情况下 usefulness。这意味着,在某种意义上,一个语言模型只能根据其训练数据所学到的内容来评估其质量。但是,无论我们向模型投入多少数据,它们仍然缺乏与外部世界互动的基本能力。那么,我们如何使模型能够进行实时、情境相关的外部系统交互呢?函数、扩展、数据存储和插件都是为模型提供这种关键能力的方式。 尽管它们有很多不同的名称,工具是在我们基础模型与外部世界之间建立联系的关键。这种与外部系统和数据的连接使我们的代理能够执行更广泛的任务,并且更加准确可靠。例如,工具可以使得代理调整智能家居设置、更新日历、从数据库中检索用户信息或根据特定指令发送电子邮件。 截至本报告发布之日,Google模型能够交互的三大工具类型包括扩展(Extensions)、函数(Functions)和数据存储(Data Stores)。通过为代理配备这些工具,我们解锁了它们不仅理解世界而且能够采取行动的巨大潜力,从而开启了众多新的应用和可能性。 Extensions 了解扩展(Extensions)最简单的方式是将它们视为以标准化方式在API和代理之间建立桥梁,从而允许代理无缝执行API,无论其底层实现如何。假设您构建了一个代理,其目标是帮助用户预订航班。您知道想要使用Google Flights API来获取航班信息,但不确定如何让您的代理调用这个API端点。 一种可能的方法是实现自定义代码,该代码将接收用户的查询请求,解析查询以提取相关信息,然后调用