SaveMyCert
Log in
5 of 5 free questions left today·for 10 a day
AIP-C01 practice

AIP-C01 sample questions — 25 answered and explained

25 AIP-C01 sample questions written to the official AWS Certified Generative AI Developer – Professional (AIP-C01) exam guide, grouped by exam domain and weighted like the real exam. Each shows the correct answer, why every other option is wrong, and the lesson that teaches it. None of them repeat the examples on the other AIP-C01 practice pages.

On this page
25
answers included
Full bank
841
on the practice page
Domains
5
weighted like the exam
Free, no account
5/day
a free account allows 10 a day

Domain 1: Foundation Model Integration, Data Management, and Compliance

31% of the AIP-C01 exam, so 8 of the 25 questions on this page.

Question 1Foundation Model Integration, Data Management, and Compliance

A claims portal sends uploaded documents through Amazon API Gateway to a Lambda function that calls a Bedrock model synchronously. Extraction now takes two to five minutes per claim, so clients time out, and during peaks Bedrock throttles and those claims are lost. The company needs every claim processed eventually, the web client told when results are ready, and the least operational overhead. Which design should the developer implement?

Choose one.

  • a
    Raise the API Gateway integration timeout and the Lambda timeout so each claim's synchronous model call can finish

    Longer timeouts keep connections open for minutes but leave the call synchronous; a throttled request still fails with nothing holding the claim for a retry.

  • b
    Buy provisioned throughput for the model sized for peak so that synchronous client calls are not throttled

    Reserved capacity can stop throttling, but a two-to-five-minute call still exceeds what a synchronous web request should hold, and it adds a standing cost.

  • c
    Start a Step Functions Express workflow synchronously from API Gateway to run each claim's extraction for the client

    A synchronous Express execution still blocks the client for the whole run and has no durable buffer, so long runs and throttled claims remain a problem.

  • d
    Have API Gateway enqueue each claim in SQS for a Lambda consumer that calls the model and stores status Correct

    The queue holds every claim through throttling and retries, the consumer runs outside the client's request, and a status record lets the client fetch the result when it is ready.

The concept

Decoupling long-running FM calls from the client with a queue and a status store.

Why that’s the answer

Two separate failures need one design. Long processing means the client must not wait on the model call, and throttling means requests need a durable buffer with retries. Putting an SQS queue behind API Gateway solves both: the API returns immediately with an ID, the consumer retries throttled calls from the queue, and the client polls a status record (or is notified). Longer timeouts and a synchronous Express workflow keep the client blocked and lose throttled work; provisioned throughput addresses throttling only and at a fixed cost.

How to reason it out
  1. Separate the symptoms: client timeouts and lost requests under throttling.
  2. A queue gives durability and retries; an asynchronous response frees the client.
  3. Reject options that keep the request synchronous.
  4. Prefer managed services over standing capacity for the least overhead.

Exam tip: Long or throttle-prone FM calls belong behind a queue; return a job ID, not the answer.

AIP-C01 GenAI Solution Design: Architecture, Proofs of Concept and Standards — the lesson that teaches this.

Question 2Foundation Model Integration, Data Management, and Compliance

An internal research tool sends individual requests to a Bedrock model throughout the day as analysts queue up literature summaries. Analysts are happy to collect results a few minutes later, but each summary must still be produced from its own API request as it arrives, not gathered into files. Finance wants the lowest per-token price the model offers for this pattern. Which option should the developer choose?

Choose one.

  • a
    Send each request with the service tier set to priority

    The Priority tier gives the fastest responses at a premium over standard pricing, which is the opposite of the finance goal.

  • b
    Collect the requests into files and run batch inference jobs

    Batch inference is discounted too, but it processes files of requests as a job; the stem requires each summary to come from its own request as it arrives.

  • c
    Buy provisioned throughput sized to the analysts' daily volume

    Provisioned throughput is a capacity commitment billed regardless of use; it buys consistency, not the lowest per-token price for a latency-tolerant workload.

  • d
    Send each request with the service tier set to flex Correct

    The Flex tier is for requests that can tolerate longer processing, and it is billed at a discount to the Standard tier, while each request is still an ordinary runtime API call.

The concept

Bedrock service tiers (Reserved, Priority, Standard, Flex) versus batch inference.

Why that’s the answer

The workload tolerates minutes of delay but must stay request-by-request. Bedrock's Flex tier is designed for exactly that: set service_tier to flex on the runtime call and accept longer processing in return for a discount. Batch inference is also cheap but works on files in S3, which the stem rules out. Priority pays more for speed, and provisioned throughput is a fixed commitment.

How to reason it out
  1. Note the latency tolerance: minutes are acceptable.
  2. Note the interaction model: one API call per request, no files.
  3. Choose the per-request option priced for latency-tolerant work.

Exam tip: Latency-tolerant but per-request: Flex tier; latency-tolerant and file-based: batch inference.

AIP-C01 GenAI Solution Design: Architecture, Proofs of Concept and Standards — the lesson that teaches this.

Question 3Foundation Model Integration, Data Management, and Compliance

A bank's customer-facing assistant runs on a Bedrock model. Traffic spikes unpredictably during market events, and in those spikes response times rise noticeably. The product owner wants the fastest possible responses for these customer conversations and is willing to pay more per token, but the traffic does not justify reserving capacity around the clock or signing a term commitment. What should the developer do?

Choose one.

  • a
    Send the assistant's requests with the service tier set to priority Correct

    The Priority tier gives request-level prioritization over Standard and Flex traffic at a premium per-token price, with no reservation, which fits spiky, latency-sensitive customer traffic.

  • b
    Reserve tokens-per-minute capacity in the Reserved tier for the model

    The Reserved tier suits mission-critical traffic that needs guaranteed capacity, but it requires a one- or three-month reservation, which the product owner has ruled out.

  • c
    Send the assistant's requests with the service tier set to flex

    The Flex tier is discounted because requests may take longer; it lowers cost and would make the slow responses worse.

  • d
    Raise the SDK retry count and keep requests in the default Standard tier

    More retries may recover failed calls, but they add delay rather than shortening response times for successful ones.

The concept

Choosing a Bedrock service tier by latency need and commitment tolerance.

Why that’s the answer

The requirements are fastest responses, a willingness to pay a premium, and no reservation or term. The Priority tier matches all three: it is selected per request through the service_tier parameter, its requests are served ahead of Standard and Flex, and it needs no prior reservation. The Reserved tier also gives priority capacity but requires a monthly or quarterly reservation. Flex is the slow, discounted tier, and retries only lengthen waits.

How to reason it out
  1. Rank the needs: speed first, cost second, no commitment.
  2. Map 'pay more, no reservation' to a per-request tier.
  3. Eliminate tiers that need a term reservation or are designed to be slower.

Exam tip: Fastest responses without a reservation: Priority tier; guaranteed reserved capacity: Reserved tier.

AIP-C01 GenAI Solution Design: Architecture, Proofs of Concept and Standards — the lesson that teaches this.

Question 4Foundation Model Integration, Data Management, and Compliance

