进阶 13 分钟其他工具

Langfuse:监控本地 LLM(追踪记录、提示词、 评估)

直接回答

Langfuse 是一个面向 LLM 应用的可观测性平台,主仓库采用 MIT 开源许可证(不包括“ee”目录),可通过 Docker Compose 在几分钟内完成自托管部署,在 GitHub 上的星标数超过 35,000。它会记录实际发送给模型的确切提示、模型的回复、每一步的耗时,以及在定义了价格的情况下记录相应成本,从而帮助从错误回答追溯到原因。

基于 LLM 的应用出现故障的方式与传统软件不同:程序并没有崩溃,只是回答质量不如昨天。如果没有记录发送给模型的内容及其回答,调试就只能盲目摸索。Langfuse 是专为此设计的可观测性平台,开源且可自行托管,因此适合本地部署:您的对话追踪记录会留在您自己的环境中。

作者: Mohamed Meguedmi·更新于 2026-09-29·已在 Windows、macOS 和 Linux 上测试

#为什么要监测本地 LLM

Langfuse 是一个面向 LLM 应用的可观测性平台,其主代码库采用 MIT 许可证。您可以自托管,让对话追踪数据留在您自己的环境中。它会针对每次请求记录实际发送给模型的提示词、回答、每个步骤的耗时,以及在已设定价格的情况下记录成本。它帮助您查明回答不佳的原因:检索到的片段偏离主题、实际提示词与您以为的不同,或模型失败。只要有第二个人依赖结果,或处理链包含多个步骤,它就有用;如果只是您独自进行探索性使用,一个日志文件就足够。需要准备一套由多个容器组成的服务栈(Web 服务器、工作进程、PostgreSQL、ClickHouse、Redis、对象存储);生产环境则应使用 Kubernetes,而不是 Docker Compose。

当回答不尽如人意时,可能有三种原因,而在没有监测手段的情况下,只有一种能直接看出来:实际发送给模型的最终提示词并不是您以为的那份,文档检索得到的片段与问题无关,或者模型本身没能完成任务。如果没有记录,就只能随意修改提示词,直到结果有所改善,却始终不知道为什么。

这套理由在本地和在线环境中同样成立,只有一点不同:账单不再是提醒您出现问题的信号。当一串智能体在您自己的显卡上陷入循环时,没人会收到账单;反映问题的是延迟和发热。可观测性用各项指标取代这一价格信号:token 数量、耗时、失败率和质量。

#Langfuse记录的内容

本地 AI 套件

只需 1 小时,即可在您的电脑上拥有专属的免费 ChatGPT — LM Studio、Ollama、Open WebUI、您的文档,无需云端。

  • 在线空间,终身可用
  • PDF + 文件
  • 终身更新

该项目将自身定位为一个开源的智能体评估与可观测性平台:在同一个开放平台上追踪、评估和改进 LLM 应用。其 Python SDK(版本 4)和 JS/TS SDK(版本 5)基于 OpenTelemetry,其他语言也可以通过该协议发送追踪数据。主仓库在 GitHub 上已超过 35,000 个星标。其 README 表示,Langfuse 自 2026 年 1 月起成为 ClickHouse 的一部分,而存储追踪数据的数据库也是 ClickHouse。

追踪记录
用户请求的完整流程:每一步按顺序列出,包含其耗时。这是基本单位。
观察记录
在一条追踪记录中:模型调用的完整提示和响应、文档检索步骤、工具调用过程。
会话与用户
按对话和用户对追踪记录进行分组,以跟踪完整流程,而不是单次孤立的调用。
评分
附在一条调用追踪上的评分:用户点赞、自动评估结果或人工标注。
Prompts
提示模板,版本化,由应用在运行时动态获取,而非硬编码在代码中。
成本
Langfuse 根据模型定义计算成本,该定义为每种使用类型指定价格。它为 OpenAI、Anthropic 和 Google 的模型提供此类定义。对于本地模型,只有您自行添加价格后,系统才有价格可用:如果没有模型定义,就不要在界面中查找成本;也可以设定一个虚拟价格,用来反映电费和折旧。

#自行部署

Langfuse 可通过 Docker Compose 实现自托管。README 称五分钟即可启动;部署文档则预计 Web 容器显示“Ready”前需要两到三分钟。整套架构不止一个容器:它包含两个应用容器(提供界面和 API 的 Web 服务器,以及异步处理事件的 worker)和四个存储组件:PostgreSQL 用于事务数据,ClickHouse 用于追踪记录、观测记录和评分,Redis 或 Valkey 用于队列和缓存,以及用于保存所有传入事件的 S3 兼容对象存储。这比一个简单的仪表板更重,原因在于它需要满足这样的要求:摄入大量事件,同时不丢失任何追踪记录,即使数据库暂时不可用也如此。

i
开源与付费的界限在哪里
主代码库采用 MIT 许可证发布,但“ee”(企业版)目录除外。文档明确指出,部分附加功能需要许可证密钥。一个具体例子是自动数据保留策略:该功能在开源自托管版中不可用,该版本默认无限期保留数据。由于开源与付费功能的划分会随版本变化,请在围绕某项具体功能制定计划前查阅官方文档。

