agent, run, or mission stops it in two places until it is revived:
- In the SDK: the pre-execution check refuses every further
@guarded_actioncall for that target. - At ingest: the platform rejects any batch that references a killed target, so an agent that skips or bypasses the SDK check still cannot record actions.
Endpoints
All endpoints live under/api/v1/kill-switch and require either a session cookie (Clerk) or an API key (Authorization: Bearer ...).
Kill a target
KillSwitchPublic record. Returns 409 Conflict if the target is already killed.
Revive a target
404 Not Found if there is no active kill switch for the target.
Check kill status (SDK)
List active kill switches
killed_at descending.
SDK behaviour
Before each@guarded_action runs, the SDK checks the action’s agent, run and mission. When any of them is killed, it raises AgentKilledError (error code AGENT_KILLED, not recoverable) and the action body never runs.
If the check itself cannot complete (platform unreachable, non-200 response, or httpx not installed):
- Under strict
fail_closed, the SDK raisesKillSwitchUnavailableError, a subclass ofAgentKilledErrorwith reason codeKILL_SWITCH_UNAVAILABLE. - Under the default
fail_closed_writesand underfail_open, it logs a warning and treats the target as not killed. Ingest enforcement still applies.
Ingest enforcement
POST /api/v1/ingest/ checks every agent, run and mission the batch references, at the batch level and on each entry. If any of them has an active kill switch in the caller’s organization, the whole batch is rejected:
HARD_BLOCK intervention named kill_switch_reject, with the killed target_type, target_id, kill_switch_id, run_id and entry count in its context.
Console
The console exposes/kill-switch as a top-level route — see Console → Kill Switch.
See also
- Console → Kill Switch — UI for killing and reviving targets
- Platform → Interventions — kill-switch blocks appear here