๐Ÿ›ก๏ธ Interven

Policies

Rules that gate agent tool calls โ€” match by tool, operation, data class, body content.

Anatomy of a policy

A policy has a name and one or more rules. Each rule has a match, a condition, an action, and a priority. The first matching rule wins (lowest priority number = evaluated first), but strictness escalates: a DENY rule takes precedence over an ALLOW rule on the same scan.

{
  "name": "Block Slack posts of internal documents",
  "rules": [
    {
      "rule_id": "internal-doc-block",
      "priority": 10,
      "match": {
        "tool_name": "slack",
        "operations": ["post_message"]
      },
      "condition": {
        "body_contains_any": ["internal only", "do not share", "deal #"]
      },
      "action": "DENY"
    }
  ]
}

Available match keys

KeyTypeExample
tool_namestring"jira", "slack", "salesforce", "hubspot"
operationsstring[]["create_issue"], ["*"], ["method:POST"], ["category:issues"]
verbsstring[]["WRITE", "ADMIN"]
org_patternsstring[]["acme/*"] (GitHub)
repo_patternsstring[]["my-org/secrets-*"]
channel_patternsstring[]["#alerts*"] (Slack)

Available conditions

ConditionTypeUse case
is_external_principalboolCatch posts to a personal/external Slack
has_data_classstring[]["SECRETS"], ["PII"], ["INTERNAL"]
body_contains_anystring[]Body has ANY of these substrings (case-insensitive)
body_contains_allstring[]Body has EVERY substring
new_resourceboolFirst time the agent has touched this resource
volume_burstboolSudden spike in calls

Editing in the Console

The Console supports two edit modes:

  1. Form mode โ€” point and click for the common case (one tool + simple condition + action).
  2. Raw JSON mode โ€” full control: multiple rules per policy, body-contains, custom priority, sanitize_fields. Click Edit on a policy โ†’ switch to Raw JSON tab.

Default ship-with policies

When you sign up, your tenant gets these starter rules. Edit or disable any of them.

NameToolAction
P3: Deny Slack Secret EgressslackDENY when SECRETS detected
P4: Deny Slack Secret UploadslackDENY when SECRETS detected
P5: Sanitize Slack PII EgressslackSANITIZE PII before posting
P8: Deny Google Drive External SharinggdriveDENY share_file_external
P9: Sanitize Google Drive PII ExportgdriveSANITIZE on PII export
P1/P2: GitHub external collaborator + PR reviewgithubDENY / REQUIRE_APPROVAL
P6: Require Approval for IAM User CreationawsREQUIRE_APPROVAL
P7: Deny AWS Admin Policy AttachmentawsDENY