Langfuse + RAGAS 生产级可观测与评测方案
一、核心目标与设计原则
核心目标
构建一套非侵入、自动化、可追溯、可闭环的生产级RAG/Agent质量基建,解决「离线评测与线上脱节、问题定位难、优化无依据、质量不可控」的行业痛点,实现从「被动排查问题」到「主动质量运营」的升级。
核心交付能力:
- 全链路可观测:每一层节点的输入输出、耗时、成本、错误完整可追溯
- 自动化分层评测:检索/生成/端到端三层独立评测,精准根因定位
- 全流程质量门禁:嵌入CI/CD与发布流程,不达标不流转
- Bad Case闭环迭代:线上问题自动沉淀、自动回归、持续优化
- 多版本质量对比:知识库/Prompt/模型变更的效果可量化验证
设计原则
- 分层解耦原则:严格遵循「数据层→检索层→生成层→端到端」分层评测,单一变量控制,问题精准归因
- 异步非侵入原则:评测链路与业务链路物理隔离,异步消费,不增加线上接口延迟、不影响业务可用性
- 版本可追溯原则:所有质量数据绑定「知识库版本+Prompt版本+模型版本」三元组,支持历史回溯与横向对比
- 闭环迭代原则:线上问题→自动沉淀→回归验证→效果验证,形成质量飞轮
- 生产级可用原则:高可用、可扩展、容错降级、安全合规,满足企业级生产要求
二、整体五层架构
┌─────────────────────────────────────────────────────────┐ │ 质量运营层 │ │ 质量门禁 | 线上巡检 | Bad Case闭环 | 版本对比 | 看板报表 │ ├─────────────────────────────────────────────────────────┤ │ 评测引擎层 │ │ 分层评测流水线 | RAGAS核心引擎 | 裁判模型池 | 任务调度 │ │ 校准管理 | 指标计算 | 组合归因 | 结果管理 │ ├─────────────────────────────────────────────────────────┤ │ 可观测底座层 │ │ Langfuse 服务 | Trace管理 | Dataset管理 | 权限审计 │ │ 数据生命周期 | API网关 | 监控告警 │ ├─────────────────────────────────────────────────────────┤ │ 埋点采集层 │ │ 统一埋点规范 | 全节点Span埋点 | 透传标识 | 降级容错 │ ├─────────────────────────────────────────────────────────┤ │ 基础设施层 │ │ K8s部署 | PG主从 | 对象存储 | Redis | 消息队列 │ └─────────────────────────────────────────────────────────┘三、各层详细生产级设计
(一)基础设施层:高可用底座
所有组件均按生产级高可用标准部署,避免单点故障。
| 组件 | 选型与部署方案 | 核心作用 |
|---|---|---|
| 容器编排 | K8s 部署,多副本 + 反亲和调度 | 服务高可用、弹性扩缩容 |
| 关系型数据库 | PostgreSQL 14+ 主从架构,读写分离 | 存储Langfuse元数据、评测结果、配置数据 |
| 对象存储 | S3/MinIO | 存储Trace大字段(输入/输出原文)、评测报告、数据集文件,降低数据库压力 |
| 缓存与限流 | Redis 集群 | 缓存热点数据、接口限流、幂等控制 |
| 消息队列 | Kafka / RabbitMQ | 异步解耦评测链路与业务链路,削峰填谷,避免评测影响业务 |
| 任务调度 | Airflow / 原生CI/CD定时任务 | 定时评测、批量任务调度、依赖编排 |
高可用保障
- 所有服务至少2副本,核心组件3副本,跨可用区部署
- 全链路熔断降级:Langfuse/评测引擎故障时,业务链路自动降级,本地缓存埋点数据,不影响主流程
- 失败重试与死信队列:评测任务失败自动重试3次,仍失败进入死信队列,告警人工介入
(二)埋点采集层:统一规范,数据同源
埋点是整个基建的基础,规范不统一,后续所有评测都不可信。
1. 强制埋点规范
所有RAG/Agent系统必须按统一规范打全链路Span,每个节点独立记录输入输出。
| 节点名称 | 节点类型 | 必填输入 | 必填输出 | 核心元数据 |
|---|---|---|---|---|
query_rewrite | 处理节点 | 用户原始query | 改写后query | 改写策略版本 |
hybrid_retriever | 检索节点 | 改写后query | 召回片段列表+片段ID | top_k、检索策略版本、索引版本 |
reranker | 重排节点 | 粗召回片段列表 | 重排后片段列表 | reranker模型版本 |
answer_generation | 生成节点 | query+召回上下文 | 生成回答 | 模型版本、Prompt版本、temperature |
faithfulness_check | 校验节点 | 回答+上下文 | 校验结果 | 校验策略版本 |
final_output | 输出节点 | 回答 | 最终返回用户内容 | 总耗时、总Token |
2. 全局透传标识(必须贯穿全链路)
trace_id:全链路唯一ID version:三元组 {kb_v1.2, prompt_v2.3, model_v3.1} env:prod/test/dev scene:业务场景标签(客服/知识库/代码助手等) eval_case_id:评测任务透传ID,评测场景专用3. 埋点SDK与降级策略
- 统一使用Langfuse官方SDK(Python/JS),封装公共埋点逻辑,业务方无需关心细节
- 异步埋点:后台线程发送,不阻塞业务主流程
- 降级策略:Langfuse服务不可用时,本地缓存埋点数据,后续重试补发,不影响业务接口
- 数据脱敏:敏感字段(用户隐私、业务机密)埋点前自动脱敏,符合合规要求
(三)可观测底座层:Langfuse v2.42.0 生产级配置
Langfuse作为整个基建的统一数据底座,承担Trace存储、数据集管理、观测分析三大核心职责。
1. 部署与性能配置
- 生产部署:K8s StatefulSet部署,3副本,PG主从持久化,对象存储存大字段
- 数据采样:核心业务场景全量存储;长尾场景按10%比例采样,平衡成本与覆盖度
- 生命周期管理:热数据(近30天)存PG;冷数据归档对象存储,保留180天;超期自动清理
- 性能优化:Trace列表分页、节点输入输出懒加载,避免大查询拖垮数据库
2. 核心数据集管理(Langfuse Dataset)
统一管理所有评测用例集,实现数据同源、多工具共享。
| 数据集类型 | 用途 | 管理方式 |
|---|---|---|
| 校准集 | LLM裁判一致性校验 | 人工标注,每季度更新,50~100条 |
| 核心测试集 | 版本回归、质量门禁 | 业务核心场景,人工+自动沉淀,200~500条 |
| Bad Case集 | 问题沉淀、回归验证 | 自动从线上低分项筛选,人工复核标注 |
| 安全测试集 | 安全合规评测 | 对抗用例,定期更新 |
3. 权限与合规
- RBAC权限体系:管理员/评测人员/开发人员/访客,分级授权
- 操作审计:所有数据导出、配置变更、评测任务均有审计日志
- 数据驻留:所有数据本地化部署,不经过第三方公网服务
(四)评测引擎层:RAGAS + EvalScope 自动化评测核心
以RAGAS为核心评测算法,EvalScope为调度执行引擎,实现全自动化、分层级、可配置的评测能力。
1. 核心能力架构
评测引擎层 ├─ 任务调度中心 │ ├─ 触发方式:事件触发/定时触发/手动触发 │ ├─ 增量选例:智能筛选受影响用例 │ └─ 并发控制:队列+限流,保护被测系统 ├─ 分层评测流水线 │ ├─ 检索层评测:ContextPrecision / ContextRecall │ ├─ 生成层评测:Faithfulness / AnswerRelevancy │ └─ 端到端评测:AnswerCorrectness / 综合质量 ├─ 裁判模型池 │ ├─ 强模型裁判:千问Max/GPT-4o,高风险场景 │ ├─ 轻量模型裁判:7B级模型,批量初筛 │ └─ 规则引擎:格式/关键字/正则校验 └─ 校准与归因 ├─ Kappa校准管理 └─ 三维组合根因定位2. 三层标准评测流水线
严格自下而上执行,下层不达标不进入上层,节省资源、定位精准。
① 检索层评测
- 输入数据:Langfuse Trace中的query + 召回片段列表
- 核心指标:ContextPrecision(零标注)、ContextRecall(有标注/伪标注)
- 控制变量:固定索引版本、top_k参数
- 触发场景:分块策略调整、Embedding更换、检索算法优化、索引重构
② 生成层评测
- 输入数据:固定召回上下文 + 生成回答(从Langfuse Trace提取)
- 核心指标:Faithfulness(忠实度)、AnswerRelevancy(相关性)、幻觉率
- 控制变量:固定上下文,排除检索波动干扰
- 触发场景:Prompt迭代、模型升级、生成策略调整
③ 端到端评测
- 输入数据:完整用户query + 最终回答
- 核心指标:AnswerCorrectness(答案正确率)、综合质量评分
- 控制变量:全链路真实运行,模拟真实场景
- 触发场景:版本发布、大版本迭代、上线前验收
3. 裁判模型池与校准机制
- 分级裁判策略:
- 初筛:轻量模型 + 规则引擎,低成本快速过滤
- 精评:强模型裁判,保证准确性
- 高风险:双模型交叉打分,不一致转人工
- 强制校准流程:
- 每个裁判模型、每个评分维度,必须先用校准集计算Cohen’s Kappa
- 合格线:加权Kappa ≥ 0.75,否则优化评分Prompt、补充Few-shot
- 定期复核:每季度重新校准一次;模型更新、Prompt变更必须重新校准
- 校准版本管理:所有评分Prompt、裁判模型、Kappa值统一版本化管理
4. 任务调度中心
- 触发方式:
- 事件触发:知识库更新、Prompt发布、模型升级、配置变更,通过Webhook自动触发
- 定时触发:每日核心场景冒烟、每周全量回归、每月深度评测
- 手动触发:临时验证、问题复现、验收评测
- 增量选例机制:
- 只改检索策略 → 仅跑检索层测试集
- 只改生成Prompt → 仅跑生成层测试集
- 大版本变更 → 全量执行
- 效率提升:日常迭代评测耗时减少60%以上
- 并发控制:
- 评测任务进入队列,按优先级调度
- 限制并发数,避免打垮被测RAG系统
- 幂等控制:同一任务重复提交不重复执行
5. 组合归因分析
基于三个核心指标的高低组合,自动输出根因定位与优化建议,和之前的三维归因矩阵完全对齐:
| 检索精确率 | 生成忠实度 | 端到端正确率 | 自动根因标签 | 优化优先级 |
|---|---|---|---|---|
| 低 | 高 | 低 | bottleneck:retrieval | P0 |
| 高 | 低 | 低 | bottleneck:generation | P0 |
| 高 | 高 | 低 | bottleneck:knowledge | P1 |
(五)质量运营层:从评测到业务价值闭环
将评测能力嵌入研发、发布、运营全流程,实现质量价值落地。
1. 三级质量门禁(CI/CD集成)
| 门禁级别 | 对应阶段 | 评测内容 | 拦截规则 |
|---|---|---|---|
| 一级门禁 | 代码提交/MR | 增量单元评测、基础规则校验 | 核心指标劣化≥2% 拦截 |
| 二级门禁 | 合并到主干/测试环境 | 分层全量评测 | 检索/生成核心指标低于基线拦截 |
| 三级门禁 | 发布上线/灰度 | 端到端评测+安全评测 | 正确率低于基线、安全红线违规拦截 |
2. 线上质量巡检
- 定时抽样:每小时抽取线上100条真实请求,自动计算忠实度、精确率、幻觉率
- 趋势监控:监控核心指标的日/周/月趋势,识别质量漂移
- 阈值告警:指标跌破阈值自动推送告警,关联Trace链接,快速定位问题
3. Bad Case 闭环迭代体系
形成「发现→分类→沉淀→回归→验证」的完整飞轮,是质量持续提升的核心。
- 自动发现:自动筛选忠实度<0.7、精确率<0.6、用户点踩的Trace
- 自动分类:根据三层指标组合,自动打根因标签(检索问题/生成幻觉/知识库错误)
- 沉淀入库:自动导入Langfuse Dataset,人工复核标注标准答案与根因
- 回归验证:每次优化后,自动跑Bad Case集,验证修复率
- 闭环复盘:定期复盘重复出现的问题,优化规则与策略
4. 版本效果对比
- 新版本上线后,自动抽取新旧版本的线上流量,分别评测核心指标
- 输出版本质量对比报告,量化优化收益,避免「感觉优化了但没数据」
- 支持AB测试场景,分流量验证真实业务效果
5. 看板与报表
- 实时质量看板:核心指标大盘、分层指标趋势、Bad Case趋势、版本对比
- 定期运营报告:周/月质量报告,问题分布、优化效果、风险预警
- 根因分析报表:各层级问题占比、Top问题类型、优化建议
四、核心业务流程
1. 全链路数据采集流程
业务请求 → 全节点Span埋点 → 异步发送Langfuse → 数据清洗脱敏 → 落库存储 ↓(不阻塞业务) 消息队列 → 评测引擎消费2. 自动化分层评测流程
触发评测 → 增量筛选用例 → 检索层评测 → 是否达标? ↓是 生成层评测 → 是否达标? ↓是 端到端评测 → 结果计算 → 组合归因 → 回写Langfuse → 生成报告 ↓否 终止流程,输出问题定位与优化建议3. Bad Case闭环流程
线上低分项Trace → 自动筛选 → 自动打根因标签 → 人工复核 → 入Bad Case库 ↓ 优化验证 ← 回归评测 ← 修复优化 ← 版本迭代 ← 定期复盘五、关键生产级设计要点
1. 非侵入异步设计
评测链路与业务链路完全物理隔离,通过消费Trace数据异步执行,线上接口零延迟增加,评测服务故障不影响业务可用性。
2. 版本绑定与可追溯性
所有Trace、评测结果、数据集都绑定版本三元组(知识库+Prompt+模型),支持:
- 任意历史版本的质量回溯
- 任意两个版本的横向对比
- 优化效果的量化验证
3. 校准与一致性保障
- 裁判模型先校准再使用,Kappa不达标禁止批量评测
- 定期复核校准,模型/Prompt变更必须重新校准
- 批量评测自动抽检10%人工复核,监控一致性漂移
4. 高可用与容错
- 全链路降级:任何组件故障不影响主业务
- 重试与死信:失败任务自动重试,异常场景告警
- 数据兜底:埋点失败本地缓存,服务恢复后补发
5. 安全合规
- 数据脱敏:敏感信息埋点前脱敏,禁止明文存储
- 权限管控:分级授权,操作审计
- 数据驻留:全本地化部署,符合数据合规要求
6. 可扩展性
- 指标扩展:支持自定义指标、自定义评分规则
- 模型扩展:支持新增裁判模型、被测模型
- 场景扩展:支持RAG、Agent、多模态等多种AI应用场景
六、落地路线图(三阶段)
阶段一:基础能力建设(1~2周)
- 部署生产级Langfuse,完成高可用配置
- 统一RAG系统全节点埋点,验证数据完整性
- 接入RAGAS,跑通分层评测原型
- 建设校准集,完成裁判模型首次校准
阶段二:自动化与门禁落地(2~4周)
- 搭建评测调度引擎,实现定时/事件触发评测
- 嵌入CI/CD三级质量门禁
- 上线线上质量巡检与告警
- 建设Bad Case基础闭环流程
阶段三:闭环运营与优化(持续)
- 完善Bad Case自动分类与沉淀体系
- 上线版本自动对比与AB测试评测
- 建设质量运营看板与定期报告机制
- 持续优化校准、扩充测试集、提升自动化率
七、工具栈与版本建议
| 工具 | 推荐版本 | 核心定位 |
|---|---|---|
| Langfuse | v2.42.0+ | 全链路可观测、数据集管理、Trace存储 |
| RAGAS | v0.4.x | 分层评测核心算法、指标计算 |
| EvalScope | 1.8.0 | 评测任务调度、批量执行、报告生成、CI集成 |
| PostgreSQL | 14+ | 元数据、评测结果存储 |
| Kafka / RabbitMQ | 稳定版 | 异步解耦评测链路 |
| Airflow | 稳定版 | 定时任务、工作流编排 |
八、最佳实践与避坑
最佳实践
- 先规范埋点,再做评测:埋点规范是地基,不规范的埋点会导致所有评测结果不可信
- 先校准,后批量:裁判模型必须先校准再批量使用,否则评分偏差会误导优化方向
- 分层优先,端到端为辅:永远先分层定位问题,再端到端验证,排查效率提升数倍
- 异步非侵入:评测绝对不能同步嵌入业务链路,避免影响线上性能与可用性
- 闭环运营:评测不是目的,通过Bad Case闭环持续提升质量才是核心价值
- 版本绑定:所有质量数据必须绑定版本,否则对比无意义、问题无法回溯
常见避坑
- ❌ 埋点只打首尾,不打中间节点 → 出问题无法分层定位,根因全靠猜
- ❌ 评测同步执行业务请求 → 增加接口延迟,评测服务故障拖垮业务
- ❌ 裁判模型不校准直接用 → 评分偏差10%~25%,甚至优化方向完全相反
- ❌ 测试集与线上脱节 → 离线评测全达标,线上效果一塌糊涂
- ❌ 只评测不沉淀 → 问题重复出现,质量无法持续提升
- ❌ 版本不绑定 → 指标波动不知道是哪个变更导致的,无法归因