Governance, Safety & Risk Management·Task 5.1·Bloom: understand·Difficulty 2/5·8 min read·Updated 2026-07-14

The Three-Point Guarded Request Path for the CCAR-P Exam

Implement guardrails and safety controls

SUBy Solomon UdohReviewed by Solomon UdohAI-assisted · human-reviewed
In short
A guarded request path has three distinct checkpoints: input screening runs before the model call and decides whether a request should reach the model at all; output screening runs after generation and decides whether the response is safe to return; and tool-call authorization runs before any side-effecting action and decides whether this caller may perform this action in this context. Each answers a different question, so a control at one point provides zero coverage for the other two.

Three gates, three different questions

Once you accept that deployment-specific rules live in a runtime layer you build, the next question is where on the request path those runtime controls sit. The CCAR-P exam treats this as an understand-level skill because the whole design fails in a predictable way when candidates collapse three separate checkpoints into one. A guarded request path has three decision points, and each one answers a question the other two cannot.

The reason they are not interchangeable is that they inspect different things at different moments. One looks at the request as it arrives, one looks at the response the model produced, and one looks at an action the model is about to take. Placing a single control anywhere on that path leaves the other two questions unanswered, which is exactly the gap production incidents fall into.

The three-point guarded request path
The ordered set of checkpoints on a request: input screening (before the model call, deciding whether the request reaches the model), output screening (after generation, deciding whether the response is returned), and tool-call authorization (before any side-effecting action, deciding whether this caller may perform this action in this context). Each answers a distinct question and provides no coverage for the others.

Input screening: should this reach the model at all

Input screening runs before the model call. Its job is to decide whether the incoming request should reach the model in the first place - catching a jailbreak attempt, a prompt-injection pattern, a banned term, or an oversized payload before any tokens are spent. It is the only checkpoint that can stop a bad request from ever being processed, which makes it the right place for concerns that are cheapest to handle before generation.

What input screening cannot do is judge anything the model produces or any action the model later emits. It has seen only the request. If you rely on it as your whole defence, you are protected against bad inputs and exposed to everything downstream of the model call.

Output screening: is this response safe to return

Output screening runs after generation and before the response reaches the user. It inspects what the model actually produced - checking for toxicity, policy violations, a leaked field, or a schema breach - and decides whether that text is safe to return. It is the last gate before the user, and it is genuinely useful for catching a bad response the model generated despite a clean input.

Its blind spot is timing. Output screening looks at text, and it looks at that text only after generation. Anything the model already did on the way to producing that text - most importantly, any tool it called - has already happened by the time the output filter runs. Screening the words does nothing to unwind the deed.

Tool-call authorization: may this action run in this context

Tool-call authorization runs before any action with side effects: sending an email, writing to a database, issuing a refund. It answers a question neither of the other checkpoints touches - not "is this text safe" but "may this specific caller perform this specific action in this specific context." Because it gates the action itself, it is the only control that can stop an irreversible operation before it takes effect.

That placement is what makes it irreplaceable. A refund is a financial action; once the tool runs, money has moved. No amount of input or output screening recovers that. If a side-effecting action exists on the path, an authorization gate has to sit directly in front of it.

The full guarded request path, in order
Loading diagram...
Each gate answers a distinct question at a distinct moment; a control at one point provides no coverage for the other two.

What the CCAR-P exam trips candidates on

The signature trap is treating a single output-side content filter as a complete guarded path. A scenario shows a clean architecture diagram with one classifier on the output, the review passes, and you are asked whether the system is guarded. The credited answer is no, because the most consequential thing the system does - a side-effecting tool call - happens before that filter ever runs, and no check exists on the input.

The companion trap is assuming an action is "covered" because the text response was screened afterward. A refund, an email send, a database write - the exam will describe one running, then an output filter inspecting the generated text and passing it. Candidates who track the ordering see that the action already executed downstream of nothing and upstream of the only control present. The action was never authorized; it was merely narrated, and the narration passed a filter.

Worked example

A customer-support agent can call an issue_refund tool. A request comes in, the model emits the refund tool call, the tool runs, and only then does the single output filter inspect the generated text, find nothing unsafe, and pass. A reviewer approved this design because it has a content filter. Where is the gap?

Walk the ordering. The request arrived with no input screening configured, so nothing inspected it on the way in. The model emitted a tool call and the refund executed - money moved - with no authorization gate before the side effect. Only after the action completed did the output filter look at the text the model generated, find it benign, and pass it. The filter judged a description of an event that had already happened.

The design placed one control at one point and treated it as covering three. Output screening judges text, not actions, so it can never stand in for authorization. The correct design adds a tool-call authorization check immediately before issue_refund runs - a deterministic policy on the caller, the order, and the refund amount - and input screening on the way in for injection and malformed requests. The output filter stays, but as one of three gates rather than the whole defence.

The exam lesson: locate the irreversible action on the path first, then confirm a gate sits directly in front of it. A filter downstream of that action is not protecting it.

Common misreadings to avoid

Misconception

A single output content filter is a complete guarded path.

What's actually true

Output screening judges only the generated text, only after generation. It provides no coverage for the input or for any side-effecting action the model emitted, both of which need their own checkpoints. One filter at the end is a filter, not a guarded path.

Misconception

A refund, email, or database write is safe because the text response was screened afterward.

What's actually true

The action ran when the model emitted the tool call, before any output filter looked at anything. Screening the response after the fact cannot unwind the action. A side-effecting operation is only protected by tool-call authorization placed before it executes.

How this shows up on the exam

Domain 5 items give you a request path and ask which checkpoints are present and which question each answers. The reliable method is to trace the request in order - arrival, input screening, model call, tool authorization before any action, output screening, response - and confirm every point that needs a control has one. A missing gate is an attack surface regardless of how complete the diagram looks.

From here the domain refines each checkpoint. Deciding whether a given gate should be a classifier or a rule is the subject of model-based vs deterministic check selection, and deciding what a gate does when it errors is fail-open vs fail-closed design. The path itself resurfaces in the system vulnerability walkthrough, where you audit every entry point for a missing control, and in indirect injection via retrieved content and tool output, which reveals a fourth screening need input screening never sees.

Check your understanding

A support agent issues refunds via a tool. The design has one content filter on the model's output and nothing else. Which statement best describes its coverage?

People also ask

Where do guardrails sit on an LLM request path?
At three points: input screening before the model call, output screening after generation, and tool-call authorization before any side-effecting action. Each inspects something different.
What is the difference between input screening and output screening?
Input screening decides whether the request reaches the model; output screening decides whether the response is safe to return. One judges the request, the other the response.
Why does a single output filter not protect a tool call?
A tool call runs when the model emits it, before the output filter looks at anything. Only tool-call authorization placed before the action can stop it.

Watch and learn

Official Anthropic Academy lessons first, then hand-picked walkthroughs. Videos load only when you press play.

No videos curated for this concept yet

We are still curating the best official and community videos for this topic.

Official prep for this domain

Anthropic's own free prep module for this part of the syllabus, on the official prep course. Free with an Anthropic Academy sign-in.

References & primary sources

Adaptive study

Master this concept with Archie

Practice it inside an adaptive study session. Archie, your Socratic AI tutor, tracks your mastery with Bayesian Knowledge Tracing and schedules the perfect next review.

Start studying