这几个月有个数字一直在我脑子里转:
72% 的企业已经在生产环境运行多 Agent 系统,但只有 37% 的团队在做在线评估。
什么意思?意思是大部分人的 Agent 在生产环境里跑着,但到底跑得好不好、为啥挂了、Token 花哪了——没人知道。就像你写了一堆微服务但没上 APM,出了性能问题全靠猜。
我们这行有个老道理:你不能优化的东西,你测量不了。你不能测量的东西,你管不了。
AI Agent 的爆发,正在撕开传统可观测性工具一个巨大的窟窿。
传统监控为什么管不了 Agent?
先想想传统 APM(Datadog、Prometheus、Grafana 那一套)是干什么的。
它们假设你的程序是确定性的:同样的输入,同样的代码路径,同样的输出。挂了就看错误栈,重放请求就能复现。这套模型在网络服务和微服务架构上跑了十几年,很成熟。
Agent 呢?完全不是一回事。
Agent 的执行路径是非确定性的。同一个 Prompt 发给 GPT-4o 两次,它可能走完全不同的 tool call 顺序。第一次一步步算对了,第二次跳了一步直接给出错误答案。你复现不了——不是因为数据丢了,是因为模型那次采样走了不同的路。
更麻烦的是级联故障。多 Agent 系统里,Orchestrator 误解了子 Agent 的输出,派错了专家,错误一路放大到最终结果。这种因果链是跨 Agent 边界的,传统日志系统根本连不起来。
这就像你以前查 Bug 是在一条直路上找到哪个路口拐错了,现在查 Agent Bug 是在一个迷宫里找哪个岔路导致最终走不出去——而且这个迷宫每次进来都不一样。
OpenTelemetry 正在成为 Agent 追踪的"世界语"
好消息是,行业正在统一。
2026 年 5 月,OpenTelemetry 正式从 CNCF 毕业。同一个月,它的 GenAI Semantic Conventions(语义约定) 接近稳定版本。这套约定定义了 gen_ai.* 属性的标准化 schema——LLM 调用的 span 怎么记、Tool 调用怎么记、Retriever 步骤怎么记、Agent 的决策链怎么记——全都有统一的字段名和格式。
这个事的意义怎么强调都不为过。
以前你在业务代码里打日志,用什么字段名没人管。user_id、userId、customer_id 混着用,ELK 照样搜。但 Agent 追踪不一样。一个 Agent 调了另一个 Agent,A 系统用 provider.request.model,B 系统用 llm.model_name,跨系统关联就断了。
OTel GenAI 约定就是来解决这个的——它定义了标准的 span attribute 名称:
gen_ai.request.model— 用的什么模型gen_ai.response.token_count— 吃了多少 Tokengen_ai.tool.name— 调了哪个工具gen_ai.agent.id— 哪个 Agent 干的活
当所有 Agent 工具链都用同一套 schema 打 trace,你就可以实现一个很性感的事:用一套仪表盘看所有 Agent 的行为,不管它们跑在哪个框架、哪个模型上。
2026 年的工具生态:三国杀
目前的三巨头分别是 LangFuse、Arize Phoenix 和 traceAI。各自站位很有意思。
LangFuse:最成熟的开源平台
MIT 协议,19,000+ GitHub Star,2026 年 3 月发布了 V4。架构上做了一个很关键的改动:从 Trace 为中心变成 Observation 为中心。
以前一个 Trace 里包着多层子 span,查一次要遍历整个层级树。现在每个 LLM 调用、每个 tool 执行、每个 agent 步骤都是独立行记录,直接查。简单说就是从"文档嵌套"变成了"数据库行",查询速度快了一个数量级。
如果你要开源自建,LangFuse 是最稳妥的起点。MIT 协议没有 License 风险,Hobby 层免费给 50,000 单位/月,个人开发者完全够用。
Arize Phoenix:OTel 原生选手
Phoenix 的竞争力在于它一开始就建在 OTel 上。它的底层是 OpenInference——Arize 自己开源的 OTel 扩展。这意味着你用 Phoenix 打的 trace,随时可以切到 Jaeger、Grafana Tempo 或者你们公司已有的 Observability 栈。
对于已经有 OTel 基础设施的团队,Phoenix 是最干净的方案——不需要跑两套 Agent 监控。它在 2026 年 6 月突破了 10,000 GitHub Star,社区活跃度很高。
traceAI:后起之秀,专攻多 Agent
traceAI 是 2025 年底才冒出来的项目,但增长很快。Apache 2.0 协议,主打多 Agent 系统的跨 Agent 追踪。
它的核心差异化是:能追踪 Agent 之间的 span 关系。当 Agent A 调了 Agent B,traceAI 可以维护跨 Agent 边界的 parent-child span 关系,让你在一个界面里看到完整的调用链。这个是当前其他工具做得不好的地方——大部分平台还是假设你在一个进程里追踪。
traceAI 的架构也很有意思:它本身不提供存储和可视化——它是一个 instrumentation 库,专门负责打 trace(支持 Python、TypeScript、Java、C#),数据发给任何 OTel 后端。这让它比 LangFuse 和 Phoenix 轻量得多,也更灵活。
至今无人做好的一件事:Agent 的"实时行为审计"
聊完已有的方案,说说我觉得真正的机会在哪。
现在所有的 Agent 可观测性工具都在做一件事——事后分析。Trace 打出来,人去看 Dashboard,找问题。
但 Agent 的特殊之处在于:它的行为不是静态的。同一个 Agent 今天可能表现很好,明天换了模型版本就开始出幻觉。更麻烦的是,Agent 的故障模式不是简单的"报错/不报错",而是"输出质量下降"——这个传统监控系统根本没概念。
我管这个叫 Agent Behavior Drift Detection(行为漂移检测)。
理想中的方案是这样的:
- 每个 Agent 部署后,先跑基准场景集,记录"正常"的 trace 模式(tool call 路径、耗时分布、Token 消耗)
- 生产环境持续追踪,实时对比当前 trace 和基准 profile 的偏差
- 当偏差超过阈值——比如本该调 3 个 tool 的结果只调了 1 个,或者思考链长度突然缩短——自动告警
- 支持 trace 级别的 A/B 对比,帮你比较模型升级前后的行为变化
这其实很像我们这个行业的老朋友——统计过程控制(SPC) 和 异常检测——只不过应用对象从服务器监控变成了 Agent 行为。
目前没有一个工具做得好这个。LangFuse 有 eval,Phoenix 有 notebook 实验,但都没有"生产环境行为的实时基线对比"。这是蓝海里还没被填上的一个大坑。
你可以从今天开始做的一件事
如果你做云计算和大数据出身,想在这个方向储备能力,我推荐你从这件事入手:
给你的一个生产 Agent 接入 OpenTelemetry 追踪。
不管你现在用的是什么框架——LangChain/LangGraph、CrewAI、OpenAI Agents SDK、Claude Agent SDK——它们现在都有 OTel 集成。挑一个,接上 LangFuse 或者 Arize Phoenix(都是开源免费自托管),跑一周。
你会很快发现以下问题真实存在:
- 你的 Agent 是不是经常"沉默超时"?到底是在思考还是在死循环?
- 你的 Tool call 失败率多少?失败后有没有优雅重试?
- Token 消耗大头在哪?是 Context 太大还是无效的反思循环太多?
- 多 Agent 场景下,Orchestrator 分配任务是不是均匀的?还是某个子 Agent 一直在干活?
这些问题,没有 trace 之前你是靠猜的。有了 trace,每一行数据都摊在桌面上。
如果还想深一步,可以自己写一个简单的行为 Profile 对比器——用 Python 把历史 trace 拉下来,聚合成基准分布,再用统计方法对比实时数据。这个项目规模不大(一个人一两周就能出 MVP),但能让你对这个领域有最一线的体感。
写在最后
Agent 可观测性这个方向,2026 年正处在一个微妙的拐点。
工具已经有了(LangFuse、Phoenix、traceAI),协议标准正在收敛(OTel GenAI),但真正的工程化实践——异常检测、行为漂移、多 Agent 因果链分析——几乎还是空白。
对于有分布式系统背景的开发者来说,这是一个天然的优势领域。分布式追踪、时序异常检测、Trace 关联分析——这些基础设施领域的旧知识,在 Agent 世界里找到了全新的应用场景。
2026 年的 Agent 可观测性,有点像 2016 年的微服务 APM。概念已经在,需求在爆发,但真正好用的工具还没长出来。谁能填上这个坑,谁就能定义下一代基础设施的基座。
别光看,动起来。给你的 Agent 加上仪表盘——你看到的第一个盲点,就值得写一篇文章。