LLM和Agent——专题5: LLM Ops 入门(4)
开源 LLMOps 工具盘点:LangFuse / MLflow / Weave 怎么选?
每个月都有新的 LLMOps 工具冒出来,调研一轮下来心力交瘁。这篇文章帮你梳理 5 款主流开源工具的功能定位、适用场景和选型逻辑,附决策树。
一、引言
选 LLMOps 工具是一件很折磨人的事。工具出得快、变化也快——Github Star 数在涨,功能在加,兼容性在变。今天觉得 A 工具不错,过两周 B 工具发布了新版本你又动摇了。
但如果你回归本质,问自己三个问题,选型其实没那么纠结:
- 我最需要的是什么?(Trace?评估?Prompt 管理?还是全都要?)
- 我的团队规模和预算?(2 个人?20 个人?)
- 我用的技术栈是什么?(LangChain?原生 OpenAI?自研框架?)
这篇文章的目标是:花 15 分钟读完,做出 80 分的选型决策。
二、工具全景概览
在进入逐一分析之前,先给一张速览表:
| 工具 | Stars | 定位 | 核心能力 | 部署方式 | 适用阶段 |
|---|---|---|---|---|---|
| LangFuse | 15K+ | 全栈 LLMOps | Trace + 评估 + Prompt 管理 + 成本 | 自部署/Cloud | 开发到生产 |
| MLflow | 20K+ | 通用 MLOps | 实验追踪 + 模型注册 + 模型服务 | 自部署 | 训练到部署 |
| Weave (W&B) | 1K+ | LLM 应用评测 | Trace + 评估 + Dataset 管理 | Cloud/自部署 | 开发阶段 |
| Phoenix (Arize) | 10K+ | LLM 可观测性 | Trace + Embedding 分析 + 漂移检测 | 自部署/Cloud | 生产监控 |
| DeepEval | 5K+ | LLM 评估框架 | 评估指标 + 测试用例 + CI 集成 | 本地使用 | 开发/CI |
三、逐一深度拆解
3.1 LangFuse——当之无愧的全能选手
一句话总结:如果你想用一个工具搞定 Trace、评估、Prompt 管理、成本追踪,LangFuse 是当前最优选择。
核心能力:
LangFuse ├── Trace & Span:完整的 LLM 调用链追踪 │ ├── 自动采集(通过 SDK/Callback) │ ├── 树状 Span 结构(支持 Agent 多跳) │ └── 任意自定义 Metadata ├── Scores(评估) │ ├── 人工打分(点赞/点踩) │ ├── 自动评分(LLM-as-Judge) │ └── 多维度评分(准确性、流畅性、安全性...) ├── Prompt Management │ ├── Web UI 编辑 Prompt │ ├── 版本化管理 │ ├── 变量模板 │ └── SDK 拉取线上 Prompt ├── Dashboard │ ├── 成本/Token 用量 │ ├── 延迟/错误率 │ └── 评分趋势 └── 集成生态 ├── LangChain / LlamaIndex / Haystack ├── OpenAI / Anthropic SDK └── 自定义集成(REST API)架构亮点:
LangFuse 的架构设计很干净——数据采集走异步队列(ClickHouse + Redis),不会阻塞你的应用。这意味着即使是高吞吐场景也能扛住。
基础接入示例:
# Python SDK - 装饰器方式fromlangfuse.decoratorsimportobserve,langfuse_context@observe(as_type="generation")defgenerate_response(messages,model="gpt-4o"):response=openai.chat.completions.create(model=model,messages=messages)langfuse_context.update_current_observation(usage={"input":response.usage.prompt_tokens,"output":response.usage.completion_tokens},model=model,input=messages[-1]["content"],output=response.choices[0].message.content)returnresponse适合谁:
- 中小团队想要一站式方案
- 需要 Prompt 管理和可观测在同一平台
- 技术栈不限(LangChain 和非 LangChain 都能接入)
不适合谁:
- 只做模型训练、不需要 LLM 推理监控的团队(MLflow 更合适)
- 有强定制需求又不想维护开源项目的大厂(考虑自研或商业版)
3.2 MLflow——MLOps 老兵的新战场
一句话总结:MLflow 的 LLM 能力是"做加法"加上去的,核心仍然是实验追踪和模型管理。如果你们同时在做微调和推理,MLflow 是一个自然的延续。
核心能力:
MLflow ├── MLflow Tracking(实验追踪) │ └── 记录参数、指标、Artifact ├── MLflow Models(模型管理) │ └── 模型注册、版本管理、模型签名 ├── MLflow Evaluate(新增 LLM 能力) │ ├── 内置 LLM 评估指标(毒性、忠实度等) │ ├── 自定义评估函数 │ └── 评测结果可视化 ├── MLflow AI Gateway(新增) │ ├── 统一模型路由 │ └── 限流和认证 └── MLflow Tracing(新增,Experimental) └── LLM 调用链追踪与 LangFuse 的关键区别:
MLflow 的优势在于它连接了"训练侧"和"推理侧"。如果你微调了一个 Llama 模型,MLflow 可以管理从训练实验 → 模型注册 → 部署 → 推理监控的完整链路。LangFuse 不关心模型怎么来的,只关心推理侧。
# MLflow 评估 LLM 示例importmlflowwithmlflow.start_run():results=mlflow.evaluate(model="gpt-4o",data=eval_dataset,model_type="question-answering",targets="reference_answer",predictions="generated_answer",evaluators=["toxicity","faithfulness","correctness"])适合谁:
- 同时做模型微调 + LLM 推理的团队
- 已经在用 MLflow 管理传统 ML 模型的团队
- 需要完整的模型生命周期管理
不适合谁:
- 纯 LLM 推理、不做训练的团队(MLflow 太重)
- 需要深度 Agent Trace 的场景(MLflow 的 Tracing 还不成熟)
3.3 Weave (W&B)——评测能力最亮眼
一句话总结:如果你最核心的需求是对 LLM 输出做结构化评估和对比,Weave 的 Dataset + Evaluation 组合拳是几个工具里体验最好的。
核心能力:
Weave ├── Trace:函数级别的自动追踪 │ └── 自动记录函数 IO、耗时、嵌套关系 ├── Dataset:评估数据集管理 │ ├── 版本化数据集 │ └── 内置样本标注 UI ├── Evaluation:强大的评测引擎 │ ├── 内置 Scorer(准确性、相似度等) │ ├── 自定义 LLM-as-Judge Scorer │ └── 平行对比多个 Prompt/模型版本 └── UI:评测结果可视化 ├── 评分分布图 ├── 版本间对比 └── 错误案例下钻评测流程示例:
importweavefromweaveimportEvaluation# 初始化weave.init("my-llm-project")# 定义评测数据集dataset=weave.Dataset(name="qa-benchmark",rows=[{"question":"什么是 Python GIL?","expected":"全局解释器锁..."},{"question":"如何优化 Django 查询?","expected":"使用 select_related..."},# ...50+ 条])# 定义评测指标@weave.op()defcorrectness_score(model_output,expected):judge_prompt=f""" 参考标准答案:{expected}AI 回答:{model_output}请打分(1-5):"""score=awaitllm_judge(judge_prompt)return{"correctness":score}# 跑评测evaluation=Evaluation(dataset=dataset,scorers=[correctness_score])results=awaitevaluation.evaluate(my_model_function)适合谁:
- 评估和 Prompt 迭代是核心工作流的团队
- 已经有 W&B 账号的团队
- 需要精细化的评估和对比
不适合谁:
- 需要生产级监控和告警的团队(Weave 偏开发侧)
- 需要全栈 LLMOps 的团队(Weave 缺少 Prompt 管理 UI、模型网关)
3.4 Phoenix (Arize)——生产监控的专家
一句话总结:Phoenix 的 Embedding 可视化分析和漂移检测能力在几个工具里最强,适合已经上线、关注质量稳定性的团队。
核心能力:
Phoenix ├── Trace:OpenTelemetry 兼容的 Trace 采集 │ └── 兼容 LangChain、LlamaIndex、OpenAI SDK ├── Embedding 分析(独有优势) │ ├── UMAP/t-SNE 降维可视化 │ ├── 聚类分析 │ └── 数据漂移检测 ├── 检索分析(RAG 场景) │ └── 检索到的文档与 query 的相关性分析 ├── 评估 │ ├── 幻觉检测 │ ├── QA 正确性 │ └── 摘要事实一致性 └── 告警 └── 漂移告警、质量阈值告警Phoenix 最独特的价值——Embedding 漂移检测:
当用户输入的分布悄悄变化时(比如用户突然开始问全新领域的问题),LLM 的输出质量会下降。Phoenix 通过实时分析输入/输出的 Embedding 向量分布来发现这种漂移。
适合谁:
- RAG 应用的生产监控(检索质量分析是刚需)
- 需要漂移检测和 Embedding 级别分析的团队
- 已经有 OpenTelemetry 基础设施的团队
不适合谁:
- 需要 Prompt 管理功能的团队(Phoenix 不覆盖)
- 不需要 Embedding 分析的简单 LLM 应用
3.5 DeepEval——轻量级评估框架
一句话总结:DeepEval 是所有工具里最轻量的——不需要部署服务,一个pip install+ 几行代码就能在 CI 里跑起来。
核心能力:
fromdeepevalimportevaluatefromdeepeval.metricsimport(AnswerRelevancyMetric,FaithfulnessMetric,HallucinationMetric,ToxicityMetric)fromdeepeval.test_caseimportLLMTestCase# 定义测试用例test_cases=[LLMTestCase(input="Python 中的装饰器是什么?",actual_output="装饰器是一个接受函数作为参数并返回新函数的可调用对象...",expected_output="装饰器是一种修改函数行为的语法糖,使用 @ 符号...",retrieval_context=["Python 装饰器是一种设计模式..."]),# 更多用例...]# 跑评估results=evaluate(test_cases=test_cases,metrics=[AnswerRelevancyMetric(threshold=0.7),FaithfulnessMetric(threshold=0.8),HallucinationMetric(threshold=0.9),])# 直接在 CI 中断言fromdeepevalimportassert_test assert_test(test_cases,metrics)适合谁:
- 只需要评估、不需要 Trace/监控的团队
- 强 CI 集成需求(pytest 风格)
- 不想部署额外服务的轻量需求
不适合谁:
- 需要 Trace、Prompt 管理、Dashboard 的团队
- 需要生产监控而非离线评估的场景
四、核心维度横评
| 能力维度 | LangFuse | MLflow | Weave | Phoenix | DeepEval |
|---|---|---|---|---|---|
| Trace 追踪 | ★★★★★ | ★★☆☆☆ | ★★★★☆ | ★★★★☆ | ☆☆☆☆☆ |
| Agent Trace | ★★★★★ | ★☆☆☆☆ | ★★★☆☆ | ★★★☆☆ | ☆☆☆☆☆ |
| 评估 | ★★★★☆ | ★★★☆☆ | ★★★★★ | ★★★★☆ | ★★★★☆ |
| Prompt 管理 | ★★★★★ | ☆☆☆☆☆ | ☆☆☆☆☆ | ☆☆☆☆☆ | ☆☆☆☆☆ |
| Embedding 分析 | ☆☆☆☆☆ | ☆☆☆☆☆ | ☆☆☆☆☆ | ★★★★★ | ☆☆☆☆☆ |
| 成本追踪 | ★★★★★ | ★★☆☆☆ | ★★★☆☆ | ★★☆☆☆ | ☆☆☆☆☆ |
| 部署难度 | 中等 | 中等 | 低(Cloud) | 中等 | 极低 |
| CI 集成 | ★★★☆☆ | ★★★★☆ | ★★★☆☆ | ★★☆☆☆ | ★★★★★ |
| 社区活跃度 | ★★★★★ | ★★★★★ | ★★★☆☆ | ★★★★☆ | ★★★☆☆ |
五、选型决策指南
决策树
你的核心需求是什么? │ ├── 我需要全栈 LLMOps(Trace + 评估 + Prompt 管理 + 成本) │ └── → LangFuse(几乎唯一的选择) │ ├── 我主要做模型微调,顺带需要 LLM 推理管理 │ └── → MLflow(训练+推理一条龙) │ ├── 我最关心的是评估质量和 Prompt 对比迭代 │ └── → Weave(最强评估体验)+ LangFuse(做 Trace 和成本) │ ├── 我的应用已经上线,主要需要生产监控和漂移检测 │ └── → Phoenix(最强生产监控)+ LangFuse 或自研(做 Trace) │ ├── 我只需要评估,最好能在 CI 里跑,不想部署额外服务 │ └── → DeepEval(最轻量) │ └── 以上都需要,团队 > 20 人 └── → LangFuse(核心)+ Phoenix(监控补充)或直接上商业版 LangSmith典型组合推荐
| 团队画像 | 推荐组合 | 理由 |
|---|---|---|
| 2-5 人创业团队 | LangFuse Cloud(免费版) | 功能全、零运维、够用 |
| 10-30 人产品团队 | LangFuse 自部署 + DeepEval(CI) | 数据安全 + CI 质量卡点 |
| 做 RAG 应用的团队 | LangFuse + Phoenix | Trace 全 + Embedding 监控 |
| 做 Agent 应用的团队 | LangFuse(必须)+ Weave(评估) | Agent Trace 是刚需 + 强评估能力 |
| 大厂/强合规 | LangFuse 自部署 + 自研组件 | 数据不出内网 + 完全定制 |
六、总结
- 只选一个就用 LangFuse:全栈能力最完整,社区最活跃,LangChain 和非 LangChain 栈都能用
- MLflow 适合训练+推理都做的团队:在 LLM 可观测性上不如 LangFuse,但模型生命周期管理无可替代
- Weave 和 DeepEval 专注评估:Weave 适合需要 UI 和协作的团队,DeepEval 适合 CI 集成和极简需求
- Phoenix 专注生产监控:Embedding 漂移分析独树一帜,适合 RAG 应用的生产阶段
- 实际场景中,组合使用是常态:LangFuse 做 Trace/成本/Prompt,DeepEval 做 CI 评估,Phoenix 做漂移监控——各取所长
最后提醒:LLMOps 工具迭代速度非常快,以上的 Star 数、功能描述都以 2025 年中为基准。建议在做最终选型前,去各工具的 GitHub Releases 看看最近三个月的变化——如果某个工具迭代很慢,可能说明它正在失去社区动力。
标签:LLMOpsLangFuseMLflowWeavePhoenixDeepEval工具盘点开源工具LLM 可观测性
