Gartner预测,到2027年将有60%的AI Agent部署因缺乏可观测性而失败。Multi-Agent系统的调试不是加几个print就能解决的——当一个 Planner Agent 把任务分发给五个 Worker Agent、其中三个调用了外部工具、两个又触发了子图循环、最终在第17步产生幻觉时,你需要的是从根Span到叶子Span的完整因果链。本文实测六大引擎:LangSmith、Langfuse、Arize Phoenix、W&B Weave、traceAI、Laminar,覆盖从安装集成到生产告警的全栈链路。
传统LLM可观测性的基本单位是"一次提示-响应"——两个Span,一进一出,简单明了。Multi-Agent系统的基本单位是轨迹(Trajectory):一次用户请求可能触发规划器分解任务、检索器拉取上下文、多个Worker并行执行工具调用、审查者校验结果、最终汇总返回。这条轨迹可能跨越数十个Agent、数百次LLM调用、数千个工具调用,运行时间从秒级到小时级不等。
这意味着传统APM工具(Prometheus + Grafana)只能告诉你"系统在运行",却无法告诉你"Agent为什么在第12步选择了错误的工具"。OTel(OpenTelemetry)分布式追踪已成为2026年的CNCF推荐标准,但原生OTel的Span模型并不理解Agent语义——你需要的是Agent感知的可观测性层。
| 维度 | LangSmith | Langfuse | Arize Phoenix | W&B Weave | traceAI | Laminar |
|---|---|---|---|---|---|---|
| 开源 | 否(有免费层) | 是(MIT) | 是(Elastic-2.0) | 否(有免费层) | 是(Apache 2.0) | 是(AGPL) |
| 原生框架 | LangGraph/LangChain | 全框架 | 全框架 | W&B生态 | 全框架 | 全框架 |
| 核心模型 | Run Tree | Trace → Span | Span → Evaluation | Call → Op | OTel Span Tree | Trace → Span Tree |
| Multi-Agent可视化 | 子图嵌套追踪 | 会话级视图 | Span图谱 | 实验管线 | Span层级树 | 轨迹树 |
| 时光机调试 | LangGraph Replay | 快照回放 | 否 | 版本比较 | 否 | 完整回放 |
| 成本追踪 | Token级 | Token级+成本估算 | Token级 | Token级 | Token级 | Token+任务级 |
| 告警 | Run级规则 | 规则引擎 | 漂移检测 | 实验指标 | OTel原生 | 异常检测 |
| 自部署 | 否 | 是 | 是 | 否 | 是 | 是 |
| 上手时间 | 5分钟 | 15分钟 | 10分钟 | 10分钟 | 20分钟 | 15分钟 |
| 免费额度 | 5K traces/月 | 自部署无限制 | 自部署无限制 | 50K calls/月 | 自部署无限制 | 自部署无限制 |
| 适用场景 | LangGraph生态 | 通用多框架 | 需要评估闭环 | 实验驱动团队 | K8s原生部署 | 长时运行Agent |
LangSmith是LangChain官方的可观测性平台,与LangGraph的集成深度是其他引擎无法企及的。在LangGraph中,每个图的节点执行、边转换、状态变更都会自动生成一个Span,形成完整的Run Tree。当LangGraph使用子图(Subgraph)嵌套时,LangSmith能自动构建多层嵌套的追踪视图。
核心架构:LangSmith的追踪模型基于Run概念——每个LLM调用、工具调用、Retriever调用都是一个Run,它们组织成树状结构。对于Multi-Agent系统,编排器Agent的Run是根节点,每个Worker Agent的Run是子节点,工具调用是叶子节点。
from langsmith import Client
from langgraph.graph import StateGraph
# LangSmith自动追踪,只需设置环境变量
import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "your-key"
os.environ["LANGCHAIN_PROJECT"] = "multi-agent-prod"
# LangGraph图执行自动产生嵌套Run Tree
graph = build_multi_agent_graph() # 包含planner+workers+reviewer
result = graph.invoke({"messages": [("user", "分析这份财报")]})
# LangSmith后台自动捕获:
# Run(planner) → Run(worker_finance) → Run(tool_balance_sheet)
# → Run(worker_risk) → Run(tool_risk_model)
# → Run(reviewer) → Run(final_synthesis)
独有优势:时光机调试。LangGraph的检查点机制(Checkpointing)配合LangSmith,可以从任意历史状态回放执行。这意味着当Agent在第17步出错时,你可以从第15步的快照重新开始,修改Prompt后继续执行——这是唯一提供此能力的引擎。
致命短板:不支持自部署,所有数据必须发送到LangChain的云服务。对于金融、医疗等数据合规严格的行业,这是硬伤。此外,非LangGraph框架的集成支持较弱,CrewAI和AutoGen需要手动构造Run对象。
Langfuse是2026年Multi-Agent可观测性领域增长最快的开源项目,GitHub Star已突破25K。它的核心设计哲学是"框架无关"——通过统一的Trace→Span模型同时支持LangGraph、CrewAI、OpenAI Agents、Pydantic AI、n8n等几乎所有主流框架。
核心架构:Langfuse的追踪模型有三个层级:Trace(一次完整用户交互)→ Span(一次Agent操作或工具调用)→ Generation(一次LLM调用)。这种三级模型比LangSmith的二级Run Tree更适合Multi-Agent系统,因为Span可以携带Agent角色、任务ID、委托关系等元数据。
from langfuse.decorators import observe, langfuse_context
@observe(as_type="agent") # 装饰器自动创建Span
def planner_agent(task: str):
subtasks = llm.invoke(f"分解任务: {task}")
results = []
for subtask in subtasks:
result = worker_agent(subtask) # 自动创建子Span
results.append(result)
return reviewer_agent(results)
@observe(as_type="tool")
def worker_agent(subtask: str):
# Langfuse自动追踪LLM调用和工具调用
return llm.invoke(subtask)
# 会话级追踪:一个用户请求 = 一个Session
from langfuse import Langfuse
langfuse = Langfuse()
trace = langfuse.trace(
name="multi-agent-session",
user_id="user-123",
session_id="session-456", # 支持会话级聚合
metadata={"team": "finance"}
)
独有优势:Session级视图和评分系统。Langfuse的Session概念可以将多次Trace聚合到一个用户会话中,这对于Multi-Agent系统中的多轮对话追踪至关重要。同时,Langfuse内置了评分引擎(基于LLM-as-Judge和人工标注),可以直接对Agent的输出质量进行评估,无需额外集成评测工具。
生产实践:某40人Agent Fleet团队(studiomeyer.io案例)采用"三层可观测性栈":Sentry负责系统健康(异常、崩溃)、Langfuse负责运行质量(Agent决策追踪、成本分析)、LangGraph负责工作流编排(状态检查点)。三层各司其职,避免工具蔓延。
Arize Phoenix走了一条与众不同的技术路线——它将OpenTelemetry作为底层追踪协议,在其上构建了Agent感知的语义层。这意味着你可以用标准的OTel Collector接收追踪数据,同时享受Phoenix提供的Agent专用分析能力。
核心架构:Phoenix基于OTel Span构建,但增加了AI语义属性(ai.model、ai.token_count、ai.tool_name等)。它支持的标准OTel操作包括:traces、spans、span_events、span_links。Multi-Agent系统中的Agent间通信通过span_links建立因果关联。
import phoenix as px
from phoenix.trace.langchain import LangChainInstrumentor
# 启动Phoenix服务器(自部署)
session = px.launch_app()
# 自动仪表化LangChain/LangGraph
LangChainInstrumentor().instrument()
# 也可以用OTel原生方式
from opentelemetry import trace
tracer = trace.get_tracer("multi-agent-system")
with tracer.start_as_current_span("planner.agent") as span:
span.set_attribute("agent.role", "planner")
span.set_attribute("agent.model", "gpt-4o")
# Worker Agent自动成为子Span
with tracer.start_as_current_span("worker.finance") as wspan:
wspan.set_attribute("tool.name", "balance_sheet_api")
result = call_tool("balance_sheet_api")
wspan.set_attribute("tool.result_length", len(result))
独有优势:评估闭环(Evaluation-in-the-loop)。Phoenix不仅能追踪Agent行为,还能在追踪数据上直接运行评估——支持预定义的Relevance、Toxicity、Hallucination检测器,也支持自定义LLM-as-Judge评估器。评估结果直接附加到对应的Span上,形成"追踪→评估→改进"的闭环。
短板:不支持时光机调试。Phoenix专注于实时分析和评估,没有状态快照和回放能力。对于需要调试长时运行Agent的团队,这可能是决定性缺陷。
Weights & Biases从实验追踪起家,Weave是其Agent时代的可观测性产品。Weave的独特定位是"实验与生产的统一"——你可以在同一个平台上追踪Agent的开发实验和生产运行,对比不同Prompt版本、模型选择、工具配置的效果差异。
核心架构:Weave的追踪模型基于Call(等价于Span)和Op(可复用的Agent函数)。一个Multi-Agent系统的执行会生成Call Tree,每个Call记录输入、输出、耗时、Token消耗、模型信息。Weave的特色是版本化——每个Op都有版本历史,可以追踪Agent行为随版本变化的情况。
import weave
weave.init("multi-agent-prod")
@weave.op # 自动追踪,版本化管理
def planner_agent(task: str):
subtasks = decompose(task)
results = [worker_agent(st) for st in subtasks]
return reviewer_agent(results)
@weave.op
def worker_agent(subtask: str):
return llm.invoke(subtask)
# 创建评估数据集
dataset = weave.Dataset(
name="agent-eval-v2",
rows=[{"task": "分析财报", "expected": "..."}]
)
# 评估Agent在数据集上的表现
evaluation = weave.Evaluation(
dataset=dataset,
scorers=[accuracy, relevance, hallucination_rate]
)
result = await evaluation.evaluate(planner_agent)
独有优势:实验-生产连续性。当你在开发阶段调优了Planner Agent的Prompt,Weave能自动记录这次变更,并在生产环境中对比新旧版本的表现差异。这种"实验→部署→对比→迭代"的工作流对于快速迭代的Agent团队极具价值。
短板:不支持自部署,所有数据存储在W&B云上。免费层限制50K calls/月,对于大型Agent Fleet可能不够用。Multi-Agent的嵌套追踪可视化不如Langfuse和Laminar直观。
traceAI(FutureAGI出品)是2026年新兴的Agent可观测性引擎,核心理念是"OTel原生、Agent语义层"。与Phoenix类似,它基于OpenTelemetry,但更专注于Multi-Agent系统的Span层级建模。
核心架构:traceAI的Span模型为Agent系统设计了专门的层级:@tracer.agent装饰器标记Agent入口,@tracer.tool标记工具调用,@tracer.retriever标记检索操作。这三种Span类型自动构建层级关系,形成清晰的Agent调用树。
from traceai import Tracer
tracer = Tracer(
service_name="multi-agent-finance",
exporter="otlp", # 标准OTLP导出
endpoint="http://otel-collector:4317"
)
@tracer.agent(name="planner", model="gpt-4o")
def planner_agent(task: str):
subtasks = decompose(task)
for st in subtasks:
worker_agent(st)
@tracer.agent(name="worker", model="gpt-4o-mini")
def worker_agent(subtask: str):
fetch_data(subtask)
@tracer.tool(name="balance_sheet_api")
def fetch_data(query: str):
return requests.get(f"https://api.example.com/bs/{query}")
# Span层级自动生成:
# planner(agent, gpt-4o) → worker(agent, gpt-4o-mini) → fetch_data(tool)
独有优势:K8s原生部署。traceAI可以部署为Kubernetes中的Sidecar或DaemonSet,自动仪表化集群中运行的所有Agent。配合标准OTel Collector、Grafana Tempo/Jaeger,可以构建完全开源的Multi-Agent可观测性栈,无需任何SaaS服务。
短板:社区和生态较小,文档不够完善。时光机调试和评估功能尚在开发中。对于非K8s部署环境,集成体验不如Langfuse。
Laminar是2026年4月获得300万美元种子轮的新锐项目,专门为"长时运行Agent"设计。当你的Multi-Agent系统执行一次任务需要10分钟、调用15个工具、做出5次自主决策时,传统追踪工具的Span树会变得极其庞大且难以导航。Laminar的核心创新是"轨迹树"——一种专为Agent轨迹优化的可视化模型。
核心架构:Laminar的追踪模型基于"Trajectory"概念——一次完整的Agent执行(可能包含多个Agent、多轮工具调用、多次重试)被组织成一棵带有语义标注的树。每个节点不仅有性能指标,还有Agent决策语义(为什么选择这个工具?为什么重试?为什么委托给这个Agent?)。
from lmnr import Laminar, agent, tool
Laminar.initialize(project_id="multi-agent-prod")
@agent(name="orchestrator")
def orchestrator(task: str):
plan = create_plan(task)
results = []
for step in plan:
if step.type == "analysis":
results.append(analyst_agent(step))
elif step.type == "search":
results.append(research_agent(step))
return synthesis_agent(results)
@agent(name="analyst")
def analyst_agent(step):
data = fetch_financials(step.company)
analysis = llm.invoke(f"分析: {data}")
return analysis
@tool(name="financial_api")
def fetch_financials(company: str):
return api_client.get(f"/financials/{company}")
# Laminar自动构建轨迹树,包含:
# - 每个Agent的决策理由
# - 工具调用的输入输出
# - Token消耗和成本归因
# - 执行时间线(可缩放查看任意时段的细节)
独有优势:长时运行Agent的完整回放。Laminar不仅能追踪Agent执行,还能完整回放长时间运行的Agent轨迹——包括每个决策点的上下文快照。这对于调试复杂的Multi-Agent工作流(如"分析100页财报并生成投资建议"这种可能运行10-30分钟的任务)极其有价值。Laminar刚完成300万美元种子轮融资,正在快速迭代中。
短板:AGPL许可证对商业使用有限制。团队规模小,企业支持能力有限。与其他DevOps工具(Sentry、Datadog)的集成较少。
graph TB
subgraph "Agent Layer"
U[用户请求] --> P[Planner Agent]
P --> W1[Worker Agent 1]
P --> W2[Worker Agent 2]
P --> W3[Worker Agent 3]
W1 --> T1[Tool: API]
W2 --> T2[Tool: RAG]
W3 --> T3[Tool: Code]
W1 --> R[Reviewer Agent]
W2 --> R
W3 --> R
end
subgraph "Instrumentation Layer"
P -.-> |OTel Span| IL[Auto-Instrumentor]
W1 -.-> |OTel Span| IL
W2 -.-> |OTel Span| IL
W3 -.-> |OTel Span| IL
T1 -.-> |OTel Span| IL
T2 -.-> |OTel Span| IL
T3 -.-> |OTel Span| IL
R -.-> |OTel Span| IL
end
subgraph "Collection Layer"
IL --> OC[OTel Collector]
OC --> GW[Grafana Tempo]
OC --> LF[Langfuse/Phoenix]
OC --> SM[Sentry]
end
subgraph "Analysis Layer"
GW --> GV[Grafana Dashboard]
LF --> LT[轨迹分析+评估]
SM --> AL[异常告警]
LT --> EV[LLM-as-Judge评估]
end
subgraph "Action Layer"
GV --> PD[PagerDuty/Slack]
AL --> PD
LT --> FB[反馈→Prompt优化]
EV --> FB
end
根据多个生产级Multi-Agent系统的实践,业界已形成"三层可观测性栈"的共识:
第一层:系统健康(System Health) - 工具:Sentry / Datadog APM - 职责:捕获异常、崩溃、超时、内存溢出 - 为什么不能只用Agent可观测工具:Agent可观测工具关注的是"Agent做了什么",而不是"系统是否健康"。Python进程OOM、工具API超时、数据库连接池耗尽——这些是传统APM的领域 - 关键指标:错误率、P95延迟、可用性
第二层:运行质量(Run Quality) - 工具:Langfuse / Arize Phoenix / Laminar - 职责:追踪Agent决策链、Token消耗、成本归因、输出质量评估 - 为什么不能只用传统APM:传统APM不理解"Agent在第12步选择了错误的工具"这种语义错误。你需要的是Agent感知的Span模型 - 关键指标:轨迹完成率、每步Token消耗、工具调用成功率、幻觉率
第三层:工作流编排(Workflow Orchestration) - 工具:LangGraph Checkpointing / Temporal / Inngest - 职责:状态持久化、检查点恢复、工作流进度可视化 - 为什么不能只用可观测工具:可观测工具是"只读"的观察者,而工作流编排需要"读写"能力——暂停、恢复、回放、修改状态 - 关键指标:检查点恢复成功率、工作流完成时间、人工审批通过率
| 场景 | 推荐引擎 | 理由 |
|---|---|---|
| LangGraph重度用户 | LangSmith | 深度集成、子图追踪、时光机调试 |
| 多框架混合(CrewAI+LangGraph+AutoGen) | Langfuse | 框架无关、自部署、会话级视图 |
| K8s原生部署、全开源要求 | traceAI + Phoenix | OTel原生、无SaaS依赖 |
| 实验驱动的ML团队 | W&B Weave | 实验-生产连续性、版本对比 |
| 长时运行Agent(10分钟+) | Laminar | 轨迹回放、长时运行优化 |
| 需要评估闭环 | Arize Phoenix | 追踪+评估一体化 |
| 数据合规(金融/医疗) | Langfuse/Phoenix自部署 | 数据不出机房 |
在实测六大引擎的过程中,我们发现了生产环境中最常见的五大可观测性反模式:
反模式一:Span爆炸。一个5-Agent系统在处理复杂请求时可能产生2000+个Span。如果每个Agent的每个步骤都生成Span,追踪数据会变得无法导航。解决方案:设置Span采样策略——只在Agent边界(委托、工具调用、错误)生成Span,跳过中间的LLM推理步骤。
反模式二:成本黑洞。Multi-Agent系统的成本不仅来自LLM调用,还包括工具API调用、RAG检索、重试开销。如果只追踪Token消耗而不追踪完整成本链,你会在月底账单上看到无法解释的"幽灵成本"。解决方案:Langfuse和traceAI支持端到端成本归因,将工具API成本附加到对应的Agent Span上。
反模式三:日志不关联。Agent系统的日志分散在多个服务中——Agent编排器、工具服务、LLM网关、数据库。如果这些日志没有通过Trace ID关联,排查问题时需要在多个系统间手动拼接因果链。解决方案:使用OTel的W3C Trace Context标准,在所有服务间传递traceparent头部。
反模式四:评估与追踪脱节。追踪数据告诉你"Agent做了什么",但不能告诉你"Agent做得对不对"。如果评估和追踪是两套独立系统,你永远无法在追踪视图中直接看到质量问题。解决方案:Arize Phoenix和Langfuse都支持在Span上直接附加评估结果,形成追踪-评估闭环。
反模式五:告警噪音。Agent系统天然会产生大量"软错误"——工具调用重试、幻觉自纠、计划重排。如果对每个异常都触发告警,SRE团队会迅速疲劳。解决方案:区分"系统异常"(Sentry告警)和"Agent异常"(Langfuse规则引擎,降级为低优先级通知)。
| 产品形态 | 适用引擎 | 预期收入 | 门槛 |
|---|---|---|---|
| Multi-Agent可观测性训练营 | Langfuse+Phoenix | ¥2999/人 | 中等,需准备完整Demo |
| 企业Agent运维SaaS | Laminar+traceAI | ¥5-50万/年 | 高,需自研上层产品 |
| Agent质量评估服务 | Phoenix+Langfuse | ¥500-5000/次 | 中等,需行业Know-how |
| 开源Agent模板+可观测方案 | Langfuse | GitHub Sponsor | 低,靠社区驱动 |
Multi-Agent可观测性在2026年已从"锦上添花"变成"上线必须"。选择引擎的核心决策轴是两个问题:(1)你的Agent框架栈是单一还是混合?(2)你的数据合规要求是否允许SaaS?LangGraph单一生态选LangSmith,多框架混合选Langfuse,全开源K8s原生选traceAI+Phoenix,实验驱动选W&B Weave。但无论选哪个,都必须构建三层可观测性栈——系统健康、运行质量、工作流编排——缺少任何一层都会在生产环境中付出代价。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
