Trace 与 Evaluation
这一节解决什么问题
Agent 项目如果只看"能不能跑通",很容易停留在 Demo 阶段。真正让 Agent 从 Demo 走向可维护系统的关键,是执行过程的可追踪(Trace)和结果质量的可评估(Evaluation)。
没有 Trace,出了问题不知道原因;没有 Evaluation,不知道 Agent 的表现到底好不好、哪里需要优化。
本节会系统讲解 Trace 的记录方式、Evaluation 的方法论、指标设计和工程化要点。
核心概念
Trace 是什么
Trace 是 Agent 执行过程的完整记录。每次执行会生成一条 Trace,包含从用户输入到最终输出的所有中间步骤。
一条完整的 Trace 通常记录:
- 用户输入
- 模型输出摘要或关键决策依据
- 工具调用(工具名称、参数、返回结果)
- 中间状态变化
- 节点间流转
- 最终输出
- 时间戳、耗时、是否成功、错误信息
Trace 的核心价值是"可回溯"——任何一次执行都可以被完整重现和分析。
Trace 和日志的区别
普通日志是开发者定义的事件记录,通常只记录关键节点的状态。Trace 则是 Agent 执行的完整轨迹,包括模型推理、工具调用、状态变化等所有细节。
日志回答"发生了什么",Trace 回答"为什么会这样"。Agent 系统需要 Trace 而不只是日志,因为 Agent 的行为由模型驱动,不可预测,需要完整的执行记录才能理解和优化。
Evaluation 是什么
Evaluation 是对 Agent 输出质量的系统化评估。它不是简单地"看看结果对不对",而是通过预定义的指标和方法,量化 Agent 的表现。
Evaluation 的目标是回答:Agent 的表现到底好不好?哪里好?哪里不好?优化后有没有变好?
自动评测
通过预定义的指标自动判断结果质量。常见的自动评测指标包括:
- 任务完成率:Agent 是否成功完成了用户任务
- 工具调用准确率:是否选择了正确的工具、参数是否正确
- 结果相关性:输出是否与用户问题相关
- 幻觉率:输出中是否存在编造的信息
- 执行效率:完成任务的步骤数、耗时、token 消耗
自动评测适合大规模、持续性的质量监控。
人工评审
人工抽样检查执行结果,发现自动评测遗漏的问题。人工评审适合评估:
- 输出的自然度和可读性
- 是否存在隐含的错误(看起来对但实际有问题)
- 边界案例的处理质量
- 用户体验
人工评审成本高,但能发现自动评测无法覆盖的质量问题。
失败样本分析
记录和分析失败案例是 Evaluation 中最有价值的部分。失败原因通常可以归类为:
- 模型理解错误(误解用户意图)
- 工具选择错误(选了不合适的工具)
- 参数生成错误(参数类型或值不对)
- 工具执行失败(外部系统错误)
- 流程设计缺陷(状态机逻辑有 bug)
- 上下文不足(缺少必要信息)
失败样本分析的结果应该直接指导优化方向。
回归测试
每次修改 Prompt、工具定义或流程逻辑后,需要用历史案例重新测试,确保优化没有引入新的问题。这就是回归测试。
回归测试需要一个"测试集"——一组覆盖典型场景和边界案例的测试用例。每个用例包含输入、期望输出和评判标准。
指标设计
好的指标应该:
- 可量化:能用数字衡量,而不是主观判断
- 可对比:不同版本之间可以比较优劣
- 可归因:指标下降时能定位到具体原因
- 有基准:有参考值可以判断好坏
常见的 Agent 指标维度:准确性、效率、可靠性、安全性。
为什么重要
Trace 和 Evaluation 是 Agent 系统工程化的基础。
首先,没有 Trace 就无法调试。Agent 的行为由模型驱动,同样的输入可能产生不同的执行路径。没有 Trace,出了问题只能猜测原因,无法精确定位。
其次,没有 Evaluation 就无法优化。不知道 Agent 的表现到底好不好,优化就是盲目的。Evaluation 提供量化指标,让优化有明确的方向和可衡量的目标。
再次,回归测试保证稳定性。Agent 系统经常需要调整 Prompt、工具或流程。没有回归测试,每次修改都可能引入新的问题而不自知。
最后,Trace 是合规和审计的基础。在企业场景中,Agent 的操作需要可追溯。Trace 提供了完整的执行记录,满足审计和合规要求。
工程化理解
从工程角度看,Trace 和 Evaluation 不是"事后补救",而是应该在系统设计阶段就纳入。
Trace 设计:在 Agent 系统中,每个执行步骤都应该生成 Trace 事件。Trace 需要记录足够的上下文信息(不只是输入输出,还包括关键决策摘要、工具调用细节、状态变化),但也要控制数据量(避免 Trace 本身成为性能瓶颈)。
评测流水线:Evaluation 应该是自动化的——每次执行后自动收集指标,定期生成报告,指标异常时自动告警。手动评测只能作为补充。
测试集管理:需要维护一个持续更新的测试集,覆盖典型场景、边界案例和历史失败案例。测试集应该版本化管理,与代码一起迭代。
失败样本闭环:失败案例不应该只是被记录,而应该被分析、归类、转化为优化行动。每个失败案例都应该有明确的归因和对应的优化方案。
指标看板:关键指标应该可视化展示,方便团队随时了解 Agent 的整体表现和趋势变化。
常见误区
误区一:只看结果不看过程
很多人只关注 Agent 的最终输出是否正确,忽略了执行过程。但执行过程中的冗余步骤、错误重试、低效路径都会影响用户体验和系统成本。Trace 能揭示这些问题。
误区二:评测只靠人工
人工评审成本高、覆盖面窄、有主观偏差。自动评测才是大规模质量监控的基础。人工评审应该作为自动评测的补充,而不是替代。
误区三:没有失败样本分析
很多团队收集了评测数据但不做失败分析。评测的真正价值不在于"得了多少分",而在于"哪些案例失败了、为什么失败、怎么改进"。
误区四:回归测试可有可无
每次修改 Prompt 或工具后不做回归测试,结果引入了新的问题。回归测试是 Agent 系统稳定性的保障,不能省略。
误区五:指标设计太简单
只用"成功率"一个指标无法全面反映 Agent 的表现。需要从准确性、效率、可靠性、安全性多个维度设计指标,才能全面了解 Agent 的质量。
和项目的关系
Trace 与 Evaluation 是 Agent 系统从 Demo 走向工程化的关键能力。后续在项目 B 中会用到这一能力,但当前阶段只做知识准备,不展开具体项目实现。
理解 Trace 的记录方式、Evaluation 的方法论和指标设计原则,是构建可维护 Agent 系统的基础。
面试表达
可以这样表达:
> Agent 项目不能只看能不能跑通,还要看执行过程是否可追踪、结果是否可评估。我会为每次执行生成 Trace,记录完整的输入输出、关键决策摘要和工具调用细节。然后通过自动评测监控整体质量,人工抽样发现自动评测遗漏的问题。每次优化后用回归测试确保没有引入新问题。失败样本是最宝贵的优化资源——每个失败案例都应该被分析、归类,转化为具体的优化行动。
相关链接
- 相关工程化笔记:Evaluation Pipeline、Agent Trace 执行轨迹
- 相关面试题库:Agent 面试题