简介:AI Agent能力强大却常像个黑箱,其可观测性与传统软件可观测性有何本质区别?本文从执行结构、数据形态、评估方式、成本核算、治理合规等维度系统对比两类方案,拆解监控、追踪、评估、治理四大支柱与span-per-tick轨迹树实践,并给出分场景建设与选型建议,帮助团队把Agent变成可回放、可追问、可算账的透明系统。
如今的 AI Agent 在接到一句自然语言指令后,往往会自主经历查阅资料、执行命令、修改文件等一系列中间步骤,最终交付结果。任务顺利时皆大欢喜;可一旦出现成本成倍消耗、误改文件、陷入死循环等问题,开发者往往难以还原中间到底发生了什么。这就是当前许多 Agent 系统的真实写照:能力很强,但过程像个黑箱。
与此同时,服务端软件领域的可观测性(Observability)体系已经相当成熟,日志、指标、链路追踪“三大件”几乎是后端团队的标配。很多团队的第一反应是“直接把现有监控体系套到 Agent 上”,结果却发现追踪断链、指标失真、告警失灵。因此,弄清楚传统软件可观测性与AI Agent 可观测性到底哪里相同、哪里不同、应该怎么建,是每一个正在落地 Agent 的团队都绕不开的问题。本文就围绕这两类可观测性方案展开系统对比。
传统软件可观测性:面向确定性系统。在微服务架构下,一次用户请求会沿着预先定义好的服务调用路径流转,可观测性体系通过日志、指标、分布式追踪三类数据,回答“系统整体健康吗”“这次请求慢在哪”“这次故障由哪个服务引起”等问题。它有一个隐含前提:系统行为虽然复杂,但执行路径大体可以被代码预先定义。
AI Agent 可观测性:面向自主决策系统。它指的是在 Agent 从“接到指令”走到“给出动作”的每一步,都把结构化的运行痕迹记录下来,并能事后拿来分析。业界有时称之为“智能体遥测”(agentic telemetry),更常见的叫法是 agent observability。它通常被拆成四根支柱:监控负责看整体健康与趋势;追踪负责还原单次任务的来龙去脉;评估负责判断任务完成得好不好;治理负责管成本、隐私与合规。前两根支柱回答“它做了什么、怎么做的”,后两根支柱回答“做得好不好、能不能放心交给它”。
值得一提的是,不少主流编程类智能体——也就是开发者日常使用的、能自动读代码、改文件、执行命令的那类 Agent——已经内置了会话回放、逐步骤执行记录等能力,这正是它们在出问题时“可追问”的重要原因,也从侧面印证了这套能力对 Agent 的必要性。
虽然面向的对象不同,但两类可观测性在底层逻辑上高度一致:
正因为底座相通,企业在建设 Agent 可观测性时并不需要推倒重来,而是在既有体系上做语义扩展——这一点对选型决策影响很大。
传统软件是“一次调用拿一个结果”:请求进来,沿预定义路径流转,链路拓扑基本可预知。Agent 则是一棵不断生长的决策树:它会先想一想(调用大模型),再动手查资料或敲命令(调用工具),顺手记点东西(读写记忆),有时还会把活儿分包给另一个子 Agent。同样的输入,两次执行可能走出完全不同的路径,中间步骤数量也不固定。这意味着 Agent 的追踪不能只依赖预先声明的调用关系,而必须支持运行时动态展开的嵌套结构。
业界普遍采用的做法叫 span-per-tick:Agent 每走一“拍”(tick),就生成一个 span——可以把它理解成一段带起止时间和标签的“行程记录”。一次完整任务是根 span,底下挂着模型调用、工具调用、记忆读写、子 Agent 交接等子 span,层层嵌套,最终构成一棵轨迹树。除了传统 span 的时长与状态,Agent 的 span 还必须记录 prompt 与响应内容、token 用量、工具参数与返回结果等“语义数据”。有了这棵树,“到底哪一步卡住了”“第二次模型调用烧了多少 token”“它为什么开始原地打转”这些灵魂拷问,才第一次有了确切答案。
示意性伪代码如下:
# 伪代码:span-per-tick 埋点示意with start_span("agent_task", input=task) as root: # 根 span:一次完整任务with start_span("llm_call", parent=root) as s1: # 子 span:一次模型调用s1.record(prompt, response, tokens, latency)with start_span("tool_call", parent=root) as s2: # 子 span:一次工具调用s2.record(tool_name, params, result, status)with start_span("memory_rw", parent=root) as s3: # 子 span:记忆读写s3.record(op, key, size)# 子 Agent 交接同样作为一个子 span 记录,形成多层嵌套
传统系统的“做得好不好”大多可以用断言表达:错误率、延迟分位数、成功率。而 Agent 的产出是自然语言与一系列动作,“答得好不好”无法只靠阈值判断,需要引入评估支柱:构建评估集做回归测试、人工抽检关键案例、借助模型辅助评估答案质量、统计任务完成率与返工率等。评估是 Agent 可观测性中难度最高、也最容易被忽略的一环。
传统系统的成本主要来自计算、存储与带宽,核算到服务与实例即可。Agent 的成本大头往往是 token 消耗与调用次数,而且极易被坏路径放大:一次死循环可能让成本翻十倍。因此 Agent 可观测性必须把“账”算到每一次模型调用、每一次工具执行上,才能定位成本异常究竟来自哪一步决策。
传统治理关注账号权限、操作审计与数据加密。Agent 场景下还要额外回答:哪些敏感数据被送进了模型?工具被授予了多大的执行权限(能否删文件、能否访问外部网络)?记忆中沉淀的内容是否合规、是否需要定期清理?治理支柱因此从“系统边界安全”扩展到了“决策过程安全”。
传统系统同一个输入大概率触发同一条链路,复现问题相对容易。Agent 因为路径动态,仅凭输入往往无法复现问题,必须依赖完整记录的轨迹树做回放,甚至需要保存当时的模型版本、工具状态与环境快照,才能追问“当时它为什么这么决定”。
| 对比维度 | 传统软件可观测性 | AI Agent 可观测性 |
|---|---|---|
| 适用对象 | 确定性系统、微服务调用链 | 自主决策的智能体 |
| 执行结构 | 预定义调用链,拓扑可预知 | 动态决策树,路径运行时才确定 |
| 核心数据 | 日志、指标、分布式追踪 | span-per-tick 轨迹树 + prompt/响应 + token 用量 |
| 关键问题 | 哪个服务出错、延迟在哪 | 哪步决策走偏、哪次调用烧掉预算 |
| 评估方式 | 阈值断言:错误率、延迟分位 | 质量评估:完成度、准确性、返工率 |
| 成本颗粒度 | 服务/实例级资源成本 | 每次模型调用与工具执行的 token 账本 |
| 治理重点 | 权限、审计、加密 | 数据进出模型边界、工具权限、记忆合规 |
| 问题复现 | 固定输入基本可复现 | 需全量轨迹回放,常需环境快照 |
| 建设路径 | 三大件体系成熟 | 复用三大件底座,扩展 Agent 语义 |
不同阶段与场景下,四根支柱的优先级并不相同:
从传统可观测性体系延伸到 Agent 可观测性时,有几类风险需要提前评估:
传统软件可观测性与 AI Agent 可观测性,共享同一套工程底座——结构化采集、统一标识、事后分析——却在执行结构、数据形态、评估方式、成本结构与治理边界上存在本质差异。根源在于:传统系统是预先定义的调用链,Agent 是运行时才确定的决策树。因此,建设 Agent 可观测性的正确思路不是给 Agent“加一个摄像头”,而是以 span-per-tick 轨迹树为核心,分层补齐监控、追踪、评估、治理四根支柱,让每一次任务都可回放、可追问、可算账。选型时先盘清既有底座与团队能力,再按场景排定支柱优先级,就能以可控成本把黑箱变成透明系统。