comparison
comparison8 min read

Model Deployment: By Hand vs With an AI Agent

The manual deployment workflow, what an agent takes over, and what still needs a human

Deploying a registered model by hand means stitching together five separate jobs: resolving the right model version, building a serving configuration, rolling it out to an endpoint, verifying health, and keeping a way back. An AI agent can run that whole sequence from a single request, but a person should still approve promotion to production traffic. The Kubernetes Deployment documentation shows why the rollback half matters: it keeps 10 old ReplicaSets by default, because rollback is a first-class part of any rollout.

Key Takeaways

  • •Manual model deployment is a chain of handoffs between the registry, the serving config, the endpoint and the monitoring tool; failures cluster at the handoffs, not inside any one tool.
  • •The dw-model-deployment skill on the ML Agent deploys and serves a registered model to an endpoint with health verification and rollback readiness.
  • •An agent removes the repetitive glue work (resolve version, apply config, probe, record the previous version) but does not decide whether a model should take production traffic.
  • •Promotion to full production traffic and rollback of a customer-facing endpoint are the actions we recommend keeping behind human approval.
  • •Evaluate any deployment agent on four things: whether it verifies health before declaring success, whether it records a rollback target first, whether it is auditable, and whether its writes are gated.

The job and who does it today

Model deployment is the step where a model that passed offline evaluation becomes something an application can call. In most teams it belongs to nobody in particular. A data scientist registers the model in a registry such as the one in the open-source MLflow repository, an ML engineer owns the serving stack, and a platform or SRE engineer owns the cluster and the alerts. The deployment lands on whoever is closest to the endpoint that week.

That split of ownership is the root of the pain. The person who knows which model version is approved is rarely the person who knows the serving configuration, and neither is necessarily watching the endpoint after the change. Each handoff is a message, a ticket or a pull request, and each one adds waiting time that has nothing to do with the technical difficulty of the deployment itself.

We describe effort qualitatively here, because deployment time varies enormously with the serving stack, the approval process and how many environments sit between staging and production. A team with a single endpoint and a mature pipeline feels very different from a team with dozens of models, each with its own hand-built deployment script.

The manual workflow, step by step

The manual path usually looks like this. First, someone confirms which registered model version is approved, often by reading a registry stage or alias and cross-checking the evaluation notes. Second, they update a serving configuration: the model URI, the container image, resource requests, autoscaling bounds and environment variables. Third, they apply that configuration to the target environment and wait for the platform to report the new replicas as running.

Fourth comes verification, which is where manual work is least consistent. Someone sends a handful of test requests, checks that the endpoint answers, and glances at latency and error dashboards. Fifth, they decide whether to shift traffic. Rolling updates in Kubernetes default to a maxSurge and maxUnavailable of 25% each, per the Deployment documentation, so a bad model can reach a meaningful share of requests before anyone has looked at a graph.

The sixth step, noting the previous version so you can go back, is the one most often skipped under time pressure. It lives in someone's shell history or a chat message. When the new model misbehaves at 2 a.m., the on-call engineer has to reconstruct what was running before, from whatever evidence survives.

Where the manual workflow breaks

The first failure is a running process that is not a healthy model. A container can pass a basic liveness check while the model inside it fails to load weights, returns malformed output or runs far slower than the previous version. Kubernetes probe configuration can express readiness, but someone has to decide what "ready" means for a model, and that definition is usually written once and never revisited.

The second failure is configuration drift between environments. The staging deployment worked because someone set an environment variable by hand that never made it into the production configuration. The third is an undefined rollback: the previous model version is still in the registry, but nobody recorded which serving configuration it ran with, so going back means rebuilding that configuration under pressure.

The fourth failure is invisible. Nobody records who deployed what, when and with which checks. The paper on hidden technical debt in machine learning systems argues that the surrounding glue code and configuration are often a larger maintenance burden than the model itself, and deployment scripts are a textbook example.

What an agent does instead

