Skip to content

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,记录完整的输入输出、关键决策摘要和工具调用细节。然后通过自动评测监控整体质量,人工抽样发现自动评测遗漏的问题。每次优化后用回归测试确保没有引入新问题。失败样本是最宝贵的优化资源——每个失败案例都应该被分析、归类,转化为具体的优化行动。

相关链接 ​