在将它与模型一起安装之前,需要了解两个限制。首先,文档说明 Docker Compose 用于试用:这种配置既不提供高可用性,也不支持扩容或备份;对于生产环境,文档建议使用 Kubernetes 配合 Helm。其次,对于虚拟机,文档建议至少配备 4 个核心、16 GiB 内存和 100 GiB 存储空间。在已经运行模型服务的机器上,这些资源需求的量级很重要:如果可观测性技术栈占用了原本供模型使用的一部分内存,就会在最不合适的时候抢占资源。最后,请修改 docker-compose.yml 文件中标记为 CHANGEME 的密钥:没有默认账户,首个用户需通过 http://localhost:3000 上的 Sign up 按钮创建。

终端
git clone --depth=1 https://github.com/langfuse/langfuse.git
cd langfuse
# Éditer docker-compose.yml : remplacer chaque secret marqué CHANGEME
docker compose up
# Après 2 à 3 minutes, le conteneur web affiche « Ready » : ouvrir http://localhost:3000
三种不同层次的追踪方式,从简单到完整
解决方案它带来的价值其局限性
自制日志文件无须安装,即开即用无结构:无法在不重新阅读整个文件的情况下,将工具调用与最终回答关联起来
Langfuse 自托管版本结构化追踪记录、版本化提示词、评分,全都保留在本地需要运行并备份由多个容器组成的服务栈
在线可观测性平台零安装,自动更新提示词和回复会经由第三方传输,这违背了本地部署的初衷。

#连接至 Ollama 或 vLLM

Langfuse不是推理服务器,也不会插入请求流量的传输路径:追踪数据由您的应用发送给它。该项目根据您调用模型的方式,介绍了三种具体的集成途径,并提供了一个专门介绍Ollama的页面,其中的示例使用OpenAI SDK:Ollama在http://localhost:11434/v1提供兼容OpenAI的API,而Langfuse提供了可直接替换该SDK的版本,只需修改import语句即可。项目也有专门介绍vLLM的页面。

  1. 01
    通过 SDK,在您的代码中
    为调用模型的函数添加装饰器。这是最明确且最准确的方式,因为您可以选择哪些内容被记录下来。
  2. 02
    通过框架集成
    已有自动化插桩方案,可通过直接替换 OpenAI SDK、在 LangChain 应用中接入回调处理器,或使用 LlamaIndex 的回调系统来实现:无需修改业务逻辑,即可上报追踪数据。
  3. 03
    通过 API 网关
    如果您的调用已经通过兼容 OpenAI 的路由器,那么在这一层接入监测,就能一次覆盖所有应用程序。

