什么是 Langfuse
Langfuse 是一个面向大语言模型应用的开源工程平台。它把一次 AI 请求中的提示词、模型调用、检索、工具执行、输出、延迟、Token 和费用组织成可查询的追踪数据,帮助团队调试、监控和评估 LLM 应用。

简单来说,Langfuse 就像 AI 应用的“行车记录仪”:它不负责替模型回答问题,而是记录模型在什么上下文中、经过哪些步骤、以多少成本生成了这个回答。
Langfuse 常用于智能客服、RAG 知识库、AI 写作工具、代码助手和多工具 Agent。开发者可以使用 Langfuse Cloud,也可以在自己的基础设施中部署开源版本。
一句话概括:Langfuse 让原本散落在日志里的文本交互,变成可搜索、可度量、可复现的结构化运行记录。
为什么 LLM 应用很难用传统方式调试
LLM 应用的核心问题是不确定性。相同或相近的输入,可能因为模型版本、采样参数、上下文、检索结果或外部工具状态不同而得到不同答案。

传统软件出现 Bug 时,开发者通常检查堆栈、变量和接口日志。但一次 LLM 回答往往同时依赖多个环节:
- 系统提示词是否完整,变量是否正确注入。
- 历史消息是否过长,关键指令是否被截断。
- RAG 是否检索到正确文档,重排序是否有效。
- Agent 是否选择了正确工具,工具参数是否正确。
- 外部 API 是否返回过期、缺失或单位不一致的数据。
- 模型是否忽略证据、误解上下文或生成了幻觉。
只保存最终输入和输出,无法回答“错误从哪一步开始”。CPU、内存和接口延迟都正常,也不代表回答事实正确、符合政策或真正解决了用户问题。
因此,LLM 调试需要同时观察系统运行指标和语义内容。Langfuse 的作用,是把一次回答背后的完整调用链保留下来。
Langfuse 的三个核心概念是什么
理解 Langfuse,首先要理解 Trace、Observation 和 Score。它们分别表示一次完整执行、执行中的单个步骤,以及对执行结果的评价。

| 概念 | 记录什么 | 问答机器人示例 |
|---|---|---|
| 追踪(Trace) | 一次端到端请求的完整上下文 | 用户提问到最终回答的全过程 |
| 观测(Observation) | Trace 中的一个步骤,可形成父子层级 | 意图识别、向量检索、工具调用、模型生成 |
| 评分(Score) | 人工或自动产生的质量信号 | 点赞、1-5 分、事实正确性、是否含幻觉 |
Trace:一次请求的完整时间线
Trace 通常从一个用户请求开始,到应用返回最终结果结束。它可以关联用户、会话、环境、版本和标签,方便团队按某个客户、某次会话或某个发布版本筛选问题。
Trace 解决的是端到端复现问题。看到一个低分回答时,开发者不必先在多套日志系统中拼接请求 ID,而是可以沿一条时间线查看整个执行过程。
Observation:时间线上的单个节点
Observation 是 Trace 中的具体工作单元。常见类型包括普通 Span、模型 Generation 和事件。每个节点可以记录:
- 输入与输出。
- 开始时间、结束时间和执行耗时。
- 模型名称、模型参数与使用量。
- 输入 Token、输出 Token 和估算成本。
- 状态、错误、版本、元数据和父子关系。
一条 Trace 可以包含多层 Observation。例如一个 RAG 回答的顶层 Span 下,可以依次挂接“改写问题”“向量检索”“重排序”“生成回答”等节点。
Score:把质量反馈连回调用链
Score 是附加在 Trace、Observation、Session 或数据集运行结果上的评价。它既可以来自用户点赞、标注员审核,也可以来自规则、代码或 LLM-as-a-Judge 自动评估。
评分的价值不只是生成一个平均数,而是把“答案不好”与当时的提示词、检索结果、模型版本和工具输出关联起来。团队因此可以从低分样本反查根因,也可以比较不同版本的质量变化。
这三层数据共同回答三个问题:这次请求发生了什么、每一步做了什么、最终质量怎么样。
Langfuse 如何定位一次错误回答
假设一个支持联网工具的机器人收到问题:“今天北京天气怎么样?”完整流程至少包含意图识别、天气 API 调用和回复生成。

