先说一个扎心的观察:国内做 Agent 项目的团队,十有八九的“调优”流程是这样的——改一版 prompt,自己在对话框里点两下,感觉不错就上线,三天后用户骂翻了,谁也说不清是哪次改动惹的祸。而海外认真做 LLM 应用的团队,早就不这么干了。他们把 prompt 当代码管:每次改动跑一遍“单元测试”,线上每个请求都有全链路 trace,成本、延迟、失败率一张面板看穿。支撑这套玩法的是三款几乎全免费的开源工具:promptfoo、Langfuse、Arize Phoenix。中文圈至今没有像样的系统教程,这就是典型的认知差——工具全在 GitHub 上摆着,Star 一年比一年高,国内教程却还停留在“怎么写好提示词”。这篇文章帮你把信息差一次补齐:它们是干什么的、怎么接入你的项目、和国内常见做法差在哪,读完就能动手。
说明:本文所有价格与功能以各工具官网实时页面为准(文末附链接),文中不标具体价格数字的,均因各档位随版本变动较快,请以官方页面确认。
官网:https://promptfoo.dev 仓库:https://github.com/promptfoo/promptfoo 价格:开源免费,本地运行;面向企业的红队云服务单独收费(以官网为准)
promptfoo 是一个 Node 生态的命令行工具,定位非常清晰:把 prompt 和 Agent 的评测做成跑测试。你用一个 YAML 文件声明“测试用例 + 断言”,然后一条命令,它会把你的 prompt 在多个模型、多个版本上并行跑一遍,输出一张对比矩阵——哪版在哪条用例上退步了,一目了然。
核心能力拆开看:
llm-rubric 让另一个模型当裁判给输出打分——这意味着你不用先花钱人工标注几千条数据,就能搭起一个能用的回归测试集。和国内常见做法的差距:国内团队大多靠“手工点测 + 表格记录用例”,或者在 Dify 这类平台里做简单的标注调试,缺的正是“把评测固化成测试集、进 CI、可回归”这一层。promptfoo 恰好只补这一层,侵入性极低——不绑架你的框架,你用 LangChain、自己裸写还是 Dify 编排都行。
适用人群:prompt 迭代频繁的应用开发者、要给客户交付 AI 功能的外包团队(评测报告就是验收材料)、准备出海需要做安全合规扫描的团队。
上手只要三步:npm install -g promptfoo 初始化项目;在 promptfooconfig.yaml 里写几条用例和断言;promptfoo eval 跑完用 promptfoo view 打开本地网页看结果。半小时能跑通第一条流水线。
官网:https://langfuse.com 仓库:https://github.com/langfuse-ai/langfuse 价格:开源可自托管(免费);官方云版有免费档,超出按量计费(额度以官网为准)
如果说 promptfoo 管“上线前”,Langfuse 管的就是“上线后”。它是一个开源的 LLM 可观测平台:你的应用里嵌一个 SDK(Python/TS 都是几行代码),之后每一次调用的完整链路——输入、输出、中间步骤、token 消耗、成本、延迟——全部自动记录成 trace,在网页面板里可以像看调用栈一样一层层展开。
对 Agent 应用这几乎是刚需。一个多步 Agent 十几次工具调用串在一起,用户反馈“答非所问”,没有 trace 你根本不知道是检索环节没召回了,还是工具返回格式崩了,还是最后一步模型理解歪了。Langfuse 把这条黑盒链路拆开给你看。
除了 trace,它还有三块常被忽略的能力:
和国内常见做法的差距:国内玩得多的 One API 这类网关,解决的是 key 池化和记账,管的是“钱”,不管“质量”;自建方案大多停留在打日志进 ELK,查问题时在几万行日志里捞。Langfuse 是专门为 LLM 链路设计的数据模型(生成式 trace、评分、数据集),查询和展示都是开箱即用。自托管版 data 不出内网,企业放心。
适用人群:已上线或即将上线 LLM 功能的团队、需要向老板汇报成本和成功率的技术负责人、做私有化交付需要在客户内网部署观测能力的服务商。
接入路径:云版注册即用;自托管用官方 docker compose 一键起。应用侧 pip install langfuse,初始化两行环境变量,LangChain、LlamaIndex 等主流框架有现成回调集成,基本零改造。
官网:https://arize.com/phoenix/ 仓库:https://github.com/Arize-ai/phoenix 价格:开源免费,本地运行
Phoenix 是老牌机器学习观测公司 Arize 开源的项目,最大的特色是站在了开放标准这一边:它采用 OpenTelemetry 生态的约定来定义 LLM trace(OpenInference 规范),而不是造私有格式。这意味着你接它的时候,用的就是业界通用的 tracing 协议,将来换后端、或者多家观测工具并存,都不被锁死。
它本地一条命令就能拉起一个带 UI 的服务(具体命令以官方 quickstart 为准),然后:
和前两款的分工:很多海外团队的组合拳是——promptfoo 守 CI,Phoenix 或 Langfuse 二选一守线上。如果你看重开放标准、想在自有 OTel 体系里平滑接入,Phoenix 顺手;如果你更看重产品化的数据集管理和 prompt 版本管理,Langfuse 更省心。两者都开源,先各试半天再定也不亏。
适用人群:已经有 OpenTelemetry 基础设施的公司、RAG 重度团队(embedding 可视化是独特卖点)、想要本地化、零成本的评测入门玩家。
flowchart LR
U["用户请求"] --> APP["你的 Agent 应用"]
APP -->|API 调用| LLM["大模型服务"]
APP -->|trace 上报| LF["Langfuse 或 Phoenix"]
LF -->|坏样本入库| DS["评测数据集"]
CI["CI 流水线"] -->|每次提交自动跑| PF["promptfoo 评测"]
DS -->|喂给回归测试| PF
PF -->|回归报告| DEV["工程师"]
DEV -->|修复后上线| APP
flowchart TD
A["装 Helicone 记原始日志"] --> B["装 promptfoo 攒测试集"]
B --> C["进 CI 防回归"]
C --> D["上 Langfuse 或 Phoenix 看线上"]
D --> E["坏样本回填测试集"]
E --> B
| 你以为 | 海外团队实际在做 |
|---|---|
| prompt 调顺手就能上线 | prompt 是代码,改动必须过测试集 |
| 排查问题靠翻日志 | 全链路 trace,每层输入输出可见 |
| 评测得先花钱标数据 | llm-rubric 让模型当裁判,冷启动零标注 |
| 红队测试是安全公司的事 | 一条命令扫越狱和提示注入,进 CI 常态化 |
| 观测平台必须自研 | 三款开源工具覆盖 90% 场景,零成本起步 |
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!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 等场景全覆盖。