在这三种情况下,都要确认记录的是实际发送的提示词,而不只是用户的问题:正是两者之间的差异,解释了文档检索系统大多数错误回答的原因。使用 Ollama 时,下方配置将 LANGFUSE_BASE_URL 指向您的自托管实例(http://localhost:3000),并通过环境变量设置您的公开密钥和秘密密钥。

Python:追踪一次 Ollama 调用
# pip install langfuse openai
# Variables d'environnement : LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY,
# LANGFUSE_BASE_URL=http://localhost:3000
from langfuse.openai import OpenAI  # remplace : from openai import OpenAI

client = OpenAI(
    base_url='http://localhost:11434/v1',
    api_key='ollama',  # requis mais inutilisé
)
reponse = client.chat.completions.create(
    model='llama3.1',
    messages=[{'role': 'user', 'content': 'Bonjour !'}],
)

#管理提示词并进行版本控制

将提示词从代码中分离出来,是团队最先体会到的好处。根据 README,完善的服务端和客户端缓存可以让团队迭代提示词,而不增加应用延迟。模板存储在 Langfuse 中,应用在运行时获取它,每次修改都会创建一个版本。修改措辞不再需要重新部署;更重要的是,追踪记录会显示哪个版本生成了哪条回答:当一次修改后质量下降时,就能知道该排查哪个版本,无需交叉核对单独的部署日志。

!
为首次调用做好准备
根据文档说明,SDK 会缓存提示词:首次使用后,不会产生额外延迟,也不存在可用性风险;过期的提示词在后台重新验证期间仍会继续提供。薄弱环节是首次调用,因为它必须连接 Langfuse。在启动时预先加载提示词,并声明一个备用提示词,这是 SDK 支持的选项:可观测性平台绝不能导致生产环境停摆。

#测试集与评估

实际运行的追踪记录用于构建测试集:您标记出值得关注的案例——尤其是失败案例——它们便会组成一个案例集,供新版提示词或另一个模型重新运行测试。这让您能够认真回答“140 亿参数的模型够用吗?”,而不只是讨论这个问题。

评分有多个来源:用户、界面中的人工标注、基于代码的评估器,或按照评分标准评判另一个模型回答的模型——这就是所谓的 LLM-as-a-judge 方法,Langfuse 原生支持该方法。对于最后一种情况,需要创建一个 LLM 连接。文档指出,只要模型遵循 OpenAI API 的接口格式,替换基础 URL 后就能使用:因此,由 Ollama 提供服务的本地模型也可以担任评判者,前提是 Langfuse 容器能够访问它的地址。这种方法有用,但也存在偏差:该领域参考论文(arXiv 2306.05685)的作者描述了位置偏差、冗长偏差和自我偏好偏差,同时测得 GPT-4 类评判者与人类偏好之间的一致率超过 80%。它用于比较两个版本,而不是给出绝对评分。

一款专用于评估RAG的工具,如Ragas,是补充Langfuse而非替代它:Langfuse负责追踪并存储评分,Ragas则计算特定指标——如上下文一致性、回答相关性——这些指标随后可像其他追踪评分一样在Langfuse中展示。

#具体用例

基于 RAG 的支持助手
可以通过调用追踪记录查明回复为何偏离主题:检索到的段落是否相关,还是模型忽略了一个正确的段落?追踪记录可以帮助判定究竟是哪一种情况。
调用工具的智能体
在包含检索、计算、撰写等多个步骤的处理链中,追踪记录会指出哪一步失败,而不是只留下一个没有细节的整体失败,让您自行猜测。
在做出决定前,对比两个模型
先用 80 亿参数的模型,再用 270 亿参数的模型运行同一套测试,可以得到量化的质量指标和耗时,而不是仅凭主观印象。
跟踪更新后的性能退化
当提示词或模型版本的变更导致质量下降时,会在用户抱怨之前反映在聚合评分中。

这些情况的共同点是:都无法通过重新阅读代码来解决。错误响应的根本原因在于传输过的数据——确切的提示、检索到的段落、生成的回复——如果这些数据未在调用时被记录,就不存在于任何其他地方。这正是在上线前而非首次故障后安装可观测性的重要依据。

#费用与功能限制

这并不会使模型表现更优
可观测性负责测量,不会修复任何问题。它会告诉您该从哪里排查。
它会存储你的对话
即使自行托管,提示词内容也会写入磁盘;如果没有数据保留策略(企业版功能),数据就会无限期保存。不过,SDK 提供了数据遮蔽(masking)功能,可在发送追踪数据前移除敏感信息。
需要持续维护的堆栈
备份、更新、迁移:文档本身就说明 Docker Compose 不提供备份功能。对于个人实验来说,这样的维护负担过于繁重。
这种情况通常出现较晚
安装它的合适时机是在投入使用之前,而不是在第一次静默故障之后。
→
从小范围开始
不必在第一天就为整个应用接入监测。只需将 Langfuse 接入最终模型的调用点,也就是生成发送给用户的回答的那个调用点,就已经能获得有用的观察视图。等团队养成每天查看调用追踪的习惯后,再加入检索、工具调用等中间步骤。

#FAQ

Langfuse 免费吗?+
主仓库采用 MIT 开源协议,除「ee」文件夹外,项目免费自托管。该项目在 GitHub 上的星标数量已超过 35,000。部分附加功能需要许可证密钥,例如自动数据保留,而由发行商托管的版本提供免费层级和付费方案。共享方式正在演变:在构建计划前,请务必查阅官方文档。
支持本地模型吗?+
是的。Langfuse 独立于模型:它记录应用程序发送给它的内容,而不是模型内部发生的事情。Ollama、vLLM、llama.cpp 或兼容 OpenAI 的网关都可以使用,只要调用经过已接入监测机制的环节——SDK、框架或网关。通过这种方式进行观测,模型本身无需任何修改。
我的提示会发送到互联网吗?+
在自托管模式下,不会:日志会写入您自己的数据库、本地机器或本地服务器,不会经过第三方服务。这正是本地安装这一选项的核心优势。而由厂商托管的版本则会将这些数据上传至其基础设施,这是一个需要您主动权衡的选择。
与传统日志相比有何不同?+
日志文件保存文本行,行与行之间没有明确关联。Langfuse 保留了结构信息:哪一步调用了哪一步、耗时多少、使用了多少 token、对应什么评分。正是这种结构使得我们可以从错误回答追溯到其具体原因,而无需手动翻查文本文件。
Langfuse 需要 GPU 吗?+
否。这是一款传统的Web应用和数据库,可在普通处理器上高效运行,即使在没有专用显卡的低端设备上也能良好运行。GPU仅用于运行所观察的模型,该模型在其他地方运行——无论是同一台机器还是独立服务器,只要Langfuse能正确接收到运行轨迹即可。
能否使用Langfuse评估RAG?+
不能直接做到:Langfuse 负责追踪并存储评分,本身不计算上下文忠实度或相关性指标。它可以与 Ragas 等专用工具结合使用,由这些工具根据检索到的段落和回答计算指标,随后 Langfuse 会像显示其他附属于追踪记录的评分一样,将该指标与用户反馈一同显示。
这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。