[控场AI]
· 6 分钟阅读· 3,063 字

智能体变慢或出错时,用Traces在Foundry中精准排查

智能体变慢或出错时,用Traces在Foundry中精准排查

Microsoft Foundry Traces 功能将AI智能体执行过程可视化,帮助开发者高效定位工具调用、延迟与错误。

本文介绍了 Microsoft Foundry 的 Traces(追踪)功能,这是专为生产级 AI 智能体调试设计的可观测性工具。通过连接 Azure Monitor Application Insights,开发者可记录智能体每次请求的完整执行链路,包括工具调用、模型请求、token 消耗和各步骤延迟。追踪数据以嵌套 span 的层级结构呈现,每个 span 携带输入输出内容和元数据(含父子关系、计时、状态),精确定位问题发生的步骤。Foundry 还提供 span 树、User 对话视图和 Graph 图视图三种切换视角,并支持 Annotations 标注功能,方便团队协作评估智能体输出质量。Traces 的本质是将智能体从"黑盒"变为"白盒",是调试效率的核心分水岭。

当你向AI智能体提交一个提示后,它内部到底经历了什么?调用了哪些工具?为什么响应变慢?又是哪一步出了错?对于构建生产级智能体的开发者来说,这些"黑盒"问题往往是调试过程中最大的痛点。Microsoft Foundry 提供的 Traces(追踪)功能,正是为了解决这一难题而设计。

Traces 到底记录了什么

Traces 的核心作用,是捕捉一次请求或工作流在应用中的完整旅程。它通过记录事件和状态变化,让你能够查看智能体交互中的输入、输出、工具使用、重试次数、延迟以及各类调用细节。

换句话说,当你的智能体表现异常时,Traces 就是第一现场的"行车记录仪"。无论是想弄清楚智能体调用了哪些工具、某次运行为何失败,还是深究响应时间为何偏慢,Traces 都是一个理想的排查起点。

演示中使用的是一个面向保险经纪人的风险顾问智能体(risk advisor agent)。它会审阅客户信息、识别最关键的风险点,并给出简洁的建议以指导经纪人的后续动作。该智能体接入了一个文件搜索工具,其中包含三份公司档案,用于为推荐提供事实依据。

风险顾问智能体接入了包含三份公司档案的文件搜索工具

启用 Traces:先连接 Application Insights

要查看一次提示提交后发生了什么,第一步需要创建一个 Azure Monitor Application Insights 资源。这一步在智能体的 Traces 标签页中完成——无论你是要新建还是连接已有资源,都可以通过点击 Connect 来操作。

  • 新建资源:选择 Create New
  • 连接已有资源:先选中对应资源,再点击 Connect

资源就绪后,就可以正式向智能体发送提示并观察追踪记录了。演示中提交的提示是:"Boulder Innovations 计划推出的 AI 驱动工业监测产品线,会如何改变其风险画像?"

在智能体 playground 中提交关于 Boulder Innovations 风险画像的提示

Azure Monitor Application Insights 是微软 Azure 提供的应用性能管理(APM)服务,专门用于收集、存储和分析遥测数据。它支持分布式追踪(distributed tracing)标准,能够将跨多个服务、多个组件的调用链路串联成一条完整的 Trace。在智能体场景中,Application Insights 充当后端存储与分析引擎——Foundry 将追踪数据写入该资源,开发者既可在 Foundry 界面直接查看,也可在 Azure Portal 的 Application Insights 控制台中进行更深层的日志查询和告警配置。值得注意的是,Application Insights 按数据摄取量计费,生产环境中高并发智能体产生的 Trace 数据量可能较大,建议在连接前了解采样(sampling)策略以控制成本。

读懂 Trace 表格与 Span 层级

回到 Traces 标签页,最近一次与智能体的交互会生成一条新记录。表格中信息相当丰富,包括 Trace ID、请求是否完成、追踪的日期时间、持续时长、输入与输出 token 数量,以及智能体版本。这些字段本身就能帮你快速定位异常——比如某次请求 token 消耗异常高,或者耗时明显偏长。

点击 Trace ID 可以打开详情窗口,深入探索整条追踪链路。顶层能看到智能体被调用(agent was invoked),而逐层下钻后,则能看到智能体执行的各个具体操作,比如一次文件搜索工具调用,以及生成最终回复的模型调用。

这些嵌套的步骤被称为 span(跨度)。每个 span 代表整条 Trace 中的一个单独操作。这种层级结构正是定位问题的关键——你能清楚看到问题究竟发生在哪一步。

逐层下钻可查看智能体执行的各个具体操作

Span 的输入、输出与元数据

选中任意一个 span,右侧面板会同步展示它的详细信息。例如选中工具调用这个 span,就能看到该次调用的输入和输出内容。

更进一步,span 的 metadata(元数据) 提供了排查问题时极为宝贵的技术上下文,包括:

  • Trace ID 与 span ID
  • 父子(parent-child)关系
  • 计时信息(timing)
  • 状态(status)
  • 操作类型(operation type)

当你需要在一个复杂工作流中精确判断问题出在何处时,这些元数据的价值会被充分放大。

span 的元数据提供了排查问题所需的技术上下文

Annotations:加入你自己的反馈

在元数据旁边,还有一个 Annotations(标注) 标签。这里允许你对某个 span 填写个人反馈,并查看完整的标注历史。对于需要团队协作调试、或对智能体输出质量进行人工评估的场景,这是一个很实用的轻量化记录方式。

Span 的概念来源于 OpenTelemetry 这一开放可观测性标准。OpenTelemetry 定义了一套与厂商无关的追踪数据模型:一条 Trace 由一个根 span 和若干子 span 组成,每个 span 记录操作名称、开始/结束时间戳、状态码以及任意键值对属性(attributes)。父子 span 通过 parent span ID 关联,从而还原出完整的调用树。Microsoft Foundry 遵循这一标准,因此 Traces 数据在理论上也可导出到任何兼容 OpenTelemetry 的后端(如 Jaeger、Grafana Tempo 等),便于企业将智能体可观测性整合进已有的监控体系,而不必被锁定在单一平台。

多种视图:按需切换排查视角

Traces 并不只有一种查看方式。除了默认的 span 树结构,Foundry 还提供了几种互补的视图:

  • User view(用户视图):把整条 Trace 以对话的形式呈现,更贴近实际交互体验;即便切换到这个视图,span 树依然折叠保留在左侧,随时可以展开。
  • Graph view(图视图):支持横向或纵向查看,用于一眼把握整条 Trace 的结构与流程,是 span 树之外的另一种直观选择。

不同视图对应不同的排查需求——想还原对话体验用 User view,想理解整体执行流程用 Graph view,想精确定位单步操作则回到 span 树。

写在最后

Traces 的价值在于把智能体从"黑盒"变成"白盒"。它不替你解决问题,但能把问题发生的完整上下文——每一次工具调用、每一次模型请求、每一步的延迟与状态——清晰地摊开在你面前。对于正在构建和运维生产级智能体的开发者而言,掌握 Traces 的使用方式,几乎是调试效率的分水岭。无论是慢、是错,还是莫名失败,从 Traces 开始看,往往是最高效的第一步。

分享:

相关推荐