A practical guide to putting an LLM agent on the pager. Its companion idea matters more than the build: in research, the danger is an agent that fools itself; in ops, the danger is an agent that takes a confident wrong action at 3am and turns a blip into an outage. Detecting issues is the easy part. The guardrail that stops a bad action is the product.
Scope note: this builds toward an ops copilot that watches, triages, diagnoses, and proposes — and takes only bounded, reversible actions on its own. Anything irreversible or wide-blast-radius stays gated behind a human. Don’t build the version that reboots prod unsupervised.
Automated ops fails in two opposite directions, and a good design has to defend both at once:
The hard engineering is in the middle: an agent that is trusted enough to act on the small stuff and disciplined enough to stop before the dangerous stuff. Everything below builds that boundary.
As with research automation, an LLM is only as good as what it can read and act through. Three substrate pieces turn “an LLM near your logs” into a real ops agent:
If your runbooks live only in people’s heads and your state is a Slack scrollback, step one isn’t “add an LLM,” it’s “make the operational knowledge addressable.”
OBSERVE read metrics / logs / health (read-only, always safe)
▼
TRIAGE is this real? severity? known pattern? dedupe against the board
▼
DIAGNOSE correlate signals; map symptom → likely cause via runbook
▼
PROPOSE the specific bounded action + its expected effect + its rollback
▼
ACT* *only if the action class is pre-approved as safe; else escalate
▼
VERIFY did the metric actually recover? if not, revert and escalate
▼
RECORD write to the incident board: what fired, what was done, outcome
The asymmetry is the whole point: OBSERVE, TRIAGE, DIAGNOSE are always safe and should run fully autonomously. ACT is gated by action class. Most of the value is in turning a noisy firehose into a clean, deduped, diagnosed, ranked set of incidents — before any action is ever taken.
Don’t ask “should the agent be autonomous?” Ask “which actions can it take alone?” Classify every remediation:
| Class | Examples | Autonomy |
|---|---|---|
| Read-only | query logs, summarize, correlate, draft a postmortem | Full — no approval |
| Reversible & bounded | clear a cache, retry a failed job, rotate a log, restart a single stateless worker | Auto, with rate limit + verify + auto-revert |
| Wide blast radius | scale a fleet, restart a stateful service, change config | Propose only — human approves |
| Irreversible / risky | delete data, fail over, roll back a release, touch anything trading-live | Hard stop — human acts |
The agent should run the top two rows in its sleep and never cross into the bottom two without a human. This single table prevents most automation disasters: it makes “don’t make it worse” a property of the system, not of the model’s judgment in the moment.
This is the ops analog of “the skeptic is the product.” Each rule exists to bound the damage a confident-but-wrong agent can do:
If the loop in §3 is the body, this section is the brake. An ops agent without it doesn’t reduce incidents — it manufactures novel ones faster than a human could.
The shape that works mirrors a human on-call org:
The throughline: many eyes observing, one brain coordinating, narrow hands acting.
| Good at | Bad/dangerous at |
|---|---|
| Triage: is this real, how severe, known pattern? | Judging blast radius of an action it hasn’t seen before |
| Correlating logs/metrics across services into a cause | Novel incidents with no runbook — improvises confidently |
| Drafting the remediation, the comms, the postmortem | Irreversible decisions under time pressure |
| Deduping noise into a clean, ranked incident list | Knowing when not acting is the right move |
| Never sleeping, never getting alert-fatigued | Calibrated uncertainty — it rarely says “I don’t know” |
Division of labor follows: the LLM owns observation, triage, diagnosis, and drafting; the authority to take a risky action stays with the action-class gates and a human.
Instrument the system so you can trust and improve it:
When auto-resolved is high but action-revert is also climbing, the agent is acting past its competence — tighten the auto class before you trust it further.
Research automation is about not fooling yourself; ops automation is about not making things worse. Both reduce to acting wisely under uncertainty, but ops has a crueler clock and irreversible moves. The throughput that lets an agent watch everything tirelessly is exactly what lets it act wrongly at scale and at 3am. The teams that win won’t have the cleverest auto-remediation — they’ll have the most disciplined sense of when not to act. A great ops agent, like a great on-call engineer, is defined less by what it fixes than by what it knows to leave alone and escalate.
Drawn from running a multi-agent operations setup for a live trading stack — scheduled coordination, domain managers, report-only monitoring, and bounded worker briefs with explicit stop conditions. Every guardrail here is one I rely on in production. For the research-side counterpart, see Autonomous Alpha Research — A Design That Doesn’t Fool Itself.