Skip to main content
When an agent goes wrong, you need to stop it now, not after the next deploy. The kill switch is a per-agent control that takes an agent out of autonomous operation immediately. It is part of the Bound capability and works alongside autonomy envelopes and circuit breakers.

Two rungs: halt and safe mode

The response is per-agent policy, frozen at the moment of activation:
  • halt stops the agent outright. Every enforcement decision refuses.
  • safe_mode does not hard-stop. It swaps the agent’s evaluation to a conservative envelope and parks actions in review instead of blocking them, so the agent degrades to human-supervised operation rather than going dark. This suits an agent whose blast radius makes a full stop its own kind of incident.
Circuit breakers (rising override rate, evaluation-volume spikes, model drift) fire this same path automatically. Breakers halt without a human; release is human-only, with an attestation.

Checked on every action, fails closed

The SDK’s enforce() consults the kill switch before it evaluates anything. A background poller caches each agent’s kill state, so a halt takes effect within one poll interval even between decisions, and the server re-checks inside the evaluation. Both checks fail closed: an unreachable platform, or a missing response field from an older deployment, reads as halt, never as permissive.

Drilled, not just declared

A safety control you have never fired is a hope, not a control. Kill switches are drilled on a schedule, and each drill produces a signed attestation recording the propagation time and the scope it reached. That attestation is evidence you tested the switch, cited by the evidence packs that map to regulator obligations. Activate at POST /api/v1/bound/kill, check state at GET /api/v1/bound/kill/status, and release (human-only) at .../kill/release.

Bound autonomy

Set the response policy, arm circuit breakers, and run a drill.

Autonomy envelopes

The conservative envelope safe mode routes through.