A lender wants GenAI in its loan-review process. The steps are fixed by regulation: extract income figures from documents, check them against policy, draft a decision letter, and wait for a human underwriter's approval before sending it. Auditors require every step to run in the same order each time with a recorded history of its inputs and outputs. Which design meets these requirements with the least custom code?

Choose one.

  • a
    A Bedrock agent with an action group for each step that decides the order from the instructions

    An agent plans its own sequence at run time, so the order is not guaranteed to be the same each time, which is the property auditors require.

  • b
    A Step Functions Standard workflow that calls Bedrock per step and waits on a task token for approval Correct

    A Standard workflow runs the fixed steps in a defined order, records each state's inputs and outputs in its execution history, calls Bedrock through a service integration and waits on a task token for the underwriter.

  • c
    A Step Functions Express workflow that calls Bedrock for each step and polls an approval table for the decision

    Express workflows are for short, high-volume runs: they cannot wait days for a human and do not keep the step-by-step history a Standard workflow records.

  • d
    A chain of Lambda functions that pass results through SQS queues and log each step to CloudWatch

    This can be made to work, but the ordering, approval wait and audit trail all become custom code that the managed workflow provides.

The concept

Deterministic orchestrated workflows versus autonomous agents for regulated processes.

Why that’s the answer

When the sequence is fixed and must be provable, the model should do the language work while a workflow controls the order. Step Functions Standard runs states in a defined order, keeps a full execution history, integrates directly with Bedrock InvokeModel and supports the wait-for-callback pattern for human approval. An agent chooses its own plan, which breaks the same-order guarantee. Express workflows cannot hold a long human wait, and a hand-built Lambda chain recreates what Step Functions already provides.

How to reason it out
  1. Decide who controls the sequence: the business (workflow) or the model (agent).
  2. Fixed regulated steps with an audit trail point to an orchestrated workflow.
  3. Long human waits need Standard workflows and a callback pattern.
  4. Prefer managed orchestration to custom glue code.

Exam tip: Fixed, auditable steps: orchestrate with Step Functions and call the model inside; use agents only when the path must be decided at run time.

AIP-C01 GenAI Solution Design: Architecture, Proofs of Concept and Standards — the lesson that teaches this.

Question 5Foundation Model Integration, Data Management, and Compliance

An IT helpdesk assistant must handle requests such as resetting MFA, checking a laptop order, or granting access to a shared drive. There are 15 internal APIs, and which ones are needed, and in what order, depends on what the employee asks over several turns of conversation. The team wants a managed AWS approach rather than writing the planning logic themselves. Which design should the developer use?

Choose one.

  • a
    A Step Functions workflow with a Choice state for each request type that calls the APIs

    A workflow works for known paths, but combinations of 15 APIs over several turns would need every path designed in advance, which is the planning logic the team wants to avoid.

  • b
    A Bedrock agent with action groups describing the 15 APIs, backed by Lambda functions Correct

    An agent uses the FM to reason over the conversation, choose which action group APIs to call and in what order, and keep conversational context, which is the run-time planning this assistant needs.

  • c
    A Bedrock knowledge base over the API documentation that returns the right API for each request

    A knowledge base retrieves text to ground answers; it does not call the APIs or carry out multi-step actions.

  • d
    An Amazon Bedrock flow that sends each request through the same fixed sequence of prompt nodes

    A Bedrock flow runs a predefined sequence of nodes; it does not decide at run time which of many APIs to invoke across turns.

The concept

When an agent fits: run-time choice of tools across multiple turns.

Why that’s the answer

The assistant's path is not known in advance: the needed APIs and their order depend on the conversation. That is what an agent provides, with the model planning tool calls from the API descriptions in its action groups while Lambda functions execute them. A Step Functions design would have to enumerate every path, a knowledge base cannot act, and a Bedrock flow follows a fixed sequence.

How to reason it out
  1. Ask whether the sequence of actions is known before the request arrives.
  2. Unknown, conversation-dependent tool use points to an agent.
  3. Check each option can actually invoke APIs, not just retrieve text.

Exam tip: Agents for paths decided at run time; workflows for paths you can draw in advance.

AIP-C01 GenAI Solution Design: Architecture, Proofs of Concept and Standards — the lesson that teaches this.

Question 6Foundation Model Integration, Data Management, and Compliance

A small team must build a question-answering feature over 3,000 internal documents in Amazon S3. Answers need source citations, and the team has no experience running vector databases or writing chunking and embedding code. They want the least operational overhead and to stay within Amazon Bedrock where possible. Which approach should the developer take?

Choose one.

  • a
    Write Lambda functions that chunk and embed the files into a self-managed OpenSearch cluster

    This can produce a good RAG system, but the team would own the chunking code, the embedding pipeline and a cluster, which is the overhead they want to avoid.

  • b
    Fine-tune a Bedrock model on the 3,000 internal documents and query it directly for answers

    Fine-tuning does not give source citations and must be repeated when documents change, so it fails the citation requirement.

  • c
    Create an Amazon Bedrock knowledge base on the S3 bucket and use its retrieve-and-generate API Correct

    A Bedrock knowledge base manages ingestion, chunking, embedding and retrieval, and its retrieve-and-generate API returns answers with citations, so the team writes almost no pipeline code.

  • d
    Run an open-source RAG framework on Amazon ECS that calls the Bedrock embeddings model

    Using Bedrock embeddings helps, but the team would still operate containers, the framework and a vector store, which is more overhead than a managed knowledge base.

The concept

Managed RAG with Amazon Bedrock Knowledge Bases versus a custom-built pipeline.

Why that’s the answer

The constraints are least overhead, no vector-database skills, and citations. Bedrock Knowledge Bases covers the whole RAG pipeline as a managed feature: it syncs from S3, chunks and embeds documents, stores vectors (it can create the vector store for you), and RetrieveAndGenerate returns answers with citations. Custom pipelines on Lambda or ECS meet the functional goal but add components to run, and fine-tuning cannot cite.

How to reason it out
  1. Identify the pattern: RAG with citations.
  2. Weigh build-it-yourself against the managed feature for the stated skills and overhead.
  3. Eliminate approaches that cannot cite sources.

Exam tip: Least-overhead RAG on AWS: start with a Bedrock knowledge base before building your own pipeline.

AIP-C01 GenAI Solution Design: Architecture, Proofs of Concept and Standards — the lesson that teaches this.

Question 7Foundation Model Integration, Data Management, and Compliance

A product manager wants to know, by the end of the day, whether a model can answer staff questions about a single 8 MB supplier contract accurately and with citations. If the idea works, a full design will follow; if not, nothing should be left to clean up. The developer wants no vector store, ingestion job or other resources to create for this test. What should the developer do?

