soft guideINFRASTRUCTURE & ADVISORY

Note 14

An on-call engineer that acts within your rules

An AI SRE agent inside the cluster: it investigates every alert, reports cause and evidence in chat, and fixes what it found through typed actions that a policy in Git allows and a person approves.

In the platform
Autonomous package · also sold for an existing cluster
Experience behind it
Designed the agent's safety model and permissions, built its tools, skills and approval flow, and its evaluation suite.
Alert, sweep or chatInvestigateread-only, own identityReport in chatcause · evidence · proposed fixRunbook actionone approval, auditedPull requestCI, review, GitOpsNO APPROVAL → NOTHING CHANGES · THE AGENT NEVER APPROVES ITSELF

What the agent is for

Most alerts need the same first hour of work: which service, since when, what changed, what the logs say. An agent can do that hour. The risk is not that it is slow; it is that it acts with too much power on too little evidence.

Built on proven pieces

# spawn-runner hook: one Job per order, named from the order ID so redelivery creates nothing new
name="runner-$(printf '%s' "$CLAUDE_RUNNER_ORDER_ID" | tr 'A-Z_' 'a-z-' | cut -c1-50)"
kubectl -n agents get job "$name" >/dev/null 2>&1 && exit 0
# ... create the Job, store the work order in a Secret owned by it, exit without waiting

Acting, not only advising

oncall-kit keeps its agent read-only. That is the right start, but an agent that can only describe the restart still wakes someone up to type it. So the agent can act, through one door: an action broker in the cell. The agent's own identity stays read-only; to change something it asks the broker, with a reason.

act restart deployment/checkout -n shop \
  --reason "OOMKilled 6 times since 02:10 after the 1.42 rollout; memory flat on 1.41"
# pending a1b2c3: waiting for approval in #platform-approvals

The broker knows five typed actions: restart a workload, scale it up to a ceiling, delete one pod, reconcile or resume a Flux object. There is no action that runs a command or applies a manifest. A policy in Git says which namespaces are open, who may approve, and which actions may run without asking, up to a number per hour. Everything starts behind approval: the broker posts the request to Slack with Approve and Reject buttons and runs it only when someone on the approver list presses one. When a team has approved the same restart for the tenth time, they move that action to run on its own with a pull request, not a prompt.

Lasting fixes, such as a memory limit, a configuration value or a version, stay pull requests. The DevSecOps agent writes only pull requests; branch protection keeps merging with people.

Guarantees that do not depend on the model

Text the agent reads from logs, alerts and tickets is data, never instructions; that rule is in its prompt, and the credentials make sure it does not matter if the prompt is ignored.

What it changes

Alerts arrive already investigated. People decide; the agent does the legwork and leaves an audit trail of every tool call and every decision.

Start a conversation

Bring your infrastructure
into focus.

Tell me what you are building, operating, or trying to improve.

Let’s talk