Skip to content

PolicyDecision

The result produced by a policy evaluation at any interception point.

Schema ID: https://agentpolicyspecification.github.io/schemas/policy-decision.schema.json

Decision Types

allow

The interaction proceeds unchanged.

json
{ "decision": "allow" }

deny

The interaction is blocked.

PropertyTypeRequiredDescription
decision"deny"Yes
reasonstringNoHuman-readable explanation. MAY be omitted for security-sensitive denials.
policy_idstringNoThe policy that produced this denial.
json
{ "decision": "deny", "reason": "Message contains a potential SSN.", "policy_id": "no-ssn" }

redact

Specific content is removed or masked before the interaction proceeds.

PropertyTypeRequiredDescription
decision"redact"Yes
redactionsRedaction[]YesOne or more redaction instructions.

Redaction:

PropertyTypeRequiredDescription
fieldstringYesDot-notation path (e.g. response.content)
strategy"mask" | "remove" | "replace"Yes
replacementstringNoRequired for mask and replace
patternstringNoRegex pattern. Required for replace
json
{
  "decision": "redact",
  "redactions": [
    { "field": "response.content", "strategy": "replace", "pattern": "\\b\\d{3}-\\d{2}-\\d{4}\\b", "replacement": "[REDACTED]" }
  ]
}

transform

The payload is modified before the interaction proceeds.

PropertyTypeRequiredDescription
decision"transform"Yes
transformationTransformationYes

Transformation operation:

PropertyTypeRequiredDescription
op"set" | "prepend" | "append"Yes
fieldstringYesDot-notation path
valueanyYesValue to apply

audit

The interaction proceeds but is logged for review.

PropertyTypeRequiredDescription
decision"audit"Yes
reasonstringNoOptional note for the audit record

Download

policy-decision.schema.json

Released under the Apache 2.0 License.