Skip to main content

Execution Policy Catalog

This page documents the governance policy taxonomy and the standard execution policies defined by the Agent Format standard. For a narrative overview of how execution policies work, see Execution Policies.

Policy Types Taxonomy

Governance policies in the Policy Registry fall into six categories. Each category maps to specific enforcement mechanisms in the SDK.

Budget Policies

AspectDetail
PurposeControl resource consumption (tokens, time)
Constraint overridesbudget.max_token_usage, budget.max_duration_seconds
Compositionmin(all values) -- tightest wins
Example"All agents in finance zone: max 50,000 tokens per run"

Access Control Policies

AspectDetail
PurposeRestrict which tools, domains, or agents can be used
Constraint overridesallowed_tools, deny_tools, allow_domains, deny_domains
CompositionAllowlists: intersection. Denylists: union.
Example"Agents tagged external cannot access internal MCP servers"

Data Handling Policies

AspectDetail
PurposeControl data flow -- PII detection, classification, retention
EnforcementGuardrail interceptor with specialized handlers
CompositionUnion -- all guardrails apply
Example"Agents handling confidential data must redact PII from outputs"

Guardrail Policies

AspectDetail
PurposeContent safety, hallucination detection, prompt injection prevention
EnforcementGuardrail interceptor chain
CompositionUnion -- all guardrails apply
Example"All production agents must pass output through content safety filter"

Approval Workflow Policies

AspectDetail
PurposeRequire human approval for specific actions or outputs
EnforcementApproval provider SPI
CompositionUnion -- if any source requires approval, approval is required
Example"Agents modifying production systems require approval"

Audit Policies

AspectDetail
PurposeControl logging, retention, and alerting
EnforcementRecording interceptor, trace store
CompositionUnion -- more logging, not less
Example"All compliance-zone agents must have full trace logging for 365 days"

Taxonomy Summary

TypeCompositionEnforcement Point
Budgetmin(all values)Budget interceptor
Access ControlAllowlist intersection, denylist unionAction resolver, tool filter
Data HandlingUnion of guardrailsGuardrail interceptor
GuardrailUnion of guardrailsGuardrail interceptor
ApprovalUnion (any requires = all require)Approval provider
AuditUnion (more logging, not less)Recording interceptor

Standard Execution Policies

All compliant runtimes MUST implement at least agf.react. For condition matching used by agf.loop and agf.conditional, see the Condition Matcher Reference.

Shared Types

PolicyStep

Used by agf.sequential, agf.parallel, and agf.loop to define sub-agent invocations.

FieldTypeRequiredDescription
agentstringYesAlias of the sub-agent to invoke (must match a local_agents[].alias).
input_mappingmap[string -> string]NoMaps agent input fields to path expressions (e.g., parent.input.query, researcher.output.findings).

OutputFrom

Used by agf.sequential, agf.parallel, and agf.loop to declare how the policy's final output is derived.

String shorthand: An agent alias (e.g., "reviewer"), or a strategy keyword: "last", "merge", "first".

Object form (mutually exclusive fields):

FieldTypeDescription
agentstringAlias of the sub-agent whose output becomes the policy output.
strategystring (enum: last, merge, first)Built-in output strategy.
custom_transformstringReference to a runtime-registered transformation function. Convention: <org>.<transform-name>.
descriptionstringHuman-readable description of the output selection logic.

agf.react -- ReAct

The agent iterates through reasoning and acting cycles, using tools to gather information before producing a final response. Fields are categorized as Constraint (runtime MUST honor) or Preference (runtime SHOULD honor but MAY override).

Constraint fields -- the runtime MUST honor these values:

Config FieldTypeDefaultDescription
max_stepsinteger (>=1)10Maximum number of reasoning-acting cycles before the agent must produce a final answer.

Identity field -- the runtime MUST pass this to the model verbatim:

Config FieldTypeDefaultDescription
instructionsstring--System prompt defining the agent's persona, capabilities, and behavioral guidelines. The runtime MUST NOT modify this value (governance policies may augment it).

Preference fields -- the runtime SHOULD honor these when possible, but MAY override based on deployment policy, model availability, or organizational rules:

