MLOps extended for generative AI: prompts, RAG and agents shipped through the same develop → evaluate → deploy → monitor loop, on MLflow, Model Serving, Agent Evaluation, and Unity Catalog.
LLMOps is MLOps adapted for GenAI apps and agents — managing prompts, retrieval and tool-calling logic through tracing, LLM-judge evaluation, governed deployment, and continuous production monitoring on one Databricks lifecycle.
GenAI quality is non-deterministic and lives in prompts, retrieval, and tool calls rather than model weights, so classic accuracy metrics and "ship the pickled model" patterns break down. LLMOps gives you observability (traces), automated quality measurement (judges/scorers), and governance over the whole app so you can iterate safely and prove quality holds in production.
Same lifecycle discipline, but the artifact is an app (prompt + retriever + tools + model), eval is by LLM judges not just metrics, and you log code, not weights.
Develop with tracing → evaluate on datasets with judges/scorers → deploy to a serving endpoint → monitor production traffic → iterate.
MLflow 3 (tracing, prompt registry, evaluation) + Model Serving (Agent Serving) + Agent Evaluation + production monitoring on traces.
Models, agents, UC functions/tools, MCP servers and vector indexes are UC securables with grants and lineage; AI Gateway adds rate/cost limits and guardrails.
MLflow "models from code" with the ResponsesAgent/ChatAgent interface logs the agent's source, so behavior is reproducible and framework-agnostic.
MLflow Tracing captures retrievals, tool calls and intermediate steps — the same traces feed debugging, evaluation, and production monitoring.
Python · MLflow 3 GenAIimport mlflow
from databricks import agents
mlflow.set_registry_uri("databricks-uc") # govern the agent in Unity Catalog
# 1 — evaluate the app against a dataset with LLM judges/scorers
results = mlflow.genai.evaluate(data=eval_dataset, predict_fn=my_agent, scorers=scorers)
# 2 — register the logged *code* model, then deploy to a serving endpoint
info = mlflow.register_model(model_uri, name="main.genai.support_agent")
agents.deploy("main.genai.support_agent", info.version) # monitoring runs on prod traces
mlflow[databricks]>=3.1) — MLflow 2 GenAI patterns differ; pin the version.ResponsesAgent/ChatAgent), not a serialized object; serializing complex agents is fragile and not the recommended path.Verified against docs.databricks.com · June 2026