Choose one.

  • a
    Create a Bedrock knowledge base with a quick-created vector store and sync the contract into it

    This would answer the question, but it creates a vector store and a sync job that cost money and must be deleted afterwards, which the developer wants to avoid for a one-day test.

  • b
    Call RetrieveAndGenerate with the contract as an external source and review the cited answers Correct

    RetrieveAndGenerate can query one document passed from S3 or as bytes (up to 10 MB) without creating a knowledge base, and it returns citations, so there is nothing to provision or clean up.

  • c
    Fine-tune a Bedrock model on the contract text and compare its answers with the original clauses

    Fine-tuning takes far longer than a day to prepare and run, leaves a custom model behind, and cannot cite the clause an answer came from.

  • d
    Deploy an open-weight model from SageMaker JumpStart and paste the contract into each prompt

    An endpoint takes time to deploy, bills while running and must be deleted, and pasting the contract gives no built-in citations.

The concept

Using Amazon Bedrock to validate feasibility quickly in a proof of concept.

Why that’s the answer

A proof of concept should answer the business question with the least investment. For one document, Bedrock lets you run retrieve-and-generate against an external source, either an S3 object or base64 bytes up to 10 MB, with no knowledge base or vector store, and the response includes citations. Creating a knowledge base, fine-tuning, or deploying an endpoint all produce resources and cost that a one-day feasibility check does not need.

How to reason it out
  1. Define the PoC question: can a model answer from this document with citations?
  2. Choose the smallest mechanism that answers it.
  3. Check size and scope limits: one document per request, 10 MB as bytes.
  4. Avoid anything that leaves billable resources behind.

Exam tip: A PoC answers one feasibility question cheaply; one document needs no knowledge base.

AIP-C01 GenAI Solution Design: Architecture, Proofs of Concept and Standards — the lesson that teaches this.

Question 8Foundation Model Integration, Data Management, and Compliance

During a proof of concept, a support team must choose between two Bedrock models for drafting replies to customer tickets. They have 300 real tickets with replies their best agents wrote. Leadership wants evidence, before any production build, of which model's drafts are more correct and helpful on this company's own tickets, without the team hand-grading hundreds of outputs. What should the developer do?

Choose one.

  • a
    Compare the two models' published scores on public reasoning and coding benchmarks

    Public benchmarks measure general skills on other data; they do not show which model writes better replies to this company's tickets.

  • b
    Try five representative tickets on each model in the Bedrock console playground

    A playground check is a useful first look, but five tickets is anecdote rather than evidence, and the judgement would still be manual.

  • c
    Release both models to customers and compare the ticket reopen rates after a month

    Testing on live customers is a production experiment; leadership wants evidence before any production build exists.

  • d
    Run one Bedrock LLM-as-a-judge evaluation job per model on the 300 tickets Correct

    Each evaluation job runs one generator model on the team's own prompt dataset, and the judge model scores qualities such as correctness and helpfulness against the reference replies. One job per candidate gives comparable scores with no manual grading.

The concept

Validating model fit during a PoC with evaluations on representative data.

Why that’s the answer

A PoC decision needs evidence from the organisation's own data at a scale that means something. A Bedrock LLM-as-a-judge evaluation job takes a custom prompt dataset with reference responses, generates outputs from one model and has a judge model score correctness, helpfulness and similar metrics. Running one job per candidate on the same 300 tickets gives directly comparable scores without manual grading. Public leaderboards measure different tasks, a five-prompt playground session is too small, and a live A/B test needs a production system the team has not built yet.

How to reason it out
  1. Use the company's own representative examples, not general benchmarks.
  2. Use enough examples to separate the models.
  3. Automate scoring where manual grading does not scale.
  4. Keep the comparison before production.

Exam tip: Choose PoC models on your own data at scale; public leaderboards are a shortlist, not evidence.

AIP-C01 GenAI Solution Design: Architecture, Proofs of Concept and Standards — the lesson that teaches this.

Domain 2: Implementation and Integration

26% of the AIP-C01 exam, so 6 of the 25 questions on this page.

Question 9Implementation and Integration

A research assistant runs a ReAct loop in an AWS Step Functions Standard workflow: each iteration calls a model through Amazon Bedrock and then a search tool through AWS Lambda. For a few vague questions the model keeps searching, and those executions run for hours before failing because the execution history quota is exceeded. Users then get no answer at all. The team wants a hard limit on reasoning steps and a best-effort answer when the limit is reached. What should the developer do?

Choose one.

  • a
    Track an iteration count in the state, and use a Choice state to route to a final model call without tools at the limit Correct

    The counter enforces a step cap inside the workflow, and the final model call without tools forces an answer from what has been gathered.

  • b
    Convert the workflow to an Express workflow so that each looping execution is stopped at the Express duration limit

    Express workflows end after five minutes by failing the execution, so users still get no answer, and the step count remains unbounded.

  • c
    Set TimeoutSeconds on the state machine to one hour and Catch States.Timeout into a final model call without tools

    TimeoutSeconds at the top level fails the whole execution, and a state's Catch cannot catch an execution timeout, so no final call runs.

  • d
    Set TimeoutSeconds to one hour on the search Task state and Catch States.Timeout into a final model call without tools

    Each search call finishes in seconds, so a per-state timeout never fires; the loop of successful iterations is still uncapped.

The concept

Agent loops need explicit stopping conditions; Step Functions Standard executions also have a hard execution history quota (25,000 events).

Why that’s the answer