Config FieldTypeDefaultDescription
providerstring--Model provider identifier (e.g., google, openai, anthropic). Preference -- the runtime may override based on deployment policy.
modelstring--Model identifier within the provider (e.g., gemini-2.5-pro, gpt-4o, claude-sonnet-4-20250514). Preference -- the runtime may override.
temperaturenumber (0.0--2.0)--Sampling temperature. Lower values (0.0--0.3) produce more deterministic outputs; higher values (0.7--1.5) produce more creative outputs.
top_pnumber (0.0--1.0)--Nucleus sampling probability. Typically used as an alternative to temperature.
top_kinteger (>=1)--Top-k sampling -- limits token selection to the k most probable candidates at each step. If the underlying model does not support top-k, the runtime SHOULD silently ignore this field.
max_output_tokensinteger (>=1)--Maximum number of tokens the model may generate in a single response.
stop_sequencesstring[]--Sequences that cause the model to stop generating further tokens.
tool_choicestring (enum: auto, required, none)--Controls how the LLM selects tools. auto: LLM decides. required: must call at least one tool per step. none: text generation only.
user_prompt_templatestring--Mustache-style template for the initial user message. Placeholders: {{field_name}}. When absent, the runtime converts input to a natural-language prompt.

agf.sequential -- Sequential

Steps execute in order. Each step is a PolicyStep sub-agent invocation. Output from one step can be mapped as input to the next via input_mapping.

Config FieldTypeRequiredDefaultDescription
stepsPolicyStep[]Yes--Ordered list of sub-agent invocations. Steps execute sequentially; each step completes before the next begins.
output_fromOutputFromNo"last"Determines the policy's final output. Default: the last step's output.

agf.parallel -- Parallel

Multiple sub-agents execute concurrently. All results are combined when all complete.

Config FieldTypeRequiredDefaultDescription
agentsPolicyStep[]Yes--List of sub-agent invocations to run concurrently. Order in the array does not imply execution order.
output_fromOutputFromNo"merge"Determines the policy's final output. Default: merge all sub-agent outputs into a single object keyed by agent alias.

agf.batch -- Batch

A single sub-agent processes each item from an input collection independently. The policy output is always an array of per-item results.

Config FieldTypeRequiredDefaultDescription
agentstringYes--Alias of the sub-agent that processes each item (must match a local_agents[].alias).
input_mappingmap[string -> string]Yes--Maps the sub-agent's input fields to path expressions. Must contain at least one field with [] array iteration syntax (e.g., parent.input.items.[].value).
max_batch_countinteger (>=0)No0Maximum number of items to process. 0 means unlimited -- process the entire input array.

agf.loop -- Loop

Steps repeat each iteration until exit_condition is satisfied or max_iterations is reached. The exit_condition uses ConditionGroup matchers (see Condition Matcher Reference).

Config FieldTypeRequiredDefaultDescription
stepsPolicyStep[]Yes--Steps to execute per iteration. All steps run sequentially within each iteration.
max_iterationsinteger (>=1)No10Maximum number of loop iterations. Acts as a safety bound even if exit_condition is never met.
exit_conditionConditionGroup or ConditionGroup[]No--Condition evaluated after each iteration. The loop exits when matched. A single group (AND) or array of groups (OR-of-ANDs). When absent, the loop runs for exactly max_iterations.
output_fromOutputFromNo"last"Determines the policy's final output. Default: the last iteration's last step's output.

agf.conditional -- Conditional

Evaluates conditions in order and routes to the first matching sub-agent. Conditions use ConditionGroup matchers (see Condition Matcher Reference).

Config FieldTypeRequiredDefaultDescription
routesConditionalRoute[]Yes--Ordered list of condition-agent pairs. The first matching route is executed.
default_agentstringNo--Alias of the fallback sub-agent when no route condition matches. When absent and no route matches, the runtime MUST return an error.

ConditionalRoute:

FieldTypeRequiredDescription
whenConditionGroup or ConditionGroup[]YesCondition evaluated using ConditionGroup matchers. A single group (AND) or array of groups (OR-of-ANDs). Path expressions in field names reference parent input.
agentstringYesAlias of the sub-agent to invoke when the condition matches.
input_mappingmap[string -> string]NoMaps the sub-agent's input fields to path expressions. When absent, the parent's full input is passed through.