Model or dataset
mlflow/mlflow avatar
mlflow/mlflow

MLflow 3.15: A Platform That Tries to Cover Every Stage of AI Engineering

The open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.

27,969 stars6,308 forksPythonApache-2.0

At a glance

What is it?
MLflow is an open source platform for tracking, evaluating, and deploying ML models and LLM agents. This review looks at what the current release actually offers, how it works, and where it may not fit.
Who is it for?
MLflow 3.15 is for teams that want a single, self-hosted platform to trace, evaluate, and deploy both traditional ML models and LLM agents. Small teams can start with a single server command and the OpenAI autologging hook.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The Problem: Fragmented Tooling for AI Applications

MLflow addresses a specific pain: teams building AI applications often juggle separate tools for experiment tracking, model registry, prompt versioning, and observability. The README positions MLflow as a single platform for agents, LLMs, and ML models. It claims to cover debugging, evaluation, monitoring, and optimization, plus cost control and access management. The target user is a team that wants to move from ad-hoc scripts to a structured lifecycle without assembling multiple integrations. For ML models, it offers experiment tracking, model evaluation, a registry, and deployment targets like Docker, Kubernetes, Azure ML, and SageMaker. For LLM applications, it adds tracing, evaluation, prompt management, and an AI Gateway. The core promise is that one platform can handle both traditional ML and generative AI workloads, which is rare. Most alternatives focus on one side or the other. That breadth is the main selling point, but it also creates complexity that may not suit every team.

How MLflow Works: Tracing, Evaluation, and the Gateway

The architecture visible in the README shows three distinct layers. First, observability is built on OpenTelemetry, which means traces can be captured from any LLM provider or agent framework that emits OpenTelemetry data. The quickstart shows a simple flow: start the MLflow server, enable autologging for OpenAI, then run your normal code. The server captures traces and metrics, viewable in the UI at localhost:5000. Second, evaluation is a separate module with 50+ built-in metrics and LLM judges, plus the ability to define custom metrics. This is not just a single score; the README mentions tracking quality metrics over time and catching regressions before production. Third, the AI Gateway provides a unified API for all LLM providers, with routing, rate limits, fallbacks, credential management, guardrails, and traffic splitting for A/B testing. The gateway uses an OpenAI-compatible interface, so existing clients can switch without major changes. The data flow is: your application calls the gateway or sends traces via OpenTelemetry, the server stores them, and the UI displays them. The prompt registry adds versioning and lineage tracking for prompts, which ties into evaluation and deployment.

Getting Started: Commands and Configuration

The README gives a concrete three-step setup. First, start the server with `uvx mlflow server`. This assumes you have `uvx` installed, which is a Python package runner. Second, enable logging in your application code: `mlflow.set_tracking_uri("http://localhost:5000")` and `mlflow.openai.autolog()`. Third, run your OpenAI client code as usual. That is the minimal path. For a faster start, the README mentions `uvx mlflow@latest agent setup`, which installs MLflow skills and launches a coding agent to add tracing to your app. That command is interesting because it automates the integration, but the README does not explain what skills are or how the agent modifies your code. The server runs locally by default, but for production you would need to configure a backend database and storage, though the README does not detail those settings. The AI Gateway has its own quickstart link, but the README does not show its configuration keys. You would need to consult the docs for gateway-specific setup like provider credentials and routing rules. The tracking URI is the main config key shown, and autologging is the main hook.

Limitations and Failure Modes

The README is heavy on feature lists and light on constraints. One limitation is that the AI Gateway, while OpenAI-compatible, still requires you to manage provider-specific rate limits and fallback logic. If you have complex routing needs, the built-in traffic splitting for A/B testing may not cover all scenarios, such as geographic routing or cost-based optimization across many providers. Another limitation is that the evaluation module, despite 50+ built-in metrics, may not have the specific judge you need. The README says you can define your own, but that requires writing code and understanding the evaluation framework. For teams that only need simple logging, MLflow might be overkill. The server itself is a Java-based application (historically), which can be heavy to operate compared to a lightweight proxy. Also, the README mentions support for Python, TypeScript/JavaScript, Java, and any other language, but the autologging example is only for Python. For non-Python languages, you would need to use OpenTelemetry directly, which is more work. The biggest failure mode is likely scope creep: a team adopts MLflow for tracing, then discovers the gateway needs separate configuration, and the model registry has its own workflow. The platform tries to do everything, and each feature has its own learning curve.

Alternative Approaches: LangSmith and Managed Gateways

The most direct alternative is LangSmith, which focuses specifically on LLM tracing and evaluation. LangSmith offers a hosted service with deep integration into LangChain, but it is not open source. The difference is that LangSmith gives you a managed backend, so you do not operate a server, but you lose the ability to self-host and customize. For the AI Gateway piece, a dedicated gateway like LiteLLM or a cloud provider's API management service would be a lighter alternative. LiteLLM is a Python library that provides a unified interface to many LLM providers, with cost tracking and fallbacks. Unlike MLflow's gateway, LiteLLM does not include tracing or evaluation, so you would pair it with a separate observability tool. The key difference is that MLflow bundles all these features into one platform, while alternatives let you pick and choose. For teams that already have a monitoring stack like Prometheus or Grafana, MLflow's OpenTelemetry integration might be redundant. The choice depends on whether you want a single vendor or best-of-breed components.

Maintenance, Licensing, and Upgrade Considerations

MLflow is licensed under Apache-2.0, which is permissive and allows commercial use, modification, and distribution without copyleft obligations. The repository is actively maintained, with releases like v3.15.2 in August 2026 and a model-catalog release in April 2026. The last push was April 2026, suggesting ongoing development. The README claims over 60 million monthly downloads, but that is a marketing figure, not a quality metric. For upgrades, the frequent releases mean you need to track changelogs for breaking changes, though the README does not document any specific upgrade path. The model catalog feature is new, but the README does not explain what it does, so you would need to read the docs. The platform's size means upgrading the server requires testing not just the core tracking but also the gateway, evaluation, and tracing components. The maintenance cost is not trivial: you need to operate a server, configure a database, and manage credentials for the gateway. For a small team, this could be a burden. However, the Apache-2.0 license means you can fork and modify if needed, and the active release cadence suggests bugs are fixed regularly.

Editorial conclusion

MLflow 3.15 is for teams that want a single, self-hosted platform to trace, evaluate, and deploy both traditional ML models and LLM agents. Small teams can start with a single server command and the OpenAI autologging hook. Large teams will want to verify how the AI Gateway handles rate limits and traffic splitting under their specific provider contracts. Teams already invested in a dedicated observability stack like LangSmith or a managed gateway may find MLflow redundant. Before adopting, check whether the built-in evaluation metrics cover your use cases and whether the OpenTelemetry-based tracing integrates with your existing collectors. The project is actively maintained with frequent releases, and the Apache-2.0 license removes most legal friction, but the breadth of features means you should test the exact workflows you need, not just the quickstart.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes