LangFuse:开源 LLM 可观测性平台——给 AI Agent 装"行车记录仪"
> 来源: https://github.com/langfuse/langfuse
> 官网: https://langfuse.com
> 云端: https://cloud.langfuse.com(免费套餐,无需信用卡)
> 作者: LangFuse 团队(YC W23),2026 年 1 月被 ClickHouse 收购
> 语言: TypeScript
> Stars: 23,113 | Forks: 2,333
> 协议: 开源(自托管免费)
> 创建: 2023-05-18 | 最近更新: 2026-03-13(活跃开发中)
> 日期: 2026-03-13
📌 一句话总结
LLM 应用的"APM"——记录每一次 LLM 调用的 prompt、响应、token 用量、延迟、工具调用链路,支持评估、Prompt 管理和数据集实验。开源、可自托管,被 ClickHouse 收购后底层切换到 ClickHouse 引擎。
🧠 解决什么问题
> "AI 本质上是不确定性的,没有可观测性工具,调试你的应用更像是猜测。"
传统软件有 Datadog/New Relic 做 APM,但 LLM 应用需要特殊的可观测性:
- Prompt 传了什么?上下文是什么?
- 模型返回了什么?为什么返回这个?
- 哪个工具调用失败了?
- Token 花了多少?成本多少?
- 推理在哪个环节跑偏了?
🏗️ 六大核心功能
1. 应用追踪(Tracing)
记录请求在系统中的完整生命周期:
Trace(一次完整请求)
├─ LLM Call(模型调用:prompt → response → tokens → cost)
├─ Retrieval(检索:向量搜索 → 结果)
├─ Tool Execution(工具调用:web_search → 结果)
└─ LLM Call(最终汇总)
每个节点都有:输入/输出、耗时、token 用量、成本。支持按 Session 分组(多轮对话)。
零延迟影响:SDK 异步发送,本地队列 + 批量刷新,不影响应用响应时间。
2. Prompt 管理
- 版本控制:每个 prompt 有完整历史
- A/B 测试:不同版本的 prompt 对比效果
- 协作编辑:团队共同迭代
- 强缓存:服务端 + 客户端双层缓存,不增加延迟
3. 评估(Evals)
| 评估方式 | 说明 |
|---|---|
| LLM-as-Judge | 用另一个 LLM 给输出打分 |
| 用户反馈 | 收集终端用户评价 |
| 人工标注 | 手动打标签 |
| 自定义管道 | 通过 API/SDK 构建评估流水线 |
4. 数据集(Datasets)
构建测试集和基准,用于:
- 持续改进
- 部署前测试
- 结构化实验
- 与 LangChain、LlamaIndex 无缝集成
5. Playground
直接在 UI 里测试和迭代 prompt + 模型配置。看到追踪里的 bad case → 一键跳到 Playground 修改。
6. 综合 API
OpenAPI spec + Python/JS/TS SDK,可以构建自定义的 LLMOps 工作流。
🔌 集成生态(非常丰富)
| 集成 | 语言 | 方式 |
|---|---|---|
| **OpenAI SDK** | Python, JS/TS | Drop-in 替换 |
| **LangChain** | Python, JS/TS | 回调处理器 |
| **LlamaIndex** | Python | 回调系统 |
| **LiteLLM** | Python, JS/TS | 100+ LLM 统一接口 |
| **Vercel AI SDK** | JS/TS | React/Next.js |
| **OpenTelemetry** | 通用 | 标准协议 |
| **Ollama** | 本地模型 | 本地 LLM |
| **Amazon Bedrock** | AWS | 云端模型 |
| **OpenClaw** | 通过 OpenRouter | 自动追踪 |
🦞 与 OpenClaw 的集成
官方文档:https://langfuse.com/integrations/other/openclaw
最简路径(无需改代码):
1. OpenClaw 配置 OpenRouter 作为 LLM 提供商
2. OpenRouter 设置里开启 Broadcast → Langfuse
3. 所有 LLM 请求自动追踪到 Langfuse
OpenClaw → OpenRouter → LLM(Anthropic/OpenAI/...)
↓ Broadcast
Langfuse(追踪数据)
auxten 的高级用法(反馈闭环):
1. OpenClaw 所有调用导入 Langfuse
2. 写一个 Langfuse Skill,让 OpenClaw 查询自己的对话历史
3. 设定时计划:每隔几天自动审查 bad case
4. 根据发现更新自己的规则和 Skills
→ Agent 调试 Agent,Agent 优化 Agent
📦 部署方式
| 方式 | 适用场景 | 命令 |
|---|---|---|
| **Docker Compose** | 本地/开发 | `git clone ... && docker compose up` |
| **Kubernetes (Helm)** | 生产环境 | Helm Chart |
| **Terraform** | AWS/Azure/GCP | 模板化部署 |
| **云端** | 零配置 | cloud.langfuse.com |
自托管 5 分钟搞定:
git clone https://github.com/langfuse/langfuse.git
cd langfuse
docker compose up
📊 关键数据
| 指标 | 数值 |
|---|---|
| GitHub Stars | 23,113 |
| Forks | 2,333 |
| Open Issues | 585 |
| 创建时间 | 2023-05-18 |
| 最近提交 | 2026-03-13(今天) |
| 加速器 | YC W23 |
| 收购方 | ClickHouse(2026-01-16) |
| 收购背景 | ClickHouse 同时完成 4 亿美元 D 轮 |
| 底层存储 | ClickHouse(收购后迁移) |
📊 与竞品对比
| 特性 | LangFuse | LangSmith | Helicone | Braintrust |
|---|---|---|---|---|
| 开源 | ✅ | ❌ | ✅ | 部分 |
| 自托管 | ✅ | ❌ | ✅ | ❌ |
| Prompt 管理 | ✅ | ✅ | ❌ | ✅ |
| 评估 | ✅ 多种方式 | ✅ | ❌ | ✅ |
| Playground | ✅ | ✅ | ❌ | ✅ |
| 数据集 | ✅ | ✅ | ❌ | ✅ |
| OpenClaw 集成 | ✅ via OpenRouter | ❌ | ✅ | ❌ |
| 免费套餐 | ✅ 慷慨 | ❌ 收费 | ✅ | ✅ |
| Stars | 23K | N/A | 2K | 2K |
LangFuse 优势:开源 + 自托管 + 生态最丰富 + 社区最大 + ClickHouse 支持
🔧 OpenClaw 具体怎么接入 LangFuse?
方式一:OpenRouter Broadcast(最简单,数据经云端)
如果已经用 OpenRouter 作为 LLM 网关,零代码接入:
1. 注册 https://cloud.langfuse.com (免费,无需信用卡)
2. 创建项目,拿到 Public Key + Secret Key
3. 在 OpenRouter 设置页 → 开启 Broadcast to Langfuse → 填入 Langfuse API Key
4. 完事。OpenClaw 不需要改任何配置
OpenClaw → OpenRouter → Claude/GPT(正常调用)
↓ 自动广播
Langfuse Cloud(追踪数据)
数据去向:追踪记录(prompt、响应、token 用量)传到 Langfuse 的云端服务器。在 cloud.langfuse.com Dashboard 查看。
⚠️ 所有 prompt 和模型响应会存一份在 Langfuse 服务器上。
方式二:自托管 Langfuse(数据不出机器)
在自己的 VPS/Mac Mini 上跑 Langfuse:
git clone https://github.com/langfuse/langfuse.git
cd langfuse
docker compose up
然后 OpenRouter Broadcast 指向本机地址(如 http://localhost:3000),数据全部留在自己机器上。
OpenClaw → OpenRouter → Claude/GPT
↓ Broadcast
自己 VPS 上的 Langfuse(数据本地)
方式三:SDK 手动埋点(不推荐)
不经 OpenRouter,直接用 Langfuse Python SDK 在 OpenClaw 插件/Skill 里手动埋点:
from langfuse import Langfuse
langfuse = Langfuse(public_key="...", secret_key="...", host="http://localhost:3000")
trace = langfuse.trace(name="research-task")
span = trace.span(name="llm-call", input=prompt)
# ... 调用 LLM ...
span.end(output=response)
三种方式对比
| 方式 | 难度 | 数据隐私 | 推荐场景 |
|---|---|---|---|
| OpenRouter Broadcast → Langfuse Cloud | ⭐ 零配置 | ❌ 数据在云端 | 快速试用 |
| OpenRouter Broadcast → 自托管 Langfuse | ⭐⭐ Docker 一行 | ✅ 数据在自己机器 | 正式使用 |
| SDK 手动埋点 | ⭐⭐⭐ 写代码 | ✅ 完全控制 | 特殊需求 |
推荐路径:先用方式一(云端免费)试试追踪数据是否有价值,有价值再切方式二(自托管)。
💡 与我们的关联
直接可用,价值高:
1. 诊断 researcher Agent 问题:如果某次深度研究报告质量不好,可以在 LangFuse 里看到完整链路——哪个 web_search 没搜到好结果、哪个 prompt 引导跑偏了
2. 成本追踪:我们用 Opus 做默认模型,token 成本不低。LangFuse 能按 session/agent 精确统计花了多少钱
3. 集成路径简单:我们已经用 OpenRouter,只需在 OpenRouter 设置里开启 Broadcast → Langfuse,零代码改动
4. 自托管可行:Docker Compose 一行命令,跑在我们 VPS 上
5. 反馈闭环:学 auxten 的做法——让 Agent 定期审查自己的 bad case
建议:
- 短期:在 OpenRouter 开启 Broadcast → Langfuse Cloud(免费,零成本试用)
- 中期:如果有价值,自托管到 VPS 上
- 长期:搭建 Agent 自我优化闭环
📊 评分
| 维度 | 评分(/10) |
|---|---|
| 技术成熟度 | 9.5 — 23K Star,YC + ClickHouse 背书,3 年积累 |
| 功能完整度 | 9.0 — Tracing + Eval + Prompt + Playground + Dataset |
| 实用价值 | 9.0 — 解决真实痛点,无延迟影响 |
| 集成便利性 | 8.5 — OpenRouter Broadcast 零代码接入 |
| 与我们的关联 | 8.5 — 可以直接用,帮助诊断和优化 Agent |
| **综合** | **9.0** |
报告由深度研究助手自动生成 | 2026-03-13
来源: https://github.com/langfuse/langfuse | https://langfuse.com