你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要
本文中标记了“(预览版)”的项目目前为公共预览版。 此预览版未提供服务级别协议,不建议将其用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
Microsoft Foundry 提供了监视和跟踪 AI 代理的可观测性平台。 它捕获代理运行期间发生的所有内容:输入、输出、工具使用情况、重试、延迟和成本。 了解代理执行背后的原因对于故障排除和调试非常重要。 但是,由于多种原因,这对于复杂的代理而言可能很困难。这些原因包括:
- 生成响应所涉及的步骤可能很多,因此很难跟踪所有这些步骤。
- 步骤序列可能因用户输入而异。
- 每个阶段的输入/输出可能很长,需要进行更详细的检查。
- 代理运行时的每个步骤还可能涉及嵌套。 例如,代理可能会调用一个工具,后者又会使用另一个进程,然后该进程又调用另一个工具。 如果发现顶级代理运行的输出异常或不正确,则很难确切地确定是在执行中的哪个环节引入了问题。
跟踪结果可让你查看特定代理运行中涉及的每个基元的输入和输出,这些基元按调用顺序显示,从而轻松理解和调试 AI 代理的行为。
注释
代理跟踪仅在瑞典中部的 Foundry(新)可用。
Foundry 中的 OpenTelemetry
OpenTelemetry (OTel) 提供用于收集和路由遥测数据的标准化协议。 无论是使用 Foundry 基础设施还是供应商中立设置,Foundry 都支持多种用于从 OpenTelemetry 检测的智能体中收集和分析跟踪数据的方法。
跟踪关键概念概述
下面是入门前关键概念的简要概述:
| 重要概念 | Description |
|---|---|
| 跟踪 | 跟踪通过记录事件和状态变化(函数调用、值和系统事件)来捕获请求或工作流在应用程序中的历程。 请参阅 OpenTelemetry 跟踪。 |
| 跨度 | 区段是跟踪的基本构建块,表示跟踪中的单个操作。 每个范围捕获开始和结束时间、属性,并且可以嵌套以显示分层关系,使你能够看到完整的调用堆栈和作序列。 |
| 特性 | 属性是附加到跟踪和范围的键值对,提供上下文元数据,例如函数参数、返回值或自定义注释。 这些扩充跟踪数据,使其更具信息性,并可用于分析。 |
| 语义约定 | OpenTelemetry 定义语义约定,以标准化跟踪数据属性的名称和格式,以便更轻松地跨工具和平台进行解释和分析。 若要了解详细信息,请参阅 OpenTelemetry 的语义约定。 |
| 跟踪导出程序 | 跟踪导出程序将跟踪数据发送到后端系统进行存储和分析。 Azure AI 支持将跟踪导出到 Azure Monitor 和其他与 OpenTelemetry 兼容的平台,从而实现与各种可观测性工具的集成。 |
扩展 OpenTelemetry 以实现多代理可观测性
Microsoft 正与 Cisco Outshift 合作,为多代理系统引入了基于 OpenTelemetry 和 W3C Trace Context 的全新语义约定,从而建立标准化实践。 这些约定对多代理者工作流的遥测进行标准化,从而支持统一的指标日志记录,以涵盖质量、性能、安全性和成本,包括工具调用和协作。
这些增强功能已集成到以下项中:
- 铸造厂
- Microsoft代理框架
- 语义内核
- LangChain
- LangGraph
- OpenAI 代理 SDK
若要了解详细信息,请参阅 跟踪集成。
| 类型 | 上下文/父范围 | 名称/属性/事件 | 目的 |
|---|---|---|---|
| 跨度 | — | execute_task | 捕获任务规划和事件传播,提供对任务如何被拆解和分配的见解。 |
| 子范围 | 调用代理 | 代理之间的交互 | 跟踪代理之间的通信。 |
| 子范围 | 调用代理 | 代理状态管理 | 有效的上下文、短期或长期内存管理。 |
| 子范围 | 调用代理 | agent_planning | 记录代理的内部规划步骤。 |
| 子范围 | 调用代理 | 代理编排 | 捕获智能体到智能体编排。 |
| Attribute | 调用代理 | 工具定义 | 描述工具的用途或配置。 |
| Attribute | 调用代理 | llm_spans | 记录模型调用范围。 |
| Attribute | 执行工具 | tool.call.arguments | 记录在工具调用期间传递的参数。 |
| Attribute | 执行工具 | tool.call.results | 记录工具返回的结果。 |
| 事件 | — | 评估 (name, error.type, label) | 使能对代理的性能和决策进行系统化结构评估。 |
最佳做法
- 使用一致的跨度属性。
- 将评估运行标识符关联用于质量和性能分析。
- 修订敏感内容;避免将机密存储在属性中。