MLflow 3.13.0 includes several major features and improvements
Major New Features
- π Role-Based Access Control & Admin UI: A full RBAC system with reusable roles and workspace-scoped grants, plus a new web Admin UI for managing users, roles, and permissions on self-hosted MLflow.
- ποΈ Trace Retention & Auto Archival: Automatically move aged trace span data out of your SQL backend into object storage (e.g. S3) while keeping every trace fully readable in the UI and APIs.
- π€ One-click observability & governance for coding agents: Onboard Claude Code, OpenAI Codex, or Gemini CLI to the AI Gateway in one click for tracing, usage tracking, budgets, and guardrails.
- β¨ New engines for MLflow Assistant: Run MLflow Assistant on a local Ollama model, the OpenAI Codex CLI, or any MLflow AI Gateway endpoint, in addition to Claude Code.
- βΈοΈ Helm chart for Kubernetes: An official, production-ready Helm chart for deploying the MLflow tracking server to any Kubernetes cluster.
- π Hermes Agent support: Route the Hermes Agent runtime through the AI Gateway and capture its end-to-end traces in MLflow over OpenTelemetry.
- πͺ΅ Span log levels: Python-
logging-style severity levels on spans, with a "Minimum log level" filter in the trace UI to hide low-level noise.
Breaking Changes
- The permission system has been overhauled into a unified Role-Based Access Control model. The legacy per-resource permission tables, REST endpoints, and client methods are removed and replaced by roles backed by
role_permissions,default_permissionnow acts as a floor rather than an override, and a workspaceUSEgrant is sufficient to create experiments and registered models. Code that relied on the old per-resource permission APIs must migrate to the new role-based APIs. (#22855, #22859, #22941, #23337, #23379, @PattaraS) - MLServer is no longer available as a pyfunc serving backend. The previously deprecated
enable_mlserveroption has been removed, somlflow models servealways uses the built-in scoring server. (#23356, @harupy) mlflow autolog claudeno longer installs the old Python autolog hook; Claude Code tracing is now provided by the official Claude plugin, which must be installed separately. (#23339, @B-Step62)- The default optimizer used by
judge.align()is now MemAlign, so existing alignment workflows may produce different judges than before unless an optimizer is passed explicitly. (#23254, @veronicalyu320) - Pointing the tracking or model registry store at a local file-system path now raises an error by default; set
MLFLOW_ALLOW_FILE_STORE=trueto keep using a file-based store. (#22773, @harupy)
Other Assorted Features & Improvements:
- [Gateway] Support AI Gateway as a backend of MLflow Assistant (#23559, @B-Step62)
- [UI] Make admin pickers target the workspace they're granting into (#23543, @PattaraS)
- [UI] Bring direct-grant picker to parity with role picker (#23420, @PattaraS)
- [UI] Cherry-pick: Add OpenAI Codex CLI as assistant provider (#22566) (#23517, @B-Step62)
- [Tracing] Support settings.local.json for Claude Code tracing config (#23285, @Gkrumbach07)
- [UI] Add coding-agent endpoint creation flow in AI Gateway UI (#23430, @TomeHirata)
- [Tracking / UI] Unified per-user permission APIs:
grant/revoke/get/listunder/mlflow/users/permissions/*(#23247, @PattaraS) - [Evaluation / Tracing] Add
mlflow.genai.test_agentfor automated agent stress-testing (#22990, @serena-ruan) - [Gateway] Add /gateway/proxy/{endpoint_name}/{path} raw proxy endpoint (#23330, @TomeHirata)
- [UI] Add Ollama as assistant provider (#22098, @SuperSonnix71)
- [Model Registry / Tracking] feat(tracking): Add reader/writer instance routing for database replicas (#22910, @ravidarbha)
- [Tracing / Tracking] Add workspace trace archival configuration plumbing (#22164, @HumairAK)
- [Prompts / Tracking] Promote
promptto a first-class RBACresource_type(#23248, @PattaraS) - [Tracing] Publish claude code integration as a plugin and add a setup wizard. (#23218, @B-Step62)
- [UI] Forward Usage tab MetricsFilter metric filters to chart View traces links by translating to Traces page URL DSL (#23239, @aaronteo-db)
- [Tracing] Claude Code Agent Typescript (#20414, @joelrobin18)
- [UI] Adding metric filter component for Experiment Usage tab (#23120, @aaronteo-db)
- [Tracing] Add
Linkentity andLiveSpan.add_link()for OpenTelemetry Span Links (#22797, @khaledsulayman) - [Docs / Evaluation] Add Google ADK and third-party scorers (#22299, @debu-sinha)
- [UI] Open
/adminto workspace managers (scoped per their workspace) (#23086, @PattaraS) - [Tracing] Trace
Runner.run_streamed()in OpenAI Agents SDK autolog (#22962, @ktrk115) - [Tracking] Feature/sagemaker build network option (#22996, @pdifranc)
- [Docs / Tracing / UI] Add log levels for Trace Spans with UI switch to filter (#23017, @rrtheonlyone)
- [Tracing / UI] Improve trace page empty state onboarding with setup and code blocks (#22533, @vivian-xie-db)
- [Tracing / Tracking] Add UC traces upsell message for set_experiment calls on Databricks (#23038, @xsh310)
- [Server-infra / UI] [Admin-UI-3/4] Add Platform Admin pages (#22929, @PattaraS)
- [UI] [Admin-UI-2/4] Add /account page and bottom-left account widget (#22973, @PattaraS)
- [Build] Add Helm charts for deploying mlflow to kubernetes cluster (#21973, @WeichenXu123)
- [Tracking] Fix Databricks unified auth support when MLFLOW_ENABLE_DB_SDK=true (#20599, @vb-dbrks)
- [Tracking] [Admin-UI-1/4] Add backend auth endpoints (#22928, @PattaraS)- [Evaluation] Support multiple assessments per trace in MemAlign optimizer (#22846, @veronicalyu320)
- [Docs / Model Registry / Prompts] Include
workspacein webhook delivery envelopes when workspaces are enabled (#22873, @copilot-swe-agent) - [Server-infra] Seed default RBAC roles and grant creator on workspace creation (#22857, @PattaraS)
Bug fixes:
- [UI] Warn on submit with an unsaved direct-grant draft (#23612, @PattaraS)
- [Tracing] Clear archive-now requests for non-archivable leftovers (#23655, @HumairAK)
- [Tracking] Forward MLflow client telemetry from inside Databricks workloads (#23483, @smoorjani)
- [UI] Drop the vestigial
directPermissionsparallel pass; hide synthetic__user_<id>__roles on Account/UserDetail (#23578, @PattaraS) - [Gateway] Tighten response format JSON schema type (#23290, @fenil210)
- [Tracking] fix(tracking): return
<console>formlflow.source.namewhensys.argv[0]is empty (#23352, @xodn348) - [Scoring] Fix UnicodeEncodeError on artifact download with non-ASCII filename (#23241, @1fanwang)
- [Artifacts / UI] Preserve pdfjs-dist bundles in webpack build (
craco.config.js) (#23349, @B-Step62) - [Tracking] Improve misleading DB SDK auth error (#23374, @B-Step62)
- [Tracing] Make
mlflow.get_traceV4 retry policy configurable (#23443, @artjen) - [Tracking] Release
_post_import_hooks_lockbefore firing hooks (#23466, @harupy) - [Model Registry / Prompts] RBAC: extend
promptresource_type to after-request handlers (#23426, @PattaraS) - [Evaluation] Surface mlflow version mismatch when deserializing scorers (#23215, @smoorjani)
- [Tracing] Ship compiled
dist/in @mlflow/mlflow-openclaw soopenclaw plugins installworks (#23220, @B-Step62) - [Tracing] Fix ended
LiveSpanstate mutation (#23152, @SahilKumar75) - [Gateway] Fix
AmazonBedrockProvider._build_converse_kwargstool-call history and validation for Bedrock Converse (#23223, @copilot-swe-agent) - [UI] fenil-fix: experiment name error (#23199, @fenil210)
- [Tracking] Add workspace isolation on scorers when creating a guardrail (#23115, @mprahl)
- [Evaluation] [Security] Add
MLFLOW_ALLOW_PICKLE_DESERIALIZATIONguard toPickleEvaluationArtifact(#23183, @TomeHirata) - [UI] Fix
getExperimentNameValidatorshowing incorrect "deleted state" error for active experiments (#23169, @copilot-swe-agent) - [Tracking] Fix
runs:/<run_id>/<model_name>loading by resolving logged-model artifacts viamodels:/<model_id>(#23130, @copilot-swe-agent) - [Gateway] Fix Vertex AI gateway to use Anthropic API format for Claude models (#23175, @TomeHirata)
- [Tracing] Fix invalid stop-hook command when using
pixienvironment manager (#23030, @copilot-swe-agent) - [Gateway] Fix MySQL-incompatible
NULLS LASTsyntax inlist_endpoint_guardrail_configs(#23168, @copilot-swe-agent) - [Evaluation]
gateway: honor Anthropicapi_basefrom secretauth_config(#23167, @copilot-swe-agent) - [Gateway] Fix nested array items being stripped from function tool schemas (#23053, @shyamspr)
- [Tracing / Tracking] Fix OTLP trace ingestion: double-encoded request ID and missing trace tags (#23067, @sairavuri-sudo)
- [Gateway] Add per-image/video/audio pricing to
amazon.nova-2-multimodal-embeddings-v1:0in Bedrock catalog (#23117, @copilot-swe-agent) - [Evaluation] Skip re-alignment of unchanged traces in
MemAlignOptimizer(#23008, @veronicalyu320) - [Tracing] Fix trace API authorization vulnerability (#23014, @TomeHirata)
- [Models] Fix
sentence_transformerspyfunc predict for v5.4+ (#23108, @harupy) - [Tracing / UI] Fix grouped trace session counts in the UI (#23012, @lavaFreak)
- [Tracing] Fix Azure OpenAI streaming usage tracing (#23036, @Genmin)
- [Tracing] Add
session_counttrace metric for grouped traces (#23011, @lavaFreak) - [Evaluation] Fix
gateway_adapternot forwarding workspace header to judge endpoints (#23047, @sairavuri-sudo) - [Scoring] Use
TaskContext.artifactDirto get the correct unpacked artifacts directory (#22969, @WeichenXu123) - [Models / Tracking] Add
MLFLOW_SKIP_PIP_REQUIREMENTS_CHECKenv var to bypass pip validation in air-gapped environments (#22920, @copilot-swe-agent) - [Tracking] Aggregate role-based grants in workspace-level permission checks (#22954, @PattaraS)
- [UI] Fix unclickable "View logs for this period" link in
ScrollableTooltipwhen many data series are shown (#22917, @copilot-swe-agent) - [Tracking] Fix
delete_userFK constraint failure when user has dependent rows (#22922, @PattaraS) - [Tracing] Preserve cache_read tokens in
@mlflow/claude-codeTypeScript plugin for cache observability (#22906, @dgokeeffe) - [Tracing] Add OpenClaw tracing plugin (#22717, @B-Step62)
- [UI] Fix uncaught rejection in
CreateBudgetPolicyModalsubmit (#22903, @PattaraS)
Documentation updates:
- [Tracing] Clarify trace archival max-traces behavior. (#23656, @HumairAK)
- [Docs] docs: fix admonition rendering broken by Docusaurus 3.10 (#23635, @B-Step62)
- [Docs / Tracing] Refresh Claude Code tracing docs and split Claude Agent SDK page (#23633, @B-Step62)
- [Tracing] Document trace archival setup and behavior. (#23371, @HumairAK)
- [Docs] docs: add Role-Based Access Control page; refresh permissions docs (#23133, @PattaraS)
- [Docs] Update
codex.mdxto use Codexopenai_base_urlconfig (CLI +~/.codex/config.toml) (#23272, @copilot-swe-agent) - [Docs] Fix
ANTHROPIC_BASE_URLexample in Claude Code gateway docs (#23269, @copilot-swe-agent) - [Docs] Add trace integrations docs for n8n and Openweb UI (#23249, @WeichenXu123)
- [Docs / Tracing] Docs: add Hermes Agent AI Gateway and tracing guides (#23216, @B-Step62)
- [Docs] Fix webhook auth endpoint placeholders in
basic-http-auth.mdx(#23198, @copilot-swe-agent)
Small bug fixes and documentation updates:
#23637, #23405, #23181, #23673, #23659, #23293, #23440, #23441, #23127, #23182, #23179, #23180, #22992, @B-Step62; #23557, @AayushShah-904; #23594, #23592, #23583, #23496, #23417, #23415, #23414, #23413, #23412, #23410, #23409, #23408, #23407, #23406, #23399, #23398, #23452, #22861, #22933, #22888, @PattaraS; #23531, #23282, #23281, #23280, #23279, #23278, #23277, #23276, #23275, #23274, #23173, #23189, #23174, #23171, @TomeHirata; #23495, #23447, #23448, #23422, #23360, #23322, #23316, #23313, #23085, #23304, #23268, #23084, @kriscon-db; #23494, #23493, #23489, #23473, #23470, #23468, #23467, #23463, #23461, #23459, #23462, #23457, #23454, #23450, #23449, #23427, #23428, #23424, #23411, #23395, #23391, #23390, #23388, #23387, #23386, #23385, #23383, #23380, #23381, #23373, #23372, #23361, #23357, #23354, #23351, #23348, #23343, #23342, #23331, #23321, #23320, #23318, #23315, #23307, #23297, #23288, #23286, #23283, #23262, #23264, #23256, #23260, #23255, #23240, #23228, #23234, #23233, #23230, #23227, #23207, #23203, #23206, #23197, #23187, #23185, #23177, #23166, #23157, #23156, #23154, #23155, #23153, #23149, #23148, #23143, #23142, #23141, #23140, #23135, #23134, #23132, #23131, #23129, #23126, #23123, #23122, #23118, #23112, #23110, #23107, #23105, #23093, #23090, #23010, #23088, #22999, #22998, #22988, #22989, #22987, #22986, #22981, #22975, #22960, #22958, #22602, #22937, #22923, #22912, #22907, #22908, #22898, #22894, #22893, #22892, #22889, #22887, #22886, @harupy; #23423, #23464, #23287, @aaronteo-db; #23368, @ynachiket; #23366, @mprahl; #23363, #23333, #23136, #23005, #22777, #22934, #22605, #22497, #22256, @HumairAK; #22832, @james-fletcher-db; #23214, @SomtochiUmeh; #23224, #23103, #23101, #22959, #22924, @copilot-swe-agent; #22977, @4binas; #22961, #22955, @serena-ruan; #22865, @iis-MarkKuang; #22799, @artjen