Agent 评测与可观测性术语地图:从 Eval、Trace 到 Replay
Agent 评测领域最容易造成误解的,不是某个指标怎么算,而是同一个词在不同框架里常常指向不同层级。
有人把一次模型调用叫 Run,有人把整个工作流叫 Run;有人说 Replay,实际只是重新发送 prompt;有人把 Trace 当日志,也有人把它当成一棵有父子关系、可以定位耗时与错误的执行树。术语没有先对齐,评测报告里的“成功率 95%”“支持恢复”“全链路可追踪”就很难验证。
这篇文章不按字母顺序背词典,而是沿着一条完整链路解释这些概念:Agent 怎样运行,怎样留下证据,怎样用数据集和评估器打分,又怎样把失败样本变成回归测试。
先看全局:一次运行如何变成一次评测
Dataset 中的一条 Case
│ 输入 + 可选 Ground Truth
▼
Workflow 启动一个 Run
│
├── Span:模型调用
├── Span:Tool Call
├── Span:Guardrail 检查
├── Checkpoint:保存 State
└── HITL:暂停并等待人工决定
│
▼
Trace:串起本次执行的完整证据
│
├── Evaluator 打分
├── Offline Eval 批量比较
├── Online Eval 生产监控
└── Replay / Regression Eval 复现与防回退
这里可以先记住三句话:
不仅是日志:构建企业级 Agent 的全链路可观测性
不仅是日志:构建企业级 Agent 的全链路可观测性
在企业级应用中,Agent 不再是一个黑盒模型,而是一个需要被持续审视的决策系统。如果 Agent 的决策链路不可见,其执行失控的风险将成倍增加。
1. 可观测性的分层设计
我们必须将 Agent 的运行视为三个不同维度的流:
- 执行层 (Action Layer):系统指标(CPU/内存/网络/IO)。这是最底层的基础保障,通过
htop/eBPF等工具获取。 - 交互层 (Interaction Layer):MCP 工具调用记录。记录所有 Tool 的输入、输出参数及执行耗时。
- 认知层 (Cognitive Layer):模型推理过程。记录 Prompt 上下文、思考过程(Thought)及最终决策逻辑。
2. 三阶段观测策略
企业级 Agent 应在不同生命周期注入观测点:
第一阶段:感知 (Perception)
- 观测重点:输入清洗后的上下文数据质量。
- 策略:记录原始 Prompt 到优化后的 Prompt 的转换差值,评估输入信息的信噪比。
第二阶段:决策 (Decision)
- 观测重点:模型意图与规划路径。
- 策略:使用“追踪标记” (Tracing Markers) 记录模型在复杂任务分解过程中的逻辑分支。建议将决策链序列化为 JSON 存储,支持后续复盘。
第三阶段:执行 (Execution)
- 观测重点:工具调用成功率与异常处理。
- 策略:标准化 MCP 接口。通过 MCP 封装所有外部工具调用,注入拦截器记录
request_id,实现从决策到内核级系统调用的全链路追踪。
3. 企业级参考架构:基于 MCP 的观测流
在复杂环境中,不要直接在 Agent 中硬编码观测逻辑,推荐采用**“旁路观测”**模式:
- 接口标准化 (MCP Wrapper):利用 MCP 协议作为 Agent 与外部世界的标准接口,所有 Tool 调用统一接入该层,自动注入
Correlation-ID。 - 异步数据流:观测数据不应同步发送(避免阻塞 Agent 决策)。使用 Unix Domain Socket 将 JSON 格式的指标流实时推送到 Sidecar 进程,由 Sidecar 负责数据的聚合与上报(至 Prometheus/Jaeger)。
- 决策快照:在发生错误(如 Tool 返回 Error)时,自动触发“现场快照”,记录当前的 Prompt、工具参数、中间变量、以及系统栈信息,供研发离线回溯。
// 企业级观测接口示例 (标准化 JSON)
{
"request_id": "req_550e8400-e29b",
"component": "tool_executor",
"action": "execute_tool",
"tool_name": "docker_compose_up",
"status": "failure",
"metadata": {
"latency_ms": 1245,
"system_load": "0.85",
"trace_parent": "trace_a9928"
},
"error_msg": "Timeout after 1000ms"
}
4. 故障演练:故障降级策略
一旦观测系统检测到异常:
生产级智能体的核心能力:从「能跑通」到「敢上线」
过去两年,几乎每个技术团队都做过一个能"跑通"的智能体 demo——接几个工具,套一层 ReAct 循环,输入一句自然语言,输出一堆看起来很智能的行为。这类 demo 做起来不难,难的是下一步:把它交给真实用户,接入真实系统,让它在没有人盯着的情况下,连续跑几个月不出岔子。
这中间隔着的,不是"模型能力"的鸿沟,而是可预测性的鸿沟。一个 demo 智能体可以偶尔走神、偶尔重试、偶尔给出一个"看起来合理但其实跑偏"的答案,反正是演示,出了问题重跑一次就好。但生产系统不允许这种随机性——尤其是当智能体接触的是资金、客户数据、生产环境配置这类不可逆操作的时候。
2026 年的企业级智能体实践,基本已经收敛出一套相对一致的答案:不是让智能体更自主,而是让它更可控。这篇文章梳理一下,支撑这种"可控自主"的核心能力到底是哪几层。
校对注:本文初稿由一篇行业综述整理而来,关键监管与技术断言(EU AI Act Article 14、NIST AI 600-1 GenAI Profile)已逐一核实;部分采用率/市场份额数据来自第三方调研,文中已标注为"业界观点"而非定论。与笔者此前的《LangGraph 是负担还是利器?》一文视角互补——那篇从"单角色个人助手不该上 LG"出发,本篇从"生产级必须可控"出发,结论殊途同归:自主度的边界应由业务风险等级决定,而非模型能力。
一、为什么"更自主"不是正确方向
早期很多团队的直觉是:模型越强,就应该给它更大的自由度,让它自己规划、自己决定工具调用顺序、自己判断什么时候该停。这个思路在 demo 阶段很吸引人,但放到生产环境会迅速暴露问题——你没法审计一个"完全自由发挥"的决策链,也没法向合规部门解释"智能体为什么会这么做"。
企业级智能体架构的核心特征,正在从"最大化自主性"转向"有边界的自主性"。行业分析普遍认为,真正规模化落地的组织会共享同一套架构模式:在自主推理能确实创造价值的地方使用智能体,在需要一致性的地方使用确定性规则,在利害关系要求问责时引入人工判断——三者结合,而不是单纯堆叠模型能力。
二、六层核心能力
把各家企业级实践拆开看,基本都在做同一件事的六个侧面。
1. 确定性路由层:把开放世界压缩成有限状态
这是最基础也最容易被忽视的一层。核心思路很简单:不让大模型自由生成"下一步该做什么",而是先定义一个有限的动作空间(比如"调用工具"“请求澄清"“判断无法处理"“任务完成”),模型只能在这个空间里做选择,选择的结构由类型系统(比如 Pydantic)强制约束。
action_type: tool_call | clarify | cannot_proceed | done
这一步看起来朴素,但效果是把"自由文本生成"的不确定性,变成了"有限选项分类"的确定性——后者好测试、好回归、好追责得多。
2. Human-in-the-Loop 中断门:不可逆动作前的强制刹车
在编排图里预设中断点,任何被标记为高风险或不可逆的操作,执行前必须经过人工确认。这不是"智能体表现不好才需要人工介入”,而是架构层面的默认设计——资金操作、外发通信、生产配置变更这类动作,不管模型多自信,都要走审批。
这一层的关键设计难点不在"要不要加审批”,而在"审批粒度怎么定"。粒度太粗,所有操作都要人工确认,智能体失去意义;粒度太细,风险操作可能漏网。比较成熟的做法是按风险分级(risk-tier)给每个工具打标,只有中高风险的操作才触发中断。
3. 审计平面:让每一步决策都能被倒查
记录每一次工具调用、每一次路由决策、每一个最终输出的来源,使得出问题之后能够对智能体的推理路径做取证式的完整重建。这一层的价值不在正常运行时体现,而在出事故的那一刻——没有完整审计链,你连"智能体在哪一步犯了错"都说不清楚,更别说改进。
技术实现上,主流做法通常包括:结构化的调用日志(区分请求模型和实际使用模型,便于发现静默降级)、决策快照(人工批准时看到的是什么状态)、以及近年逐渐标准化的 OpenTelemetry GenAI 语义约定,用来统一不同框架间的追踪数据格式。
4. 评估回路:从"跑起来了"到"跑得对"
生产级智能体需要专门针对智能体逻辑设计的自动化回归测试,依据基线评分标准衡量推理路径质量,而不只是"程序没报错"。更进一步的做法是把评估探针嵌入实际推理流程,在线上实时运行而非只在部署前测试,给出带理由的可机读判定结果——这类做法已经开始被 NIST 等机构的指导文件所参考(如 NIST AI 600-1《Generative AI Profile》已将 LLM-as-judge 等评估思路纳入风险管理的参考框架)。
一个容易被低估的点是:评估不应该只测"最终答案对不对",还要测"中间决策合不合理"——比如任务分解是否遗漏了关键维度,工具选择是否有更优解但没被采纳。这类语义层面的评估,通常需要引入另一个模型做裁判(LLM-as-judge),而不能只靠规则断言。
5. 模型网关:一层薄薄的保险丝
一个集中化的代理层,统一管理模型路由和策略,负责限流、追踪 token 预算,并提供跨供应商的故障转移。对企业而言,这一层的价值不只是省钱和防崩,还包括权限控制——哪个智能体、哪个任务能调用哪个模型,是需要被显式管理的资产,而不是散落在各处的 API Key。