如果您开发 AI 智能体,则可以使用 OpenTelemetry 对应用进行插桩处理,以观察智能体如何推理、调用工具和响应提示。本指南介绍了如何使用 LangGraph 和智能体开发套件 (ADK) 等框架捕获智能体遥测数据,以及如何在 Cloud Trace 中分析多模态提示和回答。
对智能体进行插桩,以了解其行为
在开发或管理生成式 AI 应用时,遥测数据会捕获自主代理的推理步骤、工具调用和外部交互。这些数据非常有用,原因如下:
- 了解非确定性行为:由于智能体的推理过程是非确定性的,因此遥测是检查智能体做出的决策和选择的工具的唯一可靠方法。
- 排查和诊断错误:跟踪记录可帮助您识别分布式智能体工作流中失败的 API 请求、无限执行循环和延迟瓶颈。
- 支持治理和验证流量:借助遥测功能,您可以直观呈现通信流(例如在应用拓扑中),以验证您的智能体是否仅与授权的智能体、MCP 服务器和外部端点通信。
- 评估输出质量和费用:收集提示、回答和 token 使用情况有助于您评估模型准确率、检测幻觉并优化资源消耗。
如何对生成式 AI 应用进行插桩处理
对应用进行插桩处理涉及生成遥测数据并将其发送到可存储、查询和分析数据的位置。例如,当您的插桩将遥测数据发送到您的 Google Cloud 项目时,您可以使用 Google Cloud Observability 来查看和分析这些数据。
当生成式 AI 应用编写的 span 符合 span 和事件的语义惯例时,Cloud Trace 会自动从这些 span 中提取事件。如需了解这些惯例,请参阅以下文档:
Cloud Trace 还可以显示多模态提示词和回答。在这种情况下,您的提示和回答不会附加到跟踪数据中。而是存储在 Cloud Storage 存储桶中。如需详细了解此配置,请参阅收集和查看多模态提示词和回答。
最佳做法
我们建议您使用 OpenTelemetry 对应用进行插桩,OpenTelemetry 是一个开源项目,用于为应用插桩提供统一框架。本文档中列出的插桩示例使用 OpenTelemetry。
我们还建议您将提示和回答存储在 Cloud Storage 存储桶中,而不是存储在日志条目中:
您可以对 Cloud Storage 存储桶中的内容进行精细控制。例如,您可以删除存储在存储桶中的个别对话。但是,您无法删除单个日志条目。
Cloud Storage 存储桶可以存储远大于日志条目大小上限(限制为 256 KiB)的对象。如果收到的数据超过日志条目大小上限,Cloud Logging 会返回
INVALID_ARGUMENT错误并舍弃数据。如果命令完成且没有错误,但个别字段超出了其大小限制,则 Cloud Logging 会截断该数据。
如需了解 OpenTelemetry,请参阅什么是 OpenTelemetry?。
插桩示例
如需开始使用代理插桩,请参阅以下示例应用和指南:
收集和查看多模态提示词和回答介绍了如何配置 LangGraph ReAct 智能体或使用 ADK 构建的生成式 AI 智能体,以收集多模态提示词和回答。此外,还介绍了如何执行以下操作:
- 将提示和回答存储在 Cloud Storage 存储桶中。
- 使用 Trace 探索器页面查看提示和回答。
- 使用 BigQuery 分析提示和回答。
- 使用 Vertex AI SDK for Python 评估提示和回答。
使用 OpenTelemetry 对 LangGraph ReAct 智能体进行插桩介绍了如何使用 OpenTelemetry 对使用 LangChain 或 LangGraph 框架的生成式 AI 应用进行插桩处理。本文档还提供了指向您可以下载和运行的示例应用的链接。示例应用会收集文本提示词和回答。
使用 OpenTelemetry 对 ADK 应用进行插桩介绍了如何启用内置插桩,以便从代理的关键操作中收集遥测数据。遥测数据包括文本提示词和智能体回答。本文档还提供了指向示例应用的链接,您可以下载并运行该应用。 示例应用会收集文本提示词和回答。
使用 Trace 调查 MCP 调用介绍了如何配置应用,以便将跟踪记录上下文传递给远程 Google Cloud MCP 服务器,从而使这些服务器能够将 span 附加到跟踪记录。