本文档提供了一个参考架构,可帮助您在 Google Cloud中设计强大的多代理 AI 系统。多智能体 AI 系统通过将复杂且动态的流程划分为多个离散的任务,让多个专业 AI 智能体协同执行这些任务,从而优化流程。
本文档的目标受众群体包括在云端构建和管理 AI 基础架构及应用的架构师、开发者和管理员。本文档假定您对 AI 智能体和模型有基本的了解。本文档未提供有关设计和编码 AI 代理的具体指导。
架构
下图展示了在 Google Cloud中部署的多代理 AI 系统的示例架构。
架构组件
上一部分中的示例架构包含以下组件:
组件 | 说明 |
---|---|
前端 | 用户通过前端(例如作为无服务器 Cloud Run 服务运行的聊天界面)与多代理系统互动。 |
代理 | 在此示例中,协调器代理控制着智能体 AI 系统。 协调器代理会调用相应的子代理来触发代理流程。代理可以使用 Agent2Agent (A2A) 协议相互通信,从而实现代理之间的互操作性,而无需考虑其编程语言和运行时。示例架构展示了顺序模式和迭代优化模式。如需详细了解此示例中的子代理,请参阅代理流程部分。 |
智能体运行时环境 | AI 代理可以部署为无服务器 Cloud Run 服务、Google Kubernetes Engine (GKE) 上的容器化应用,也可以部署在 Vertex AI Agent Engine 上。 |
ADK | 智能体开发套件 (ADK) 提供用于开发、测试和部署智能体的工具和框架。ADK 可抽象化智能体创建的复杂性,让 AI 开发者专注于智能体的逻辑和功能。 |
AI 模型和模型运行时 | 对于推理服务,此示例架构中的代理使用 Vertex AI 上的 AI 模型。该架构展示了 Cloud Run 和 GKE 作为您选择使用的 AI 模型的替代运行时。 |
Model Armor | Model Armor 可用于检查和清理部署在 Vertex AI 和 GKE 中的模型的输入和回答。如需了解详情,请参阅 Model Armor 与 Google Cloud 服务集成。 |
MCP 客户端、服务器和工具 | Model Context Protocol (MCP) 通过标准化代理与工具之间的交互,简化了对工具的访问。对于每个代理-工具对,MCP 客户端都会向 MCP 服务器发送请求,代理通过该服务器访问数据库、文件系统或 API 等工具。 |
智能体流程
上述架构中的多代理系统示例具有以下流程:
- 用户通过前端(例如以无服务器 Cloud Run 服务形式运行的聊天界面)输入提示。
- 前端将提示转发给协调器代理。
协调器代理会根据提示中表达的意图启动以下代理流程之一。
- 顺序:
- 任务 A 子代理执行任务。
- 任务 A 子代理调用任务 A.1 子代理。
迭代优化:
- 任务 B 子代理执行任务。
- 质量评估器子代理会检查任务 B 子代理的输出。
- 如果输出不令人满意,质量评估器会调用提示增强子代理来优化提示。
- 任务 B 子代理使用增强型提示再次执行其任务。
此循环会一直持续,直到输出令人满意或达到最大迭代次数。
示例架构包含一个人在环路中的路径,以便人类用户在必要时干预代理流程。
- 顺序:
任务 A.1 子代理和质量评估器子代理会独立调用回答生成器子代理。
响应生成器子代理会生成响应,执行验证和依据检查,然后通过协调器代理将最终响应发送给用户。
使用的产品和工具
此参考架构使用以下 Google Cloud 和第三方产品及工具:
- Cloud Run:一个无服务器计算平台,可让您直接在 Google 可伸缩的基础设施之上运行容器。
- Vertex AI:一个机器学习平台,用于训练和部署机器学习模型和 AI 应用以及自定义 LLM,以在依托 AI 技术的应用中使用。
- Google Kubernetes Engine (GKE):一种 Kubernetes 服务,可用于使用 Google 的基础架构来大规模部署和操作容器化应用。
- Model Armor:一项服务,可保护您的生成式 AI 和智能体 AI 资源免遭提示注入、敏感数据泄露和有害内容的侵害。
- 智能体开发套件 (ADK):一套用于开发、测试和部署 AI 智能体的工具和库。
- Agent2Agent (A2A) 协议:一种开放协议,可实现智能体之间的通信和互操作性,而无需考虑其编程语言和运行时。
- Model Context Protocol (MCP):一种用于将 AI 应用连接到外部系统的开源标准。
使用场景
多智能体 AI 系统适用于复杂的应用场景,这些场景需要多个专业技能集之间的协作和协调才能实现业务目标。如需确定多智能体 AI 系统适合的应用场景,请分析您的业务流程并确定 AI 可以增强的具体任务。专注于可实现的业务成果,例如降低成本和加快处理速度。这种方法有助于使您在 AI 方面的投资与业务价值保持一致。
以下是多代理 AI 系统的应用场景示例。
财务顾问
提供个性化的股票交易建议并执行交易。下图展示了此用例的代理流程示例。此示例使用顺序模式。
下图展示了以下流程:
- 数据检索器代理从可靠来源检索实时和历史股票价格、公司财务报告及其他相关数据。
- 金融分析代理会向数据应用适当的分析和图表绘制技术,识别价格变动模式并做出预测。
- 股票推荐代理会使用分析和图表,根据用户的风险偏好和投资目标生成个性化的买入和卖出特定股票的建议。
- 交易执行代理会代表用户买卖股票。
研究助理
制定研究计划、收集信息、评估和完善研究,然后撰写报告。下图展示了此用例的代理流程示例。此示例中的主要流程使用顺序模式。该示例还包含迭代细化模式。
下图展示了以下流程:
- 规划代理会创建详细的研究计划。
研究者代理会完成以下任务:
- 使用研究计划来确定合适的内部和外部数据源。
- 收集并分析所需的数据。
- 准备研究摘要,并将摘要提供给评估代理。
研究者代理会重复执行这些任务,直到评估者代理批准研究为止。
报告撰写代理会创建最终的研究报告。
供应链优化器
优化库存、跟踪货件并与供应链合作伙伴沟通。 下图展示了此用例的代理流程示例。 此示例使用顺序模式。
仓库经理代理会根据库存、需求预测和供应商交货期创建补货订单,确保库存水平达到最佳状态。
- 代理与物流跟踪代理互动,以跟踪配送情况。
- 该代理与供应商通信代理互动,以通知供应商订单变更。
发货跟踪代理通过与供应商的物流平台和运输公司系统集成,确保及时高效地完成订单。
供应商通信代理代表系统中的其他代理与外部供应商进行通信。
设计考虑事项
本部分介绍了一些设计因素、最佳实践和建议,您在使用此参考架构开发满足特定安全性、可靠性、费用和性能要求的拓扑时应考虑这些内容。
本部分中的指导并非详尽无遗。根据工作负载的要求以及您使用的 Google Cloud 和第三方产品与功能,您可能还需要考虑其他设计因素和权衡因素。
系统设计
本部分提供的指导可帮助您为部署选择 Google Cloud 区域以及选择适当的 Google Cloud 产品和工具。
区域选择
为 AI 应用选择 Google Cloud 区域时,请考虑以下因素:
- Google Cloud 服务在每个区域的可用性。
- 最终用户延迟时间要求。
- Google Cloud 资源的费用。
- 法规要求。
如需为应用选择合适的 Google Cloud 位置,请使用以下工具:
- Google Cloud 区域选择器:一种基于 Web 的交互式工具,可根据碳足迹、费用和延迟时间等因素,为您的应用和数据选择最佳 Google Cloud区域。
- Cloud Location Finder API:一种公共 API,可提供一种以编程方式查找 Google Cloud、Google Distributed Cloud 和其他云提供商中的部署位置的方法。
代理设计
本部分提供有关设计 AI 代理的一般建议。有关编写代理代码和逻辑的详细指南不在本文档的讨论范围内。
设计重点 | 建议 |
---|---|
智能体定义和设计 |
|
代理互动 |
|
背景信息、工具和数据 |
|
安全
本部分介绍了设计注意事项和建议,以帮助您在 Google Cloud 中设计满足工作负载安全要求的拓扑。
组件 | 设计注意事项和建议 |
---|---|
代理 |
AI 代理会带来一些独特而严重的安全风险,而传统的确定性安全实践可能无法充分缓解这些风险。Google 建议采用一种方法,将确定性安全控制措施的优势与基于推理的动态防御措施相结合。这种方法基于三项核心原则:人工监督、精心定义的代理自主性和可观测性。以下是与这些核心原则相符的具体建议。 人工监督:智能体 AI 系统有时可能会出现故障或无法按预期运行。例如,模型可能会生成不准确的内容,或者代理可能会选择不当的工具。在业务关键型智能体 AI 系统中,纳入human-in-the-loop流程,以便人工主管实时监控、替换和暂停智能体。例如,人类用户可以审核代理的输出,批准或拒绝输出,并提供进一步的指导来纠正错误或做出战略性决策。这种方法将智能体 AI 系统的效率与人类用户的批判性思维和领域专业知识相结合。 代理的访问权限控制:使用 Identity and Access Management (IAM) 控制项配置代理权限。仅向每个代理授予其执行任务以及与工具和其他代理通信所需的权限。这种方法有助于最大限度地降低安全漏洞的潜在影响,因为遭到入侵的代理对系统的其他部分的访问权限有限。如需了解详情,请参阅为代理设置身份和权限和管理已部署代理的访问权限。 监控:利用全面的跟踪功能监控智能体行为,让您能够了解智能体执行的每项操作,包括其推理过程、工具选择和执行路径。如需了解详情,请参阅 Vertex AI Agent Engine 中的代理日志记录和 ADK 中的日志记录。 如需详细了解如何保护 AI 智能体,请参阅 AI 智能体的安全性和安全性。 |
Vertex AI |
责任共担:安全是共同的责任。Vertex AI 可保护底层基础架构,并提供工具和安全控制措施,帮助您保护数据、代码和模型。您负责正确配置服务、管理访问权限控制和保护应用。如需了解详情,请参阅 Vertex AI 共担责任。 安全控制:Vertex AI 支持 Google Cloud 安全控制,可用于满足数据驻留、客户管理的加密密钥 (CMEK)、使用 VPC Service Controls 的网络安全和Access Transparency方面的要求。如需了解详情,请参阅以下文档: 安全性:AI 模型可能会生成有害的回答,有时是为了响应恶意提示。
模型访问权限:您可以设置组织政策,以限制可在 Google Cloud 项目中使用的 AI 模型的类型和版本。如需了解详情,请参阅控制对 Model Garden 模型的访问权限。 数据保护:如需发现提示和回答以及日志数据中的敏感数据并对其进行去标识化,请使用 Cloud Data Loss Prevention API。 如需了解详情,请观看以下视频: 在 AI 应用中保护敏感数据。 |
MCP | 请参阅 MCP 与安全。 |
A2A |
传输安全性:A2A 协议强制要求在生产环境中所有 A2A 通信都使用 HTTPS,并建议使用传输层安全协议 (TLS) 1.2 版或更高版本。 身份验证:A2A 协议将身份验证委托给标准 Web 机制(如 HTTP 标头)以及 OAuth2 和 OpenID Connect 等标准。每个代理都会在其代理卡片中宣传身份验证要求。如需了解详情,请参阅 A2A 身份验证。 |
Cloud Run |
入站流量安全(适用于前端服务):如需控制对应用的访问权限,请停用前端 Cloud Run 服务的默认 用户身份验证:如需验证用户对前端 Cloud Run 服务的访问权限,请使用 Identity-Aware Proxy (IAP)。 如果用户尝试访问受 IAP 保护的资源,IAP 会执行身份验证和授权检查。如需了解详情,请参阅为 Cloud Run 启用 IAP。 容器映像安全性:如需确保仅将获得授权的容器映像部署到 Cloud Run,您可以使用 Binary Authorization。如需识别并降低容器映像中的安全风险,请使用 Artifact Analysis 自动运行漏洞扫描。如需了解详情,请参阅容器扫描概览。 数据驻留:Cloud Run 可帮助您满足数据驻留要求。Cloud Run functions 函数在所选的区域内运行。 如需详细了解容器安全性,请参阅 Cloud Run 常规开发技巧。 |
此架构中的所有产品 |
数据加密:默认情况下, Google Cloud使用 Google-owned and Google-managed encryption keys对静态数据进行加密。 如需使用您控制的加密密钥保护代理的数据,您可以使用在 Cloud KMS 中创建和管理的 CMEK。如需了解与 Cloud KMS 兼容的 Google Cloud 服务,请参阅兼容的服务。 降低数据渗漏风险:为降低数据渗漏风险,请在基础设施周围创建 VPC Service Controls 边界。VPC Service Controls 支持此参考架构使用的所有 Google Cloud 服务。 访问权限控制:为拓扑中的资源配置权限时,请遵循最小权限原则。 部署后优化:在 Google Cloud中部署应用后,使用 Active Assist Recommendation Hub 获取建议,进一步优化安全性。查看建议,并根据您的环境应用这些建议。如需了解详情,请参阅在 Recommendation Hub 中查找建议。 云环境安全性:使用 Security Command Center 中的工具检测漏洞、识别并缓解威胁、定义和部署安全状况,以及导出数据以供进一步分析。 |
更多安全建议
可靠性
本部分介绍在 Google Cloud中为部署构建和运营可靠的基础设施时应考虑的设计因素和建议。
组件 | 设计注意事项和建议 |
---|---|
代理 |
容错性:设计智能体系统以容忍或处理智能体级故障。在可行的情况下,使用代理可以独立运行的去中心化方法。 模拟故障:在将代理型 AI 系统部署到生产环境之前,通过模拟生产环境来验证该系统。识别并修复代理之间的协调问题和意外行为。 错误处理:为了能够诊断和排查错误,请实现日志记录、异常处理和重试机制。 |
Vertex AI |
配额管理:Vertex AI 支持 Gemini 模型的动态共享配额 (DSQ)。DSQ 有助于灵活管理按需付费请求,并且无需手动管理配额或请求增加配额。DSQ 会在活跃客户之间动态分配指定模型和区域的可用资源。使用 DSQ 时,没有针对单个客户预定义的配额限制。 容量规划:如果对模型的请求数量超出分配的容量,系统会返回错误代码 429。对于业务关键型且需要始终保持高吞吐量的工作负载,您可以使用预配吞吐量来预留吞吐量。 模型端点可用性:如果数据可以在多个区域或国家/地区之间共享,您可以为模型使用全球端点。 |
Cloud Run | 针对基础架构中断的稳健性:Cloud Run 是区域级服务。它会在一个区域内的多个可用区之间同步存储数据,并自动在这些可用区之间对流量进行负载均衡。如果发生可用区服务中断,Cloud Run 将继续运行,并且数据不会丢失。如果区域服务中断,该服务将停止运行,直到 Google 解决服务中断问题。 |
此架构中的所有产品 | 部署后优化:在 Google Cloud中部署应用后,您可以使用 Active Assist Recommendation Hub 获取建议,进一步优化可靠性。查看建议,并根据您的环境应用这些建议。如需了解详情,请参阅在 Recommendation Hub 中查找建议。 |
如需了解特定于 AI 和机器学习工作负载的可靠性原则和建议,请参阅 Well-Architected Framework 中的 AI 和机器学习视角:可靠性。
操作
本部分介绍使用此参考架构设计可高效运营的 Google Cloud 拓扑时应考虑的因素。
组件 | 设计注意事项和建议 |
---|---|
Vertex AI |
使用日志进行监控:默认情况下,写入 持续评估:定期对智能体的输出以及智能体为生成输出而采取的轨迹或步骤进行定性评估。如需实现智能体评估,您可以使用 Gen AI Evaluation Service 或 ADK 支持的评估方法。 |
MCP |
数据库工具:如需高效管理 AI 代理的数据库工具,并确保代理安全地处理连接池和身份验证等复杂问题,请使用 MCP Toolbox for Databases。它提供了一个集中式位置来存储和更新数据库工具。您可以在多个代理之间共享工具,并更新工具,而无需重新部署代理。 该工具箱包含适用于 AlloyDB for PostgreSQL 等 Google Cloud数据库和 MongoDB 等第三方数据库的各种工具。 生成式 AI 模型:如需让 AI 代理使用 Google 生成式 AI 模型(例如 Imagen 和 Veo),您可以使用适用于生成式媒体 API 的 MCP 服务器 Google Cloud。 Google 安全产品和工具:如需让 AI 代理访问 Google 安全产品和工具(例如 Google Security Operations、Google Threat Intelligence 和 Security Command Center),请使用 Google 安全产品的 MCP 服务器。 |
架构中的所有 Google Cloud 产品 | 跟踪:使用 Cloud Trace 持续收集和分析跟踪记录数据。借助轨迹数据,您可以快速识别和诊断复杂代理工作流中的错误。您可以通过 Trace 探索器工具中的可视化图表进行深入分析。如需了解详情,请参阅跟踪代理。 |
如需了解特定于 AI 和机器学习工作负载的卓越运营原则和建议,请参阅 Well-Architected Framework 中的 AI 和机器学习视角:卓越运营。
费用优化
本部分将指导您优化您使用此参考架构构建的 Google Cloud 拓扑的设置和操作费用。
组件 | 设计注意事项和建议> |
---|---|
Vertex AI |
费用分析和管理:为了分析和管理 Vertex AI 费用,我们建议您创建每秒查询次数 (QPS) 和每秒令牌数 (TPS) 的基准指标。然后,在部署后监控这些指标。基准还有助于进行容量规划。例如,基准有助于您确定何时可能需要预配的吞吐量。 模型选择:为 AI 应用选择的模型会直接影响费用和性能。为了找到在性能和费用之间取得最佳平衡的模型,请针对您的特定应用场景迭代测试模型。建议您先从最具成本效益的型号入手,然后逐步升级到更强大的型号。 经济高效的提示:提示(输入)和生成的回答(输出)的长度会直接影响性能和费用。撰写简短、直接且提供足够背景信息的提示。设计提示,以便从模型中获得简洁的回答。 例如,可使用“用两句话总结”或“列出 3 个要点”等表述方式。如需了解详情,请参阅提示设计最佳实践。 上下文缓存:为了降低包含重复内容及大量输入 token 的请求的费用,请使用上下文缓存。 批量请求:在相关情况下,考虑使用批量预测。批量请求的费用低于标准请求。 |
Cloud Run |
资源分配:创建 Cloud Run 服务时,您可以指定要分配的内存量和 CPU 量。从默认 CPU 和内存分配开始。观察一段时间内的资源用量和费用,并根据需要调整分配。如需了解详情,请参阅以下文档: 费率优化:如果您可以预测 CPU 和内存要求,则可以通过承诺使用折扣 (CUD) 来节省资金。 |
此架构中的所有产品 | 部署后优化:在 Google Cloud中部署应用后,您可以使用 Active Assist 建议中心获取建议,进一步优化费用。查看建议,并根据您的环境应用这些建议。如需了解详情,请参阅在 Recommendation Hub 中查找建议。 |
如需估算 Google Cloud 资源的费用,请使用Google Cloud 价格计算器。
如需了解特定于 AI 和机器学习工作负载的费用优化原则和建议,请参阅 Well-Architected Framework 中的AI 和机器学习视角:费用优化。
性能优化
本部分介绍了设计注意事项和建议,以帮助您在 Google Cloud 中设计满足工作负载性能要求的拓扑。
组件 | 设计注意事项和建议 |
---|---|
代理 |
模型选择:为代理式 AI 系统选择模型时,请考虑代理需要执行的任务所需的功能。 提示优化:如需大规模快速提升和优化提示效果,并避免手动重写提示,请使用 Vertex AI 提示优化器。 优化器可帮助您高效地调整不同模型中的提示。 |
Vertex AI |
模型选择:为 AI 应用选择的模型会直接影响费用和性能。为了找到在性能和费用之间取得最佳平衡的模型,请针对您的特定应用场景迭代测试模型。建议您先从最具成本效益的型号入手,然后逐步升级到更强大的型号。 提示工程:提示(输入)和生成的回答(输出)的长度会直接影响性能和费用。撰写简短、直接且提供足够背景信息的提示。设计提示,以便从模型中获得简洁的回答。例如,可使用“用两句话总结”或“列出 3 个要点”等表述方式。如需了解详情,请参阅提示设计最佳实践。 上下文缓存:为了缩短包含重复内容及大量输入 token 的请求的延迟时间,请使用上下文缓存。 |
Cloud Run |
资源分配:根据性能要求,配置要分配给 Cloud Run 服务的内存和 CPU。如需了解详情,请参阅以下文档: 如需了解更多性能优化指南,请参阅常规 Cloud Run 开发技巧。 |
此架构中的所有产品 | 部署后优化:在 Google Cloud中部署应用后,您可以使用 Active Assist Recommendation Hub 获取建议,进一步优化性能。查看建议,并根据您的环境应用这些建议。如需了解详情,请参阅在 Recommendation Hub 中查找建议。 |
如需了解特定于 AI 和机器学习工作负载的性能优化原则和建议,请参阅 Well-Architected 框架中的 AI 和机器学习视角:性能优化。
部署
如需了解如何构建和部署多智能体 AI 系统,请使用以下代码示例。这些代码示例是功能齐全的起点,可用于学习和实验。为了在生产环境中实现最佳运行,您必须根据具体的业务和技术要求自定义代码。
- 金融顾问: 分析股市数据、制定交易策略、确定执行计划并评估风险。
- 研究助理:规划和开展研究、评估研究结果,并撰写研究报告。
- 保险代理人:创建会员资格、提供道路救援服务和处理保险索赔。
- 搜索优化器: 查找搜索关键字、分析网页并提供搜索优化建议。
- 数据分析器:检索数据、执行复杂的操作、生成可视化图表,以及运行机器学习任务。
- 网络营销代理商: 选择域名、设计网站、创建广告系列和制作内容。
- Airbnb 规划器(支持 A2A 和 MCP):针对指定位置和时间,查找 Airbnb 房源并获取天气信息。
如需查看有关如何开始将 ADK 与 MCP 服务器搭配使用的代码示例,请参阅 MCP 工具。
后续步骤
- 在 Agent Garden 中探索示例代理和工具。
- 使用智能体开发套件 (ADK) 构建智能体。
- 将代理部署到 Google Cloud。
- 在 Cloud Run 上托管 A2A 智能体。
- 在 Cloud Run 上托管 MCP 服务器。
- 如需简要了解 Google Cloud中特定于 AI 和机器学习工作负载的架构原则和建议,请参阅 Well-Architected Framework 中的 AI 和机器学习视角。
- 如需查看更多参考架构、图表和最佳实践,请浏览 Cloud 架构中心。
贡献者
作者: Kumar Dhanagopal | 跨产品解决方案开发者
其他贡献者:
- Alan Blount | 产品经理
- Filipe Gracio 博士 | 客户工程师,AI/机器学习专家
- Holt Skinner | 开发技术推广工程师
- Jack Wotherspoon | 开发技术推广工程师
- Joe Shirey | Cloud 开发者关系经理
- Megan O'Keefe | 开发技术推广工程师
- Samantha He | 技术文档工程师
- Shir Meir Lador | 开发者关系工程经理
- Victor Dantas | 生成式 AI 现场解决方案架构师
- Vlad Kolesnikov | 开发者关系工程师