MLflow 3.14.0 亮点:一行指令代理入门、审核队列、Pytest 集成以及 LLM 游乐场
MLflow 3.14.0 是一个重要的版本,致力于闭环 GenAI 开发,涵盖从最初的应用程序插桩到审查、测试和迭代的整个过程。亮点包括:使用 mlflow agent setup 实现一键式可观测性接入、为 Claude Code 提供持久且低延迟的追踪、用于收集追踪结构化反馈的审核队列、改版的评估数据集 UI、用于在 CI 中控制 GenAI 质量的 pytest 集成,以及浏览器内的 LLM 游乐场。
1. 使用 mlflow agent setup 实现一键式接入
让应用程序接入 MLflow 可观测性不再需要阅读安装指南并手动连接各项设置。全新的 mlflow agent setup 命令只需一行即可完成所有操作:它安装一套精选的 MLflow 技能并启动您喜欢的编码代理,该代理会自动安装 MLflow、设置追踪并为您的应用进行插桩。在项目内部运行此命令,选择要使用的编码代理(Claude Code、OpenAI Codex 或 OpenCode)以及追踪数据的存储位置(全新的本地服务器、Databricks 工作区或现有服务器),代理会自动为您的实际入口点添加追踪并验证端到端的追踪链路。
由于实际的插桩任务委托给了您的编码代理而非僵化的脚本,因此它可以适应您项目所使用的任何包管理器、框架和入口点。
# Run inside your project: your coding agent instruments it for MLflow Tracing
uvx mlflow@latest agent setup
2. 为 Claude Code 提供持久、低延迟的追踪
将 Claude Code 追踪推广到整个团队应该是您可以为所有人开启后便无需操心的事情。MLflow 3.14.0 使其具备了持久性和低开销,以便企业可以放心使用:追踪绝不会拖慢开发者的 Claude Code 会话,不会在高负载下压垮您的中央追踪服务器,也不会在网络中断或崩溃导致会话中断时丢失追踪数据。
它通过预写日志 (write-ahead-log) 实现这一点:每个追踪都会写入本地磁盘,并由后台守护进程在失败时重试上传,因此代理绝不会因网络问题而阻塞,即使会话意外退出,磁盘上已有的追踪记录也会被重放。您还可以使用 MLFLOW_TRACE_LOCATION 将 Claude Code 追踪发送到 Databricks Unity Catalog 位置。
3. 追踪的审核队列
收集 GenAI 追踪的反馈过去通常是临时性的:电子表格、侧信道沟通,且对于哪些内容已经过审核缺乏共享共识。审核队列将此流程转化为一种结构化的 UI 工作流,且最快捷的路径无需任何设置。从追踪列表中,选择您需要复核的追踪,并将其直接分配给队友,他们会在个人审核队列中找到待处理的任务。每位审核员打开一个专注的审核页面,逐一完成追踪审核。
当您需要更多结构时,可以创建一个包含特定审核问题(通过/失败、分类、数值或自由文本)的自定义队列,并将其分配给一组审核员。由于队列状态在分配给它的所有人之间共享,因此第一个完成追踪的审核员将为整个团队清除该任务。无论哪种方式,答案都不会存储在别处:每一个答案都会直接写回追踪记录中,反馈问题记录评估结果,期望问题记录真实事实。这使得审核输出可立即用于评估、对齐 LLM 评判者或构建数据集。整个工作流也可以通过 mlflow.genai.review_queues SDK 进行脚本化。
4. 改版的评估数据集 UI
评估数据集是实时更新的测试用例集合,从生产追踪和人工整理的黄金样本中不断增长,但检查和维护它们过去需要进入 Python SDK。MLflow 3.14.0 在 UI 中发布了完全改版的评估数据集体验。在实验的“数据集”选项卡中,您可以获得一个可搜索的数据集列表,点击其中一个即可打开详情页面,其中包含可排序、分页的记录表。
在详情页面上,每条记录都会在侧边栏中打开,输入和预期内容以验证后的 JSON 格式编辑,并带有“未保存更改”防护,以免丢失工作内容。您可以内联添加记录、多选并批量删除、选择要显示的列,对于源自追踪的任何记录,可以在页面内的追踪资源管理器中打开,以查看该测试用例的来源。结合“追踪”选项卡上现有的“添加到评估数据集”操作,整个构建和维护闭环现在都在 UI 中完成。
5. 用于 GenAI 回归测试的 Pytest 集成
如果您已经使用 mlflow.genai.evaluate() 和评分器来评估您的代理,MLflow 3.14.0 的回归测试无需您学习任何新内容:将 @mlflow.test 装饰器添加到普通的 pytest 函数,运行现有的评分器,并使用 assert result.passed, result.reason 对结果进行断言。当测试失败时,失败的评分器及其评判理由会直接显示在 pytest 输出中。
因为它只是普通 pytest 函数上的一个装饰器,所以您的回归套件可以接入整个 pytest 生态系统:在多个用例中对测试进行参数化,使用 pytest-xdist 在工作节点中进行分配,并像其他任何测试一样在 CI 中运行它。每次运行都会被捕获到 MLflow 中,“评估运行” UI 会一目了然地显示您的测试历史记录和每个断言的详细评判结果。建议的迭代闭环是基于真实失败案例扩展套件:每次代理行为异常时,将其捕获为 @mlflow.test,这样同样的问题就永远不会静默复发。
import mlflow
from mlflow.genai.scorers import Guidelines
@mlflow.test
def test_answers_concisely(agent):
result = mlflow.genai.evaluate(
predict_fn=agent,
data=[{"inputs": {"question": "What are your hours?"}}],
scorers=[Guidelines(name="concise", guidelines="Answer in one sentence.")],
)
assert result.passed, result.reason
6. LLM 游乐场
迭代提示词过去意味着编辑代码并重新运行,或者跳转到对您已注册的提示词一无所知的外部供应商游乐场。MLflow 3.14.0 增加了浏览器内的 LLM 游乐场,连接到您已经管理的相同 MLflow AI Gateway 端点和提示词注册表版本。从实验中打开它,选择一个模型端点,并编排包含系统消息、用户消息和助手消息的多轮对话。
设置侧边栏允许您调整温度、最大令牌数、top-p、惩罚项、停止序列;提供工具定义;并将输出限制为纯文本或严格的 JSON 模式。消息支持在提交时填入的 {{ variable }} 占位符,“从注册表加载提示词”功能将任何已注册的版本直接放入对话中,并自动应用其存储的模型配置。
完整更新日志
有关完整的变更列表,请参阅版本变更日志。
后续规划
快速开始
升级以尝试这些新功能
pip install mlflow==3.14.0
分享你的反馈
我们非常期待听到你对这些新功能的体验
- GitHub Issues - 报告 Bug 或提出新功能需求
- MLflow 路线图 - 查看未来规划并分享你的想法
- ⭐ 在 GitHub 上为我们点赞 - 表达你对该项目的支持
了解更多
- 查看 MLflow 文档 获取详细指南




