Skip to main content

Policy Categories & Templates

Waxell ships with 49 policy categories grouped by what they govern. Categories define what kind of governance you want; templates provide ready-to-use configurations for common scenarios.

Operational Guardrails

Limits on agent execution itself — rate, cost, duration, errors, scheduling.

CategoryWhat it controlsActions
Rate LimitRequest rates and concurrency per agent, user, or teamwarn, throttle, block
BudgetToken & dollar budgets (per-run, daily, monthly)warn, throttle, block
Chargeback AttributionCost-center / business-unit tagging for chargeback billingwarn, block
SchedulingAllowed operation hours and dayswarn, block
Time-of-Day GatingBusiness-hours enforcement with timezone awarenesswarn, block
SafetyStep limits, tool call limits, execution depthwarn, block
Kill SwitchEmergency stop based on error rates or anomaliesblock
AuditAudit logging behavior, retention, detail levelsallow, warn
OperationsTimeouts, retry limits, concurrency settingswarn, block
LLMModel allowlists/blocklists, provider restrictionswarn, block
QualityOutput quality thresholds, stability checkswarn, block
ContentInput/output scanning for PII, credentials, injection patternswarn, redact, block
Spawn LimitTenant-wide ceiling on concurrent agent spawnswarn, throttle, block

Data & Security Boundaries

What agents can touch — data sources, network destinations, code execution, blast radius.

CategoryWhat it controlsActions
Data AccessWhich data sources agents can read/write, record limitswarn, block
NetworkOutbound domain allowlists/blocklists, protocol restrictionswarn, block
ScopeBlast radius limits — records modified, files changed, transaction amountswarn, block
Code ExecutionAllowed languages, paths, commands, sandbox requirementswarn, block
Input ValidationInbound data schema validation, size limits, sanitizationwarn, block
Output Egress FormatOWASP LLM05: block exfiltration-shaped outputs (base64, external URLs, data URIs)warn, block

Cognitive Governance

Quality of reasoning and grounding — preventing hallucination, ensuring explainability.

CategoryWhat it controlsActions
GroundingSource grounding, citation minimums, abstention thresholdswarn, block
Provenance RequiredOWASP LLM09b: strict per-claim citation enforcementwarn, block
RetrievalRAG quality — relevance scores, source age, diversitywarn, block
ReasoningDecision explainability, bias detection, logical consistencywarn, block
Recursion BoundOWASP LLM10c: cap reasoning depth, tool calls, delegationwarn, block
Prompt Injection GuardOWASP LLM01: prompt-injection detection (heuristic + classifier)warn, block

Agent Action Control

Gates on what agents are allowed to do — approvals, delegation, communication.

CategoryWhat it controlsActions
ApprovalHuman-in-the-loop gates for high-stakes actionsblock, warn
DelegationMulti-agent trust — delegation depth, allowed delegateswarn, block
Cross-Agent IsolationMemory/scratchpad isolation between sibling agentswarn, block
CommunicationOutput channel governance — allowed channels, disclaimerswarn, block
Domain GovernanceConnect domain-endpoint allow/block listswarn, block
Signal GovernanceAgent-emitted signal constraintswarn, throttle, block

Allowlists (Phase 1.5)

Positive-list governance for what agents can call.

CategoryWhat it controlsActions
Tool AllowlistWhich tools an agent is allowed to invokewarn, block
MCP Server AllowlistWhich MCP servers an agent can registerwarn, block
Prompt AllowlistWhich named prompt templates can be usedwarn, block
Tool Argument SchemaOWASP LLM06a: JSON schema validation for tool argumentswarn, block
Agent Service Account ScopeOWASP LLM06b: SaaS service-account restrictionswarn, block

Trust, Privacy & Compliance

Regulatory and trust controls — GDPR, HIPAA, ISO, NIST.

CategoryWhat it controlsActions
PrivacyData minimization, consent, residency, purpose limitationwarn, block
IdentityAI disclosure requirements, impersonation preventionwarn, block
MemorySession isolation, cross-session memory, retention limitswarn, block
ComplianceRegulatory profile validation (HIPAA, SOC 2, PCI-DSS, GDPR)warn, block
Context ManagementConversation length, context window utilizationwarn, block
Data ResidencyISO 42001 A.8.4: pin execution to approved regionswarn, block
Data ErasureGDPR Art-17 / CCPA: erasure request SLA enforcementwarn, block
Breach NotificationGDPR Art-33 / HIPAA: breach notification SLAswarn, block
Bias TrendNIST AI RMF MS-3.1: fairness monitoring over rolling windowswarn, block
Model Card RequiredOWASP LLM03 / NIST AI RMF GV-1.1: supply-chain model cardswarn, block

