Taking the proven MLOps deploy-code pattern and adapting it for GenAI agents: evaluation-driven CI/CD, a native observability loop, and open OpenTelemetry integration.
Most data teams already have a mental model for shipping ML to production: the "deploy-code" reference architecture from the Big Book of MLOps. One repository, three branches mapping to three environments (dev, staging, prod), Git-driven CI/CD, MLflow for tracking, Unity Catalog for governance, and a champion/challenger gate before anything reaches production.
When teams start building AI agents (RAG chatbots, tool-calling agents, multi-agent systems), the natural question is: what does that picture look like for agents? The backbone carries over almost entirely. What changes is why. Agents are probabilistic, so the rigor moves from a one-time accuracy check to a continuous loop: you measure quality with evaluation, gate promotion on it, trace every request in production, and feed what you learn back into the next iteration.
Picture a customer-support agent that uses Vector Search for retrieval and Unity Catalog Functions to look up tickets. In dev you evaluate it against a curated set; in staging it has to clear evaluation thresholds before it is promoted; in production, its traces and user feedback become new evaluation cases. Operating the agent means operating that loop.
Read it top to bottom. A Git provider drives three workspaces (Development, Staging, Production), all sitting on a single Unity Catalog.
Figure 1 — Development workspace: the dev inner loop, with a tight trace → curate → re-evaluate cycle before promotion.
Figure 2 — Staging workspace: unit and integration tests plus the evaluation gate that blocks promotion unless scores clear the threshold.
Figure 3 — Production workspace: continuous deployment, serving both batch and live traffic, with online monitoring feeding the observability loop.
Development workspace (inner loop). A developer branches off dev and works against the Dev catalog. A Data Preparation job (ingestion, preprocessing, Vector Search indexing) builds the retrieval layer. An Agent Development job assembles the agent from a tool library (Unity Catalog functions, MCP servers, and Skills the agent can call) and runs agent evaluation with mlflow.genai.evaluate() and LLM judges/scorers on a curated dataset. This is where human judgment enters the loop: subject-matter experts label and review examples to build that curated dataset, and the LLM judges are defined and then aligned against those human labels so an automated score means what an expert would say. Every run logs traces and evaluation results to the MLflow tracking server (Experiments, Traces, Prompt Registry). The agent is then deployed, increasingly as a Databricks App, and exercised through a chat/review interface - where reviewers can add feedback and labels that flow straight back into the curated dataset, keeping the scorers aligned as the agent evolves.
main to Staging (automated testing). A pull request to main triggers unit tests; on merge, the Staging workspace runs integration tests (do the tools and the assembled agent work end to end) plus the key AgentOps addition: an evaluation gate. The agent is scored on a larger eval set this is the agent-world analog of champion/challenger except you’re gating on evaluation of a composed system, not a single accuracy metric. A version is promoted only when it clears the defined thresholds for every scorer in the evaluation.
release to Production (continuous deployment). Merging to release triggers continuous deployment: the agent is registered in Unity Catalog and deployed to production, serving both batch inference and live traffic.
This is the heart of AgentOps:
Figure 4 — The observability loop: trace every request, govern it in Unity Catalog, monitor online with the same judges, and route human feedback back into evaluation.
Databricks gives you an end-to-end, native methodology for the AgentOps loop, with no assembly required:
Governance belongs at the core of agentic development. Because behavior is non-deterministic, you define an agent's scope and context up front and check it continuously, keeping a human on the loop, setting the boundaries, rather than in it, approving every step.
Because the whole loop lives on one platform, evaluation results, traces, and governance are joined by default rather than stitched together. The methodology is also open: MLflow tracing is OpenTelemetry-native, so the same telemetry can flow to the observability tools you already run, while Unity Catalog stays the system of record.
Two practices keep the loop coherent: make Unity Catalog the system of record for traces, prompts, and evaluation datasets, and keep one source of truth for evaluations so the staging gate calls a single authority.
An agent is only as good as the data, governance, and serving around it, and that is where a lakehouse helps:
Agents aren't harder to operate because they're magical; they're harder because they're probabilistic. The answer is not less rigor, but different rigor: evaluation gates, full tracing, and a closed feedback loop. That is the real shift from MLOps to AgentOps.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.