一次可能出错的执行过程如下:
- 模型识别出用户要查询天气,并选择
weather_tool。 - 工具请求外部天气 API,得到
temp: 68和unit: F。 - 回复模型读取工具输出,直接回答“北京今天 68°C”。
- 用户反馈答案错误,系统把这条 Trace 标记为低分。
开发者点开 Trace 后,可以看到意图识别正确、API 调用成功,但工具返回的是华氏度。问题不在模型的知识,也不在网络请求,而在工具输出进入提示词前缺少单位转换。
这类问题如果只看最终问答,很容易被误判为“模型又抽风了”。完整追踪把故障定位从猜测变成证据:错误发生在哪个节点、该节点收到什么、输出了什么,都可以直接检查。
如何把 Langfuse 接入现有应用
Langfuse 的接入方式取决于现有技术栈。开发者可以使用 Python 或 JavaScript/TypeScript SDK,也可以通过 OpenAI SDK 包装器、框架集成和 OpenTelemetry 接入。
以 Python 应用为例,使用 OpenAI 集成包装器后,模型调用会被自动记录;再用 @observe() 包住业务函数,就能保留父子调用关系:
from langfuse import observe
from langfuse.openai import openai
@observe()
def answer(question: str) -> str:
response = openai.responses.create(
model="gpt-4.1-mini",
input=question,
)
return response.output_text
运行前还需要配置 Langfuse 的公钥、密钥和服务地址。实际项目应把环境、应用版本、用户或会话标识一并写入追踪,但不要直接上传密码、访问令牌和不必要的个人信息。
对于已经使用 LangChain、LlamaIndex 或其他框架的项目,可以优先检查官方集成;对于自研编排系统,可以使用 SDK 或 OpenTelemetry 手动定义关键 Span。
接入时不应追求“记录得越多越好”。合理做法是先覆盖模型、检索和工具调用等关键边界,再根据调试问题补充业务元数据。
Langfuse 如何帮助控制 Token 和模型成本
Langfuse 可以把模型调用的使用量和费用关联到 Trace、用户、会话、模型或业务步骤,帮助团队看清成本具体消耗在哪里。

一个复杂应用可能同时使用高性能模型做推理、小模型做分类、Embedding 模型做检索。只看模型供应商的月度账单,通常无法判断哪条业务链路造成了成本增长。
有了细粒度追踪,团队可以回答这些问题:
- 哪个功能、租户或用户消耗了最多 Token?
- 输入上下文和输出内容分别占多少成本?
- 哪个 Agent 节点发生了重复调用或无效重试?
- 哪个分类步骤可以换成更便宜的小模型或确定性规则?
- 新版提示词提高质量的同时,延迟和费用增加了多少?
上图中的金额、占比和模型分布均为示意数据,不代表 Langfuse 官方基准。Langfuse 提供的是归因依据,是否更换模型仍需结合任务质量、延迟和风险共同判断。
Langfuse 如何让提示词评测工程化
Langfuse 的评测能力把数据集、实验运行、评分和失败样本连接起来,使提示词或模型版本可以在同一组测试案例上重复比较。

一个可复现的提示词实验通常包含五步:
- 把真实问题、预期答案或评估标准保存为数据集条目。
- 使用旧提示词和指定模型运行整套数据集。
- 使用新提示词在相同条件下再次运行。
- 通过代码规则、人工标注或 LLM-as-a-Judge 生成评分。
- 比较质量、延迟和成本,并回放低分样本。
评测维度可以包括事实正确性、答案完整性、格式遵循、安全合规和引用忠实度。对于 RAG 应用,还应单独检查检索召回和回答是否被证据支持。
上图中的 74% 和 89% 是说明实验方法的示例,不是 Langfuse 自身带来的固定提升。评测结果是否可信,取决于测试集代表性、评分标准、评审一致性和评估模型偏差。
因此,Langfuse 不会自动写出更好的提示词。它的实际价值,是让每次改动都有可重复的测试、可比较的指标和可回放的失败案例。
Langfuse 和 LangSmith 有什么区别
Langfuse 与 LangSmith 都能追踪、评估和监控 LLM 应用。主要区别在于产品开放方式、部署选项、生态集成和团队现有技术栈,而不是简单的“一个能用、另一个不能用”。