End-User Identity (Phase B)

Per-end-user governance for agents that serve many users via sub-user identity.

CategoryWhat it controlsActions
End-User BudgetPer-WaxellUser monthly cost capwarn, block
End-User Rate LimitPer-end-user / per-group rate limitingwarn, throttle, block
End-User SuspensionBlock runs for suspended end-userswarn, block

Policy Actions

When a policy evaluates, it returns one of these actions:

ActionEffect
allowExecution proceeds normally
warnExecution proceeds, warning recorded in trace
redactSensitive content masked with ##TYPE## placeholders, execution proceeds
throttleExecution delayed (rate-limited)
blockExecution stopped, PolicyViolationError raised
skipExecution skipped silently (no error raised)
retryExecution retried with backoff

Policies are evaluated in priority order. The first blocking result stops evaluation. Warnings and redactions accumulate across all matching policies.

Policy Scoping

Every policy can be scoped to specific targets. Scopes are combined with AND logic — a policy scoped to agent support-bot AND user group enterprise only applies to enterprise users running support-bot.

ScopeWhat it filters
agentsAgent names
agent_idsSpecific agent UUIDs
agent_groupsAgent group names (BALLER cross-agent isolation)
usersUser IDs
user_groupsUser group names
teamsTeam names
workflowsWorkflow names
toolsTool names
modelsLLM model names
sub_user_idsEnd-user IDs (Phase B identity)
end_user_groupsEnd-user group names (Phase B)
subscription_tiersSubscription tier names (Phase B)

Unscoped policies (no filters) apply globally to all executions within the tenant.

Enforcement Phases

Policies are checked at multiple points during execution:

PhaseWhenTypical action
before_workflowRun startsblock, warn
before_llm_callEach LLM callblock, redact, warn
before_domain_callEach domain/tool callblock, warn
mid_executionEach record_step() (if mid_execution_governance=True)block, warn
on_tool_callTool dispatchblock, warn
after_workflowRun completeswarn (records analytics)
import waxell_observe as waxell

waxell.init()

@waxell.observe(
agent_name="support-bot",
enforce_policy=True, # before_workflow + on_tool_call + before_llm_call
mid_execution_governance=True, # mid_execution
)
async def handle_query(query: str) -> str:
response = await call_llm(query)
waxell.step("process", output={"status": "done"})
return response

Standards Mapping

Each category maps to one or more industry standards:

StandardCategories
OWASP LLM Top 10prompt-injection-guard (LLM01), model-card-required (LLM03), output-egress-format (LLM05), tool-argument-schema (LLM06a), agent-service-account-scope (LLM06b), provenance-required (LLM09b), recursion-bound (LLM10c)
GDPRdata-erasure (Art-17), breach-notification (Art-33), privacy, data-residency
HIPAAbreach-notification (§164.404), audit, content, privacy
ISO 42001data-residency (A.8.4), audit, model-card-required
NIST AI RMFbias-trend (MS-3.1), model-card-required (GV-1.1), reasoning
SOC 2audit, safety, kill-switch, operations, content
CCPAdata-erasure, privacy
PCI-DSScontent (credentials), audit, network

Creating Policies

Via Dashboard

  1. Navigate to Governance > Policies
  2. Click New Policy (or From Template for a pre-built config)
  3. Select a category and configure rules
  4. Set scope (agents, users, workflows, etc.)
  5. Enable

Via API

# List all categories
curl -H "Authorization: Bearer $TOKEN" \
https://acme.waxell.dev/waxell/v1/policy-categories/

# List available templates
curl -H "Authorization: Bearer $TOKEN" \
https://acme.waxell.dev/waxell/v1/policy-templates/

# Create a policy
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
https://acme.waxell.dev/waxell/v1/policies/ \
-d '{
"name": "Production Rate Limit",
"category": "rate-limit",
"rules": {"max_per_minute": 100, "max_concurrent": 10},
"scope": {"agents": ["support-bot"]},
"enabled": true
}'

Via Platform Assistant

Ask the assistant to create a policy in natural language:

"Create a rate limit policy for my support-bot, max 100 requests per hour, throttle on excess"

The assistant renders an interactive policy card you can review and confirm before it's created. See Platform Assistant for details.

Next Steps