Policy engine

Declarative rules on what tools an agent can call, with what arguments, and under which conditions.

Output validation

Schema, regex, and LLM-based checks that block malformed, unsafe, or off-policy responses before they ship.

Human-in-the-loop

Pause any step for approval. Reviewers get full context and can approve, edit, or reject — from web or Slack.

Rate & budget caps

Hard limits on calls, spend, and concurrency per agent so a loop can't run away with your bill.

PII & secret redaction

Detect and mask sensitive data in prompts, logs, and outputs automatically across every run.

Audit trail

Immutable record of every policy decision and approval — exportable for compliance and incident review.

Approval gates

A human signs off before it matters

Set thresholds where autonomy stops and a person decides — refunds over a limit, emails to VIPs, production deploys.

  • Conditional gates that only trigger when the risk is real.
  • Reviewer routing by team, role, or on-call schedule.
  • Timeouts & fallbacks so a pending approval never blocks forever.
guardrail refund_policy {
  allow  tool("issue_refund")
  require approval when amount > 200
  deny   when customer.flagged
  redact [card_number, email]
}

// run paused → routed to #refunds
// awaiting approval from on-call

Make autonomy safe to ship

Add policies and approval gates to any agent — included on every plan.