本文档提供了一种多智能体系统的高级架构,该系统可将分散的多模态数据整合到可搜索的知识图谱中。该系统可让用户上传数据,然后使用知识图谱识别潜在问题或系统性风险。该架构可让代理在复杂的数据网络中导航,并保持长期的个性化。它可确保分布式资源持续满足搜索要求。
GraphRAG 是一种基于图的检索增强生成 (RAG) 方法。 RAG 通过使用向量搜索检索到的与上下文相关的数据来增强提示,从而帮助 AI 生成基于事实的回答。GraphRAG 将向量搜索与知识图谱查询相结合,以检索能够更好地反映来自不同来源的数据之间互连性的情境数据。使用 GraphRAG 增强的提示可以生成更详细、更相关的 AI 回答。
本文档的目标受众群体包括在云端构建和管理 AI 基础架构及应用的架构师、开发者和管理员。本文档假定您对 AI 代理和模型有基本的了解。本文档未提供有关设计和编码 AI 代理的具体指导。
本文档的部署部分提供了一个代码示例,演示了如何定义 Spanner Graph 架构并关联多模态实体以实现智能体检索。
架构
下图简要展示了多代理 AI 系统的架构,该系统支持多模态 GraphRAG 资源编排:
上图中的架构包含两个工作流:数据注入和搜索。
- 数据注入工作流将分散的多模态记录整合到统一的知识图谱中。此工作流使用顺序多代理模式将原始数据上传到 Cloud Storage,使用 Gemini 提取复杂关系,并更新 Spanner 图知识图谱,以确保数据可供检索。
- 借助搜索工作流,您可以通过 GraphRAG 流程检索数据洞见和有事实依据的回答。此工作流使用 Gemini 和专业子代理来浏览知识图谱,并根据之前的会话数据整合发现。
以下标签页提供了展示数据注入和搜索工作流的架构:
数据注入工作流
下图展示了数据注入工作流的详细架构。
上图显示了以下数据流:
- 用户与 Web 应用互动以上传新数据。例如,财务分析师可能会上传收益 PDF、股东会议记录或市场表现图表。
- Web 应用将请求转发给根代理。根代理是一个协调代理,用于接收请求,并部署在 Cloud Run 服务上。
- 根代理从记忆库中检索持久性会话数据,以便根据用户在以往会话中的偏好设置来个性化搜索结果。
- 根智能体使用 Gemini Enterprise Agent Platform 上的 Gemini 来解读请求,并将任务委托给多媒体智能体来执行数据注入流水线。
- 多媒体代理会启动 顺序模式,并将原始输入转发给上传代理。
- 上传代理执行以下任务:
- 将原始文件存储在 Cloud Storage 存储桶中,并检测媒体类型。
- 将执行的操作的中间摘要转发给提取代理。
- 提取代理会执行以下任务:
- 从存储桶中提取数据 URI,并使用 Gemini 解析数据和识别结构化实体。例如,财务数据的实体可以包括公司子公司、财政季度和收入情绪。
- 将结构化实体和所执行操作的中间摘要转发给图代理。
- 图表代理会执行以下任务:
- 接收结构化实体并将数据上传到知识图谱。Spanner Graph 创建或关联表示发行方、利益相关方和市场工具的节点。
- 将执行的操作的中间摘要转发给总结代理。
- 总结代理会生成一个响应,其中包含提取结果的文本总结以及所有子代理执行的操作。总结代理将回答发送给多媒体代理。
- 多媒体代理将总结回答转发回根代理。
- 根代理会触发 回调函数,以将会话数据保存到 Gemini Enterprise Agent Platform 会话 。根代理会从会话中提取自定义 记忆主题,以保存有关关键关注领域的信息。例如,财务分析师可能会创建一个记忆主题来跟踪监管标志或行业趋势。
- 根代理将总结回答转发给 Web 应用。
- Web 应用将响应转发回用户。
搜索工作流
下图展示了搜索工作流的详细架构。
上图显示了以下数据流:
- 用户向 Web 应用发起搜索请求。例如,投资组合经理提交了一项请求,要求检测涉及三个以上实体且总交易量在 24 小时内超过 100 万美元的任何循环交易模式。
- Web 应用将请求转发给根代理。根代理是一种 协调器代理,可接收请求并部署在 Cloud Run 服务上。
- 根代理会从记忆库中检索持久性会话数据,以便根据投资组合经理的历史偏好和患者背景信息来个性化搜索结果。
- 根代理使用 Agent Platform 上的 Gemini 来确定最佳搜索策略:
- 关键字搜索:使用 SQL
LIKE子句来匹配确切的类别或位置。 - 语义 RAG 搜索:使用 嵌入模型和余弦距离来查找语义相似的数据条目。
- 混合搜索:执行关键字搜索和语义 RAG 搜索,并使用倒数排序融合 (RRF) 合并结果,以确保高相关性和覆盖面。
- 关键字搜索:使用 SQL
- 根代理对存储在 Spanner Graph 中的知识图谱执行适当的搜索策略。
- 知识图谱会将搜索结果转发给根代理。
- 根智能体执行以下任务,以更新智能体 AI 系统来响应应用:
- 触发 回调函数,以将会话数据保存到 Gemini Enterprise Agent Platform 会话上的 Agent Runtime。
- 从会话中提取自定义记忆主题。例如,财务分析师可能会创建一个记忆主题来跟踪监管标志或新兴的行业趋势。
- 将摘要响应转发到 Web 应用。
- Web 应用将响应转发回用户。
使用的产品
此参考架构使用以下 Google Cloud产品和功能:
- Cloud Run:一个无服务器计算平台,可让您直接在 Google 可伸缩的基础设施之上运行容器。
- Gemini:Google 开发的一系列多模态 AI 模型。
- Gemini Enterprise Agent Platform:一个综合性平台,可用于构建、扩缩、治理和优化企业级 AI 代理。
- Cloud Storage:适用于各种数据类型的费用低廉且不受限制的对象存储。数据可从 Google Cloud内部和外部访问,并且跨位置进行复制以实现冗余。
- Spanner Graph:一种图数据库,可提供 Spanner 的可伸缩性、可用性和一致性功能。
- Gemini Enterprise Agent Platform 会话:一种永久性存储服务,用于保存和检索用户与代理之间的互动历史记录。
- 记忆库:一种永久性存储服务,可根据用户与代理的对话生成、优化、管理和检索长期记忆。
如需了解如何为智能体 AI 系统选择替代组件(包括框架、智能体运行时、工具、内存和设计模式),请参阅选择智能体 AI 架构组件。
使用场景
该架构专为以下应用场景而设计:整合和分析分散的多模态数据,以优化资源分配和信息检索。通过维护独立的子代理,系统支持模块化更新,并确保分布式资源与搜索要求高度连续地匹配。将 Spanner Graph 集成为知识图谱后,智能体 AI 系统便可对复杂且相互关联的数据进行建模。此集成有助于实现丰富的上下文理解和复杂的查询功能,而这些功能对于关系型数据库或 NoSQL 数据库来说可能难以实现或效率低下。
对于以下使用情形,图数据库非常适合表示从多模态数据中派生的任意且不断变化的连接。否则,这些连接将需要在关系型数据库中进行复杂而严格的架构管理。
以下是本文档中描述的架构的一些用例示例:
- 企业 HR 人才流动:通过语义扩展识别符合条件的内部候选人,从而改进大规模招聘搜索的关键字搜索。该架构从多模态作品集和视频介绍中提取技术技能和软技能评估,以构建全面的人才图谱。Spanner 知识图谱可跟踪员工、能力和项目历史记录之间的关系。轨迹结果可根据概念深度识别专家,并标记人手不足的项目。
- 社交媒体内容分析:通过在社交媒体平台上执行高级内容发现和网络分析,识别特定回忆或趋势。系统会处理视频、语音备忘录和视频博客等上传内容,然后提取实体、主题、情感和提及内容。Spanner 知识图谱可追踪用户、用户之间的关系(好友和关注者)、帖子、点赞、评论、分享的主题和趋势之间的关系。
设计考虑事项
以下部分针对设计 AI 代理和实现此架构以用于生产环境提供了一些常规建议。
AI 智能体设计
如需提高代理的成本效益和性能,请考虑以下建议:
- 智能体系统设计:将复杂的工作流分解为多个职责明确的专用智能体,而不是一个单体式智能体。这种关注点分离简化了提示工程,最大限度地减少了指令漂移,并实现了精细的模型伸缩。该架构会将大量明确定义的任务分配给较小、较快的模型,同时将复杂的推理任务留给高容量模型。
- 根智能体路由:为了最大限度地缩短延迟时间并避免不必要的分代理调用,请在智能体指令中明确定义路由逻辑。确保每个工具的用途、输入参数和预期输出都记录在字符串字面量中,以帮助模型选择正确的工具。
- 工具设计:将工具分离为多个专注的方法,而不是使用单一的单体方法。这种方法可确保整个代码库的一致性,减少逻辑分支,并实现特定的优化路径,例如在调用直接搜索方法时跳过查询分析。
- 代理上下文:为防止下游代理在顺序流水线中针对上游数据重复查询,请通过代理状态传递足够的上下文。为共享状态使用明确定义的 JSON 结构,以便每个代理都能可靠地解析数据。
- 会话状态存储:使用会话状态存储即时对话历史记录,并使用记忆库存储跨会话提取的事实。在会话开始时注入记忆上下文,以便智能体无需重新处理冗长的对话历史记录即可参考偏好设置。
- 记忆质量:如果用户的偏好设置或角色随时间发生变化,允许用户清除或更新过时的记忆。
- 数据库内 AI 模型:为减少延迟时间,请使用 Spanner
ML.PREDICT函数在 SQL 查询中内嵌调用模型。监控 Agent Platform 配额用量,因为混合搜索工作负载可能会针对每个查询触发多次模型调用。
生产环境指导
如需在生产环境中实现此架构,请考虑以下建议:
- 实现精细的访问权限控制:使用精细的访问权限控制在表级和列级授予访问权限。限制 Cloud Storage 存储桶政策,以便只有 Cloud Run 服务账号具有访问权限。
- 清理推理和回答:使用 Model Armor 检查并清理推理请求和模型回答。这种清理可降低用户上传的多模态内容带来的提示注入风险。它还有助于防止在代理输出中意外泄露个人身份信息 (PII) 或敏感数据。
- 实现 Agent Platform 重试逻辑:为了处理配额限制等暂时性错误,请为对 Agent Platform 端点和 Spanner 的调用实现具有指数退避算法的重试逻辑。
- 设置文件限制:为避免因文件过大而导致 API 超时,请设置明确的上传大小限制,并在提取数据实体之前将大型视频分成块。如需了解详情,请参阅自定义视频处理。
- 费用分析和管理:为了分析和管理 Agent Platform 费用,我们建议您为每秒查询次数 (QPS) 和每秒令牌数 (TPS) 创建基准指标。然后,在部署后监控这些指标。您在成本管理过程中创建的基准有助于您确定容量规划。例如,基准有助于您确定何时可能需要预配吞吐量。
- 自动管理存储生命周期:为了降低存储费用,请使用对象生命周期管理功能在定义的保留期过后将文件移至 Nearline 或 Coldline 存储类别。
- 使用结构化日志记录:使用结构化元数据记录所有智能体工具调用和流水线结果。借助结构化日志,您可以在 Cloud Monitoring 中查询日志和信息中心。
- 实现跟踪:如需诊断延迟热点,请使用 Cloud Trace 捕获代理运行程序和工具执行过程中的端到端请求跟踪记录。
- 评估智能体质量:使用 Gen AI Evaluation Service 定期评估智能体输出质量,以验证工具选择轨迹和回答质量。
- 资源分配:根据性能要求,配置要分配给 Cloud Run 服务的内存上限和 CPU 上限。
如需详细了解构建和部署多代理 AI 系统的设计因素、最佳实践和建议,请参阅 Google Cloud中的多代理 AI 系统。
部署
如需部署此架构的示例实现,请尝试学习“Way Back Home Level 2”Codelab。
后续步骤
- 了解如何在 Cloud Run 上托管 AI 代理。
- 了解如何使用 Agent Platform 和 Spanner Graph 为生成式 AI 构建 GraphRAG 基础设施。
- 了解设计 Spanner Graph 架构的最佳实践。
- 了解如何获取多模态嵌入。
- 了解如何在 Google Cloud中构建多智能体 AI 系统。
- 探索学习资源,了解如何使用 Gemini Enterprise Agent Ready (GEAR) 构建和部署企业级智能体。
- 如需简要了解 Google Cloud中特定于 AI 和机器学习工作负载的架构原则和建议,请参阅 Well-Architected Framework 中的 AI 和机器学习视角。
- 如需查看更多参考架构、图表和最佳实践,请浏览 Cloud 架构中心。
贡献者
作者:
- Annie Wang | 软件工程师
- Samantha He | 技术文档工程师
其他贡献者:
- Christina Lin | 开发者关系工程师经理
- Kumar Dhanagopal | 跨产品解决方案开发者
- Olivier Bourgeois | 开发者关系工程师