代理的可观察性和质量 建立在一个循环之上: 发现代理存在的问题,系统地测量,修复它,确认解决方案,并监控防止问题再次发生。 本页上的每个概念都是这个循环的一部分。
本页解释了每件作品及其关联。
质量循环
下面的每个部分对应到该循环中的某个阶段。
线路与跨度
追踪是对代理一次完整执行的结构化记录——包括顶层输入和输出、每个中间步骤(LLM调用、检索器查找、工具调用)、延迟以及任何错误。 追踪数据是为循环中其他各个阶段提供输入的原始材料。
在内部实现上,追踪是由跨度构成的一棵树。 每个跨度代表一个操作:记录进出、耗时时间以及任何元数据。 根范围表示完整的代理请求;子节点表示在该请求期间发生的子操作。
追踪数据以 Delta 表的形式存储在 Unity Catalog 中(推荐)。 这为你提供了受控访问、SQL查询能力,并且没有每个实验的存储上限——与其他UC表相同的治理模式。 存储后,可以在 UI 中浏览跟踪,并使用 SQL 对其进行查询。
相关内容:为代理添加埋点 · 在界面中查看追踪 · 搜索和查询追踪
Sessions
会话是一个标签,用于将一次多回合对话中的相关跟踪分组:在每个跟踪上设置mlflow.trace.session。 会话分组让你可以从头到尾评估对话质量,而不仅仅是逐个轮流。
评估:反馈与期望
评估是一种附加在痕迹上的质量测量。 有两种类型:
| 类型 | 由谁添加 | 它捕获的内容 |
|---|---|---|
| Feedback | 评分员、终端用户、领域专家 | 质量评判:通过/不通过、数字评分或自由文本评论。 例如:由 Safety 评分者将某条回答标记为不安全;最终用户给出的差评。 |
| 期望值 | 域专家 | 给定输入的正确输出——真实值。 示例:问题的预期答案;回答必须包含的事实。 |
反馈是日常高质量工作的主要信号;你不需要期望就能从机器学习流中获得价值。 期望值是可选的,但能实现最精确的评分:评委会将 Correctness 代理人的回答与已知良好答案进行比较。
得分者
评分器是一种评估痕迹并返回反馈评估的函数。 每个评分器都遵循相同的约定:接收追踪信息 → 提取相关字段 → 评估 → 返回 Feedback。 同一个评分器适用于线下评估和现场制作监控——你写一次质量逻辑,它就适用于所有地方。
记分员类型
| 类型 | 评估方式 | 何时使用 |
|---|---|---|
|
内置 LLM 法官 ( mlflow.genai.scorers.*) |
预建的基于LLM的评估器,涵盖常见维度:正确性、相关性、安全性、扎实性、指南遵循等。 | 你想要的是即时高质量的覆盖,而不必写自定义代码。 |
| 自定义LLM评判 | 一个使用你定义的自定义评估提示词和评分标准的 LLM 评委。 | 内置评委无法满足你领域的特定标准,或者你需要细分化的评分(数字评分、自定义类别)。 |
| 基于代码的评分器 | 确定性Python函数——精确匹配、格式验证、延迟检查、业务规则。 | 你需要精确、可重复的逻辑,不需要语言模型。 |
裁判与记分员
评委(例如 mlflow.genai.judges.is_correct)会根据特定标准评估文本——但他们看不懂追踪信息。
评分器 是适配器:它们从跟踪中提取相关字段(请求、响应、检索上下文等),并将其传递给裁判或自定义逻辑。 当你直接在 scorers=[Correctness()] 中使用内置评判器时,MLflow 会自动将其封装为评分器。
相关:评分器概述 · 内置评判器 · 自定义大语言模型评判器 · 基于代码的评分器
评估数据集和运行结果
评估数据集
评估数据集是一个有版本限制、经过策划的测试用例集合。 每条记录包含:
inputs:该发什么给代理人expectations(可选):正确输出,供需要真实数据的记分员使用
你通过选择生产或开发中的代表性痕迹、从零编写案例,或从外部来源导入来构建数据集。 数据集有版本限制,这样你可以跟踪测试套件随时间增长的情况。
相关:构建评估数据集
评估运行
评估运行是调用mlflow.genai.evaluate()后得到的结果。 给它一个数据集和评分者名单;它:
对数据集中的每个输入运行你的代理,并捕获跟踪信息。
将每个评分器应用于每条轨迹,生成反馈评估结果。
将汇总的通过率和指标与单条跟踪记录一同存储。
通过评估运行来回答:这次更改是否提升了质量?以及是否导致其他方面出现退步?将各次运行并排对比,以跟踪各轮迭代的进展。 评估运行是一种特殊类型的 MLflow 运行记录,并且可通过 编程方式查询。
生产监控
生产监控 会安排计分器自动运行实时代理流量。 将评分器附加到部署的代理上,监控服务会滚动对进来的跟踪进行评分,并将反馈评估反馈回同一追踪线。
反馈格式与离线评估相同,因此开发和生产之间的质量趋势可以直接比较。生产监控则是闭环:它会发现实时流量中的新故障,然后你将其整理进评估数据集,在下一次迭代中进行修正。
这一切如何结合在一起
每个概念服务于质量循环的特定阶段:
| 阶段 | 关键概念 |
|---|---|
| 跟踪代理 | 痕迹,跨度 |
| 收集反馈并策划数据集 | 评估(反馈+期望)、评估数据集 |
| 写评分器,修复代理,并评估修复方案 | 评分器,评估运行 |
| 监控生产 | 生产监控,定时评分器 |
循环将它们连接起来:生产监控识别新的故障案例→你将它们整理成数据集,→编写或调整评分器→评估以确认修复方案,→改进后的代理进入生产环境→监控下一个问题。
后续步骤
为你的经纪人配备工具 ——只需几行即可向经纪人添加追踪
观察并发现问题 ——探索和分析捕获的痕迹
构建评估数据集 ——将痕迹整理成结构化测试用例
进行评估 ——用数据集给你的经纪人评分
建立生产监控 ——检测实时流量中的质量回归