ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

当 Agent 在凌晨“发疯“:三层可观测体系与 Judge 漂移检测实战

当 Agent 在凌晨“发疯“:三层可观测体系与 Judge 漂移检测实战 ⚡️ 行前说明这篇聊的可观测性不是 Prometheus Grafana 那套老黄历。在传统微服务里监控回答的是系统挂没挂在 Agent 系统里你要回答的是模型这个回答对不对。这两件事差了一个维度。我把我们这套日均处理十万工单的客服 Agent 平台上跑了两个多月的可观测体系拆开讲从指标层、追踪层一路打到最硬的一环–LLM-as-Judge 的漂移检测。每一层都给硬数据和可运行方案不灌水。最近在搞一件让我后背发凉的事。2026 年 7 月某个周三凌晨 3 点 17 分我们工单客服 Agent 平台的退款 Agent开始给一批用户批量退双倍的钱。不是 bug不是被人攻击是 Agent 自己决定的–它把一个本该走人工审核的退款请求判定成了符合自动退款条件然后连续触发了 14 次。值班同学被告警吵醒时平台的核心指标一切正常CPU 40%、内存 62%、QPS 稳定、错误率 0%。所有传统监控的绿灯一个都没亮。那天晚上我们花了将近两个小时才搞清楚Agent 为什么这么回答。因为 LLM 是个概率黑盒–输入进去输出出来中间发生了什么我们的监控系统一个字都说不出来。我们能告诉你这个请求花了 1.2 秒、消耗了 847 token但回答不了它为什么决定退款。这件事让我彻底想明白一个判断Agent 系统的可观测性核心不是监控系统有没有挂而是监控决策对不对。而后者传统 APM 一套都接不上。更让我后怕的是另一个发现我们用来给 Agent 评分的 LLM-as-Judge自己也在悄悄漂移。同一个回答三周前 Judge 打 0.82 分三周后打 0.91 分–Agent 没变回答没变变的是 Judge。这意味着我们连Agent 到底有没有变差都判断不准因为我们用来判断的那个尺子本身在变形。今天分享一下我已经把这套体系补齐后的完整方案。我会用我们这个日均处理十万工单、支持 10 租户、200 工具的客服 Agent 平台做贯穿案例把三层可观测体系拆透重点讲透 Judge 漂移检测这个最容易被忽略、却最致命的环节。先给一个贯穿全文的判断可观测性的价值从来不是事后复盘–而是在 Agent 开始发疯的那 30 分钟内发现问题。模型越强决策越不可解释可观测性就越要前置。你等到用户投诉才去查日志那不叫可观测性那叫亡羊补牢。一、先看清旧世界为什么传统监控在 Agent 面前全部失灵很多人觉得 Agent 可观测性就是把现有 APM 接上 LLM 调用。这个认知偏差会让你在出事的时候发现你的监控大屏上一片绿灯但 Agent 已经在悄悄犯错了。我得先把传统监控在 Agent 场景下的三个盲区摆出来。1.1 盲区一决策质量不可见传统监控的黄金信号是四个延迟、流量、错误、饱和度LATENCY / TRAFFIC / ERRORS / SATURATION。这套信号在微服务时代是黄金标准因为它回答的都是系统行为请求慢不慢、多不多、有没有报错、机器撑不撑得住。但 Agent 系统的关键失败模式不在系统行为层而在决策行为层。一个 Agent 调用可能完全成功–HTTP 200、延迟正常、没有异常–但它做了一个错误的决策把不该退的款退了把不该转人工的工单自动结案了把不该调用的工具调用了一遍。这种失败传统监控一个信号都捕获不到因为从基础设施视角看“一切正常”。这就是凌晨那场故障的本质退款 Agent 的每一次 HTTP 调用都成功错误率是 0%但 14 次决策里 14 次都是错的。传统监控的绿灯没有骗你它只是回答了一个错误的问题。1.2 盲区二长尾调用不可见传统监控看的是聚合指标–P50、P95、P99。这套指标假设你的请求是同质的所有请求大致一样看分布就够了。但 Agent 调用是极度异质的一次对话可能触发 3 个工具调用也可能触发 30 个一次回答可能消耗 200 token也可能消耗 4000 token。长尾里的那些异常调用在 P99 里被平均掉了根本看不见。我们做过一次统计在我们平台上排名前 1% 的长尾会话贡献了 23% 的 token 消耗和 41% 的工具调用次数。这些长尾会话往往是Agent 在挣扎的信号–它反复检索、反复重试、反复调用工具最后给出一个质量不高的回答。但它们在 P50/P95 的聚合曲线里被淹没成了一条平缓的线。你监控不到长尾就监控不到 Agent 在哪里卡住了。1.3 盲区三Judge 自己会漂移这是最隐蔽、也最致命的一个盲区。当你用 LLM-as-Judge 来评估 Agent 的回答质量时你引入了一个新问题Judge 模型本身也是 LLM它也会随着版本更新、Prompt 微调、甚至随机种子的变化而产生行为漂移。这意味着你的尺子在变形。你以为你在监控 Agent 的质量变化实际上你监控到的是Agent 质量变化和Judge 漂移的叠加。当 Agent 质量下降而 Judge 也同时漂移变得更宽容时两个变化互相抵消你的评分曲线平稳如水但系统其实已经在出问题。监控盲区传统监控看到Agent 实际需要差距来源决策质量HTTP 状态码、错误率决策对不对、工具调得准不准基础设施视角 vs 决策视角长尾调用P50/P95/P99 聚合单条会话级的挣扎与重试聚合抹平了异质长尾Judge 漂移评分曲线平稳尺子本身在变形监控者与被监控者同源这张表是我设计可观测体系的起点。你会发现三个盲区指向同一个结论Agent 可观测性必须在传统指标之上再加两层–一层追踪决策过程一层评估决策质量而且评估层自己还要被监控。这就是为什么我们的体系是三层而不是一层。二、三层可观测架构指标层、追踪层、评估层把三个盲区翻译成架构就是我们这套三层可观测体系。它不是把传统监控推倒重来而是在它之上加了两个 Agent 专属的层。2.1 三层各自的职责第一层是指标层健康度回答Agent 现在健不健康。这一层继承传统 APM 的思路但指标重新定义–不只是 CPU/QPS而是 Agent 专属的四维指标任务完成率、工具调用准确率、端到端延迟、token 消耗。这一层负责快速发现异常是告警的第一道闸门。第二层是追踪层调用链 决策日志回答Agent 这个决策是怎么做出来的。这一层用 OpenTelemetry 把每一次工具调用、每一次检索、每一次模型推理都串成一条 span 树。关键不是调用了什么而是为什么调用–我们把 Agent 的意图、置信度、备选方案都记进决策日志。这一层负责定位问题是指挥故障排查的地图。第三层是评估层LLM-as-Judge回答Agent 这个回答对不对。这一层用另一个 LLM 来给 Agent 的回答打分覆盖功能、性能、安全、体验四个维度。这一层负责判断质量是回归防护的网。但也是最容易出问题的一层–因为 Judge 自己会漂移所以它还需要第四道工序漂移检测。2.2 三层如何协同三层不是孤立的而是一个漏斗。指标层在最外圈用最低的成本采样率可以到 100%因为是聚合指标监控全局健康度一旦发现异常就触发下钻。追踪层在中间用中等成本采样率 10%-30%按风险加权记录决策过程负责把异常定位到具体哪条会话、哪次调用。评估层在最内圈成本最高每次评估要再调一次 LLM所以只对高风险会话和回归测试集做全量评估。这个漏斗的设计原则是成本递增、覆盖递减指标层覆盖 100% 的流量但只看聚合追踪层覆盖 10%-30% 但能看到单条会话评估层覆盖不到 5% 但能判断质量。这样你既不会因为全量追踪把成本打爆也不会因为采样太少而漏掉关键问题。层回答的问题采样率成本触发时机指标层健不健康100%低实时聚合每分钟出指标追踪层怎么做的10%-30%中指标异常 / 高风险会话下钻评估层做得对不对5%高高风险会话 回归集全量先给一个贯穿后面的设计原则三层不是三个独立系统是一条故障定位的流水线–指标层发现有异常追踪层定位在哪条链路评估层确认是不是真的变差最后用 Judge 漂移检测排除是不是尺子本身的问题。少了任何一环这条流水线就断在一个看不清的地方。三、指标层Agent 健康度的四维指标与异常熔断指标层是整个可观测体系的第一道闸门它的设计目标只有一个用最低的成本、最快的速度在 Agent 开始犯错的最初几分钟内亮起红灯。传统监控在这里失灵不是因为指标不好而是因为指标选错了。3.1 重新定义黄金信号微服务时代的黄金信号是延迟、流量、错误、饱和度。这四个信号在 Agent 系统里仍然需要但它们只回答系统行为回答不了决策行为。所以我们在它们之上加了四个 Agent 专属指标构成一套双层黄金信号。第一层是系统行为指标原样保留传统 APM端到端延迟、请求 QPS、HTTP 错误率、资源饱和度。这套指标监控Agent 平台本身有没有挂。凌晨那场故障里这套指标全部正常–这是对的平台确实没挂。第二层是决策行为指标这是 Agent 专属的任务完成率Agent 是否达成了用户意图、工具调用准确率调用的工具和参数是否正确、token 消耗单次会话的成本是否在合理区间、决策置信度Agent 对自己输出的把握程度。这套指标监控Agent 决策对不对。凌晨那场故障里如果当时有这套指标退款 Agent 的工具调用准确率会从 98% 骤降到 0%–因为 14 次退款调用参数全错。关键洞察是系统行为指标告诉你有没有挂决策行为指标告诉你有没有犯错。一个 Agent 可以完全不挂、却疯狂犯错。这就是为什么两层缺一不可。3.2 异常检测从阈值告警到行为基线光有指标还不够你还得知道什么算异常。传统做法是设静态阈值–比如错误率 1% 就告警。但 Agent 的行为是高度上下文相关的大促期间工具调用次数飙升是正常的平时飙升就是异常。静态阈值没法区分这两种情况。我们的做法是建行为基线对每个 Agent、每个工具、每个时段用过去 7 天的历史数据建一个基线分布当前行为偏离基线超过 3 个标准差就告警。这套基线是动态的会跟着业务节奏走。最关键的一条基线是从一次真实事件里学来的一个 Agent 在一分钟内调用工具超过 30 次就触发自动熔断并转人工。这个阈值不是拍脑袋定的是我们观察了正常会话的工具调用分布后定的–正常会话中位数是 4 次P95 是 12 次30 次已经是 P99.9 以外几乎必然是Agent 在失控循环。凌晨那场故障里退款 Agent 在 47 秒内调用了 14 次退款工具远超 30 次/分钟的基线–如果当时有这条熔断规则它在第 30 秒就会被掐断而不是任由它退满 14 次。3.3 异常检测的三个维度我们把行为基线异常检测拆成三个维度对应三类不同的发疯模式第一个维度是频率异常工具调用频率超过基线。对应Agent 在循环–它反复调用同一个工具停不下来。退款 14 连发就是这类。熔断规则单工具 1 分钟 30 次或单会话工具调用总数 50 次。第二个维度是目标分布异常Agent 访问的 API 端点分布偏离基线。对应Agent 在乱窜–它开始访问平时从不碰的端点。正常情况下退款 Agent 只调refund.create如果它突然开始调user.delete或config.update即使频率没超标分布异常也会告警。这条规则直接对应 OpenAI Sol 事件的教训–一个开始访问陌生端点的 Agent往往已经在探索边界。第三个维度是错误模式异常工具调用的错误类型分布突变。对应Agent 在撞墙–它反复尝试一个会失败的调用错误率飙升但又被它自己的重试逻辑掩盖。如果某个工具的错误率从 2% 突然涨到 15%即使整体成功率还行这种突变本身就是异常信号。异常维度监控对象触发条件对应的发疯模式频率异常工具调用频率30 次/分钟 或 50 次/会话循环失控目标分布API 端点分布访问从未访问过的端点乱窜探索错误模式错误类型分布错误率突变如 2%-15%反复撞墙这套三维异常检测上线后我们做过一次回溯验证拿过去两个月的 6 次已知异常会话喂进去5 次能在 90 秒内触发告警。剩下 1 次是慢热型异常决策质量缓慢下降靠指标层抓不到–这种只能靠评估层后面会讲。四、追踪层全链路调用链与决策日志指标层能告诉你有异常但回答不了异常是怎么发生的。凌晨那场故障里指标层如果当时有的话会亮起工具调用准确率骤降的红灯但接下来呢是 Prompt 出了问题是检索召回了脏数据是工具的参数解析有 bug还是模型本身在那一刻抽风了要回答这些问题你需要一条完整的决策链路。这就是追踪层的职责。4.1 把 Agent 调用串成 span 树我们用 OpenTelemetry 做全链路追踪接 Jaeger 做可视化。核心思路是把 Agent 的一次会话拆成一棵 span 树根 span 是整次会话子 span 是每一次模型推理、每一次工具调用、每一次检索。每个 span 上挂三类元数据耗时、token、以及–最关键的–决策日志。和传统微服务追踪最大的不同是传统追踪只记调用了什么、花了多久Agent 追踪还要记为什么调用。我们在每个工具调用的 span 上额外挂了三个字段意图intentAgent 为什么决定调这个工具。这一步是模型自己输出的–我们在 Prompt 里要求它在调用工具前先一句话说明意图。比如我需要查询用户 12345 的最近订单以判断是否符合退款条件。置信度confidenceAgent 对这次工具调用的把握。0-1 的浮点数低于 0.6 的调用我们会标记为低置信调用在追踪视图里高亮。备选方案alternativesAgent 考虑过但没选的其他工具。这一步让排查变得极其高效–当 Agent 选错工具时你能立刻看到它本来还有别的选项但它没选。有了这三个字段凌晨那场故障的排查路径会变成这样打开退款会话的 span 树 - 看到 14 个连续的refund.create调用 - 点开第一个的决策日志意图写着用户符合自动退款条件- 但备选方案里明明有refund.require_manual_review转人工审核。结论瞬间清晰不是工具坏了是 Agent 的判定逻辑出了问题它本该选人工审核却选了自动退款。两个小时的排查能压到十分钟。4.2 采样策略全量追踪太贵按风险加权全链路追踪的成本不低–每个 span 要序列化、上报、存储。如果对 100% 的会话都做全量追踪光追踪这一项就能吃掉可观测总预算的大头。但简单粗暴地按固定比例采样比如固定采 10%又会漏掉关键问题–因为出问题的会话往往是少数随机采样很可能采不到。我们的做法是风险加权采样给每条会话算一个风险分风险分高的全量追踪低的低比例采样。风险分的计算考虑四个因子租户风险退款、账户操作类高风险 Agent 所在的会话风险分基础值就高。工具组合风险调用了一组敏感工具组合如先查询后删除的会话风险分加权。置信度风险低置信调用占比超过 30% 的会话风险分加权。历史风险该用户/该会话模式在过去触发过异常的风险分加权。风险分超过阈值的会话 100% 追踪低于阈值的按 5% 采样。这样我们用大约 12% 的整体采样率覆盖了 90% 以上的高风险会话。一个经验数字在我们的场景下全量追踪的成本大约是低比例采样的 8 倍但覆盖的高风险会话只多了不到 10%–边际收益递减得很快所以风险加权采样是性价比最高的选择。4.3 决策日志的 PII 脱敏追踪层有一个绕不开的工程难题决策日志里不可避免会包含用户数据。Agent 调用工具时传入的参数往往就是用户的订单号、手机号、退款金额。如果这些原样进追踪系统既违反数据合规也增加了日志泄露的风险。我们的做法是在 span 上报前做一层 PII 脱敏用正则 实体识别两道关把手机号、身份证号、银行卡号这类强模式字段直接脱敏成*把人名、地址这类弱模式字段用一个小模型做实体检测后脱敏。关键设计是脱敏只动值不动结构–refund.create(order_id12345, amount200)会变成refund.create(order_id*, amount***)但工具名、参数名、调用关系全部保留。这样追踪系统既能用于排查又不泄露用户隐私。一个容易踩的坑脱敏要在上报前做不能在查询时做。如果在查询时才脱敏原始数据就已经落盘了一旦日志系统被越权访问就全暴露了。我们把这层脱敏做成 SDK 的强制中间件任何 span 上报都必须经过它从机制上杜绝忘了脱敏。五、评估层LLM-as-Judge 的三个陷阱与锚点校准追踪层能告诉你Agent 这么决策了但回答不了这个决策好不好。一次工具调用从技术上完全正确但可能答非所问、可能让用户体验很差、可能踩了安全红线。判断好不好需要一个评估者。我们用 LLM-as-Judge–让另一个 LLM 来给 Agent 的回答打分。但这一层有它自己的坑搞不好比你监控的对象还不靠谱。5.1 LLM-as-Judge 的三个陷阱详见旧文关于 LLM-as-Judge 的自增强偏差Judge偏袒同族模型、评分一致性和评估成本控制我在之前的文章《工单Agent平台从能用到可衡量》中已经详细讨论过包括评分卡、成对比较、引用验证三大范式以及分层成本策略中的 L1 规则层→L2 小模型→L3 大模型三层过滤这里不再重复。本文重点放在评估层最隐蔽的一个问题上——Judge 出错了怎么办以及谁来监控 Judge 自己。展开说两个旧文没覆盖的陷阱第一个是位置偏差position bias。当你让 Judge 在两个回答里选更好的那个时它倾向于选排在第一个的。我们最初没在意这个结果发现 Judge 对选项 A的胜率系统性偏高。修复办法是每次评估都随机打乱两个回答的顺序跑两轮只有两轮都选同一个才认定。这一步把位置偏差的影响从 15 个百分点压到 3 个百分点以内。第二个是模糊标准vague rubric。如果你给 Judge 的评分标准是回答得好不好这种模糊描述它会用自己的直觉打分结果就是分数和稀泥区分度很低。修复办法是把评分标准拆成可观测的细则–比如是否正确调用了所需工具“是否在 3 轮内解决问题”“是否泄露了敏感信息”每条细则独立打分。细则越具体Judge 的评分越稳定。5.2 锚点校准给 Judge 一把固定的尺子即便修了三个陷阱Judge 的绝对分数仍然不可信–今天打 0.82 和下周打 0.82可能不是一回事。为了解决绝对分数不可比的问题我们引入了锚点校准。思路是准备一组已知好坏的样本专家人工标注的好回答和差回答每次评估前先让 Judge 给这组锚点打分。如果 Judge 能把好样本和差样本清晰分开说明它今天状态正常本次评估有效如果 Judge 对锚点的打分区分不开好样本和差样本的分数重叠说明 Judge 状态漂移了本次评估作废触发告警。锚点校准的价值在于它把Judge 今天正不正常这件事变成了一个可观测的指标。你不再盲目相信 Judge 的分数而是先验证尺子没变形再看分数。这一步是后面 Judge 漂移检测的基础–漂移检测的核心思想就是持续监控这把尺子有没有在变。六、最硬的一环Judge 漂移检测的三道防线这是整篇文章技术含量最高、也最容易被团队忽略的一环。前面五层都假设Judge 是可信的评估者但这一层要回答一个更尖锐的问题如果 Judge 自己不可信呢LLM-as-Judge 是用 LLM 实现的而 LLM 会因为版本更新、Prompt 微调、推理参数调整而产生行为漂移。这意味着你用来监控 Agent 质量的那把尺子本身就在悄悄变形。更阴险的是这种漂移往往是缓慢的、渐进的–它不会在一天之内让你的评分崩盘而是用几周时间慢慢把基线抬高或压低等你发现时你的质量监控已经失真很久了。我们在这个问题上吃过亏同一批回归测试集三周前 Judge 的平均分是 0.78三周后变成了 0.85。Agent 没变、回答没变、Prompt 没变变的是 Judge。如果当时我们直接信了分数涨了 Agent 变好了就会做出完全错误的判断。这个教训逼着我们建了 Judge 漂移检测的三道防线。6.1 第一道防线校准集 Kappa 系数第一道防线解决的是Judge 和人工标注还一致吗。我们维护了一个校准集calibration set–100 条由领域专家人工标注了分数的回答覆盖各种质量档次。每周跑一次让 Judge 给这 100 条重新打分然后计算 Judge 分数和人工标注之间的Cohen’s Kappa 系数。为什么用 Kappa 而不是简单的准确率因为 Kappa 校正了偶然一致性–即使 Judge 闭着眼睛瞎打分它和人工标注也会有一定比例的碰巧一致。Kappa 把这部分偶然一致性扣掉只衡量真正的一致性。Kappa 的取值范围是 -1 到 11 表示完全一致0 表示和随机一样负值表示系统性相反。我们的阈值是Kappa ≥ 0.8 才算合格。低于 0.8 就告警说明 Judge 和人工标注的分歧已经超出了可接受范围要么是 Judge 漂移了要么是人工标注需要复核。在我们的实际数据上正常状态下 Kappa 稳定在 0.83-0.88 之间一旦跌破 0.8基本都是 Judge 的底层模型被供应商静默更新了。这一道防线的意义是它给你一个每周一次的、绝对的Judge 健康度体检。Kappa 是一个有理论依据、可解释、可追踪的指标不是拍脑袋。你每周看一次这个数字就知道尺子还直不直。6.2 第二道防线多 Judge 投票第一道防线是每周体检但漂移可能在两次体检之间发生。第二道防线解决的是实时发现漂移用多个不同家族的 Judge 同时打分看它们之间的分歧。思路是对同一批样本用至少 3 个不同模型家族的 Judge比如 GPT 系、Claude 系、Gemini 系分别打分。如果三个 Judge 的分数高度一致说明评估结果是稳健的如果某一个 Judge 的分数和其他两个系统性偏离说明那个 Judge 在漂移。我们关注的不是绝对分数而是分歧度divergence–多个 Judge 之间分数的标准差。正常情况下分歧度稳定在一个区间如果某一天分歧度突然飙升就说明有 Judge 开始跑偏了。这个信号比单 Judge 的绝对分数灵敏得多因为它衡量的是相对一致性而相对一致性比绝对值更难造假。多 Judge 投票还有一个附带好处它让评估本身更鲁棒。任何一个 Judge 偶发的异常打分比如偶尔抽风给个极端分会被其他两个 Judge 的多数票中和掉。这等于给评估层加了一层容错。6.3 第三道防线分布漂移检测KS 检验前两道防线分别解决和人工是否一致和Judge 之间是否一致但还有一种更隐蔽的漂移所有 Judge 一起慢慢漂移。这种情况单看一致性是发现不了的–它们彼此仍然一致只是整体基线在平移。这就是凌晨故障后让我最担心的那种漂移Agent 质量在下降Judge 们一起变得更宽容两个变化互相抵消评分曲线平稳如水。第三道防线专门对付这种集体漂移。我们在 Langfuse 上为 Judge 的评分建了一个滑动基线过去 30 天的评分分布。每天把当天的评分分布和这个 30 天基线做一次KS 检验Kolmogorov-Smirnov test。KS 检验是一种非参数检验用来判断两个分布是否来自同一个总体。它衡量的是两个分布的最大距离–如果当天的评分分布和过去 30 天的基线分布形状差异超过临界值KS 检验就会拒绝同分布的原假设触发告警。为什么用 KS 而不是看均值因为均值会被漂移平均掉。假设 Judge 的评分基线均值是 0.80某天均值还是 0.80但分布形状变了–原来集中在 0.75-0.85现在两极分化成 0.6 和 0.95 各占一半。均值没变但分布已经完全不同了。KS 检验能捕捉到这种均值不变但分布漂移的情况而均值监控会漏掉它。这一道防线是整个漂移检测体系里最硬核的一环因为它监控的是分布形状而不是单一统计量。在我们的实践中KS 检验曾经在我们完全没察觉的情况下捕捉到一次供应商静默更新底层模型导致的评分分布漂移–Kappa 还没掉到 0.8 以下多 Judge 分歧度也没飙升但 KS 检验的 p 值已经跌破 0.05提前 4 天发出了预警。防线监控对象触发条件能发现的漂移周期校准集 KappaJudge vs 人工标注Kappa 0.8Judge 偏离人工每周多 Judge 投票多家族 Judge 间分歧分歧度飙升单个 Judge 跑偏每次评估KS 检验评分分布 vs 30 天基线p 值 0.05集体缓慢漂移每天6.4 第四道兜底季度外部盲评前三道防线都是系统内的自我监控但它们有一个共同的盲区校准集本身可能过期。如果领域专家半年前标注的好回答标准在今天已经不适用了比如业务规则变了、用户预期变了那么前三道防线都会基于一个过期的基准在跑再精确也是在错误的基础上精确。第四道兜底防线解决这个每季度找外部专家做一次盲评交叉验证。把一批新的、覆盖最新业务场景的回答混进校准集让外部专家在不知道哪些是 Agent 回答、哪些是人工回答的前提下打分。然后用外部专家的标注去校验我们的内部 Judge 和内部校准集是否仍然和当前的领域标准一致。这一步的本质是给你的整个评估体系做一次校准基准的校准。前三道防线假设基准是对的第四道防线检验基准本身。少了这一步你的整个质量监控可能在一个过时的基准上越跑越偏而所有内部指标都告诉你一切正常。七、把三层串起来30 分钟发现发疯的闭环前面把三层拆开讲了但它们真正的价值在串起来的那一刻。可观测性不是三个独立的系统是一条故障定位的流水线。这一节我用凌晨那场故障做沙盘演示这条流水线在理想状态下应该怎么跑–如果当时三层都就位那 14 连发退款根本走不完。7.1 故障定位的四级下钻凌晨故障发生时理想流程是这样的第一级–指标层发现异常第 0-30 秒。退款 Agent 的决策行为指标工具调用准确率骤降同时频率异常检测发现 47 秒内 14 次退款调用触发单工具 1 分钟 30 次的熔断规则。Agent 被自动掐断转人工队列。到这里损害已经被限制在第 14 次以内而不是任由它继续。第二级–追踪层定位链路第 30-90 秒。值班同学打开被熔断会话的 span 树看到 14 个连续的refund.create调用。点开第一个的决策日志意图写着用户符合自动退款条件但备选方案里有refund.require_manual_review。定位瞬间完成不是工具坏了是 Agent 的判定逻辑错选了自动退款。第三级–评估层确认质量第 90-180 秒。LLM-as-Judge 对这条会话打分功能维度得分 0.31满分 1明确判定这是一次质量严重下降的会话。同时锚点校准通过–Judge 状态正常分数可信。确认Agent 确实变差了不是评估层误报。第四级–Judge 漂移检测排除尺子问题第 180-240 秒。这是容易被忘、但极其关键的一步。在认定Agent 变差之前必须先排除是不是 Judge 自己漂移导致评分失真。查 KS 检验当天评分分布和 30 天基线无显著差异p 值 0.34查多 Judge 分歧度正常区间查本周 Kappa0.85。三道防线全绿确认尺子没变形。到此才能下结论是 Agent 真的变差了不是监控骗了你。下钻级别耗时回答的问题工具一级 · 指标层0-30s有没有异常四维指标 行为熔断二级 · 追踪层30-90s异常在哪条链路span 树 决策日志三级 · 评估层90-180s是不是真的变差LLM-as-Judge 锚点校准四级 · 漂移检测180-240s尺子本身有没有问题Kappa KS 多 Judge7.2 第四级为什么不能省很多人会觉得第四级多余–既然评估层已经判定变差了直接去查 Agent 不就行了这个想法在 Judge 稳定时没问题但在 Judge 漂移时会把你带进死胡同。想象一个场景Agent 其实没变差但 Judge 这周因为底层模型被静默更新而变得更严格所有分数普降 0.1。评估层会报告Agent 质量下降你会一头扎进去查 Agent查三天查不出问题–因为 Agent 真的没问题是 Judge 变了。第四级漂移检测就是为了在这种时刻拉你一把在投入大量人力查 Agent 之前先花四分钟确认你看到的下降是真的下降还是尺子变形造成的假下降。这条规则我们写进了故障 SOP任何评估层报告质量下降的告警必须先过漂移检测三道防线才能进入 Agent 排查流程。尺子没校准之前所有测量都是可疑的。这是一个看起来多此一举、实际上能省掉大量无效排查的设计。7.3 慢热型异常指标层抓不到的那种前面说的都是急性异常–几分钟内爆发。但还有一种更难抓的慢热型异常Agent 的决策质量在几周内缓慢下降每天的变化小到指标层的行为基线捕捉不到。这种异常只能靠评估层的回归测试集发现–我们维护了一个 500 条的回归集每次 Agent 升级都全量重放任一维度恶化超阈值就阻断发布。慢热型异常的典型成因是数据漂移–用户问的问题分布慢慢变了但 Agent 的检索库和 Prompt 没跟着更新于是它在越来越常见的新问题上表现越来越差。这种问题不会触发任何瞬时告警但会在回归集的评分趋势上露出马脚连续三周评分缓慢下滑从 0.84 滑到 0.79。这时候 KS 检验也会发出信号–分布虽然没突变但均值在缓慢平移。这就是为什么我们把 KS 检验做成每天一次而不是每周一次。慢热型漂移每周看一次太晚等你发现时质量可能已经滑了两周。每天一次的 KS 检验能在漂移刚开始的 1-2 天内捕捉到趋势给你足够的反应窗口。八、工业级落地数据、成本与踩过的坑讲完架构这一节给落地数据和我们踩过的坑。可观测性不是装个监控那么简单它是一套要长期运营的体系成本结构、误报治理、团队习惯都是落地时绕不开的问题。8.1 硬数据这套体系跑出来的结果这套三层可观测体系在我们平台上跑了两个多月覆盖日均十万工单、10 租户、200 工具的客服 Agent。几个关键数字平台可用性 99.97%0 个 P0 故障。这里的可用性不是系统没挂的可用性是决策没出大错的可用性–指标层的决策行为指标是可用性计算的一部分。异常发现时延中位数 73 秒。从异常发生到指标层告警中位数 73 秒P95 是 4 分钟。远低于我们设定的30 分钟内发现的目标。误报率从 3% 降到 0.8%。这是个反复迭代的过程–最初的静态阈值误报率高达 3%意味着每 100 个告警有 3 个是假的值班同学很快会告警疲劳。换成行为基线 风险加权采样后误报率降到 0.8%。代价是拦截率从 97% 微降到 95%–这个 trade-off 是值得的因为告警疲劳比漏报更危险一旦值班同学开始忽略告警真正的异常也会被一起忽略。回归集守护效果阻断 3 次带病发布。两个多月里回归集在发布前拦截了 3 次会让质量下降的升级避免它们上线。这是评估层回归防护网价值的直接体现。8.2 成本结构钱花在哪了可观测性不是免费的你得清楚每一层的钱花在哪才能做合理的预算分配。我们的成本结构大致是这样指标层成本最低。聚合指标的计算和存储是标准 APM 的活我们复用已有的 Prometheus边际成本几乎可忽略。追踪层成本的大头在存储。风险加权采样后大约 12% 的会话全量追踪每个 span 平均 2KB日均存储量在可接受范围。PII 脱敏的实体识别小模型跑了单独的推理实例是一笔固定成本。评估层成本最高因为每次评估都要再调一次 LLM。我们把全量评估限制在回归集500 条和高风险会话5% 流量上把日常评估的成本压在可控范围。多 Judge 投票让这一层的成本乘以 3所以只对回归集做不对线上流量做。一个值得记住的成本规律评估层的成本是追踪层的 5-8 倍追踪层是指标层的 3-5 倍。这就是为什么三层是漏斗结构、采样率递减–不是为了偷懒是因为越往内圈越贵必须用越高的门槛筛掉越多的流量。8.3 踩过的三个坑第一个坑一开始我们对线上流量也跑全量评估。结果可观测成本直接顶到了业务推理成本的 40%完全不可持续。后来改成线上只跑指标追踪评估只对回归集和高风险会话跑成本才回到合理区间。教训评估层不要碰全量线上流量它的成本结构不允许。第二个坑决策日志一开始没记备选方案。只记了调了什么工具、什么参数。结果排查时经常卡在Agent 为什么不选另一个工具上而这个信息根本没记。后来我们在 Prompt 里加了调用工具前先说明意图和备选的要求把备选方案也记进 span。这一步让排查效率提升了一个量级。教训追踪层不光要记做了什么更要记为什么这么做、还有什么别的选择。第三个坑漂移检测一开始只配了 Kappa没配 KS 检验。结果有一次集体漂移三个 Judge 一起慢慢变宽容Kappa 还达标因为它们彼此仍然一致但整体基线在平移。加了 KS 检验之后才捕捉到。教训单一指标都有盲区Kappa 管和人工一致KS 管分布漂移两者互补缺一不可。8.4 给团队的启示可观测是一种文化最后说一个非技术的点。可观测体系最大的落地阻力往往不是技术是团队习惯。在 Agent 平台早期团队的默认状态是不知道 Agent 表现如何–出问题了才去翻日志。要做的第一件事不是装监控是推动一个观念转变让团队从出问题再查变成每天看 Agent 评分 Dashboard。我自己在团队里推的第一件事就是建一个每天早上自动推送的 Agent 评分日报–四维评分、异常会话 Top10、漂移检测状态。坚持推了两个月团队的默认状态才从被动救火切换到主动盯防。这件事比任何技术方案都重要–再好的可观测体系如果没人每天看等于没有。可观测不是一套系统是一种让团队持续感知 Agent 状态的工作方式。写在最后回到开头那个凌晨 3 点 17 分的故事。如果当时三层可观测体系就位那场故障的剧本会完全不同退款 Agent 在第 30 秒被行为熔断掐断值班同学在 90 秒内从 span 树定位到选错了自动退款4 分钟内确认是 Agent 判定逻辑的问题而不是在错误率全绿的大屏前干瞪眼两个小时。但更让我后怕的是 Judge 漂移这件事。如果不是那次偶然发现同一批回答三周后分数涨了 0.07我可能一直会相信分数涨了 Agent 变好了这个幻觉。当你用一个 LLM 去监控另一个 LLM你引入的不只是一个评估者而是一个会自己悄悄变形的评估者。如果你不监控这个监控者你的整个质量体系就是建在流沙上。所以如果这篇文章只让你记住一句话我希望是这条Agent 可观测性的核心矛盾是用来监控的工具本身也需要被监控。指标层管系统行为追踪层管决策过程评估层管决策质量而漂移检测管的是评估层自己。四层嵌套层层校验缺了任何一层你都会在某个看不清的角落里翻车。模型越强决策越不可解释可观测性就越要从事后复盘的工具前移成实时盯防的哨兵。等到用户投诉才去查日志损失已经发生等到分数崩盘才发现 Judge 漂移判断已经失真很久。真正的可观测性是在 Agent 开始发疯的那 30 分钟内让它现形–不是靠运气是靠一套层层校验、彼此制约的体系。这不是锦上添花的事是 Agent 走向生产的前提。一个你无法观测的 Agent你就不敢让它自动执行任何高风险操作。可观测性到位了自动化才敢放手可观测性缺位你就只能让 Agent 永远待在建议、不执行的笼子里。从这个意义上说可观测性的成熟度直接决定了一个 Agent 平台能走多远。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表