模式矩阵 /模式白皮书/G5

G5 · Observability Harness · 可观测性

字段
双轴坐标 治理 Governance × 编排 Orchestrate(协)
成本档 ☷(跨切关注点,不在主推理路径上计费,横切在所有 agent / tool / step 上)
课程对应 08-05
目录归属 全集 33 模式之一 · 治理模块 5 模式之一
一句话 给 Agent 全生命周期挂五维 telemetry,跨 agent 串联 trace,让事后能回放、监管能审计、产品能决策。

它解决什么问题

LLM Agent 没有可读的源码,模型权重是黑盒,唯一能看清它做了什么的窗口是 trace。可观测性没做好的 Agent 系统等于黑盒:监管不接、运维不敢、出事抓瞎。而且 Agent 的故障方式跟传统软件不同——传统软件在某个时间戳抛异常、stack trace 一目了然,Agent 是慢慢漂移:完全正确、仍然正确、看起来正确、自信但错、沉默灾难化,没有一个 crash point。

可观测性给 Agent 装上飞行数据记录器。它在每个 LLM call、每个 tool call、每个 sub-agent step 上采集遥测,把分散的 span 用同一个 trace id 串成完整调用链。监管来审能给完整 trace,出事能 root-cause 到具体哪一刀,产品和客服在做日常决策时能几分钟拿到证据,长期还能拿来优化。

为什么坐标是「治理 × 编排」

核心机制

可观测性把 Agent 的遥测做成五个维度,缺一维就是盲点:

维度 传统软件 LLM Agent 加在哪
Log 应用 log 加 prompt / response / system_prompt 全文
Metric request count / latency / error rate 加 tokens_in / tokens_out / model_swap event / refusal rate
Trace request → service → DB 加 user → agent → sub-agent → tool → LLM call 跨层
Cost 不存在 AI-native:per-call / per-session / per-tenant / per-tool
Quality response status code AI-native:hallucination / scope creep / refusal / correctness

五维不是平铺的。log / metric / trace 是底层的事实记录层,cost / quality 是上层的斜率分析层。因为 Agent 故障是漂移不是阶跃,关键判断是监控 trajectory slope(变化率)而不是 threshold crossing(阈值穿越)——质量在转弯处下降、每个结果消耗的 token 在 cycle 间膨胀,这些斜率信号才是真正的故障征兆。跨进程靠 W3C Trace Context 的 traceparent 串联所有 span 到同一个 trace id,配合 OpenTelemetry GenAI Semantic Conventions 的标准 attribute,其中 gen_ai.request.modelgen_ai.response.model 分开记录,专治"请求 Sonnet 实际跑了 Haiku"这类传统 APM 看不见的 fallback。

适合的生产场景

容易出错的地方

关键指标

最小骨架

每个 LLM call / tool call / sub-agent step 产出一个 span:
    填 OTel GenAI attribute(含 request.model 与 response.model 分开)
    cost = compute_cost(span)                 # 按 token 与实际 model 算
    若命中采样 → quality = llm_judge(span)     # hallucination / refusal / scope_creep
    emit 到 OTel pipeline(五维同时打)

跨 sub-agent:主 Agent inject W3C traceparent 到 carrier,
             sub-agent extract 后继续同一个 trace_id

trajectory_slope(tenant, metric, window):返回变化率,不是阈值
query_for_audit(trace_id):一个 trace_id 串起所有 span 供监管回放

工程落地三处必改:PRICING 换成实际 model 价格;llm_judge 换成真实的便宜 judge 调用(如 Haiku)而非 mock;business 槽里加 tenant_id / user_id / workflow_id,并把 emit 接到真实的 collector 或 Langfuse endpoint。

企业落地一例

2026 年 2 月一家月活 12 万中学生的 Edtech 公司,某个周二早上九点起作业反馈质量突然崩溃,投诉雪片般来——"AI 写错解题步骤"、"AI 拒答物理基础问题"。团队查 application log 正常、查 metric(request count / latency / error rate)正常、查 Datadog APM 显示一切 OK,卡了 6 个小时。最后一个工程师偶然打开 Anthropic Console,发现周一凌晨一次为了省成本的部署,把 main agent 的 model 从 Sonnet 4.6 切到了 Haiku 4.5,routing 配错导致所有题都路由到了 Haiku。复盘那段话很扎心:"我们有 log 加 metric 加 trace,但所有这些都不告诉我 task 用的是哪个 model。LLM agent 的可观测性需要传统三大支柱再加 cost 和 quality 两个 AI-native 维度,少一个都查不出来。"传统 APM 看不到 cost per call 在 model swap 当时从 0.03 跌到 0.001(看起来是好事),也看不到 quality score 同一时刻从 0.92 跌到 0.71(这才是事),两条曲线一对照 model swap 立刻暴露。这就是为什么五维 telemetry 是底线。

在执行型 Agent 的工程实现里,可观测性可以用统一的活动事件抽象落地:把智能体的每一个活动事件用 Activity 加 Frame 统一表达,开发者就能看到执行过程的完整时间线(如 SSE 实时推送)。需要注意区分一件事——这里的"可观测"是让执行过程对开发者可见,不等于"Agent 对世界的感知"。前者是治理端的 telemetry,后者是感知模块的事。

与其他模式的关系

一句话记住它

可观测性的最大用户不是 Agent,是人——它把"某个改动会影响哪些客户"这类占工程师大半时间的沟通与影响分析,从花两周开会压缩到花一小时查 trace,让被治理的 Agent 反而拿到更多自主权,因为组织知道最坏情况是被框住的。


本页属于 ADPS 33 模式白皮书。返回 模式矩阵与白皮书目录, 或查看配套 可运行代码目录