Free Claude Certified Architect - Foundations (CCA-F) Practice Questions
Test your knowledge with 20 free exam-style questions
CCA-F Exam Facts
Questions
65
Passing
720/1000
Duration
130 min
You are building a customer support resolution agent that autonomously handles ticket classification, response generation, and escalation. The agent uses Claude with tool calling in an agentic loop. How should the loop determine when to stop executing?
Frequently Asked Questions
These 20 sample questions let you experience the exact format, difficulty, and question styles you'll encounter on exam day. Use them to identify knowledge gaps and decide if our full practice exam package is right for your preparation strategy.
Our questions mirror the actual exam format, difficulty level, and topic distribution. Each question includes detailed explanations to help you understand the concepts.
The full package includes 6 complete practice exams with 390+ unique questions, detailed explanations, progress tracking, and lifetime access.
Yes! Our CCA-F practice questions are regularly updated to reflect the latest exam objectives and question formats. All questions align with the current 2026 exam blueprint.
Sample CCA-F Practice Questions
Browse all 20 free Claude Certified Architect - Foundations practice questions below.
You are building a customer support resolution agent that autonomously handles ticket classification, response generation, and escalation. The agent uses Claude with tool calling in an agentic loop. How should the loop determine when to stop executing?
- Continue the loop when stop_reason is 'tool_use' and terminate when stop_reason is 'end_turn'
- Cap iterations at five and short-circuit even when stop_reason still says tool_use is requested
- Run a sentiment classifier over recent turns and end the loop when sentiment becomes positive
- Scan the assistant text for closing phrases like 'all set' or 'task complete' and treat them as a stop
Your multi-agent research system uses a hub-and-spoke architecture where a coordinator agent dispatches tasks to specialized subagents (market research, patent search, competitor analysis). A subagent needs context about the overall research objective. What is the correct way to provide this context?
- Have each subagent invoke the coordinator via a callback tool to fetch any context it requires mid-run
- Persist the research objective in a shared key-value store that every subagent reads from on cold start
- Rely on automatic context inheritance — subagents receive the coordinator's message history by default
- Pass complete findings and the research objective explicitly in the prompt sent to each subagent
You are designing a customer support agent that must comply with your company's refund policy: refunds over $500 require manager approval and cannot be issued automatically. You need to enforce this rule reliably. What is the BEST implementation approach?
- Implement a programmatic check in the refund tool that rejects amounts over $500 and returns an escalation instruction
- Have Claude self-rate each refund decision with a numeric confidence score and escalate whenever that score reads below 0.8
- Fine-tune Claude on labeled refund examples so the model learns to refuse any refund request greater than five hundred dollars
- Add a clear instruction to the system prompt: 'You must never issue refunds over $500 without manager approval'
Your multi-agent research system coordinator needs to dispatch three independent research tasks simultaneously: patent search, market analysis, and competitor review. Each task goes to a specialized subagent. What is the MOST efficient way to structure this dispatch?
- Send each Task tool call sequentially, waiting for each subagent to end_turn before next
- Decompose each task into about fifteen micro-subtasks so the coordinator can max out parallelism
- Have the coordinator emit all three Task tool calls in a single response for parallel execution
- Stand up a shared message queue so subagents can pop research tasks from it whenever capacity is free
Your customer support agent uses Claude's self-reported confidence scores to decide when to escalate to a human agent. During a production review, you discover that the agent occasionally processes complex policy-edge-case tickets without escalating, despite producing incorrect resolutions. What is the MOST likely root cause?
- Self-reported confidence scores are poorly calibrated and should not be used as the primary escalation mechanism
- Add explicit, numbered instructions describing exactly when the agent should report low confidence
- Fine-tune the model on edge-case escalations so its confidence scores get better calibrated
- Drop the escalation threshold from ninety percent confidence down to seventy percent on retries
You are building a customer support resolution agent that handles billing inquiries. The agent uses tool calls to look up account details and process refunds. During testing, you notice the agent sometimes stops mid-conversation without completing the resolution. What is the MOST likely cause of this behavior?
- The agentic loop terminates on stop_reason='end_turn' instead of continuing only when stop_reason='tool_use'
- The agent's max_tokens budget is set too low, so the model truncates mid tool_use block before the orchestrator can
- tool_use blocks are parsed before stop_reason is checked, so malformed tool_input JSON is treated as the model's
- Prompt caching invalidates between turns, so the system prompt is re-evaluated and the agent loses track
You are designing a multi-agent research system where a coordinator dispatches tasks to specialized subagents for market analysis, competitor research, and financial data collection. A junior engineer proposes that subagents should automatically inherit the coordinator's full conversation context for efficiency. What is the primary problem with this approach?
- Subagents in a hub-and-spoke architecture have isolated context by design; there is no automatic context inheritance, so complete findings must be explicitly passed in prompts
- Sharing context between agents creates a security exposure that leaks sensitive data across subagent boundaries and violates least-privilege isolation expected of specialized worker tasks
- Loading the coordinator's full conversation context into every subagent would exceed the model's effective input token limit on every dispatched call and trigger context overflow errors at
- The coordinator would have to await each subagent before the next can start, since shared context forces sequential dispatch and removes any opportunity to run independent tasks concurrently
Your customer support agent handles refund requests. Company policy requires that refunds over $500 must always be escalated to a human reviewer. A developer implements this rule as a strongly worded instruction in the system prompt: 'You MUST ALWAYS escalate refunds over $500 to a human reviewer. Never process these directly.' What is the BEST assessment of this implementation?
- Set temperature to 0 and add a stop_sequences entry on the refund tool name so the model halts before issuing a refund call above the configured threshold
- The instruction should include few-shot examples of refund escalation paths in the system prompt so the model learns the policy boundary across the conversation phrasings the team has actually
- When errors have financial consequences, prompts are not sufficient; the refund amount check should be enforced programmatically in the tool implementation or orchestration layer
- This is sufficient because Claude reliably honors strongly worded system prompt rules, especially when the rule is repeated in CAPS near the end of the prompt
You are configuring MCP servers for your development team's Claude Code setup. The team uses a shared GitHub integration and a project-specific database tool. A developer asks where to place the MCP configuration so all team members have access to these tools. What is the correct configuration approach?
- Place the configuration in each developer's ~/.claude.json file and document the JSON snippet on a wiki page so engineers paste it into their personal user-scope MCP block
- Configure the MCP servers only inside the CI/CD pipeline runner image so the GitHub and database tools are wired up during automated jobs invoked by claude -p
- Place the configuration in the project's .mcp.json file, which is version-controlled and shared across the team, using environment variable references like ${GITHUB_TOKEN} for secrets
- Add the MCP server URLs and connection commands as bullet points in the project's CLAUDE.md so Claude reads them at session start and connects before the first user message
Your team uses Claude Code for a large monorepo with both a Python backend and a React frontend. You want Claude to follow different coding standards depending on which part of the codebase is being edited. Backend files should use specific Python conventions, while frontend files should follow your React style guide. What is the BEST way to configure this?
- Create separate CLAUDE.md files in the backend/ and frontend/ subdirectories, each containing the relevant coding standards for that part of the codebase
- Put all coding standards in the root CLAUDE.md file with clear section headers for backend and frontend so Claude can locate the right rules whenever a request lands
- Switch CLAUDE.md per session via an environment variable like CLAUDE_PROFILE that selects backend or frontend rules at startup time
- Build a custom MCP server that returns the right coding standards as a resource each time Claude opens a file, keying off the path it receives in the request
A customer support resolution agent uses an agentic loop to handle incoming tickets. The current implementation checks if the model's response contains the phrase 'case resolved' to decide whether to continue looping or terminate. What is the BEST way to fix this loop termination logic?
- Read the model's text content for sentences that end with 'resolved' followed by a period and treat that punctuation as the loop's completion marker
- Terminate the loop when stop_reason is 'end_turn' and continue looping when stop_reason is 'tool_use', using the API's built-in structured signals
- Set max_tokens to a small cap and exit when the response length is below it, treating truncation as the model signalling completion
- Inspect each response for a tool_use content block and exit the loop whenever no tool_use block appears in the message
A multi-agent research system uses a coordinator that dispatches tasks to three specialized subagents: a web researcher, a database analyst, and a summarizer. The team discovers that the summarizer subagent is producing summaries that reference data it was never given, seemingly drawing from the web researcher's findings. What is the MOST likely cause of this behavior?
- Subagents share a rolling summary of one another's outputs by default through the framework's shared memory, leaking context between roles
- The coordinator is inadvertently including the web researcher's results in the context when dispatching tasks to the summarizer
- The summarizer's tokenizer pulls phrases from the web researcher's earlier indexed output, producing implicit knowledge transfer at decode
- The summarizer relies on prompt caching across subagent calls, and a cache hit replays earlier outputs into the request
A development team wants their multi-agent research system coordinator to dispatch tasks to three subagents simultaneously rather than sequentially to reduce total latency. What is the correct approach to enable parallel subagent execution?
- Add a 'parallel: true' hint inside the system prompt so the coordinator dispatches its three subagent tool calls before reading
- Deploy each subagent behind its own MCP server endpoint so the coordinator opens three concurrent MCP connections back as tool_use blocks
- Have the coordinator emit multiple Task tool calls in a single response, which the orchestration framework executes concurrently
- Stream the coordinator response with stream=True and emit Task tool calls one after another so subagents start as each tool_use block
A customer support agent is designed to escalate cases to a human when the customer is likely dissatisfied. The team implements this by having the agent assess customer sentiment and escalate whenever it detects negative sentiment or frustration. What is the PRIMARY problem with this escalation strategy?
- Sentiment classification adds a Claude API round-trip per inbound message, so latency on every customer turn roughly doubles and the agent's running cost outpaces the value it delivers
- Customer frustration does not correlate with case complexity, so sentiment-based escalation floods human agents with cases the AI could resolve while missing genuinely complex cases from calm customers
- Negative sentiment becomes self-reinforcing once detected, since the agent treats further customer messages as confirmation of frustration and escalates earlier each turn, locking the system into escalating
- Sentiment readings depend on demographic and cultural baselines that vary across customers, so any 'negative sentiment' threshold becomes uncalibrated for cohorts whose tone is more reserved
A team building a customer support agent considers two approaches for ensuring the agent never offers refunds above $50 without manager approval: (A) adding a strong instruction in the system prompt saying 'Never approve refunds above $50 without manager approval', or (B) implementing a programmatic check in the orchestration layer that intercepts refund tool calls and routes those above $50 to a manager queue. Which approach is BEST for production deployment?
- Approach A is sufficient because the system prompt loads as a cached prefix, and Claude's instruction-following on cached blocks is reliable
- Use both approaches but put the $50 rule in a CLAUDE.md-style memory file while making Approach B a passive logger that records refunds for later
- Approach A combined with several few-shot exchanges in the system prompt where the assistant correctly refuses high refunds, which makes the behavior
- Approach B, the programmatic check, because system behavior guarantees require programmatic enforcement rather than prompt-based guidance alone
A financial services company is building a customer support agent that handles account inquiries, transaction disputes, and loan applications. When the agent encounters an ambiguous refund policy that could be interpreted multiple ways, what is the BEST escalation strategy?
- Instruct the agent to apply the customer-favorable interpretation and proceed with the refund without escalating to a human reviewer
- Have the agent ask the customer clarifying questions in chat to determine which interpretation of the ambiguous policy applies
- Escalate to a human agent whenever the applicable policy has multiple valid interpretations, providing the customer context and relevant policy sections
- Have the agent score customer sentiment each turn and escalate only when negative sentiment exceeds a configured threshold
A development team is using Claude Code to generate a microservices application. They want Claude Code to produce API endpoint handlers that always validate input against a JSON schema before processing. The team notices that sometimes Claude generates handlers without validation. What is the MOST effective way to enforce this requirement?
- Use programmatic enforcement by wrapping generated handlers in a validation middleware layer that rejects unvalidated requests at runtime
- Set an iteration cap of three regenerations per handler and select whichever generated version happens to include the validation block in its body
- Add few-shot examples that show handlers with input validation and tell Claude to follow the same pattern across every generated handler
- Add a polite reminder line in the system prompt asking Claude to please remember to include input validation in every handler that it writes
A research team has built a multi-agent system where a coordinator agent delegates tasks to three specialist subagents: a literature search agent, a data analysis agent, and a report writing agent. The literature search agent finds relevant papers, but the report writing agent produces a report that doesn't reference any of the found papers. What is the MOST likely cause?
- The coordinator did not explicitly pass the literature search agent's findings to the report writing agent's prompt
- Update the report writing subagent's system prompt to instruct it to include academic citations
- The literature search and report agents run in parallel and a race condition is dropping the citation data
- The report writing model has a token limit preventing processing of all references the search agent returned
A development team is building a multi-agent system for automated code deployment. The coordinator agent must pass the output of a security scanning subagent to a deployment approval subagent. The team assumes the deployment subagent can access the security scan results because both subagents run under the same coordinator. Why is this assumption INCORRECT?
- In environment variables exported by the CI/CD pipeline configuration
- In the project's README.md file, which Claude Code loads automatically
- In each developer's user-level ~/.claude/CLAUDE.md, kept identical
- In the project's .claude/CLAUDE.md file committed to version control
An engineering team uses Claude to extract structured data from legal contracts. They define a JSON schema with fields for parties, effective_date, termination_clause, and governing_law. The extraction works well for standard contracts, but for contracts where the governing law is not explicitly stated, Claude sometimes guesses a jurisdiction based on the parties' locations. What schema modification BEST handles this edge case?
- Make the governing_law field nullable so Claude can return null when the information is not explicitly stated in the contract
- Increase emphasis in the prompt by adding 'Only extract information explicitly stated in the document' near the top
- Add more few-shot examples showing contracts with clearly written governing-law clauses placed prominently
- Add a post-processing step that flags any governing_law value not found verbatim in the source contract