STEERPLANE

Enforcement Modes

Kill mode, alert mode with human approval, and fault-tolerant graceful degradation.

SteerPlane is not a binary kill-or-nothing switch. The enforcement controller operates in two modes, so you can choose between hard stops and human-in-the-loop intervention.

Kill mode

On any violation, execution terminates immediately and atomically with a structured diagnostic exception that is logged and persisted.

@guard(agent_name="batch_job", max_cost_usd=20, enforcement="kill")
def run():
    agent.run()

Use kill mode for unattended jobs where any breach should stop the run outright.

Alert mode

When a cost or step limit is approached, alert mode pauses the run, creates a persistent approval request, dispatches notifications (email / webhook / Slack), and waits for a human decision.

@guard(
    agent_name="support_bot",
    max_cost_usd=10,
    enforcement="alert",
    alert_threshold=0.8,       # pause at 80% of the limit
    alert_timeout_sec=1800,    # wait up to 30 min for approval
)
def run():
    agent.run()
  • Approve → execution resumes with extended limits (e.g. a parameterised budget bump).
  • Deny or timeout → execution terminates as a safety net.

Even in alert mode, loops and policy violations always hard-terminate — only cost/step limits are eligible for the pause-and-approve flow.

Graceful degradation

SteerPlane is fault-tolerant by design. If the control plane (API server) becomes unreachable:

  • the SDK keeps enforcing locally — loop detection, cost, step, and policy rules stay active;
  • alert mode automatically degrades to kill mode, since no human channel is available.

The result: no agent ever runs without at least one active enforcement path. When the control plane returns, telemetry and approval state re-synchronize automatically.

On this page