
AI Agents for DevOps and On-Call
Shipping is the easy half. The expensive half is the three years afterwards, when something breaks at 4am and a human has to be awake for it.

The interesting question about AI in software delivery is no longer whether a model can write a function. It can. The question is whether the whole path from "here is what we need" to "it is running in production" can be driven by agents, with a person appearing only at the two points where judgement is actually required.
That path has a name now — the agentic SDLC — and it is buildable today with tools that are generally available. This is how the wiring works, and where it breaks.
Everything downstream inherits the quality of the specification, and this is the part nobody wants to hear. An agent given a vague requirement does not push back the way a senior engineer does; it produces something confident and plausible that satisfies the letter of what you wrote.
So the SRS stops being a document you write once and file. It becomes the executable contract that the whole pipeline is measured against — the planning agent decomposes it, the test agent derives cases from it, and the QA agent checks the deployed build against it. Written properly, it needs:
The planner reads the SRS and emits tickets: one per shippable unit, each with acceptance criteria copied down from the spec, a dependency order, and an estimate. This is the stage most worth reviewing by hand, because an error here multiplies across everything after it.
Give it a strict output schema. A planner that returns prose produces tickets that vary in shape; one that returns a defined structure produces tickets your automation can act on.
One agent per ticket, one branch per agent, one pull request at the end. Isolation matters more than it sounds: parallel agents editing a shared working tree produce conflicts no human wants to unpick. Git worktrees or separate checkouts solve this cleanly.
The PR is the interface. Claude Code's GitHub Action and the claude-code-action runner are built for exactly this shape — triggered by a workflow event, operating on a branch, opening a PR with the diff and the reasoning attached.
A second agent reviews the first agent's work, and it should not be the same agent in a different costume. Different model, different prompt, different priorities — one optimised to produce a change, one to find fault with it. The subagent pattern exists for this: a reviewer with its own context and its own instructions catches things the author is structurally blind to.
Tests derived from the SRS acceptance criteria, not from the implementation. This distinction is the whole game. An agent that writes tests by reading the code it just wrote will produce tests that pass, prove nothing, and give you a green dashboard over a broken feature.
Staging, then canary, then full rollout, with automatic rollback on an SLO breach. The deploy agent should own the rollback decision — a human deciding whether to roll back at 3am is exactly the job that should not exist. The operations loop is where this gets interesting.
You will read claims that this pipeline runs with no human at all. It does not, and the two exceptions are not arbitrary.
Everything between those two gates — plan, build, review, test, deploy to staging, QA against the spec — genuinely runs unattended. That is the claim worth making, and it is a much larger change than it sounds. It moves a person from doing the work to specifying and accepting it.
Four failure modes come up repeatedly, and none are about code quality.
Not with the whole pipeline. Pick the stage where you currently lose most time and automate that one, keeping every other stage manual. For most teams that is review or testing rather than implementation, which is the opposite of where the excitement is.
If you want this wired into an existing codebase rather than a greenfield demo, that is what our AI and LLM integration work covers, and how small a SaaS team can be has the economics.
An agentic SDLC is a software delivery pipeline where AI agents perform each stage — planning the work from a specification, implementing tickets, reviewing pull requests, writing and running tests, and deploying — while humans set the scope and approve the release. The specification becomes the contract every stage is measured against rather than a document written once and filed.
Not responsibly. Two gates should stay human: deciding what to build, which is a commercial judgement with consequences an agent does not carry, and approving a production release, because someone has to be accountable when it goes wrong. Everything between — planning, building, review, testing, staging deploys and QA against the spec — can run unattended.
Because an agent reviewing its own work is structurally blind to its own assumptions. Use a different model, prompt and set of priorities: one optimised to produce a change, one to find fault with it. The same applies to tests — derive them from the specification's acceptance criteria, not from the code that was just written, or they will pass and prove nothing.
Rarely code quality. The recurring failures are volume, where agents produce more pull requests than anyone can review; architectural drift, because each agent solves only the ticket in front of it; runaway inference cost from unattended retry loops; and trust collapse after one production incident, which sends the owner back to reviewing every diff by hand.