传统的可观测性之所以成立,是因为失败的模式在执行前就已为人所知

  • 请求失败了
  • 延迟增加了
  • 任务超时了
  • 用户点错了按钮

这些对软件工程师来说是非常合理的假设。分布式系统虽然复杂,但系统的本体(ontology)是相对稳定的——我们知道事件的大致形状、属性有哪些、哪些指标值得追踪。可观测性本质上是在解决一个效率问题:定义感兴趣的对象、记录它们、计算指标。

但 Agent 活在另一个世界。

Agent 的系统本体在执行前根本无法获知。执行之前,我们不知道 Agent 会表现出哪些行为组合、它会走什么捷径、发现什么有效策略,更不知道它会进入怎样灾难性的失败模式。

这就改变了操作的顺序。

传统可观测性:ontology 在前,测量在后

我们先知道什么重要,再去测量它。

Agent 可观测性:ontology 跟随执行出现

Agent 先行为,我们再从它的轨迹中识别哪些行为在语义上是重要的。

技术挑战变了。 不再是事件捕获的问题,而是行为发现的问题。

一个不同的调试体验

对 Agent 有效的可观测性系统,优化的是这个循环:

  1. 执行 Agent
  2. 快速发现、分流、调查有趣的行为(好的或坏的)
  3. 让人类快速评估这些行为
  4. 把人类信号转化为指标、评估、干预
  5. 用这些 artifact 塑造未来的 Agent 行为

Leonard Tang 把这叫做 Semantic Observability(语义可观测性)。

"Semantic"这个词是关键。Trace 本身大部分是句法层面的——一个事件账本。它不告诉你哪些轨迹应该被强化或抑制,也就是什么是好的、什么是坏的。

传统指标太粗糙了。成功率、任务完成率、Judge 评分,都把 Agent 行为的丰富性压缩成了有损摘要。这些摘要只在行为已经被定义之后才有用——它们不解决发现问题本身。

构建 Agent 时,最难的部分是发现问题:

  • Agent 表现出哪些长尾且可能具灾难性的行为?
  • Agent 经常陷入哪些模式?
  • 这些模式在什么场景和条件下出现?
  • 这些模式最终是否满足了人类设定的规范?

这些都是语义问题,不是加更多日志能解决的

捕获并规模化人类判断

语义可观测性系统必须能快速摄入人类信号。

系统本身可能无法判断一个模式是 desirable、undesirable、brittle 还是 deceptive。这种知识只能通过人类判断来获取——是人类注意到了"这个行为用错误的原因奏效了"、"这个行为在某些上下文里失败了"、或者"这个行为出人意料地有效,但现有指标完全捕捉不到"。

一旦一个行为被发现、人类信号被捕获,就可以转化为更持久、更可规模化的 artifact:指标、Judge、评估、警告信号、回归测试、路由启发式、Skill、在线验证器。一次性的观察,最终成为系统未来训练和 steering loop 的一部分。


TLDR:

  • 传统可观测性测量预定义的行为
  • 语义可观测性发现涌现行为,再将其结构化为指标

核心问题在于设计一个能实现快速语义发现、快速人类评估、快速将新行为转化为指标和干预的系统。这不是工程师训练做的事——这是研究员做的事,是宽客做的事,是数据科学家做的事。

你观察你的数据,然后搞清楚发生了什么。

语义可观测性把这种能力规模化。