| 维度 | Langfuse | LangSmith |
|---|---|---|
| 产品形态 | 核心平台开源,也提供托管云服务 | 商业平台,提供托管服务 |
| 部署方式 | 可使用 Cloud,也可自行部署 | 以托管服务为主,也为特定企业方案提供自托管能力 |
| 集成方向 | 原生 SDK、OpenTelemetry、多框架与模型集成 | 与 LangChain、LangGraph 集成紧密,也支持其他框架和 OpenTelemetry |
| 数据控制 | 自托管时可将追踪数据保留在自己的基础设施 | 取决于所选托管、混合或企业部署方案 |
| 适合团队 | 重视开源、自部署或跨框架接入的团队 | 已深度采用 LangChain/LangGraph,重视其原生工作流的团队 |
选型时应实际验证权限模型、数据驻留、采样能力、评测流程、运维成本和价格,而不是只比较 SDK 代码行数。两款产品都在持续更新,具体能力和部署条件应以各自官方文档及合同为准。
Langfuse 如何改善多人协作
Langfuse 可以成为标注员、开发者、产品和运营共享的质量事实来源,因为不同角色看到的是同一条 Trace 及其评分,而不是各自保存的截图和片段日志。

一条典型的问题处理链路可以是:
- 用户点击“踩”,或标注员把回答标为“事实错误”。
- 开发者筛选该评分,进入对应 Trace 查看检索和模型节点。
- 产品确认这是单个失败案例,还是某类问题持续低分。
- 开发者修改提示词、检索逻辑或工具数据处理方式。
- 团队在固定数据集上运行实验,确认质量改善且成本可接受。
- 新版本上线后,继续按版本和用户反馈监控回归。
共享平台并不取代职责分工。评分标准仍需团队提前定义,敏感追踪仍需权限隔离,生产变更仍需经过代码审查和发布流程。
Langfuse 有哪些限制和风险
Langfuse 提高的是可见性和可复现性,不会自动消除幻觉、修复检索或保证合规。它记录的数据是否完整、准确和安全,仍取决于应用接入方式与治理策略。
| 限制或风险 | 具体表现 | 应对方式 |
|---|---|---|
| 敏感数据进入追踪 | 提示词可能包含个人信息、密钥或内部文档 | 上报前脱敏,限制采集字段,配置访问控制与保留周期 |
| 追踪开销 | 全量记录会增加网络、存储和处理成本 | 对高流量场景采样,异步上报,控制大对象与附件 |
| 数据不完整 | 异步进程退出过快、异常路径未埋点或上下文断裂 | 在进程结束前刷新数据,覆盖错误路径,检查上下文传播 |
| 成本估算偏差 | 自定义模型价格缺失,缓存 Token 或供应商计费规则变化 | 维护模型价格配置,并与供应商账单定期核对 |
| 自动评分偏差 | LLM Judge 可能偏爱特定表达,或无法判断领域事实 | 混合规则、人工抽检和多维评分,保留评分依据 |
| 自托管运维成本 | 需要维护数据库、对象存储、升级、备份和告警 | 评估团队运维能力,在 Cloud 与自托管之间做总成本比较 |
| 观察不等于修复 | Trace 能指出错误节点,但不会替团队修改业务逻辑 | 建立从反馈、根因分析到数据集回归的闭环 |
尤其需要注意:自托管不等于自动合规。只要追踪中保存了用户输入、模型输出或检索文档,团队就需要处理授权、最小化采集、数据删除、访问审计和跨境传输等问题。
为什么 LLM 应用需要专门的可观测性工具
LLM 应用需要专门的可观测性工具,因为系统可用不等于内容正确。传统监控主要回答“服务是否正常”,LLM 可观测性还要回答“模型为什么这样说”。

