Implementation Guide

    How to Enforce Conditional Model Approval at Runtime

    To enforce a conditional model approval at runtime, convert each condition into a checkable rule tied to one enforcement point (model call, tool call or MCP request), assign an action (allow, redact, block, rate limit or escalate for human approval), deny anything not explicitly validated, and record every decision with the policy version in force. Conditions about testing, training data or lineage remain pre-deployment or organizational controls.

    Criteria for evaluating an enforcement approach

    • Complete mediation: every model call, tool call and MCP request passes through the enforcement point, with no bypass path.
    • Action coverage: allow, redact, block, rate limit and escalate are supported per condition, and each behaves as you expect.
    • Failure behavior: you know whether the enforcement point fails open or closed on error or timeout, and what latency it adds under your load.
    • Policy versioning: each decision records the policy version and can be tied to the approval it implements.
    • Deployment and retention: self-managed operation, configurable retention and data residency match your requirements.

    Sort the conditions before writing policy

    A conditional approval usually lives in a memo or ticket: the agent may proceed, but only with restricted data types, limited tool access, blocked actions, rate limits, or human sign-off for high-impact steps. Once the agent is running, nothing in that memo constrains it. The gap between what was approved and what the agent does is a gap in enforcement, and it is also a gap in evidence.

    The first step is a sort. Go through the memo line by line and ask whether the condition can be evaluated on a single interaction or tool call. If it can, it becomes a runtime policy. If it cannot, label it a pre-deployment or organizational control and say so plainly. Conditions on testing metrics, training data or model lineage fall in the second group. The EU AI Act expects testing against prior defined metrics and probabilistic thresholds, and NIST AI 600-1 recommends go/no-go approval criteria. Those are satisfied with pre-deployment evidence, not by a runtime rule. Trying to force them into policy produces rules that look complete and prove nothing.

    Translating common conditions into runtime policy

    The mapping below is a starting point. Each row should become a named rule with an identifier that the memo can reference.

    • Restricted data types: Enforce on prompts, responses and retrieved content. Redact when the rest of the content is usable, block when it is not.
    • Limited tool access: Enforce on each tool call against a per-agent allow-list. Anything not listed is denied.
    • Blocked actions: Enforce on tool calls and MCP requests. Block outright and record the attempt.
    • Rate limits: Enforce per agent, tool or identity across the call loop, not per session.
    • Human sign-off for high-impact steps: Escalate on the specific tool call, such as an external post, and hold it until a named approver decides.
    • Testing, data or lineage conditions: Not runtime-enforceable per interaction. Keep as pre-deployment or organizational controls with their own evidence.

    Where in the execution path to apply each policy

    Place enforcement outside the agent and the model. LLMs take data and instruction through a single stream of tokens, so a condition expressed only in a prompt can be overridden by content the model reads. The EU AI Act likewise points to in-built operational constraints that the system itself cannot override. NIST makes the same architectural point: separation between the agent and the systems it touches should be enforced by design, with policy enforcement around the agent.

    Three points matter in practice. At the model call, evaluate the prompt and the response for data-type conditions. At the tool call, validate each invocation against the agent's permitted tools and parameters. At MCP server access, route requests through a single controlled point so access conditions are enforced in one place rather than in each agent.

    Apply checks on every call. Agents make repeated model calls and use earlier output to direct later ones, so a check at session start does not cover what happens in step twelve. Follow complete mediation: every request to a downstream system is validated, and unvalidated requests are denied by default. Pair this with least-privilege identities, such as scoped database permissions and just-in-time, time-bounded, audience-specific grants. When an agent delegates to a sub-agent, scopes should narrow, so a child cannot exceed the conditions placed on its parent.

    Choosing the action for each condition

    Allow is the outcome when a request satisfies the rule, and it should still produce a record. The other four actions differ in how much of the interaction they preserve.

    Redact fits conditions on data types where the task can continue without the restricted content. It depends on reliable detection, so test it against your own data. Block fits conditions where no safe variant exists, such as a prohibited action or an unapproved tool. Rate limit fits conditions on volume or repeated access, and it should be keyed to the identity or tool named in the condition. Escalate for human approval fits high-impact steps where the answer depends on context. NIST says organizations set the risk thresholds that trigger human review, and technology components should be able to route the decision to the right authority.

    Two design points follow. Define the threshold that triggers each escalation and name the receiving role. Human overseers need the competence, training and authority for the job, so a generic queue is not enough. Also decide what the agent receives after a block or a pending escalation, so that it stops cleanly instead of retrying through another path.

    Evidence that shows the conditions were applied

    An approval memo states intent. Evidence shows application. The goal is that a reviewer can start at a condition in the memo, find the runtime rule that implements it, and then see the decisions that rule made in production.

    For each decision, record the timestamp, the agent and its identity, the model or tool involved, the rule and condition identifier, the policy version in force, the action taken, and enough context to explain why. For escalations, also record who was asked, who decided and the outcome. Policy versioning matters because conditions change. Without a version on each decision, you cannot show which rule applied at a given time.

    Retain these records as inputs to monitoring. NIST AI RMF operational tasks include ongoing monitoring and tracking of incidents or errors, and decision records serve both. Retention period and data residency should be configurable to match your own obligations. Also state what the records do not cover. Per-interaction and per-tool-call decisions do not substitute for pre-deployment testing evidence, and the approval file should reference both.

    From approval memo to enforced policy

    Condition

    A line in the approval memo, such as a restricted data type or a blocked action.

    Enforcement point

    Model call, tool call or MCP server access.

    Action

    Allow, redact, block, rate limit or escalate for human approval.

    Evidence

    A decision record tied to the condition and the policy version.

    See how approval conditions become enforced policy

    Walk through your own approval conditions with our team and see how enforcement in the execution path produces audit-ready evidence.

    See How Evidence Is Produced