0
用微信扫码二维码
分享至好友和朋友圈
![]()
谷歌在2024年底发布了《智能体》(Agents)白皮书,表明未来人工智能将在商业中扮演更积极和独立的角色,并详细阐述了智能体的概念、架构、运作方式以及相关技术,为智能体的开发和应用提供了理论框架和实践指导。
一、AI Agent的核心架构:超越单一模型的智能系统
生成式人工智能(Generative AI)中的智能体可以被定义为一种应用程序,它通过观察世界并利用其可用的工具来实现目标。智能体具有自主性,能够在没有人类干预的情况下独立运行,尤其是在被赋予明确的目标或任务时,它们能够表现出色。智能体还可以主动地朝着目标前进,即使在没有明确指令的情况下,它们也能够推理出下一步应该做什么来实现最终目标。虽然人工智能中的智能体概念是相当广泛且强大的,但本文主要关注生成式人工智能模型能够构建的特定类型的智能体。
二、AI Agent工具生态:构建智能体的“瑞士军刀”
尽管语言模型在信息处理方面表现出色,但它们缺乏直接感知和影响现实世界的能力。这限制了它们在需要与外部系统或数据交互的情况下的实用性。换言之,语言模型的能力仅限于其训练数据所涵盖的内容,无论我们向模型提供多少数据,它们仍然缺乏与外部世界直接交互的基本能力。那么,我们如何赋予模型与外部系统进行实时、情境感知交互的能力呢?函数、扩展、数据存储和插件都是为模型提供这种关键能力的方式。虽然这些工具的名称各异,但它们的作用是相同的:创建基础模型与外部世界的连接。这种与外部系统和数据的连接使智能体能够执行更广泛的任务,并且能够以更高的准确性和可靠性完成这些任务。例如,工具可以允许智能体调整智能家居设置、更新日历、从数据库中获取用户信息,或者根据特定指令发送电子邮件。通过为智能体配备工具,使它们不仅能够理解世界,还能够对世界产生影响,从而为各种新的应用打开了大门。主要与三种主要类型的工具进行交互:扩展(Extensions)、函数(Functions)和数据存储(Data Stores)。
(一)扩展
要理解扩展,可以将其视为一种标准化的方式,它在应用程序接口(API)和智能体之间架起了一座桥梁,使智能体能够无缝执行API调用,而无需考虑其底层实现细节。
假设构建了一个智能体,其目标是帮助用户预订航班。你知道你想使用航班API来获取航班信息,但你不确定如何让智能体调用这个API端点。一种方法是实现自定义代码,该代码会接收用户查询,解析查询中的相关信息,然后进行API调用。例如,在航班预订用例中,用户可能会说:“我想从A飞往B。”在这种情况下,我们的自定义代码解决方案需要从用户查询中提取“A”和“B”作为相关实体,然后才能尝试进行API调用。但如果用户说:“我想飞往B”,而没有提供出发城市呢?由于缺少必要的数据,API调用会失败,我们需要实现更多代码来处理这种边缘和特殊情况。这种方法不可扩展,并且在超出已实现自定义代码范围的任何情况下都很容易出错。
更稳健的方法是使用扩展。扩展通过以下两种方式在智能体和API之间架起一座桥梁:一是教会智能体如何使用API端点。二是教会智能体成功调用API所需的参数或参数是什么。扩展可以独立于智能体创建,但应作为智能体配置的一部分提供。智能体在运行时使用模型和示例来决定哪个扩展最适合解决用户的查询。这突出了扩展的一个关键优势:它们内置的示例类型,允许智能体动态选择最适合用户查询的扩展。
(二)函数
在软件工程领域,函数被定义为自包含的代码模块,用于完成特定任务,并且可以根据需要重复使用。当软件开发人员编写程序时,他们通常会创建许多函数来完成各种任务。他们还会定义何时调用函数A而不是函数B的逻辑,以及每个函数所需的输入是什么。
函数在智能体世界中的工作方式非常相似,只是我们可以将软件开发人员替换为模型。模型可以从一组已知的函数中选择,并根据其规范决定何时使用每个函数以及函数需要哪些参数。函数与扩展有几个不同之处,其中最显著的是:模型输出函数及其参数,但不会直接调用API。函数在客户端执行,而扩展在服务器端执行。
(三)数据存储
语言模型就像一个巨大的图书馆,包含其训练数据。但与不断收购新书的图书馆不同,这个图书馆是静态的,只包含其最初训练时的知识。这带来了一个挑战,因为现实世界中的知识是不断变化的。数据存储通过提供动态信息来解决这一限制,确保模型的响应基于事实和最新信息。
考虑一个常见的情景,开发人员可能需要向模型提供少量额外数据,例如以电子表格的形式。数据存储允许开发人员以原始格式向智能体提供额外数据,消除了耗时的数据转换、模型重新训练或微调的需要。数据存储将传入的文档转换为一组向量数据库嵌入,智能体可以利用这些嵌入来提取其下一步行动或响应所需的信息。
三、AI Agent开发实践:从原型到生产的全链路方案
从快速原型开发到企业级生产部署,开发者需要一个完整的解决方案来确保智能体能够高效地实现目标并满足复杂的需求。本文将探讨如何通过针对性学习提升模型性能、使用LangChain快速启动智能体开发,以及借助Vertex AI平台实现智能体的生产级部署。通过这些实践,开发者可以充分利用智能体的强大能力,从简单的原型设计到复杂的生产应用,实现无缝过渡和持续优化。
(一)提升模型性能的针对性学习
在实际应用中,模型需要在生成输出时能够选择正确的工具,尤其是在大规模生产环境中使用工具时。虽然通用训练可以帮助模型发展这种技能,但现实场景往往需要超出训练数据的知识。这可以类比为烹饪中的基础技能与精通特定菜系的区别:两者都需要基础的烹饪知识,但后者需要针对特定领域的深入学习。
为了帮助模型获得这种特定领域的知识,有几种方法可供选择:
1.上下文学习(In-context learning):这种方法在推理时为通用模型提供提示、工具和少量示例,使其能够即时学习如何为特定任务使用这些工具。ReAct框架是自然语言处理中这种即时学习方法的一个例子。
2.基于检索的上下文学习(Retrieval-based in-context learning):这种技术通过从外部存储中检索相关信息、工具和相关示例来动态填充模型提示。例如,Vertex AI扩展中的“示例存储”或基于RAG的数据存储架构。
3.基于微调的学习(Fine-tuning based learning):这种方法涉及使用大量特定示例对模型进行训练,以帮助模型在接收用户输入之前理解何时以及如何应用某些工具。
每种方法在速度、成本和延迟方面都有其独特的优势和劣势。然而,通过将这些技术结合到智能体框架中,我们可以利用各自的优点,减少缺点,从而实现更强大、更灵活的模型性能。
(二)使用LangChain快速启动智能体
为了提供一个实际可执行的智能体示例,我们将使用LangChain和LangGraph库快速搭建一个原型。这些流行的开源库允许用户通过“链式”逻辑、推理和工具调用来构建自定义智能体,以回答用户的查询。
我们定义了两个工具:“search”用于执行谷歌搜索,“places”用于执行谷歌位置查询。然后,我们初始化了一个“ChatVertexAI”模型,并将这两个工具传递给模型。最后,我们创建了一个智能体,并向其输入了一个多阶段查询:“A队上周在足球比赛中对阵谁?对方球队的主场地址是什么?”智能体通过调用“search”工具获取了比赛信息,然后通过调用“places”工具获取对方球队主场的地址,并最终输出了完整的答案。
这个简单的智能体示例展示了模型、编排层和工具如何协同工作以实现特定目标。通过LangChain和LangGraph,开发者可以快速构建和测试智能体,而无需从头开始编写复杂的逻辑和工具调用代码。这种敏捷开发方式使得开发者能够快速迭代和优化智能体,以满足不同的业务需求。
(三)使用Vertex AI智能体进行生产应用
虽然本文探讨了智能体的核心组件,但构建生产级应用需要将它们与额外的工具进行集成。谷歌的Vertex AI平台简化了这一过程,提供了一个完全托管的环境,涵盖了前面提到的所有基础元素。使用自然语言界面,开发者可以快速定义智能体的关键元素,如目标、任务指令、工具、用于任务委派的子智能体和示例,从而轻松构建期望的系统行为。此外,该平台还配备了一套开发工具,用于测试、评估、衡量智能体性能、调试和改进所开发智能体的整体质量。这使得开发者可以专注于构建和优化智能体,而平台则管理基础设施、部署和维护的复杂性。
四、未来展望:AI Agent的无限可能
智能体通过工具扩展了语言模型的能力,能够访问实时信息、建议现实世界的行动,并自主规划和执行复杂任务。这些任务对于语言模型单独完成来说可能是困难甚至不可能的。智能体可以利用一个或多个语言模型来决定何时以及如何转换状态,并使用外部工具来完成各种复杂任务。
智能体的核心是编排层,它通过结构化的推理、规划和决策来指导智能体的行动。各种推理技术,如ReAct、Chain-of-Thought和Tree-of-Thoughts,为编排层提供了框架,使其能够接收信息、进行内部推理,并生成明智的决策或行动。
工具是智能体与外部世界互动的关键,包括扩展、函数和数据存储。这些工具使智能体能够与外部系统互动并访问超出其训练数据的知识。扩展为智能体和外部API之间提供了桥梁,使API调用和实时信息的检索成为可能。函数为开发者提供了更精细的控制,通过分工协作,允许智能体生成可以在客户端执行的函数参数。数据存储为智能体提供了对结构化或非结构化数据的访问,使数据驱动的决策成为可能。
智能体的未来充满了无限可能。随着工具的日益复杂化和推理能力的不断提升,智能体将能够解决越来越复杂的问题。此外,“智能体链”(agent chaining)这种策略性方法也将继续获得关注。通过将专门化的智能体——每个智能体都在特定领域或任务中表现出色——结合起来,我们可以创建一种“智能体专家混合体”(mixture of agent experts)的方法,从而在各个行业和问题领域中提供卓越的成果。
构建复杂的智能体架构需要采用迭代的方法。实验和优化是找到特定业务案例和组织需求解决方案的关键。由于支撑智能体架构的基础模型具有生成性,因此没有两个智能体是完全相同的。然而,通过利用这些基础组件的各自优势,我们可以创建具有影响力的应用程序,这些应用程序不仅能够扩展语言模型的能力,还能推动现实世界的变革。
免责声明:本文转自启元洞见。文章内容系原作者个人观点,本公众号编译/转载仅为分享、传达不同观点,如有任何异议,欢迎联系我们!
研究所简介
国际技术经济研究所(IITE)成立于1985年11月,是隶属于国务院发展研究中心的非营利性研究机构,主要职能是研究我国经济、科技社会发展中的重大政策性、战略性、前瞻性问题,跟踪和分析世界科技、经济发展态势,为中央和有关部委提供决策咨询服务。“全球技术地图”为国际技术经济研究所官方微信账号,致力于向公众传递前沿技术资讯和科技创新洞见。
地址:北京市海淀区小南庄20号楼A座
电话:010-82635522
微信:iite_er
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.
下载网易新闻客户端
伊甸园真容现世新疆于阗

			    	微信扫一扫打赏
			    
			    	支付宝扫一扫打赏	
			    
