《AI Agent技术白皮书(2024)》是由Google团队撰写的一份关于人工智能领域中Agent技术的重要文档。它深入探讨了Agent的概念、架构、组件、工作原理以及应用场景等多方面内容,为理解和研究Agent技术提供了全面而深入的视角。
一、核心内容解读
(一)译者序
来源说明:本文翻译自2024年Google团队的Agents白皮书,作者包括Julia Wiesinger、Patrick Marlow和Vladimir Vuskovic。
重要提醒:由于水平及维护精力有限,译文可能存在错误或过时之处,鼓励读者查阅原文。同时强调传播知识需尊重劳动,年满十八周岁转载需注明出处。
(二)引言
人类的先验知识与工具的使用
人类能够处理复杂任务得益于先验知识,并借助工具如书籍、搜索、计算器等补充知识后得出结论。
人类的模仿者——Agent的诞生
可以训练生成式AI模型使用工具获取实时信息或给出行动建议,如利用数据库查询工具获取客户购物历史并提供购物建议,或根据用户查询调用API完成邮件回复、金融交易等。这种具备推理、逻辑并能访问外部信息的生成式AI模型就是Agent,即扩展了生成式AI模型出厂能力的程序。
(三)什么是Agent
概念:应用程序
广义上,生成式AI Agent是一个通过观察世界并使用工具实现目标的应用程序。它是自治的,给定合适目标就能独立行动,无需人类干预;面对模糊指令也能推理并采取行动达成目标。在AI领域,本文讨论的Agent更侧重于基于生成式AI模型实现的特定类型。
架构:cognitive architecture(认知架构)
为理解Agent内部工作原理,需关注驱动其行为、行动和决策的基础组件,这些组件组合形成认知架构。
组件
描述了Agent接收信息、进行内部推理并使用推理结果指导下一步行动或决策的循环过程。该循环会持续到Agent达到目标或触发停止条件,其复杂性因Agent及其执行任务而异,可能从简单的计算和决策规则到包含链式逻辑、额外机器学习算法或其他概率推理技术等多种形式。
基础模型在文本和图像生成方面虽强大,但无法与外部世界联动,工具解决了这一问题。它使Agent能够与外部数据和服务互动,扩展了行动范围。常见形式为Web API(如GET、POST、PATCH和DELETE方法),例如结合用户信息和天气数据的工具可为用户提供旅行建议。此外,还介绍了Functions和Data Stores等工具类型,它们分别类似于软件工程中的函数概念以及用于连接Agent与各种实时数据源(如结构化和非结构化数据)的存储方式,各有其特点和应用场景。
是Agent中用于核心决策的语言模型(LM),可以是一个或多个任意大小的模型,能遵循基于指令的推理和逻辑框架(如ReAct、chain-of-Thought、Tree-of-Thoughts)。它可以是通用、多模态的,也可根据特定需求微调得到,并且能通过相关示例或数据集进一步微调,明确在不同情境下工具的使用和推理步骤。
模型(model)
工具(tool)
编排层(orchestration)
Agent与model的区别
通过表格清晰展示了Agent和模型在功能、特性等方面的差异,有助于更深入理解两者的关系。
(四)认知架构:Agent是如何工作的
类比:厨师做菜
将Agent的工作过程类比为厨师做菜,厨师需要经历收集信息(输入)、推理(思考)、做菜(行动)以及根据情况调整的循环过程,这与Agent的信息接收、规划、执行和调整循环类似,每个阶段都需要根据实际情况进行灵活调整以实现最终目标。
Agent推理框架
ReAct:为语言模型提供思考过程策略,经证明优于一些SOTA基线,提高了LLM的人机交互性和可信度。
Chain-of-Thought (CoT):通过中间步骤实现推理能力,包含多种子技术(如自我一致性、主动提示和多模态CoT),适用于不同场景。
Tree-of-Thoughts (ToT):适合探索或战略任务,概括了链式思考提示,允许模型探索各种思考链作为解决问题的中间步骤。
ReAct例子
详细介绍了Agent使用ReAct推理技术的具体示例,包括用户查询、Agent启动ReAct序列、提示模型生成下一步骤及相应输出(涉及问题、思考、行动、行动输入、观察等环节),最终返回最终答案给用户。整个过程展示了Agent如何利用推理技术和工具,根据用户输入提供准确响应,强调了推理能力和执行任务能力(包括选择正确工具及工具定义的好坏)对Agent响应质量的重要性。
(五)工具:模型通往现实世界的关键
工具类型一:extensions
以预定航班的Agent为例,阐述了传统方式(写代码解析参数)存在的问题(维护性和扩展性差),进而介绍了使用Extension的方式,即通过提供示例信息教Agent使用API以及告知调用API所需具体参数。Extension可独立于Agent开发,但作为Agent配置一部分,Agent运行时根据示例和模型决定使用哪个extension处理用户查询,体现了其动态选择的优势。
概念:是一种以标准化方式连接API与Agent的组件,使Agent能调用外部API而无需关注其实现细节。
需求示例及实现方式
示例:以Google的Code Interpreter extension为例,展示了从自然语言描述生成和运行Python代码的过程及效果。
工具类型二:functions
概念:在Agent世界中,函数的工作方式与软件工程中的函数类似,模型可设置一组已知函数,并根据规范决定何时使用哪个函数及所需参数。
与Extension的比较:通过GoogleFlights示例对比了Function与Extension的不同,包括模型输出形式(Function只输出函数名及参数信息,由客户端执行;Extension在Agent端执行)以及控制方式(Client-Side Control和Agent-Side Control)的差异。
例子及代码:以教模型结构化输出信息为例,介绍了如何实现一个AI Travel Agent,包括定义Function、初始化模型和工具、传递用户查询和工具给模型以及最终的效果展示,说明了Function在提供细粒度控制和生成结构化信息方面的作用。
工具类型三:data storage
概念及作用:语言模型的知识是静态的,而现实世界知识不断演变,Data Storage通过提供动态更新的信息解决这一问题,允许开发人员以原始格式向Agent提供增量数据,转换为向量数据库嵌入供Agent提取信息,使模型返回更相关、更具时效性,避免微调或重新训练模型等操作。
实现与应用:在生成式AI场景中,Agent使用的数据库一般是向量数据库,以向量embedding形式存储数据。以检索增强生成(RAG)为例,介绍了其典型应用过程,包括用户query生成embedding、与向量数据库内容匹配、发送匹配内容回Agent、Agent决定响应或行动以及最终响应发送给用户,并通过一个RAG与ReAct推理/规划的Agent示例展示了具体应用效果。
(六)通过针对性学习提升模型性能
In-context learning, e.g. ReAct
原理:使用通用模型,在推理时为模型提供提示词、工具和示例,使模型能“即时学习”如何以及何时为特定任务使用这些工具,如ReAct框架。
Retrieval-based in-context learning, e.g. RAG
原理:通过从外部存储中检索相关信息、工具和示例来动态填充模型提示词,如RAG架构。
Fine-tuning based learning
原理:用大量特定示例对模型进行训练(微调/精调),然后用微调过的模型进行推理,好处是微调后的模型在处理请求前已具备使用某些工具的先验知识。
类比加深理解:再次通过与厨师做饭类比,强调每种方法在速度、成本和延迟方面各有优缺点,需根据实际需求组合使用。
(七)基于LangChain快速创建Agent
代码示例
展示了基于LangChain和LangGraph构建Agent快速原型的代码,包括导入相关库、定义工具函数(如search和places函数分别使用SerpAPI和Google Places API)、设置模型(ChatVertexAI)和工具列表,以及创建Agent并传入输入进行流式处理的过程。
运行效果
展示了一个简单Agent的运行效果,包括人类消息输入、Agent对工具的调用以及最终返回的结果,体现了模型、编排和工具等基础组件的协同工作。
使用Google VertexAl Agent创建生产应用
介绍了这些组件如何在像VertexAl Agent和生成式剧本这样的Google规模的托管产品中结合在一起,通过一个示例架构图展示了从提示、模型到工具执行及API调用的完整流程。
(八)总结
Agent的核心能力:Agent可利用工具扩展语言模型能力,包括访问实时信息、建议现实世界行动以及自主规划和执行复杂任务;核心是编排层(认知架构),各种推理技术为其提供框架以接收信息、推理并生成决策或响应。
工具的重要性:工具是Agent通往外部世界的关键,不同类型工具(Extensions、Functions、Data Storage)各有特点和应用场景,使Agent能与外部系统互动,获取训练数据之外的知识,实现数据驱动的应用程序开发。
未来展望:Agent的未来充满潜力,随着工具变得更复杂、推理能力增强,将能解决更复杂问题;“Agent chaining”是战略性方向,通过结合Specialized Agents可创建“mixture of Agent experts”方法,在各行业和问题领域提供卓越性能;复杂Agent架构需持续迭代,利用好基座大模型可创建有影响力的应用程序,带来现实世界价值。
二、参考资料
文档还列出了众多参考资料,包括相关学术论文(如ReAct、Chain-of-Thought等相关研究)、技术规范(如OpenAPI Specification)以及一些技术平台和工具的介绍(如Google Research的ScaNN、LangChain等),为进一步深入研究提供了丰富的资源指引。