跳到主要内容

MLflow 3.14.0 亮点:一行命令实现智能体接入、评审队列、Pytest 集成以及 LLM 游乐场

·7分钟阅读
MLflow maintainers
MLflow 维护者

MLflow 3.14.0 是一个重要版本,旨在闭环 GenAI 开发流程——从初始应用接入,到评审、测试和迭代。亮点包括:使用 mlflow agent setup 实现的一键式可观测性接入、针对 Claude Code 的持久化低延迟追踪、用于收集结构化追踪反馈的评审队列、焕然一新的评估数据集 UI、用于在 CI 中把控 GenAI 质量的 pytest 集成,以及浏览器内的 LLM 游乐场。

1. 使用 mlflow agent setup 实现一键接入

将应用接入 MLflow 可观测性不应意味着阅读繁琐的指南并手动配置。全新的 mlflow agent setup 命令只需一行即可完成所有操作:它安装一套精选的 MLflow 技能,并启动你常用的编码智能体(Coding Agent),由它自动安装 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 位置。

了解更多关于 Claude Code 追踪的信息

3. 追踪评审队列

以往收集 GenAI 追踪反馈的方式往往是临时性的:使用电子表格、侧边沟通渠道,且缺乏对“哪些已评审”的共享认知。评审队列(Review Queues)将其转变为一种结构化的 UI 工作流,且最快路径无需任何配置。从追踪表格中,选择你需要二次意见的追踪记录并直接指派给团队成员,他们将在个人的评审队列中看到这些任务。每位评审员打开专属的评审页面,即可逐一处理分配的任务。

当你需要更多结构时,可以创建自定义队列并设置特定的评审问题(通过/失败、分类、数值或自由文本),并将其分配给一组评审员。由于队列状态在所有分配人员之间共享,因此第一个完成某项追踪评审的人将自动为整个组完成该项任务。无论哪种方式,反馈结果都不会被遗忘:每一个答案都会直接写回追踪记录,反馈问题记录评估意见,预期问题记录事实真值(ground truth)。这使得评审输出可以直接用于评估、校准 LLM 裁判或构建数据集。整个工作流也可以通过 mlflow.genai.review_queues SDK 进行脚本化调用。

了解更多关于评审队列的信息

4. 焕然一新的评估数据集 UI

评估数据集是动态测试用例集合,它们源自生产环境追踪和手工挑选的黄金示例,但过去查看和维护它们意味着必须使用 Python SDK。MLflow 3.14.0 在 UI 中提供了全面升级的评估数据集体验。在实验的“数据集”选项卡中,你可以获得可搜索的数据集列表,点击即可打开带有可排序、分页记录表格的详细信息页面。

在详细信息页面上,每条记录都会在侧边栏中打开,输入内容和预期结果可作为经过验证的 JSON 进行编辑,并具有防止未保存更改的机制,确保工作不丢失。你可以行内添加记录、进行多选和批量删除、选择要显示的列;对于源自追踪的记录,还可以通过页面内的追踪资源管理器打开它,查看该测试用例的来源。结合 Traces 选项卡上现有的“添加到评估数据集”操作,整个构建和维护循环现在完全可以在 UI 中完成。

了解更多关于评估数据集的信息

5. 针对 GenAI 回归测试的 Pytest 集成

如果你已经在使用 mlflow.genai.evaluate() 和评分器来评估你的智能体,MLflow 3.14.0 中的回归测试无需你学习任何新内容:只需在普通的 pytest 函数上添加 @mlflow.test 装饰器,运行你现有的评分器,并使用 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 游乐场

以前迭代提示词(Prompt)意味着修改代码并重新运行,或者跳转到与你已注册提示词脱节的第三方平台。MLflow 3.14.0 增加了浏览器内的 LLM 游乐场,直接与你已经管理的 MLflow AI Gateway 端点和 Prompt Registry 版本相连。从实验界面打开它,选择一个模型端点,即可构建包含系统消息、用户消息和助手消息的多轮对话。

设置面板允许你调整 Temperature、最大 Token 数、Top-P、惩罚项、停止序列;提供工具定义;并将输出约束为纯文本或严格的 JSON 模式。消息支持在提交时填充的 {{ variable }} 占位符,“从注册中心加载提示词”功能可以将任何已注册版本直接导入对话中,并自动应用其存储的模型配置。

了解更多关于 LLM 游乐场的信息

完整更新日志

有关更改的完整列表,请参阅 版本更新日志

后续规划

快速开始

升级以尝试这些新功能

pip install mlflow==3.14.0

分享你的反馈

我们非常期待听到你对这些新功能的体验

了解更多