Releases: mlflow/mlflow
Release list
Model Catalog
Per-provider model catalog files. Updated weekly by CI.
MLflow 3.15.1
MLflow 3.15.1 is a patch release that includes bug fixes and documentation updates.
Bug fixes:
- [Model Registry] Skip
env_packon ARM client images (#24762, @qyc) - [Scoring / Tracking] Harden version parsing against missing/non-PEP440 versions on Databricks Serverless (#24799, @PattaraS)
Documentation updates:
- [Docs] Clarify scorer versioning documentation (#24769, @nihalmenon)
v3.15.0
MLflow 3.15.0 includes several major features and improvements
Major New Features
- 🧩 MCP Registry: A centralized catalog for registering, versioning, and sharing Model Context Protocol servers — with semantic-versioned configs, promotable aliases, tags, auto-discovered tools, and ready-made connection instructions for Claude Code and
.mcp.json. Manage it from the UI, REST API, or Python! - 🤖 MLflow Assistant enhancements: The in-app AI assistant now supports multiple LLM providers (Claude Code, Codex, and OpenAI-compatible/Gateway endpoints) chosen from a single settings page, displays live per-session token usage and estimated cost in the composer, and is easier to set up —
mlflow agent setupcan enable it in one prompt, with API keys stored securely in the Gateway's LLM Connections. - 🗂️ Sharable table views: Save named views of the Runs table — capturing columns, order, widths, filters, and sort — and share them by URL.
- ⚡ Proxy-less artifact upload/download via presigned URLs: Large artifact transfers can now bypass the tracking server and talk directly to cloud storage (e.g. S3) through presigned URLs, cutting server load and timeouts on big files. We fall back to proxied transfer automatically for backward compatibility.
- 🖼️ Multi-modal attachments in LLM judges:
{{ trace }}judges created withmake_judge()can now see images captured in trace spans via a newget_span_imagetool, which fetches attachments as base64 data URLs and passes them to multimodal models (Anthropic, Gemini, and OpenAI-compatible via litellm) — enabling evaluation of vision tasks, screenshots, and other visual content.
Other Assorted Features & Improvements:
- [Tracing / Tracking] Add Pydantic AI 2.x autologging support (#24721, @B-Step62)
- [Tracing / UI] [3/3] Add action recommendation for low-value issue detection result (#24580, @B-Step62)
- [Gateway] Support per-endpoint budget policies in the AI Gateway (#24370, @joelrobin18)
- [Evaluation / Gateway] Add
sap-ai-core:/provider for SAP AI Core Orchestration v2 withextra_headerssupport (#24356, @shivamxtech) - [Model Registry] [Model Registry] Migrate UC model artifact download to native temp-creds (#24576, @AknA13)
- [Gateway / Tracing / UI] [2/3] Simplify issue detection start modal (#24579, @B-Step62)
- [Tracing / UI] [1/3] Run issue detection in the background (#24578, @B-Step62)
- [Tracing] [BUG] Fix otel parent context propagation (#24444, @iyashk)
- [Model Registry] [Model Registry] Gate UC model-registry client on native
/api/2.1endpoints (#24517, @AknA13) - [Docs / Tracking] Enable artifacts-only mode with workspaces (#24452, @kramaranya)
- [Tracing / UI] Stop eagerly prefetching full neighboring traces in tracing UI (#24411, @DaoDaoNoCode)
- [Docs / Gateway] Authenticate OpenAI-protocol coding agents through the RBAC gateway (#24294, @joshuawong-db)
- [Tracing] feat: add search traces to typescript sdk (#23660, @WUMIKE233)
- [Prompts / UI] Add per-tool cards with a Monaco JSON editor and Format action to the Playground (#24129, @tanghaoji)
- [Prompts / UI] Redesign Playground
Toolssettings with an Add-tools entry flow (#24102, @tanghaoji) - [] feat: add Cursor model catalog with Auto and Composer 2.5 pricing (#24078, @TomeHirata)
- [Tracing / Tracking] Support numeric assessment trace filters (#23948, @tanghaoji)
Bug fixes:
- [Tracing] Compute
mlflow.llm.costfor Claude Code plugin traces on Databricks (#24416, @harupy) - [UI] Fix artifact direct download capability checks in UI (#24748, @B-Step62)
- [Tracing / UI] Refresh traces saved-view on load across multiple windows (#24746, @joshuawong-db)
- [UI] Fix UnauthorizedError constructor message (#24729, @mihir2921)
- [UI] Fall back to nested spans for Chat Sessions turn content (#24703, @MannXo)
- [Tracing / Tracking] Fix experiment GC cascades for traces and logged models (#24351, @copilot-swe-agent)
- [Tracking] Fix workspace-enabled tracking store crash-loop when the default experiment is renamed (#24598, @daniellok-db)
- [Tracking] Fix Kubernetes auth token extraction for
kubernetes-client36+ (#24687, @HumairAK) - [UI] Refresh Assistant config when leaving settings so the provider indicator isn't stale (#24704, @joshuawong-db)
- [Build] Fix
imagePullSecretsfor garbage collection CronJob (#24626, @nightcityblade) - [UI] Lift Assistant floating button above bottom-pinned action bars (#24606, @joshuawong-db)
- [Evaluation / Tracing] Fix issue detection structured output schema (#24674, @B-Step62)
- [Models] Add
MLFLOW_ALLOW_PICKLE_DESERIALIZATIONguard tomlflow.statsmodelsflavor (#24686, @B-Step62) - [Tracking] Preserve static prefixes in notebook trace renderer URL (#24682, @mprahl)
- [UI] Fix blank and fields in run detail sidebar (#24634, @aishdbx)
- [Models / Scoring] Normalize reasoning content parts for
ChatAgentMessageinparse_message(#24642, @iyashk) - [UI] Fix Evaluation Runs
Actionsdropdown remaining clickable when no runs are selected (#24676, @daniellok-db) - [UI] Surface truncated assistant streams as errors instead of a silent
done(#24603, @joshuawong-db) - [Tracking] Honor experiment grants on
--artifacts-onlyservers when workspaces disabled (#24585, @PattaraS) - [Tracking / UI] Bound get-history-bulk-interval memory by sampling metric history by row (#24305, @Mytolo)
- [Tracking] [BUG] Enforce artifact authorization on presigned download route in basic-auth (#24571, @iyashk)
- [Evaluation] Preserve explicit expectations in
mlflow.genai.evaluate(#24561, @yangbaechu) - [Gateway / UI] Support Portkey routing configuration in the AI Gateway (#24398, @rs-03)
- [UI] Show input modal submission errors inline instead of a transient toast in
GenericInputModal(#23918, @Vedant-Agarwal) - [Evaluation / Tracking] Enforce experiment permission on online scoring config endpoints (#24562, @aaronteo-db)
- [Tracing / Tracking] Propagate contextvars into trace read thread pool workers (#24456, @iyashk)
- [] Fix Windows path handling in artifact downloads (#20225, @acepace)
- [UI] Fix sidebar navigation and workflow type not updating on URL navigation or browser Back/Forward (#22116, @DaoDaoNoCode)
- [Gateway] Don't send
stream_optionsfrom the Assistant to the gateway (#24552, @joshuawong-db) - [Evaluation] Fix MemAlign guideline distillation against Databricks structured-output models (#24547, @veronicalyu320)
- [UI] fix: sort tags alphabetically in runs tag multiselect dropdown (#24134, @mysticalayushi)
- [Tracing] Fix LLM cost on autologged
ChatDatabrickstraces by preferringls_provider(#24185, @james-fletcher-db) - [Tracking] Fix pytorch
pt2export for batch-size-1input_example(useDim.AUTO) (#24494, @B-Step62) - [Tracing / Tracking] Fix double-counted trace token usage for rollup parent spans in
SqlAlchemyStore.log_spans(#24339, @gauthierpiarrette) - [Tracking] Fix
MlflowSparkStudypruner and direction handling (#24425, @hellocybernetics) - [Gateway / Tracing / UI] Fix gateway Try-in-Browser traces rendering as raw
kvlistdata in the UI (#24400, @joelrobin18) - [UI] Fix role modal resource pickers failing with
FEATURE_DISABLEDwhen workspaces are disabled (#24441, @joelrobin18) - [Model Registry] [Model Registry] Restore oneof on TemporaryCredentials.credentials (#24489, @AknA13)
- [UI] [fix] Fix runs-table column reordering before pinned anchors (#24465, @joshuawong-db)
- [UI] Fix admin permission grants failing with
FEATURE_DISABLEDwhen workspaces are disabled (#24383, @joelrobin18) - [UI] Fix
Columnsdropdown anchoring on the runs table (#24419, @joshuawong-db) - [UI] Fix artifact viewer crash on text files with many lines (#23899, @jayceguo)
- [Tracing] Fix async trace export dropping workspace context (#24093) (#24275, @vatsalyd)
- [Tracing] fix: store OpenAI agent Generation span attributes under correct SpanAttributeKey constants (#24290, @RudraDudhat2509)
- [Tracing / Tracking] Fix Postgres deadlock between
start_trace()andlog_spans()on trace metadata (#24338, @joshuawong-db) - [Tracing / Tracking] Avoid eager span deserialization for TRACKING_STORE trace reads. (#24331, @shivamAmrutia)
- [Gateway] Resolve workspace context before running FastAPI auth validators (#24368, @joelrobin18)
- [Tracing] Fix
RecursionErrorcorrupting deeply nested traces (#24362, @joshuawong-db) - [Evaluation / Tracing] Fix
genai.evaluatecrash when a cloned trace is unavailable (#24357, @joshuawong-db) - [Scoring] Handle uncut
{major}.xminor inDatabricksRuntimeVersion.parse(#24353, @PattaraS) - [Evaluation / Tracing] Fix basic-auth before-request validators invoking view functions (#24354, @joshuawong-db)
- [UI] Fix promo modal focus (aria-hidden) and show it on the empty models page (#24278, @aminehd)
- [Scoring] Fix
spark_udfInvalidVersionon Databricks Serverless for{major}.xruntime image strings (#24336, @PattaraS) - [Tracing] Fix trace OTLP encoding for lone surrogates (#24318, @sanatb187)
- [Model Registry / Models] Forward tags to registered ModelVersion in Model.log() (#24271, @Ankita7033)
- [Tracing / UI] Fix duplicate full-trace fetch for
TRACKING_STOREtraces in the trace UI (#24319, @PattaraS) - [Models / Scoring] Honor declared ONNX execution providers at load time (#24232, @qyc)
- [Evaluation] Fix pos_label not propagated to evaluate ROC/PR/calibration curves (#24049, @immu4989)
- [Tracking] Resolve experiment id from workspace-prefixed artifact paths in auth proxy (#24214, @rakshithbk-moeng)
- [] Fix
DatabricksSDKModelsArtifactRepositoryauth on serverless executors (#24247, @harupy) - [Evaluation] Send strict-compatible
response_formatfor AI Gateway judges and scorers (#24048, @B-Step62) - [Model Registry] Require read permission on the source run or model when creating a model version (#24293, @PattaraS)
- [...
v3.14.0
MLflow 3.14.0 includes several major features and improvements
Major New Features
- 🚀 One-command agent onboarding with
mlflow agent setup: Install MLflow, set up tracing, and hand your favorite coding agent (Claude Code, OpenAI Codex, or OpenCode) the MLflow skills to instrument your app, all from a single command. - ⚡ Durable, low-latency tracing for Claude Code: Roll out Claude Code tracing across a team with confidence: a write-ahead-log keeps it from slowing the agent, overwhelming the tracking server, or losing traces on a network blip or crash.
- 📝 Review Queues for traces: Assign traces to reviewers (or agents) and collect structured feedback and ground-truth annotations in the UI, written straight back onto the trace so they are immediately usable for evaluation.
- 🗂️ Revamped evaluation dataset UI: Browse, inspect, edit, and bulk-manage evaluation dataset records directly in the UI, with click-through to the source trace.
- 🧪 Pytest integration for regression testing: Write GenAI regression tests as plain pytest functions with the
@mlflow.testmarker, gate them in CI, and review test history and per-assertion judge results in the UI. - 🎛️ LLM Playground: Iterate on prompts in the browser against your AI Gateway endpoints and Prompt Registry versions, with settings, tools, structured output, and template variables.
Breaking Changes
- [Models] Change
mlflow.sklearnserialization_formatdefault fromcloudpickletoskops(#23987, @copilot-swe-agent) - [Models] Change
serialization_formatdefault to"pt2"formlflow.pytorch.log_modelandmlflow.pytorch.save_model(#23988, @copilot-swe-agent) - [Models] Change
serialization_formatdefault to"skops"inmlflow.lightgbmlog_model/save_model(#23986, @copilot-swe-agent)
Other Assorted Features & Improvements:
- [Evaluation / UI] [3/3] Show regression-test results in the existing eval-run UI (#23985, @B-Step62)
- [Prompts / UI] Add "Save prompt to registry" action to the Prompt Playground (#24021, @B-Step62)
- [Prompts] Prompt Playground (#23273, @TomeHirata)
- [Evaluation] [2/3] Add
EvaluationResult.passed/.reasonfor@mlflow.testassertions (#23869, @B-Step62) - [UI] Review queues: list the affected queues in the delete-question confirmation (#24002, @kriscon-db)
- [UI] Add shareable review queue URLs with a
startReviewdeep link (#23941, @harupy) - [UI] Allow editing a completed review in place in focus mode (#23967, @kriscon-db)
- [Tracing] Add
x-mlflow-run-idsupport to OTLP trace ingestion (#23664, @sanatb187) - [Evaluation / Tracing] [1/3] Add @mlflow.test pytest marker and assertion framework (#23864, @B-Step62)
- [UI] Improve review queue empty states with onboarding content (#23903, @B-Step62)
- [UI] Add
mlflow skills view/listCLI (#23907, @joshuawong-db) - [UI] Improve review queue list: flat layout, sortable columns, status filter (#23902, @B-Step62)
- [Tracing] Add
MLFLOW_WORKSPACEsupport to OSS auth provider (#23927, @Nehanth) - [Gateway] Add cached token pricing to Databricks model catalog (#23901, @TomeHirata)
- [Evaluation] Add
MLFLOW_GENAI_JUDGE_DEFAULT_MODELenvironment variable (#23860, @B-Step62) - [Evaluation] Wire "Run judge(s)" submission in "Run Eval" in Evaluations Run page to POST /mlflow/genai/evaluate/invoke (#23781, @aaronteo-db)
- [Evaluation] Add rule-based built-in scorers:
RegexMatch,PIIDetection,ResponseLength(#22571, @debu-sinha) - [Tracing] Support Databricks backend in
mlflow agent setup(#23783, @harupy) - [Evaluation] Add POST /mlflow/genai/evaluate/invoke handler & job for UI-triggered eval runs (#23779, @aaronteo-db)
- [Tracing] [Claude Code] Support UC trace location via
MLFLOW_TRACE_LOCATION(#23770, @B-Step62) - [Tracing] [Codex] Support UC trace location via
MLFLOW_TRACE_LOCATION(#23771, @B-Step62) - [Evaluation / Tracking] [3/N] Label schemas: handlers + SDK + REST client (#23603, @kriscon-db)
- [Tracing / Tracking] Add
run_idsupport for trace APIs (#23629, @sanatb187) - [Evaluation / UI] Dataset v2 port (#23560, @B-Step62)
- [Evaluation / Tracking] Add OSS-native label schema entity, validation, and SQL store (#23597, @kriscon-db)
- [Tracing] Support mapping gen_ai.conversation.id to MLflow trace session (#23584, @SahilKumar75)
- [Tracing / UI] Added polling logic to live check and auto-refresh traces tab empty state with trace first ingestion (#23184, @vivian-xie-db)
- [Tracing] Add MlflowWalSpanExporter to hand traces off to the WAL daemon (#23641, @aaronteo-db)
- [Tracing] Support native UC trace ingestion from TypeScript SDK (#23562, @B-Step62)
- [Evaluation] Add Google ADK LLM judge scorers (
Hallucination,Safety,ResponseEvaluation) (#22496, @debu-sinha) - [Gateway] Add OpenAI
/responses/compactpassthrough route to AI Gateway (#23353, @id-jazzx) - [Gateway] Add 21 new models to Databricks model catalog (#23520, @TomeHirata)
Bug fixes:
- [Evaluation] Fix
ChrfScoreRAGAS scorer instantiation due to class name mismatch (#24047, @B-Step62) - [Tracing / Tracking] Map OpenAI Agents SDK guardrail spans to
SpanType.GUARDRAIL(#24044, @B-Step62) - [UI] Surface review-question modal failures as toasts (#24035, @kriscon-db)
- [Tracking] Prevent review queues from shadowing usernames (#24034, @kriscon-db)
- [Tracking] Make review-queue names unique case-insensitively (defined at table creation) (#24015, @kriscon-db)
- [Tracking / UI] Normalize review-queue add-items ids before the trace-existence check (#24029, @kriscon-db)
- [UI] Scope review-queue permission UX gate to the active workspace (#24031, @kriscon-db)
- [UI] Surface review-queue trace-removal failures and keep the selection on error (#24027, @kriscon-db)
- [UI] Surface assignable-users load error in review-queue pickers (#24020, @kriscon-db)
- [UI] Prefill review answers from the most recent assessment by timestamp (#24026, @kriscon-db)
- [UI] Surface review-queue self-assign failures with an error toast (#24018, @harupy)
- [Evaluation / Tracing] Fix genai.evaluate() dropping dataset expectations and tags with scorers=[] (#23957, @Incheonkirin)
- [UI] Require at least one question when saving review queue settings (#24007, @harupy)
- [UI] Send review-queue schema_ids only when the questions actually change (#24017, @kriscon-db)
- [UI] Block saving a review when a previously-answered question is cleared (#24008, @kriscon-db)
- [UI] Compare review-queue picker usernames case-insensitively (#24014, @kriscon-db)
- [Tracking] Bind review-queue completed_by to the authenticated caller (#24006, @kriscon-db)
- [UI] Fix non-functional JSON/Table toggle in the review queue full-trace explorer (#24005, @kriscon-db)
- [UI] Surface review-queue deletion failures instead of swallowing them (#24004, @harupy)
- [Tracing] Fix TS SDK traces storage when MLflow server uses a local FS artifact root without mlflow-artifacts:// uri schema (#23992, @aaronteo-db)
- [UI] Show minute fidelity in the review-queue "Date added" column (#23993, @kriscon-db)
- [UI] Review queues: show the optional rationale box in the question preview (#23995, @kriscon-db)
- [Tracing] Set model provider in Anthropic autolog so LLM cost is computed (#23972, @B-Step62)
- [Evaluation] Add missing
ContextUtilizationRAGAS scorer class (#23956, @B-Step62) - [UI] Refresh per-trace queue membership after adding/removing review-queue items (#23940, @kriscon-db)
- [Gateway] Fix JSON response format for Gemini and Anthropic gateway providers (#23932, @tanghaoji)
- [Tracking] Fix
metrics/get-historyreturning empty results whenmax_resultsis omitted (#23917, @Vedant-Agarwal) - [UI] Auto-select default user queue on Review tab load (#23904, @B-Step62)
- [UI] Require at least one answer before completing a focused review (#23923, @kriscon-db)
- [Tracing / Tracking] Clean up review-queue items and assessment errors when a trace is deleted (#23913, @harupy)
- [Evaluation / Tracing] Support common RETRIEVER chunk content fields (#23867, @sanatb187)
- [Tracing / Tracking] Preserve OTel resource attributes during OTLP trace ingestion (#23829, @TomeHirata)
- [Gateway] Fix AI Gateway SSE large-frame read limit (#23880, @yashjiv15-jazzx)
- [Evaluation] Honor
OPENAI_BASE_URLenv var in OpenAI provider config (#23862, @B-Step62) - [Build] @mlflow/XXXX package root points to missing dist/index.js (#23874, @WeichenXu123)
- [Build] Add auth extra for full docker image (#23892, @WeichenXu123)
- [Artifacts] Return 404 for missing Azure blob artifacts (#23832, @feynmanliang)
- [Tracking] Fix
_stop_listen_for_spark_activityhanging indefinitely on CLOSE_WAIT socket (#23839, @kishor-rkrishnan) - [UI] Install Codex/OpenCode skills at
.agents/skills(#23847, @harupy) - [Tracing / Tracking] Fix
mlflow.openai.autologspan type resolution forChatCompletionssubclasses (#23759, @harupy) - [Tracking] Fix
mlflow db upgradeon a fresh database (#23752, @harupy) - [Tracking] Expose workspace on experiment response (#23593, @joshuawong-db)
- [UI] Handle missing clipboard API in insecure HTTP contexts (#23598) (#23601, @srinjoy356)
- [Build / UI] Fix PDF artifact viewer
import.metaSyntaxError (#23731, @harupy) - [Tracking] Fix
_parse_extra_conffor HDFS config values containing=(#23730, @copilot-swe-agent) - [Prompts / UI] Hide experiment kebab on prompt details page (#23661, @harupy)
- [Tracking] Enforce upload artifact size for chunked requests (#23712, @dfgvaetyj3456356-hash)
- [Projects] Reject path t...
v3.13.0
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, @...
v3.13.0rc0
We're excited to announce MLflow 3.13.0rc0, which deepens agent observability, tightens permissions, and broadens deployment options:
Major New Features:
-
RBAC + Admin UI: Major overhaul of MLflow's Role-Based Access Control — legacy per-resource permission tables collapsed into
role_permissions, unified per-user permission APIs under/mlflow/users/permissions/*, workspaceUSEpermission lets users create experiments and registered models, default roles are seeded on workspace creation,promptis promoted to a first-class RBACresource_type, and a new 4-page Admin UI (account widget,/accountpage, Platform Admin pages, backend auth endpoints) opens to workspace managers scoped per their workspace. (#22855, #22857, #22859, #22928, #22929, #22941, #22973, #23086, #23247, #23248, #23337, #23379, @PattaraS) -
Coding-Agent Tracing as Plugins: Claude Code, OpenClaw, Ollama, and OpenAI Codex are now wired into the AI Gateway as first-class assistant providers, plus a Claude Code TypeScript plugin with a setup wizard and
settings.local.jsonsupport. The legacy Python autolog hook formlflow autolog claudeis replaced by the new official plugin, and a coding-agent endpoint creation flow is now available directly in the AI Gateway UI. (#20414, #22098, #22566, #22717, #23218, #23285, #23339, #23430, #23517, @B-Step62, @joelrobin18, @Gkrumbach07, @SuperSonnix71, @TomeHirata) -
Trace Archival: End-to-end trace archival across the tracking stack. Includes archival configuration models, OTLP and artifact helpers, SQLAlchemy archival passes, archive-aware retrieval fallback, plus workspace/experiment/server-level archival settings in the UI. Read archived traces back seamlessly. (#23359, @mprahl)
-
Helm Charts for Kubernetes Deployment: First-class Helm chart for deploying MLflow to Kubernetes clusters — production-ready configuration, ingress, persistence, and
appVersionwired to the released MLflow image. Get fromhelm installto a running tracking server without writing your own manifests. (#21973, @WeichenXu123) -
mlflow.genai.test_agentfor Automated Agent Stress-Testing: New API for stress-testing GenAI agents — generate adversarial inputs, replay them through your agent, and review the resulting traces in MLflow. Wires into the existing evaluation flow and assessment APIs. (#22990, @serena-ruan) -
OpenTelemetry Span Links: Tracing now supports the OpenTelemetry
Linkentity viaLiveSpan.add_link(), letting you connect causally related spans across traces. (#22797, @khaledsulayman) -
Database Replica Routing: The SQL tracking store now supports reader/writer instance routing for database replicas, so read-heavy MLflow deployments can scale horizontally without overloading the primary. (#22910, @ravidarbha)
Stay tuned for the full release, which will include even more features and bug fixes.
To try out this release candidate, please run:
pip install mlflow==3.13.0rc0
TypeScript SDK 0.2.0
Bump several RC TypeScript packages stable version.
v3.12.0
MLflow 3.12.0 includes several major features and improvements
Major New Features
- 🖼️ Multimodal Tracing: Users can now store multimodal content in tracing spans as artifact attachments instead of inline binary data. We've also patched the UI to support the new mlflow-attachment:// style URI, with rich rendering available for PDFs, audio, and images.
- 🤖 Codex, Gemini, Qwen coding agent tracing support: Similar to our Claude Code tracing integration, we've now added support for the Codex, Gemini, and Qwen coding agent platforms as well!
- 🛡️ Gateway guardrails: You can now set guardrails on your gateway endpoints to prevent unsafe or non-compliant model inputs and outputs. Try it out in the MLflow UI!
- ⚡ Trace table pagination: The traces tab is now paginated, rather than fetching all traces up to a limit of 1000. This improves initial load time, and makes the page feel more responsive overall.
Breaking Changes
Other Assorted Features & Improvements:
- [UI] Add coding agents section to AI Gateway quick start (#23006, @TomeHirata)
- [Tracing] feat: record caller in gateway traces from request headers (#22926, @TomeHirata)
- [] Run guardrails on passthrough endpoints; skip
response_formatfor non-chat payloads (#22856, @TomeHirata) - [] Gateway: preserve client auth header for subscription-based CLI tools (
claude-cli,Codex-Desktop,GeminiCLI) (#22915, @TomeHirata) - [Tracing] Expose Codex and Qwen Code hooks as installable CLI binaries (#22853, @kriscon-db)
- [Tracking / UI] Add Portkey as a supported AI Gateway provider (#22830, @sairavuri-sudo)
- [Tracking] Cache successful basic-auth credential checks to eliminate per-request PBKDF2 (#22817, @PattaraS)
- [] Add
last_updated_atfield to model catalog entries (#22838, @copilot-swe-agent) - [Evaluation] Enable third-party scorer registration in OSS MLflow (#22634, @smoorjani)
- [] Add platform-side telemetry fields to Gateway invocation and budget events (#22557, @PattaraS)
- [Tracing] Auto-start SQL warehouse before V4/V5 MLflow tracing calls (#22798, @artjen)
- [Tracing] Migrate Claude Code tracing to TypeScript-based plugin for simpler installation and runtime handling. (#22338, @B-Step62)
- [Tracing] Add TypeScript Qwen Code tracing via Stop hook (#22411, @kriscon-db)
- [] Support
model_kwargsin DeepEval scorers for LLM parameter control (#22494, @debu-sinha) - [] Add Application Default Credentials auth mode for Vertex AI gateway (#22754, @harupy)
- [UI] Reorganize Settings into section-based routing with sub-sidebar navigation (#22743, @serena-ruan)
- [Tracing] Add TypeScript Codex CLI tracing via
notifyhook (#22410, @kriscon-db) - [Tracing / UI] Add Share button to trace detail view (#22608, @alkispoly-db)
- [Docs / Models] Add
mlflow.diffusersflavor for diffusion model LoRA adapters (#22253, @Rasaboun) - [Tracing] Add size limit for trace attachments (#22575, @kriscon-db)
- [Tracing] Add
GeminiCliTranslatorfor Gemini CLI OTLP span type mapping (#22409, @kriscon-db) - [Tracing] Add JSON OTLP encoding support for trace ingestion (#22408, @kriscon-db)
- [Tracing] Extract
service.namefrom OTLP resource attributes for usage telemetry (#22407, @kriscon-db) - [Tracing] Add MLflow tracing spans to guardrail execution in gateway (#22581, @TomeHirata)
- [Tracing / UI] Add rendering size guards for large media content (#22574, @kriscon-db)
- [Tracking] #21037 Add presigned upload URL endpoint for S3 artifact uploads (#21039, @henishborad)
- [UI] Add Guardrails tab to endpoint editor (#22360, @TomeHirata)
- [UI] Add click-to-expand modal for trace attachment images (#22461, @kriscon-db)
- [UI] Enhance Gateway quick start cards with logos, multi-model options, and compact variant (#22513, @xq-yin)
- [Tracing] Add @mlflow/vercel for better Vercel AI SDK tracing in Databricks UC (#22105, @dbrx-euirim)
- [UI] [UI] Refactor API keys page: bulk delete, inline drawer editing, consistent list pattern (#22485, @xq-yin)
- [] Add
Guardrailbase class andJudgeGuardrailimplementation (#21964, @TomeHirata) - [Tracing] Add multimodal demo traces with synthetic image and audio data (#22465, @kriscon-db)
- [] [FR] #22217 Add configurable provider allow/deny list to AI Gateway (#22291, @etirelli)
- [UI] [UI] Add bulk duplicate and delete actions to AI Gateway endpoints table (#22404, @xq-yin)
- [UI] Redesign endpoint details model section with unified Model card (#22376, @xq-yin)
- [] Add
X-MLflow-Gateway-Duration-MsandX-MLflow-Gateway-Overhead-Duration-Msresponse headers (#22229, @PattaraS) - [UI] Redesign AI Gateway endpoint details: Overview tab, starter code, and Try in Browser (#22284, @xq-yin)
- [] Add guardrail proto definitions, server handlers, and REST store (#21962, @TomeHirata)
- [Build] Add
aiohttpas a core dependency ofmlflow(#22189, @TomeHirata) - [] Add gateway guardrail DB layer: schema, store methods, and tests (#21960, @TomeHirata)
- [UI] Add quick-start template cards to AI Gateway empty state (#22249, @xq-yin)
- [Tracing / UI] Add freeform Notes section to trace assessments pane (#21676, @smoorjani)
- [Tracing / UI] [UI] Improve traces table visual design and UX (#20424, @ridgupta26)
- [UI] Improve Image Grid chart UX for multi-run image comparison (#22118, @Rasaboun)
- [Models] Add
base_model_pathparameter to save PEFT adapter-only with local base model reference (#22052, @rpathade) - [Tracking] Add
mlflow db move-resourcescommand to move resources between workspaces (#21263, @mprahl) - [Tracking] feat(tracking): Add composite index on metrics (run_uuid, key, step) (#21727, @ravidarbha)
Bug fixes:
- [Tracing / Tracking] Redact presigned URL credentials in urllib3 retry logs (#22995, @B-Step62)
- [Tracing] Fix assessment logging silently dropped in distributed tracing (#22963, @serena-ruan)
- [] Filter
_list_budget_windowsresults by active workspace when request is workspace-scoped (#22885, @copilot-swe-agent) - [Models / Scoring] Fix uv custom index URLs omitted from model
requirements.txt(#22921, @serena-ruan) - [Tracing / UI] Set
mlflow.message.formaton gateway passthrough spans to enable Chat tab (#22916, @TomeHirata) - [Server-infra] Add RBAC regression tests + gateway validator fix (#22862, @PattaraS)
- [Server-infra] Include role-based grants in
list_accessible_workspace_names(#22864, @PattaraS) - [Tracing] Preserve cache_read tokens in claude_code tracing for cache observability (#22683, @dgokeeffe)
- [Tracing] Fix
InferenceTableSpanProcessorinit for opentelemetry-sdk 1.41.0 (#22867, @harupy) - [UI] Fix audio artifact viewer failing in non-default workspaces (#22811, @harupy)
- [Tracking] Fix O(n^2) body buffering in
WSGIMiddlewarefor large uploads (#22729, @harupy) - [Tracking] Propagate
workspace_idasX-Databricks-Org-Idheader for SPOG support (#22554, @B-Step62) - [UI] Fix sessions pagination not auto-loading after virtualizer settles (#22808, @daniellok-db)
- [Tracing] Fix
_get_token_usagedropping zero-valued token counts (#22748, @copilot-swe-agent) - [Tracing] Fix
_get_token_usagedropping cache token fields (#22818, @harupy) - [UI] Remove rendering size guards from artifact image and video views (#22816, @kriscon-db)
- [UI] Disable
Create GuardrailinAddGuardrailModaluntil aGuardrail Modelendpoint is selected (#22766, @copilot-swe-agent) - [UI] Disable
Guardrailstab inEditEndpointFormRendererwhenendpoint.experiment_idis null, refresh i18n messages, and fix JS type-check follow-ups (#22757, @copilot-swe-agent) - [] Fix OPENAI_API_KEY requirement when guardrails use gateway:/ judge model (#22769, @TomeHirata)
- [Tracking] Fix ABFSS URI double-encoding in
_parse_abfss_uri(#22759, @artjen) - [UI] Persist immediate gateway usage-tracking updates and preserve dirty edits in
useEditEndpointForm(#22734, @copilot-swe-agent) - [] Fix Vertex AI gateway
globallocation handling for Gemini 3 models (#22696, @harupy) - [Tracing] Fix
ValueError: Circular reference detectedcrash indump_span_attribute_value(pydantic_ai autolog) (#22693, @barry3406) - [Tracing] Add Bedrock Converse models to model catalog (#22515, @ajgassner)
- [Tracing] Fix incorrect cost calculation for Anthropic cached requests (#22516, @ajgassner)
- [UI] Disable Create button when experiment name is empty (#22649, @ssam18)
- [Tracing] Fix
AsyncHttpxClientWrapperAttributeErrorby avoidingdeepcopyinTraceJSONEncoder(#22742, @harupy) - [Evaluation] Fix JSON parsing failure for judge model responses containing newlines (#22736, @harupy)
- [Evaluation] Fix non-ASCII characters being escaped in judge template variables (#22728, @harupy)
- [Tracking] Fix pandas 3.x
datetime64resolution compatibility incast_df_types_according_to_schema(#22705, @copilot-swe-agent) - [Tracing] Fix conversation simulator adding wrapper span that breaks custom scorers (#21321, @B-Step62)
- [] Fix Bedrock tool-use chat response parsing (#22677, @lavaFreak)
- [UI] Fix AI Gateway provider dropdown by flattening OpenAI / Azure OpenAI (#22701, @harupy)
- [Evaluation / Tracing] Preserve
predict_fnsignature in simulation turn tracing (#22610, @rogalski) - [Tracing / Tracking] fix: Extract
cached_tokensin OpenAI streaming responses to correct cost tracking (#22620, @Rishabh-git10) - [Tracing / UI] Auto-select first endpoint and API key in issue detection modal (#22633, @serena-ruan)
- [Model Registry] Use SQL
MAX()increate_model_versioninstead of loading all rows (#22635, @neolunar7) - [Tracing] Add modality/tool pricing extraction to
dev/update_model_catalog.py, backfillanthropic.json/gemini.json, and skipreasoningmodality pricing (#22699, @copilot-swe-agent) - [Tracing] Fix pydantic-ai
run_stream_syncautologging broken byAgentSpecforwar...
v3.12.0rc0
We're excited to announce MLflow 3.12.0rc0, which brings powerful new capabilities for agent developers:
Major New Features:
-
Automatic Tracing for more AI Coding Assistants: First-class tracing for Claude Code, Codex, Qwen Code, and Gemini CLI, now distributed as standalone TypeScript-based plugins installable as CLI binaries. Drop one into your CLI of choice and capture every prompt, tool call, and turn out-of-the-box. (#22338, #22410, #22411, #22409, #22853, @B-Step62, @kriscon-db)
-
OpenClaw Tracing Plugin: New TypeScript-based tracing plugin for OpenClaw. Install via npm and get full automatic tracing of OpenClaw sessions, no SDK changes required. Captures every prompt, tool call, and response across the session, allowing you to inspect agent behavior directly in the MLflow UI. (#22717)
-
AI Gateway Guardrails: Add safety checks to any agent endpoint with the new
Guardrailbase class andJudgeGuardrailimplementation. Configure pre-LLM and post-LLM guardrails directly from the Gateway endpoint editor, with full DB persistence, REST API, and gateway-level execution. Protect production agents from unsafe inputs and outputs without writing wrapper code. Tracing spans for guardrail execution are included. (#21964, #21960, #21962, #22306, #22360, #22577, #22581, #22767, @TomeHirata) -
Multimodal Trace Attachments: Trace agents that handle images, audio, and files, and view them directly in the MLflow UI. Click-to-expand image modals, inline rendering in span Details and Timeline views, audio playback, multi-part chat normalization for Gemini and OpenAI Responses API, and size guards for large media so the UI stays responsive. (#22465, #22461, #22451, #22462, #22466, #22460, #22449, #22450, #22574, #22575, #21783, @kriscon-db)
-
mlflow.diffusersFlavor: New first-class flavor for diffusion models. Save and serve LoRA adapters for image-generation pipelines with the samemlflow.<flavor>.log_modelergonomics as PyTorch or Transformers. (#22253, @Rasaboun)
Stay tuned for the full release, which will include even more features and bug fixes.
To try out this release candidate, please run:
`pip install mlflow==3.12.0rc0`