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.