Compliance and tool-call decisions
Value-level governance of tool calls — compliance rules that allow, defer for approval, or deny each call over its actual argument values, with an org baseline and per-agent tightening.
Security policies decide which tools an agent may have. Compliance policies decide what a permitted tool may do on each call: when an agent has Enforce PDP policy enabled, the platform's policy decision point (PDP) evaluates every tool call the agent proposes — over the call's actual argument values — and returns one of three verdicts:
- allow — the call proceeds.
- defer — the call is parked until a human approves it (see Approvals and consents).
- deny — the call is refused. Denies are the default: a tool call that no rule matches is denied.
This is a different altitude from the security policy deny/allow lists: those gate capabilities; compliance rules gate individual calls by value — "transfers under $100 are fine, larger ones need approval".
Two scopes: org baseline and per-agent tightening
Compliance rules are authored at two scopes that compose:
- Org baseline — authored under Governance → Policies → Compliance. These rules apply to every agent that calls the governed tool: author a rule once and it governs the operation across the org.
- Per-agent overlay — authored on each agent's Governance tab. The
overlay can only tighten the baseline, never widen it: the two scopes
are composed most-restrictive (
denybeatsdeferbeatsallow), so a per-agent author can add a stricter threshold or an extra approval, but can never loosen an org rule.
The agent's Governance tab shows the whole picture in one card, in three parts:
- Tools in use — the governed (API and connected-server) tools this agent depends on, with their operation counts. These are the only tools you can author agent-scope rules for.
- Inherited from org — the org baseline rules that govern this agent's tools, shown read-only exactly as they will apply. Rules for tools the agent doesn't use are filtered out; the baseline itself is edited on the org Compliance screen.
- This agent's rules — the tighten-only overlay, edited in place.

A scope with no rule for a tool abstains; if both scopes abstain, the call is denied. When both scopes independently defer, the approval requirements compose most-restrictively too — the approver lists are combined and the shorter timeout wins.
Beneath the compliance rules, the org policy also carries a hard allow/deny ceiling on tool operations, managed by org security admins and not shown on the Compliance screen. An operation outside that ceiling is denied regardless of any compliance rule.
How rules are keyed
Rules are keyed per tool operation, written <server>__<operation> — for
example payments__reverse_fee. The key is identity-independent: one
rule governs the operation no matter which connection or identity variant of
the tool a particular agent calls through. Only operations of tools admitted
to the Tool Registry can be governed — a call to an
operation no registered tool provides is denied.
What a rule looks like
Each tool operation carries an ordered list of rules; the first rule whose conditions all match decides the call, and if none match the call is denied.
A rule has:
- Conditions — typed comparisons against the operation's argument fields
(the fields come from the registered operation's schema). Operators:
≤,<,≥,>,=,≠,in, andnot in. All conditions in a rule must hold for it to match. - An outcome —
allowordefer. (There is no authoreddenyoutcome: deny is what happens when nothing matches.) - For
defer, an approval authority — the approver emails who may decide the parked call, and a maximum timeout the approval may wait.
For example, on a fee-reversal operation: allow when amount ≤ 100; defer to
finance-lead@example.com with a 1-hour timeout when amount ≤ 1000 — and
anything larger matches no rule and is denied.
Deferral routing
Where a deferred call's approval prompt is delivered is configured per agent, on the agent's Governance tab, per tool operation:
- Platform inbox (the default) — the prompt appears in the approvers' My Approvals queue in the console.
- Slack channel — delivered as an interactive Slack message, when the agent has Slack connected.
- Email — delivered to an email address.
The effective timeout is the smaller of the agent's route timeout and the compliance rule's maximum — the agent may tighten the window but never extend it. If neither sets one, the runtime's default (10 minutes) applies. A deferral that expires undecided is refused.
Fail-closed enforcement
Enforcement is opt-in per agent with the Enforce PDP policy toggle (set when creating the agent or in its configuration). With it on, evaluation is strictly fail-closed:
- No compliance policy configured at either scope → every governed call is denied.
- The operation is not governed by any registered tool → denied.
- The platform cannot read the policy or the registry at decision time → denied. An authorization decision never fails open.
Because the decision is made live on each call, publishing a compliance change applies to the very next tool call — there is no propagation delay and no agent redeploy.
Decision audit trail
Every verdict — allow, defer, and deny alike — is recorded in the event stream:
tool_call_decided— the platform's decision record: the tool and operation, the decision and reason, which scope bound the verdict (org or agent), the policy versions consulted, and a bounded summary of the argument values. Denials are a permanent record, not just a block.pdp_decision— the agent-side enforcement record, emitted by the agent runtime as it enforces the verdict.
Both are part of the Events screen's default security-relevant filter.
Authoring in the console

The Compliance editor (org scope under Governance → Policies → Compliance, agent scope on the agent's Governance tab) is built for large policies:
- Tools and their rules are collapsible and collapsed by default, each showing a one-line summary; a filter box finds a tool by name.
- Add tool opens a picker over the operations of registered tools, so rules are always authored against a real, governed operation and its typed argument fields. At org scope the picker offers every registered tool; at agent scope it is limited to the agent's own tools — you can't author an agent rule for a tool the agent doesn't use.
- Add rule inserts a worked example (an allow-with-threshold) so the condition shape is obvious, then you edit it in place.
- Rules are shown in evaluation order — remember the first match wins.
Compliance policies are versioned: every publish increments the policy version, and decision records carry the version that produced them.
Authoring requires the compliance-author permission; the console shows the editor to signed-in users, but the platform enforces the permission on every write — an unauthorized publish is rejected regardless of what the console displays.
Policies
Org-level and workspace-level security policies, the effective policy resolution, versions and rollback, and how changes reach running agents.
Tool Registry
The org's admitted catalog of tools agents may depend on — registering command-line tools, MCP servers, and APIs from an OpenAPI spec, and how registered operations feed skills and compliance rules.