Agent Tracing 与可观测性
记录任务、Agent、轮次、模型生成、工具、Handoff、护栏和错误的因果轨迹。
学习目标
- 能说明Agent Tracing 与可观测性解决什么问题,以及何时适用。
- 能解释为什么“只写自然语言日志”是误区。
学习前需要掌握
背景与问题
当用户说“这次很慢”或“文件怎么被写了两次”,只看最终回答通常无法定位原因。一次 Agent 运行包含模型生成、工具调用、等待、交接与校验,需要把这些事件关联到同一任务。
追踪记录一次请求经过哪些步骤,可观测性再结合指标和日志判断系统整体状态。它们支持诊断和评测,不等于把模型内部不可见过程完整还原出来。
概念定义
Tracing 用层级 span 还原一次 Agent 运行发生了什么;可观测性再结合指标与日志判断质量、成本和异常。
直观理解
像快递轨迹,每次交接、处理和异常都有时间与责任节点。
核心原理
trace 表示一次完整运行,span 表示其中一个有起止时间的操作,父子关系描述嵌套调用。记录调用标识、工具名称、状态和错误类别,能区分模型耗时、外部服务耗时与等待审批。
OpenAI Agents SDK 的追踪覆盖多类运行事件,实际启用方式与数据处理选项要按使用版本配置。业务自己的文件校验、缓存或数据库操作也应与同一任务关联,否则 SDK 轨迹未必包含全部应用事实。
指标汇总一段时间内的完成率、失败类别、耗时和成本,日志保留特定事件细节。单条成功轨迹不能证明整体稳定,平均耗时也可能掩盖少数很慢的任务;应结合任务类型和分布分析。
观测数据需要访问控制、脱敏与保留周期。输入输出中可能包含个人数据或密钥;采样会降低存储开销,也可能漏掉稀有故障。trace 标识可关联业务幂等键,但二者职责不同,不能用新 trace 自动代表新业务操作。
案例:报告生成为什么等待了很久
一次报告运行记录到模型规划、资料检索、表格读取和文件保存四类 span。用户只看到等待;轨迹显示大部分时间在检索重试,而读取与保存均正常,因此应先检查远程查询超时和重试策略。
若同一业务幂等键下出现两个保存 span,还要检查是否重复执行,不能只看最后一次成功。诊断时保留查询摘要与错误类别即可,不必把含私人信息的整份报告写入观测系统。修复后用相同任务回归,确认延迟改善且没有丢失证据。
理解与实践步骤
- 定义 workflow 名称
- 记录层级 span
- 附加版本、耗时和状态
- 脱敏敏感字段
- 用失败案例回放
实际应用
- 故障定位
- Agent 评测
常见错误
- 只写没有调用标识的自然语言日志,无法把错误关联到具体任务和工具。
- 把 span 记录当作业务成功证明,或据一条演示轨迹推断系统总体可靠。
- 无差别采集完整输入输出,忽略脱敏、保留时间和观测系统本身的访问权限。
输入、输出与执行边界
输入
- 运行事件
- 时间与标识
- 安全过滤策略
输出
- 轨迹树
- 延迟、错误与成本指标
能力
- 故障定位
- Agent 评测
安全风险与信任边界
轨迹可能包含用户输入、检索片段、工具参数和秘密,记录范围、保留期限与查看对象应有明确目的。可观测性不要求默认保存所有原文;来自日志的文本仍是运行证据,不能因为出现在内部面板就变成控制指令。
性能与失败模式
记录应关联模型、工具与子任务的时间跨度,区分排队、执行和重试,才能定位瓶颈。采样会漏掉部分失败,过度记录又增加存储与延迟;需要同时检查轨迹覆盖、脱敏效果和最终状态,不能把日志完整当作任务正确。
推荐学习资料
参考库不会生成虚假资源或无效外部链接。