The ML Agent carries a skill called dw-model-deployment, described as deploying and serving a registered model to an endpoint with health verification and rollback readiness. That description is deliberately narrow, and we want to keep this section equally narrow. The agent starts from a model that is already registered, so training and registration are outside this skill.

In practice that means a request like "deploy the churn model to the staging endpoint" becomes one instruction rather than six handoffs. The agent works with the registered model, targets the endpoint, verifies health after the rollout, and keeps the deployment in a state where reverting is ready rather than reconstructed. The two phrases that matter in the skill description are health verification and rollback readiness, because those are the two steps humans skip first.

Every Data Workers agent is an MCP server, so the request can come from Claude Code, Cursor or any MCP-compatible client, following the Model Context Protocol specification. The engineer stays in the terminal they already use. The open-source edition is read-only by default, and write actions such as a real deployment sit in Pro, behind approval workflows and audit trails.

Manual vs agent, side by side

StepBy handWith the ML Agent skill
Resolve the modelRead registry stage or alias, cross-check notesStarts from the registered model named in the request
Apply serving configEdit and apply configuration per environmentDeploys and serves the model to the target endpoint
Verify healthAd hoc test requests and dashboard glancesHealth verification is part of the skill, not an optional extra
Record a way backShell history or a chat messageRollback readiness is part of the skill
Audit trailReconstructed from tickets and chatRecorded as an action under the Pro audit trail
Decide to promoteA personStill a person, via approval
Effort patternSeveral handoffs, waiting between eachOne request, one reviewable result

What still needs a human approval

We do not think an agent should decide, alone, that a model should take full production traffic. That decision carries business risk the agent cannot see: a pending campaign, a regulatory review, a downstream team that has not adapted to a changed output format. Our tiering approach puts autonomous actions, escalations and approval-required actions on a dial per domain, and production promotion belongs in the approval-required tier.

Lower environments are a different story. Deploying a registered model to a development or staging endpoint, verifying health and reporting the result is low-risk, reversible work that many teams will let the agent run without a person in the loop. The autonomy dial exists so a team can start strict, watch the audit trail, and loosen specific actions as trust is earned.

Rollback deserves a deliberate policy. Reverting a failing staging deployment can reasonably be automatic. Reverting a customer-facing endpoint changes what customers see, so we would route it to a person with the agent's diagnosis attached, which makes the decision quick without taking it away.

How to evaluate an agent for this job

Start with the evidence it produces. Ask a candidate agent to deploy a deliberately broken model into a test environment. A good agent reports that health verification failed and leaves the previous version serving. A weak one reports success because the container started. This single test separates agents that verify behaviour from agents that wrap a deploy command.

Next, check the rollback story. Before the rollout begins, can you see which version the agent would return to and with what configuration? Then check governance: are writes gated by approval, is every action in a tamper-evident audit trail, and does your data stay inside your own infrastructure? These are framework-level properties, not features to bolt on afterwards.

Finally, check where the agent lives. If using it means adopting a new dashboard, adoption will stall. Agents that run as MCP servers inside the editor and terminal your engineers already use remove that friction, and they let you pilot on one non-critical model before widening the scope.

Frequently Asked Questions

Does the agent train or register the model? No. The dw-model-deployment skill starts from a model that is already registered and deploys and serves it to an endpoint. Training, evaluation and registration stay in your existing ML workflow, and the agent picks up where the registry ends.

Can the agent deploy straight to production without approval? It can be configured to, but we recommend against it. In Pro, write actions sit behind approval workflows and audit trails, and we suggest keeping production promotion in the approval-required tier while letting lower environments run with more autonomy.

What does rollback readiness mean in practice? It means the deployment is left in a state where going back to the previous version is prepared rather than improvised. The skill treats it as part of the job, alongside health verification, rather than as a separate task someone must remember.

Do we need to replace our serving stack? No. The agent works with the endpoint you already have and is reachable from any MCP-compatible client, so the first pilot can target one non-critical model while the rest of your pipeline stays untouched.