Two facts combine here. A ReAct loop has no built-in end other than the model choosing to answer, and a Standard workflow fails once its history reaches the 25,000-event quota. A counter checked by a Choice state is a deliberate stopping condition, and routing to a final call without tools turns the cap into a graceful best-effort answer. Express and execution-level timeouts fail the run (a state's Catch cannot catch an execution timeout), and a timeout on the search state never fires because each call is short.

How to reason it out
  1. Identify the missing stopping condition in the loop.
  2. Note that execution-level limits fail the run, and per-state timeouts do not count iterations.
  3. Add a counter plus a Choice state to cap iterations deliberately.
  4. Finish with a model call that has no tools so it must answer.

Exam tip: Cap agent loops with your own counter and end with a forced answer; timeouts fail runs, they do not finish them.

AIP-C01 Agentic AI: Multi-Agent Systems, Safeguards, Human Review and MCP Tools — the lesson that teaches this.

Question 10Implementation and Integration

A Bedrock agent's action group calls an AWS Lambda function that queries a partner's shipping API. The Lambda function timeout is 60 seconds. When the partner API hangs, the call blocks until the function times out, and the agent turn fails with a generic error. The team wants the tool to give the agent a clear 'shipping data unavailable' result within 8 seconds so that the agent can tell the customer and offer an alternative. What should the developer do?

Choose one.

  • a
    Set the Lambda function timeout to 8 seconds so that the action group gets a result when a hanging call is cut off

    The function would be killed mid-call and return an error instead of a result, so the agent still gets a generic failure, just sooner.

  • b
    Increase the memory of the Lambda function so that the partner API call completes and the action group result arrives sooner

    More memory adds CPU, but a hung remote API does not respond faster; the wait is on the partner side.

  • c
    Configure reserved concurrency on the Lambda function so that the tool does not become unavailable to the action group under load

    Concurrency controls how many copies run, not how long a single call waits on a remote API.

  • d
    Set an 8-second timeout on the HTTP client call and return an unavailable result to the action group when it fires Correct

    A client-side timeout inside the function bounds the wait, and the function still returns a well-formed response the agent can reason about.

The concept

Timeout mechanisms for agent tools belong inside the tool so it can return a structured result instead of being killed.

Why that’s the answer

The requirement is a meaningful result within 8 seconds. A timeout on the outbound HTTP call (shorter than the function timeout) lets the function catch the timeout and return a normal action group response saying the data is unavailable, which the agent can turn into a helpful reply. Cutting the function timeout only produces the same generic error faster, and memory or concurrency settings do not bound a hung remote call.

How to reason it out
  1. Separate the function's own timeout from the timeout on the remote call.
  2. Note that a killed function cannot return a result.
  3. Bound the remote call and return a structured unavailable result.
  4. Reject settings that do not limit waiting on the partner.

Exam tip: Time out the dependency inside the tool, not the tool itself, so the agent still gets an answer it can use.

AIP-C01 Agentic AI: Multi-Agent Systems, Safeguards, Human Review and MCP Tools — the lesson that teaches this.

Question 11Implementation and Integration

A SaaS company's support agent uses a tool implemented as an AWS Lambda function that reads a tenant's orders from a shared Amazon DynamoDB table with the tenant ID as the partition key. The model passes the tenant ID as a tool parameter. A red-team test showed that a crafted prompt made the agent read another tenant's orders. The company requires isolation that holds even when the model is manipulated. Which combination of steps will meet this requirement? (Select TWO.)

Choose TWO.

  • a
    Add an instruction to the agent's system prompt that forbids the model from reading DynamoDB items of other tenants

    Instructions guide the model but the red-team test already showed they can be manipulated; they are not an enforcement boundary.

  • b
    Add a Bedrock guardrail with a denied topic that blocks requests mentioning other tenants or their order data

    A guardrail filters content by meaning and cannot know which tenant a tenant ID belongs to; it is not an access control on DynamoDB.

  • c
    Have the tool assume a role tagged with the tenant from the caller's authenticated identity, not from model output Correct

    The tenant comes from the verified caller, so nothing the model generates can change which tenant's credentials the tool holds.

  • d
    Restrict the role's DynamoDB permissions with a dynamodb:LeadingKeys condition that matches the tenant principal tag Correct

    IAM then only allows reads where the partition key equals the session's tenant tag, so a request for another tenant is denied.

  • e
    Constrain the tenant ID parameter in the tool's input schema to the pattern used by valid tenant IDs in the orders table

    Another tenant's ID is still a valid format, so schema validation does not stop cross-tenant reads.

The concept

IAM resource boundaries enforce what an agent's tools can touch regardless of model output; prompts and filters cannot.

Why that’s the answer

Isolation must not depend on the model. The tool should obtain credentials scoped to the tenant of the authenticated caller, for example by assuming a role with a tenant session tag set from the verified identity. A dynamodb:LeadingKeys condition comparing the partition key to that principal tag then makes IAM deny reads of any other tenant's items. Prompt instructions, guardrails and format validation all leave the decision with model-supplied data.

How to reason it out
  1. Treat every model-generated parameter as untrusted.
  2. Derive the tenant from the authenticated caller, not the prompt.
  3. Let IAM enforce the partition key match with dynamodb:LeadingKeys.
  4. Reject controls that rely on the model or on content filtering.

Exam tip: Agent tools get least-privilege credentials from the caller's identity; IAM, not the prompt, enforces the boundary.

AIP-C01 Agentic AI: Multi-Agent Systems, Safeguards, Human Review and MCP Tools — the lesson that teaches this.

Question 12Implementation and Integration

A platform team lets product developers create their own IAM roles for agent tools so that the developers are not blocked waiting on tickets. Security requires that no role a developer creates can ever grant more than a central list of approved actions, such as reading specific DynamoDB tables and invoking Bedrock models, even if a developer attaches an overly broad policy to it. Other teams in the same account must not be affected. Which combination of steps will meet these requirements? (Select TWO.)

Choose TWO.

  • a
    Create a managed policy listing the approved actions to serve as the permissions boundary for every agent tool role Correct

    A permissions boundary sets the maximum permissions a role can have; actions outside it are denied even if an attached policy allows them.

  • b
    Attach a service control policy to the account that denies the actions that agent tool roles are not approved to use

    An SCP would restrict every principal in the account, including other teams, which the requirement rules out.

  • c
    Let developers create agent tool roles but attach AWS managed policies alone, with inline policy creation denied

    Some AWS managed policies are very broad, so this does not cap the role at the approved list.

  • d
    Allow developers iam:CreateRole only with an iam:PermissionsBoundary condition that names that managed policy Correct

    This forces every role developers create to carry the boundary, so they cannot create an unbounded role.

  • e
    Pass a session policy with the approved actions when each agent tool assumes its role, set in the tool's own code

    Session policies only apply if the caller chooses to pass them, and developers control the tool code, so the cap is not enforced.

The concept

Permissions boundaries cap the maximum permissions of roles, and a condition on role creation makes them mandatory for delegated administrators.

Why that’s the answer

The goal is delegated role creation with a hard ceiling that only affects these roles. A managed policy used as a permissions boundary defines that ceiling, and requiring iam:PermissionsBoundary on CreateRole (and on the policy-attachment actions) ensures developers cannot create roles without it. An SCP caps the whole account, managed-policy-only rules do not cap actions, and session policies are opt-in for the code that assumes the role.

How to reason it out
  1. Recognise delegated role creation as the permissions boundary use case.
  2. Define the ceiling as a managed policy.
  3. Make the ceiling mandatory with an iam:PermissionsBoundary condition.
  4. Reject account-wide or opt-in controls.

Exam tip: Delegate role creation safely with a required permissions boundary; it caps the role whatever policies get attached.

AIP-C01 Agentic AI: Multi-Agent Systems, Safeguards, Human Review and MCP Tools — the lesson that teaches this.

Question 13Implementation and Integration

An order-support agent runs as many concurrent AWS Lambda-based executions, and each one calls an internal inventory API through a tool. When the inventory API degrades, every execution waits through its retries, responses slow down for all customers, and the extra calls keep the API overloaded. The team wants every execution to stop calling the API for a cool-down period after repeated failures, then let a trial call through to test recovery. Which approach meets these requirements?

Choose one.

  • a
    Keep the failure count and an open-until time in a global variable in the Lambda handler module, and skip calls while open

    Each Lambda execution environment has its own memory, so concurrent environments do not see each other's counts and keep calling.

  • b
    Add retries with exponential backoff and jitter to the tool's calls to the inventory API so that calls are spread out

    Backoff spaces out retries within one execution, but every new execution still calls the failing API and waits.

  • c
    Store a failure count and open-until time in DynamoDB, check it before each call and return an unavailable result while open Correct

    Shared circuit state lets every execution see that the breaker is open, skip the call during the cool-down and allow a trial call afterwards.

  • d
    Set the reserved concurrency of the tool Lambda function to one so that a single call at a time reaches the inventory API

    This throttles all tool calls permanently, including when the API is healthy, and queued executions still wait.

The concept

A circuit breaker stops calls to a failing dependency for a cool-down (open), allows a trial call (half-open) and resumes on success (closed); its state must be shared.

Why that’s the answer

The breaker must be visible to every concurrent execution, so its state has to live in a shared store such as DynamoDB. Before calling, the tool checks the state; while open it returns a clear unavailable result immediately, after the cool-down it allows a trial call, and success closes the circuit. Module-level variables are per execution environment, backoff only spaces retries within one run, and a concurrency of one throttles healthy traffic as well.

How to reason it out
  1. Identify the pattern: stop calling a failing dependency, then probe.
  2. Note that many executions run concurrently in separate environments.
  3. Put the breaker state in a shared store and check it before calling.
  4. Reject per-environment state and per-request retries.

Exam tip: Circuit breaker state must be shared across all callers; retries with backoff are not a circuit breaker.

AIP-C01 Agentic AI: Multi-Agent Systems, Safeguards, Human Review and MCP Tools — the lesson that teaches this.

Question 14Implementation and Integration

An insurer classifies each incoming claim into one of six categories. To reduce the impact of any single model's mistakes, the team calls three different foundation models on Amazon Bedrock for every claim. The final category must be the one that most models agree on, and claims on which no two models agree must go to a human adjuster. Latency must stay close to that of a single model call. How should the developer implement this?

Choose one.

  • a
    Invoke the three models one after another in a Step Functions workflow, then use a Lambda function to take the majority label or route to review

    Sequential calls roughly triple the latency, which breaks the requirement to stay close to a single call.

  • b
    Enable Amazon Bedrock intelligent prompt routing across the three models so that the best one answers each claim

    Prompt routing sends each request to one model, so there is no agreement between models to measure.

  • c
    Invoke the three models in a Step Functions Parallel state, then take the majority label in a Lambda function or route to review Correct

    Parallel branches keep latency near one call, and custom aggregation logic applies the majority rule and the no-agreement escalation.

  • d
    Use the label from the model with the highest accuracy on the test set, and call the other two when it returns an error

    This relies on one model's answer and gives no majority vote, so the error-reduction goal is not met.

The concept

A model ensemble combines several models' outputs with custom aggregation logic, such as majority voting with escalation on disagreement.

Why that’s the answer

Three independent classifications are needed for a vote, and they must run concurrently to keep latency near one call. A Step Functions Parallel state runs the three invocations at once, and a Lambda function aggregates them: two or more matching labels win, otherwise the claim goes to a human. Sequential calls add latency, intelligent prompt routing picks a single model, and a primary-with-fallback design is not an ensemble.

How to reason it out
  1. Recognise the ensemble requirement: several models vote on each item.
  2. Run the calls concurrently to protect latency.
  3. Aggregate with custom logic: majority label or escalation.
  4. Reject routing or fallback designs that use one model's answer.

Exam tip: Ensembles need parallel calls plus your own aggregation rule, including what to do when models disagree.

AIP-C01 Agentic AI: Multi-Agent Systems, Safeguards, Human Review and MCP Tools — the lesson that teaches this.

Domain 3: AI Safety, Security, and Governance

20% of the AIP-C01 exam, so 5 of the 25 questions on this page.

Question 15AI Safety, Security, and Governance

An insurance company wants an internal assistant that answers employee questions from about 3,000 policy documents stored in Amazon S3. Each answer must be based on the documents and show which document it came from. The company wants the least development effort and does not want to manage an embedding pipeline. Which solution meets these requirements?

Choose one.

  • a
    Build a Lambda ingestion job that embeds the documents into Amazon OpenSearch Serverless and add citations in code

    This works but means building and running the embedding pipeline and citation logic yourself, which the company wants to avoid.

  • b
    Fine-tune a foundation model on the policy documents and ask it to name the source document at the end of each answer

    A fine-tuned model has no retrieval step, so its answers and named sources can be invented; it also takes training effort.

  • c
    Create an Amazon Bedrock knowledge base over the S3 documents and call RetrieveAndGenerate, which returns citations Correct

    Knowledge Bases handles chunking, embedding, storage and retrieval, and RetrieveAndGenerate returns the generated answer with citations to the source chunks.

  • d
    Load the full text of the policy documents into the system prompt of each Converse request and ask for citations

    Thousands of documents exceed any context window and would be very expensive; citations would rely on the model's recall.

The concept

Retrieval-augmented generation with a managed knowledge base grounds answers in your documents and returns citations.

Why that’s the answer

Amazon Bedrock Knowledge Bases ingests data from S3, creates embeddings and stores them in a vector store, and RetrieveAndGenerate retrieves relevant chunks, generates an answer from them and returns citations that point to the source. The custom OpenSearch pipeline also grounds answers but violates the effort constraint; fine-tuning and stuffing the prompt do not ground answers reliably.

How to reason it out
  1. Identify the needs: grounded answers plus source attribution.
  2. Note the constraint: no self-managed embedding pipeline.
  3. Pick the managed RAG service with built-in citations.
  4. Reject training-based or prompt-stuffing approaches that cannot cite reliably.

Exam tip: Grounded answers with citations and minimal build = Bedrock Knowledge Bases + RetrieveAndGenerate.

AIP-C01 Input and Output Safety: Bedrock Guardrails, Prompt Injection Defence and Hallucination Checks — the lesson that teaches this.

Question 16AI Safety, Security, and Governance

A health insurer's chatbot answers questions about plan eligibility. Eligibility is governed by a 30-page rules document in which age, employment status, dependants and state of residence interact. Regulators require that, for each answer, the insurer can show which specific eligibility rules the answer is consistent with or contradicts. Which approach meets this requirement?

Choose one.

  • a
    Add a contextual grounding check with a high grounding threshold and pass the rules document as the grounding source

    Grounding returns a single score for how well the answer is supported; it does not identify which rules the answer satisfies or breaks.

  • b
    Run a weekly Amazon Bedrock evaluation job that uses an LLM judge to score the correctness of sampled answers

    An evaluation job measures quality offline on a sample. It does not produce a rule-level explanation for each live answer.

  • c
    Create denied topics for each kind of ineligible request and return a fixed message when one of them is matched

    Denied topics block subjects of conversation; they cannot check whether an eligibility answer is logically correct.

  • d
    Build an Automated Reasoning policy from the rules document, attach it to a guardrail and inspect the findings Correct

    Automated Reasoning checks translate the answer into logic and validate it against rules extracted from the document, returning findings that cite the rules and variable assignments involved.

The concept

Automated Reasoning checks in Amazon Bedrock Guardrails validate natural-language content against formal rules extracted from your policy documents.

Why that’s the answer

Automated Reasoning checks detect statements that contradict the policy, highlight unstated assumptions, and give mathematically verifiable explanations citing the specific rules and variable assignments. That rule-level, per-answer evidence is what the regulator asks for. Contextual grounding gives a similarity-style score, evaluation jobs are offline, and denied topics only block subjects.

How to reason it out
  1. Note the requirement: per-answer evidence tied to specific rules.
  2. Recall which guardrail policy reasons over extracted rules.
  3. Choose Automated Reasoning checks.
  4. Reject score-only, offline or topic-blocking options.

Exam tip: Need provable, rule-cited validation of answers against a policy document = Automated Reasoning checks.

AIP-C01 Input and Output Safety: Bedrock Guardrails, Prompt Injection Defence and Hallucination Checks — the lesson that teaches this.

Question 17AI Safety, Security, and Governance

A mortgage lender added an Automated Reasoning policy to the guardrail that its assistant passes on ConverseStream requests. Testing shows answers whose findings are INVALID still reach applicants, and some streamed answers have no Automated Reasoning findings at all. The lender wants no answer shown until it has been validated, and incorrect answers corrected or withheld. Which TWO changes should the developer make? (Select TWO.)

Choose TWO.

  • a
    Generate each complete answer with the Converse API and validate it before sending any of it to the applicant Correct

    Automated Reasoning checks do not support streaming APIs; they validate complete responses, which explains the missing findings.

  • b
    Set the guardrail's stream processing mode to synchronous so that each chunk is validated before it reaches the applicant

    Synchronous mode applies to the guardrail's other policies; Automated Reasoning checks do not support streaming at all.

  • c
    Add the rules document as a grounding_source block so the findings are computed against the streamed answers

    grounding_source feeds the contextual grounding check, a different policy. It does not change how Automated Reasoning runs.

  • d
    Enable cross-Region inference for the Automated Reasoning policy by attaching a guardrail profile to the guardrail

    Automated Reasoning already uses cross-Region inference automatically without configuration; it is not the cause.

  • e
    Read the Automated Reasoning findings in the guardrail trace and rewrite or withhold any answer found INVALID Correct

    Automated Reasoning checks work in detect mode only. They return findings and feedback; the application decides whether to serve, rewrite or withhold.

The concept

Automated Reasoning checks return findings (they do not block) and validate complete responses (no streaming).

Why that’s the answer

AWS documents two limits that explain both symptoms: Automated Reasoning checks operate in detect mode only, returning findings such as VALID or INVALID rather than blocking, and they do not support streaming APIs, so complete responses must be validated. The fix is to generate the full answer, validate it, and act on the findings in code. Synchronous streaming mode, grounding qualifiers and cross-Region settings belong to other features.

How to reason it out
  1. Separate the two symptoms: INVALID answers shown, and no findings on streamed answers.
  2. Recall that Automated Reasoning is detect-only, so the app must act on findings.
  3. Recall that it does not support streaming, so validate complete answers.
  4. Reject settings that belong to other guardrail policies.

Exam tip: Automated Reasoning: detect-only and no streaming - validate the full answer, then act on the findings yourself.

AIP-C01 Input and Output Safety: Bedrock Guardrails, Prompt Injection Defence and Hallucination Checks — the lesson that teaches this.

Question 18AI Safety, Security, and Governance

A claims pipeline asks an Amazon Bedrock model, through the Converse API, to extract policy number, incident date and claim type from adjuster notes as JSON. A downstream Lambda function fails on about 3% of responses because fields are missing or the JSON is malformed, and a retry loop raises cost. The model supports structured outputs. Which change removes these failures with the least custom code?

Choose one.

  • a
    Add several worked JSON examples to the prompt and keep retrying when the downstream parser reports an error

    Few-shot examples improve compliance but give no guarantee; the retries and their cost remain.

  • b
    Set temperature to 0 on each request so that the model returns the same JSON structure each time

    Low temperature reduces randomness, not format errors; a malformed or incomplete object can still be produced.

  • c
    Validate each response in a Lambda function with a JSON Schema library and re-prompt the model with the errors

    This catches failures after the fact but adds code and still pays for retries; structured outputs prevent them.

  • d
    Pass a JSON schema with required fields in outputConfig.textFormat so the response conforms to the schema Correct

    Structured outputs constrain decoding to the schema, so responses are valid, parseable JSON with the required fields, removing the retry loop.

The concept

Structured outputs on Amazon Bedrock constrain a model's response to a JSON schema you supply.

Why that’s the answer

With Converse you set outputConfig.textFormat to a json_schema (InvokeModel uses output_config.format for Claude or response_format for open-weight models); strict tool use enforces tool input schemas. Bedrock compiles the schema into a grammar so responses comply, which AWS positions as eliminating retry loops from prompt-based approaches. Prompting, temperature and post-validation reduce or detect errors but do not prevent them.

How to reason it out
  1. Name the failure: malformed or incomplete JSON.
  2. Look for a mechanism that guarantees schema compliance at generation time.
  3. Use structured outputs with the schema in outputConfig.textFormat.
  4. Reject approaches that only lower the error rate or detect it afterwards.

Exam tip: Need guaranteed JSON shape from Bedrock = structured outputs (json_schema), not prompt examples or retries.

AIP-C01 Input and Output Safety: Bedrock Guardrails, Prompt Injection Defence and Hallucination Checks — the lesson that teaches this.

Question 19AI Safety, Security, and Governance

A developer enables structured outputs on the Converse API with the following schema. Every request fails immediately with a 400 ValidationException.{"type":"object", "properties":{ "verdict":{"type":"string","enum":["approve","deny"]}, "confidence":{"type":"number","minimum":0,"maximum":1}, "reasons":{"type":"array","items":{"type":"string"}}}, "required":["verdict","confidence","reasons"]}Which TWO changes are needed? (Select TWO.)

Choose TWO.

  • a
    Raise maxTokens so the response has room for the full JSON object, including the confidence field

    Too few tokens produce truncated JSON with a max_tokens stop reason, not a 400 error on the request.

  • b
    Add "additionalProperties": false to the object, and to any other object the schema defines Correct

    Every object in a structured-output schema must set additionalProperties to false; omitting it returns a 400 ValidationException.

  • c
    Raise the client read timeout to at least 120 seconds to allow the first schema compilation

    A short timeout fails while waiting for compilation; it does not cause an immediate ValidationException.

  • d
    Move the same schema, minimum and maximum included, into a tool definition with strict set to true

    Strict tool use validates against the same supported schema subset, so the same schema is rejected there too.

  • e
    Remove the minimum and maximum keywords and check the confidence range in the code that reads the result Correct

    Numerical constraints such as minimum, maximum and multipleOf are not supported, so the range check moves to application code.

The concept

Structured outputs support a subset of JSON Schema Draft 2020-12 and validate the schema before inference.

Why that’s the answer

Bedrock validates the schema first and returns 400 for unsupported features. Two rules apply here: every object must explicitly set additionalProperties to false, and numerical constraints (minimum, maximum, multipleOf) are not supported. enum of strings and arrays of strings are fine. maxTokens and timeouts affect truncation and the up-to-90-second first compilation, not schema validation.

How to reason it out
  1. Note that the error is immediate and a 400, so it is schema validation.
  2. Check the object for additionalProperties: false.
  3. Check for unsupported keywords such as minimum and maximum.
  4. Reject fixes aimed at truncation or compilation time.

Exam tip: Structured outputs schema: additionalProperties false on every object, and no numeric/length constraints.

AIP-C01 Input and Output Safety: Bedrock Guardrails, Prompt Injection Defence and Hallucination Checks — the lesson that teaches this.

Domain 4: Operational Efficiency and Optimization for GenAI Applications

12% of the AIP-C01 exam, so 3 of the 25 questions on this page.

Question 20Operational Efficiency and Optimization for GenAI Applications

A RAG assistant calls the Amazon Bedrock Knowledge Bases RetrieveAndGenerate API with numberOfResults set to 25, over fixed-size chunks of about 1,000 tokens. An evaluation shows that answers almost always cite only the top three or four chunks, and answer quality does not change when only five chunks are passed to the model. Input tokens dominate the assistant's model bill. Which change reduces cost with the LEAST effort?

Choose one.

  • a
    Re-ingest the documents with hierarchical chunking and larger parent chunks

    Larger parent chunks increase the text passed to the model, and re-ingestion is extra work.

  • b
    Switch the embedding model to one with fewer vector dimensions

    Embedding size affects vector storage and search, not how many tokens the generation model reads.

  • c
    Add a reranking model and keep numberOfResults at 25 for the reranked output

    Reranking reorders results but passing all 25 keeps the input tokens the same and adds reranker cost.

  • d
    Lower numberOfResults in the vector search configuration from 25 to 5 Correct

    Fewer retrieved chunks means about 20,000 fewer input tokens per request, and the evaluation shows no quality loss. It is a single configuration value.

The concept

Context pruning in RAG: the number of retrieved chunks multiplied by chunk size sets most of the input tokens; pass only as many as answer quality needs.

Why that’s the answer

Twenty-five 1,000-token chunks is about 25,000 input tokens per question, while the evaluation shows five are enough. Lowering numberOfResults is a one-value change that removes most of that input. Bigger parent chunks add tokens, embedding dimensions don't affect generation input, and a reranker that still passes 25 results does not prune anything.

How to reason it out
  1. Estimate the input from retrieved chunks: count x size.
  2. Use the evaluation to set how many chunks are needed.
  3. Prefer the single configuration change.
  4. Reject changes that don't reduce generation input.

Exam tip: Retrieve what answers need: numberOfResults x chunk size is your RAG input bill.

AIP-C01 GenAI Cost Optimization: Token Efficiency, Model Selection, Throughput and Caching on Amazon Bedrock — the lesson that teaches this.

Question 21Operational Efficiency and Optimization for GenAI Applications

A company compares two Amazon Bedrock models for extracting fields from invoices, using 1,000 labeled invoices. Model X costs $0.004 per invoice and extracts every field correctly on 96% of invoices. Model Y costs $0.0015 per invoice and is fully correct on 80% of invoices. Every invoice with any extraction error is sent to a human reviewer, which costs $0.05 per invoice. The company wants the lowest total cost per processed invoice. Which choice meets this requirement?

Choose one.

  • a
    Model Y, at a total of about $0.0015 per invoice

    This counts only Model Y's price and ignores the 20% of invoices that go to paid review.

  • b
    Model X, at a total of about $0.006 per invoice Correct

    Total cost = model cost + error rate x review cost = 0.004 + 0.04 x 0.05 = $0.006, the lower of the two.

  • c
    Model X, at a total of about $0.004 per invoice

    This counts only Model X's price and leaves out the 4% of invoices that still go to paid review; the full total is about $0.006.

  • d
    Model Y, at a total of about $0.0115 per invoice

    The figure is correct for Model Y, but it is almost twice Model X's total, so Model Y is not the lowest-cost choice.

The concept

Price-to-performance measurement: compare models on cost per successfully completed task, including the downstream cost of errors, not on price per call alone.

Why that’s the answer

Model Y is cheaper per call, but each of its errors triggers a $0.05 review. Per invoice: X = 0.004 + 0.04 x 0.05 = $0.006; Y = 0.0015 + 0.20 x 0.05 = $0.0115. The tempting answers either leave review cost out of a total or compare the wrong totals. The cheaper model per token is the more expensive system.

How to reason it out
  1. Write total cost per invoice = model cost + error rate x error-handling cost.
  2. Compute it for each model with its own error rate.
  3. Compare totals, not list prices.
  4. Check each distractor for an omitted term or a wrong comparison.

Exam tip: Rank models by cost per correct outcome: a cheaper model that fails more often can cost more overall.

AIP-C01 GenAI Cost Optimization: Token Efficiency, Model Selection, Throughput and Caching on Amazon Bedrock — the lesson that teaches this.

Question 22Operational Efficiency and Optimization for GenAI Applications

A company's customer-service assistant uses a large Amazon Bedrock model. Model invocation logging has stored months of prompts and responses in Amazon S3, and every request carries a requestMetadata key named useCase. Answers for the returns use case are high quality, but the large model is too expensive at this volume. The company wants a smaller, cheaper model that performs like the large model on returns questions, without labeling any new data. What should the developer do?

Choose one.

  • a
    Fine-tune the smaller model on returns questions that subject-matter experts label with ideal answers

    Supervised fine-tuning can work, but it needs experts to label new data, which the company wants to avoid.

  • b
    Set up a Bedrock prompt router that sends returns questions to the smaller model

    Routing sends traffic to the smaller model as it is today; nothing transfers the large model's quality on returns.

  • c
    Run a Bedrock Model Distillation job that uses the invocation logs filtered on useCase Correct

    Distillation fine-tunes a smaller student model on the teacher's responses. It can read existing invocation logs and filter them by request metadata, so no new labels are needed.

  • d
    Run continued pre-training on the smaller model with the policy documents for that useCase

    Continued pre-training adds domain text but does not teach the large model's answer behavior, and it is costly.

The concept

Efficient inference by distillation: Amazon Bedrock Model Distillation generates or reuses teacher responses and fine-tunes a smaller student model for a specific use case.

Why that’s the answer

The company has good teacher responses already logged and tagged by use case. A distillation job can take prompt-response pairs from invocation logs, filtered on requestMetadata, and fine-tune a cheaper student model, with no manual labeling. Labeled fine-tuning needs new data, routing alone doesn't improve the small model, and continued pre-training teaches domain text rather than the teacher's answers. Distillation supports specific teacher and student model pairs within a family, so check that the chosen models are supported.

How to reason it out
  1. Note the assets: logged teacher responses tagged by use case.
  2. Note the goal: a cheaper model with the large model's quality on one task.
  3. Match to distillation from invocation logs with a metadata filter.
  4. Reject options that need new labels or don't transfer quality.

Exam tip: Large model quality on a narrow task at small model cost: distill it, using filtered invocation logs as training data.

AIP-C01 GenAI Cost Optimization: Token Efficiency, Model Selection, Throughput and Caching on Amazon Bedrock — the lesson that teaches this.

Domain 5: Testing, Validation, and Troubleshooting

11% of the AIP-C01 exam, so 3 of the 25 questions on this page.

Question 23Testing, Validation, and Troubleshooting

A company hosts two versions of a fine-tuned assistant model as production variants on one Amazon SageMaker AI real-time endpoint, with weights of 90 and 10 for an A/B test. Product analysts found that users switch variants between turns of the same conversation, which spoils the comparison. Each user must stay on one variant for the whole test while 10% of users get the new version. What should the developer do?

Choose one.

  • a
    Keep the 90/10 variant weights and enable session stickiness on the endpoint's production variants

    Sticky session routing pins one session to one instance and needs container support; it is not a per-user experiment assignment and ends with the session, so users still cross variants between conversations.

  • b
    Move the new model to a shadow variant that receives a copy of each user's requests

    Shadow responses never reach users, so the test could not measure how users react to the new version.

  • c
    Lower the new variant's weight to 1 so that fewer users ever cross between the two

    A smaller weight reduces the number of affected requests but still assigns per request, and it starves the test of data.

  • d
    Hash each user ID into a bucket in the application and pass the chosen variant in TargetVariant Correct

    TargetVariant overrides the weighted distribution for a request. A deterministic hash of the user ID keeps each user on one variant and puts 10% of users in the test arm.

The concept

SageMaker production variants split traffic by weight per request. For a user-level A/B test, the caller assigns users deterministically and targets a variant with the TargetVariant parameter of InvokeEndpoint.

Why that’s the answer

Variant weights randomise each request, so a multi-turn conversation lands on both models. Hashing the user ID to a bucket and sending TargetVariant pins each user to one variant and controls the share of users in each arm. Sticky session routing pins a session to an instance, not a user to a variant for the whole test; shadow variants never answer users, and smaller weights do not fix per-request assignment.

How to reason it out
  1. Find the cause: weighted routing decides per request.
  2. Move assignment to a stable key, the user ID.
  3. Use TargetVariant to direct each request.
  4. Keep the bucket split at 10% of users.

Exam tip: User-sticky A/B on SageMaker = hash the user ID and invoke with TargetVariant.

AIP-C01 GenAI Evaluation: Output Quality Metrics, Bedrock Evaluations, A/B and Canary Testing, Quality Gates — the lesson that teaches this.

Question 24Testing, Validation, and Troubleshooting

A company's support assistant runs in AWS Lambda and calls an Amazon Bedrock model through the Converse API. It wants to A/B test a challenger model from another provider: 20% of users get the challenger, a user keeps the same model across sessions, and the team can change the percentage or end the test within minutes without redeploying the function. Which combination of steps meets these requirements? (Select TWO.)

Choose TWO.

  • a
    Store the two model IDs and the challenger percentage in an AWS AppConfig feature flag that the function reads Correct

    AppConfig configuration is fetched at runtime (for example through the AppConfig Lambda extension), so the split and model IDs change without a deployment.

  • b
    Assign each user to an arm by a stable hash of the user ID compared with the configured percentage Correct

    A deterministic hash keeps every user in the same arm across sessions while still producing the configured share of users.

  • c
    Publish two function versions with different model IDs and give the alias a challenger weight of 20%

    Alias weighting picks a version per invocation, so the same user moves between models; changing models also needs new versions.

  • d
    Set an API Gateway stage canary that sends the challenger percentage of user requests to a stage using the new model

    Stage canaries split requests, not users, so a user flips between models; it also deploys a separate configuration.

  • e
    Use an Amazon Bedrock intelligent prompt router that includes both models from the two providers

    Prompt routers choose a model per request by predicted quality within a model family. They are not an experiment control and do not hold users in an arm.

The concept

An A/B test of Bedrock models lives in the application: Bedrock is serverless, so traffic splitting, user assignment and runtime switches are the caller's job.

Why that’s the answer

Two things are needed: runtime-changeable configuration and sticky user assignment. AppConfig provides the first (feature flags fetched by the function, changed in minutes, no deploy). Hashing the user ID provides the second. Lambda alias weights and API Gateway canaries both split per request and need deployments; intelligent prompt routing is a cost-quality router that works within one provider's model family and is not an experiment mechanism.

How to reason it out
  1. List the needs: 20% of users, user stickiness, runtime change.
  2. Note that per-request splitters break stickiness.
  3. Put the split and model IDs in runtime configuration.
  4. Assign arms by a stable hash of the user ID.

Exam tip: Bedrock A/B tests: config-driven split (AppConfig) + hashed user assignment in the app.

AIP-C01 GenAI Evaluation: Output Quality Metrics, Bedrock Evaluations, A/B and Canary Testing, Quality Gates — the lesson that teaches this.

Question 25Testing, Validation, and Troubleshooting

An insurer runs an A/B test of two Amazon Bedrock models in its claims-question assistant. The stated goal is to reduce conversations that end with a transfer to a human agent. After one week, the challenger has a higher average judge-scored correctness on sampled answers and a higher thumbs-up share among the 3% of answers users rated, but its arm shows slightly more transfers. Which measure should decide the test?

Choose one.

  • a
    The average judge-scored correctness per arm, measured over the sampled production answers

    Correctness is a useful diagnostic, but the business goal is fewer transfers, and the challenger is doing worse on it.

  • b
    The transfer-free conversation rate per arm, measured over the planned number of users Correct

    The test exists to cut transfers, so the business outcome measured per arm decides it; the other signals are diagnostics.

  • c
    The thumbs-up share per arm, measured over the answers that users chose to rate

    Only 3% of answers are rated, by users who chose to rate. It is a biased sample and not the goal metric.

  • d
    The average invocation latency per arm, measured over the week's answers

    Latency matters as a guardrail, but it does not measure whether conversations end without a transfer.

The concept

A/B tests of FMs should be decided by the business outcome they were designed to move, measured per arm over a planned sample. Quality scores and ratings are supporting evidence.

Why that’s the answer

The insurer wants fewer transfers to agents. The transfer-free conversation rate per arm measures that directly and covers every user in the test, unlike ratings from 3% of answers. Higher judged correctness can coexist with worse outcomes (for example longer or less actionable answers), which is exactly why the outcome metric decides.

How to reason it out
  1. Restate the test's goal: fewer transfers.
  2. Pick the metric that measures that goal per arm.
  3. Treat quality scores and ratings as diagnostics.
  4. Wait for the planned sample before deciding.

Exam tip: Decide an FM A/B test on the business outcome it targets, not on proxy quality scores.

AIP-C01 GenAI Evaluation: Output Quality Metrics, Bedrock Evaluations, A/B and Canary Testing, Quality Gates — the lesson that teaches this.

Keep going with AIP-C01

AIP-C01 practice by domain

AIP-C01 sample questions: your questions

No. Real exam questions are confidential. These are original questions written to the skills in the official AIP-C01 exam guide, so they test the same knowledge in the same style without being copies of the exam.

Source

The domains and weights on this page come from the official AIP-C01 exam guide.