ESC
输入关键词搜索文章
目录

Prompt + Eval

Langfuse 的持续改进闭环
prompt 版本、线上反馈、离线实验与质量门禁
2核心模块
5评测方式
1改进闭环
第一章
为什么 prompt 需要版本管理

在 LLM 应用中,prompt 往往承担了大量业务逻辑:角色定义、输出格式、检索上下文的使用方式、工具调用约束、拒答策略和风格要求。如果 prompt 只散落在代码、配置文件或表格里,团队很快会遇到三个问题:不知道线上用了哪个版本,不知道一次效果变化来自模型还是 prompt,不知道回滚到哪里。

Langfuse Prompt Management 的定位,就是把 prompt 变成可创建、可版本化、可协作编辑、可按 label 部署的软件资产。官方文档支持通过 UI、Python SDK、JS/TS SDK 和 API 创建 prompt,并通过 label 将版本发布到 production 等环境。#Langfuse Prompt Management, 2026

一句话:prompt 不应该是“字符串”,而应该是“有版本、有发布状态、有指标回溯的软件制品”。
Prompt Management 的基本工作流
阶段动作Langfuse 中的对象
创建在 UI、SDK 或 API 中创建文本 / chat promptPrompt
版本化每次修改形成新版本Prompt Version
部署用 label 指向 production、staging 等环境Label
观测将 prompt 与 trace 关联Trace + Prompt
比较按版本比较 latency、cost、scoreMetrics / Scores
langfuse.create_prompt(
    name="movie-critic",
    type="text",
    prompt="As a {{criticlevel}} movie critic, do you like {{movie}}?",
    labels=["production"],
)
Evaluation:把质量判断从感觉变成数据

Langfuse 的 Evaluation 覆盖线上和线下两类场景:线上对 production traces 进行打分和监控,线下用 datasets 和 experiments 比较 prompt、模型或代码变体。官方文档强调,evals 的价值是用可重复检查替代猜测,在发布前发现回归,并在生产中持续监控质量。#Langfuse Evaluation, 2026

评测方式适用场景优点
用户反馈真实用户可表达满意度贴近产品体验
人工标注高风险、高价值样本质量可靠,适合建立基准
LLM-as-a-Judge需要规模化自动评分覆盖快,适合趋势监控
Code Evaluator输出有确定规则可重复、可进 CI
Custom Scores业务自定义指标能贴合业务目标
Dataset 与 Experiment:从线上失败到离线回归

最值得建立的流程是:线上 trace 中发现失败样本,将其沉淀为 dataset item;随后在 experiment 中比较不同 prompt、模型或代码版本;最后用 score 判断新版本是否更好。这样,线上事故不只是一次排查记录,而会变成未来发布前的回归测试样本。#Langfuse Evaluation, 2026

flowchart LR
    BadTrace[线上失败 Trace] --> Dataset[加入 Dataset]
    Dataset --> VariantA[Prompt A / Model A]
    Dataset --> VariantB[Prompt B / Model B]
    VariantA --> Scores[Scores]
    VariantB --> Scores
    Scores --> Decision[发布 / 回滚 / 继续实验]

实践建议

不要只看平均分。LLM 应用经常在少数高价值场景中失败,因此 dataset 应该按场景分层:常规样本、边界样本、历史事故样本、高价值客户样本。每个层级可以设置不同的发布门槛。

Prompt 资产模型:名字、变量、标签、版本

Prompt 管理的关键不只是"把 prompt 放到 Langfuse",而是让 prompt 有稳定的资产边界。一个好的 prompt name 应该对应一个业务能力;变量应该少而清晰;label 应该表达部署环境;版本说明应该写清楚改变了什么。

维度推荐做法反例
Namesupport_answer_via_ragcontract_clause_extractorprompt1new_prompt
Variables{{question}}{{retrieved_context}}{{output_schema}}把一整段 JSON 和业务说明混在一个变量里
Labelsproductionstagingexperiment-a用人工记忆区分线上版本
Version notes说明新增约束、格式变化、召回使用方式只写"优化一下"
Evaluator 设计:不要只有一个总分

LLM 应用质量通常不是单一维度。一个客服回答可能要同时满足事实正确、引用充分、语气合适、不过度承诺、符合安全策略。只给一个 overall score 会掩盖失败原因,因此更推荐拆成多个 score config。

Score类型判断标准
factualityLLM-as-a-judge / 人工回答是否被上下文支持
groundednessLLM-as-a-judge是否引用了检索材料,是否编造来源
format_validCode evaluatorJSON、Markdown、字段是否符合 schema
safety规则 + LLM judge是否泄露敏感信息或违反策略
user_helpfulness用户反馈 / 人工是否真正解决用户问题
实践要点:能用规则判断的先用规则,规则判断不了再用 LLM-as-a-judge;高风险场景必须保留人工标注基准。
建立团队级质量门禁

如果把 Langfuse 用成工程流程,而不仅是调试工具,可以制定一条简单规则:任何 production prompt、模型或检索策略的变更,都必须关联一次 experiment 或人工评审记录。对于核心链路,还可以将 code evaluator 或 experiment 结果接入 CI/CD,阻止明显回归进入生产。

参考来源