| 传统应用监控 | LLM 可观测性 |
|---|---|
| CPU、内存、错误率、接口延迟 | 提示词、上下文、检索结果、工具调用、模型输出 |
| 判断服务是否可用 | 判断回答是否正确、相关、合规 |
| 通过异常堆栈定位代码错误 | 通过 Trace 还原语义决策链路 |
| 主要分析确定性指标 | 同时分析系统指标、文本内容和人工反馈 |
两者不是替代关系。生产级 AI 应用仍需要基础设施监控、应用性能监控和业务告警;Langfuse 补充的是 LLM 调用链、内容质量与实验评测层。
当工程师追问“为什么模型会这么说”时,Langfuse 提供的不一定是现成答案,但会提供足够完整的现场记录,让团队基于证据继续分析。
哪些团队适合使用 Langfuse
只要应用包含多次模型调用、RAG、工具使用或持续的提示词迭代,Langfuse 就可能产生直接价值。
它尤其适合以下场景:
- 线上问题偶发且难以复现,需要回放完整调用链。
- 同一请求会调用多个模型、检索器或外部工具。
- 需要按功能、租户、模型或版本归因 Token 成本。
- 团队需要用数据集重复测试提示词、模型或 Agent 版本。
- 对话数据不能交给第三方托管,需要评估私有化部署。
- 产品、标注和研发需要基于同一份质量数据协作。
如果项目只有少量离线调用,普通结构化日志已经能回答所有调试问题,引入完整平台可能增加不必要的维护成本。更稳妥的做法是从一个高价值流程开始接入,确认追踪数据能支持实际决策,再逐步扩大覆盖范围。
常见问题
Langfuse 是日志平台吗?
不完全是。Langfuse 会记录日志式数据,但它的数据模型专门面向 LLM 应用,包括 Trace、模型 Generation、Token、成本、提示词版本、数据集和 Score。它通常与传统日志和 APM 系统一起使用。
Langfuse 会自动修复大模型幻觉吗?
不会。Langfuse 可以记录幻觉发生时的提示词、证据和模型输出,也可以通过评分发现高风险样本,但修复仍需要改进数据、检索、提示词、模型或业务规则。
Langfuse 可以私有化部署吗?
可以。Langfuse 的核心平台是开源的,支持自行部署。团队仍需自行负责数据库、存储、升级、备份、安全和合规,也应先核对当前版本的基础设施要求与许可证条款。
Langfuse 支持 LangChain 和 LlamaIndex 吗?
支持。Langfuse 提供多种框架和模型集成,也支持通过 SDK 与 OpenTelemetry 接入自定义应用。具体配置会随库版本变化,应以官方集成文档为准。
Langfuse 的 Score 可以由谁产生?
Score 可以来自最终用户反馈、内部标注员、确定性代码规则或 LLM-as-a-Judge。高风险业务不应只依赖一种评分来源,最好结合自动评估与人工抽检。
Langfuse 和 LangSmith 应该怎么选?
需要开源、自托管或跨框架方案时,可以优先评估 Langfuse;团队已深度使用 LangChain 和 LangGraph 时,可以同时评估 LangSmith。最终应通过真实链路验证部署、权限、评测、成本和运维要求。
接入 Langfuse 会影响线上性能吗?
任何遥测都会产生一定的序列化、网络和存储开销。SDK 通常通过批量或异步方式降低影响,但高流量应用仍应进行压测,并设置采样、超时、缓冲和失败降级策略。
总结
Langfuse 是一个开源的 LLM 工程平台。它以 Trace 记录端到端请求,以 Observation 拆解模型、检索和工具步骤,再用 Score 把用户反馈与自动评估连接到真实执行数据。
它的直接价值有三点:让错误调用可以回放,让 Token 和成本可以归因,让提示词与模型改动可以在固定数据集上比较。对于多人团队,它还提供了一份可共享的质量事实来源。
Langfuse 不是让模型变聪明的魔法,也不能替代传统监控。它做的是更基础的工作:保留 AI 应用的运行现场,让开发者终于能基于证据回答“模型为什么会这么说”。

