The best single AI exam for a senior engineer who already builds agents. Every question sits inside one of four production scenarios, and most options are things a smart person might try. It rewards having actually run this stuff.
Take it if
You design Claude systems and have six months of real use behind you.
Skip it if
You have only used Claude through a chat window. The exam assumes you have written agent loops and configured Claude Code for a team.
Before you start
Check yourself against this list first. If something is missing, close that gap before you pay for an exam.
Six months building with ClaudeAnthropic expects real use of the API, Agent SDK, Claude Code and MCP.
You have written an agent loop yourselfTake Building with the Claude API on Claude Academy first. Learn more
You have configured Claude Code for a teamSet up shared CLAUDE.md, rules, and one MCP server on a real repo. Learn more
Your employer is in the Claude Partner NetworkOnly partner staff can register. Membership is free to apply for. Learn more
60 items across 4 scenarios drawn at random from 6
Length
120 minutes
Pass mark
720 out of 1,000
Price
$125, partner tier discounts apply at checkout
Valid for
12 months, free renewal assessment if on time
Delivery
Pearson VUE, online or test center
Who can sit it
Staff of Claude Partner Network organizations
Experience
6+ months building with the API, Agent SDK, Claude Code and MCP
If you fail
Wait 14, then 30, then 90 days
What the exam covers
Agentic Architecture & Orchestration27%
Tool Design & MCP Integration18%
Claude Code Configuration & Workflows20%
Prompt Engineering & Structured Output20%
Context Management & Reliability15%
What to focus on
The agent loop itself: stop_reason, tool results going back into history, and why text checks and iteration caps are the wrong stopping rule.
Hooks against prompts. If a rule must always hold, it belongs in a hook or a prerequisite gate, because prompt instructions have a failure rate.
Subagents start with empty context. Whatever they need has to be in the prompt you send them.
Claude Code for a team: the CLAUDE.md hierarchy, .claude/rules with path globs, skills with context: fork, plan mode, and -p in CI.
Extraction: tool_use with a JSON schema stops syntax errors but not wrong values. Nullable fields stop the model inventing data.
Escalation: honor an explicit request for a human, escalate on policy gaps, and do not trust sentiment or self-reported confidence.
Everything on one mapEvery topic and key idea in this certification.
mindmap
root((CCAR-F))
Agentic architecture
stop_reason
Hub and spoke
Isolated context
Hooks or prompts
Tool design and MCP
Clear boundaries
Structured errors
Empty is not failure
tool_choice
Scoping
Claude Code configuration
Hierarchy
Path rules
Skills or CLAUDE.md
context fork
Plan mode
CI
Prompts and structured output
Explicit criteria
Few-shot examples
Schema limits
Nullable fields
Batches
Context and reliability
Case facts
Escalation
Error propagation
Human review
Provenance
Lesson 1 of 5, 27% of the exam
Agentic architecture
The largest domain at 27%, and the one that separates people who have built agents from people who have read about them.
stop_reason
Continue on tool_use and finish on end_turn. Text in a reply says nothing about whether the task is done.
Hub and spoke
A coordinator delegates, gathers results and handles errors, and all subagent communication goes through it.
Isolated context
Subagents inherit nothing. Pass findings in the prompt, with sources kept as structured data.
Hooks or prompts
If a rule must always hold, block the call with a hook. Prompt instructions have a failure rate.
The agent loopKeep this in your head for every Domain 1 question.
sequenceDiagram
participant App as Your code
participant C as Claude
participant T as Tool
App->>C: Messages plus tool definitions
loop While stop_reason is tool_use
C-->>App: tool_use block
App->>T: Run the tool
T-->>App: Result
App->>C: Append tool_result and call again
end
C-->>App: Final answer with end_turn
Common trap
Using an iteration cap as the stopping rule. It is a safety net, and the exam treats it as an anti-pattern for normal completion.
Try it yourself
Build a coordinator with two subagents, pass context by hand, and block a refund tool until verification has run.
Tool choice fails in predictable ways, and most fixes are about naming and boundaries.
Clear boundaries
Two tools with similar descriptions will be misrouted. Rename them or split them by purpose.
Structured errors
Return a category, a retryable flag and a readable description, so the agent knows whether to retry.
Empty is not failure
A timeout and a successful query with no matches need different handling. Do not report one as the other.
tool_choice
auto may return text, any forces some tool, and naming a tool forces that one.
Scoping
.mcp.json is shared with the project. ~/.claude.json is for you alone. Use env var expansion for secrets.
How an agent should react to a tool errorStructured errors make this decision possible.
flowchart TD
A["Tool returns an error"] --> B{"Error category"}
B -->|Transient| C["Retry locally"]
B -->|Validation| D["Fix the input and call again"]
B -->|Business rule| E["Explain to the customer"]
B -->|Permission| F["Escalate"]
C --> G{"Still failing?"}
G -->|Yes| H["Pass to coordinator with partial results"]
Common trap
Giving one agent all 18 tools. Fewer tools per role makes selection more reliable.
Try it yourself
Write two similar tools, test with ambiguous requests, and fix the misrouting with descriptions alone.
A fifth of the exam, and a lot of it is knowing exactly where each setting lives.
Hierarchy
~/.claude/CLAUDE.md is yours alone. The project file is shared through version control.
Path rules
Files in .claude/rules with a paths glob load only for matching files, even when those files span many folders.
Skills or CLAUDE.md
CLAUDE.md is always loaded, so keep it universal. Skills load on demand for specific tasks.
context: fork
Runs a skill in an isolated subagent, so verbose output stays out of your session.
Plan mode
Use it for large changes with several valid approaches. Fix a small, clear bug directly.
CI
Use -p so it never waits for input, and --output-format json with --json-schema for parseable output.
Where each Claude Code setting livesMost questions here come down to scope.
flowchart TD
A{"Who needs it, and when?"} -->|"Everyone, always"| B["Project CLAUDE.md"]
A -->|"Only you"| C["~/.claude/CLAUDE.md"]
A -->|"Files matching a glob"| D[".claude/rules with paths"]
A -->|"On demand for a task"| E["Skill in .claude/skills"]
A -->|"Shared tool server"| F[".mcp.json"]
Common trap
Reviewing code in the same session that wrote it. An independent instance has no attachment to its earlier reasoning.
Try it yourself
Add a path-scoped rule, a forked skill with allowed-tools, and a CI job that posts structured review findings.
Extraction questions are precise, and each one hinges on a specific behavior.
Explicit criteria
State exactly what to report and what to skip. "Be conservative" does not improve precision.
Few-shot examples
Two to four examples of hard cases, with the reasoning, beat more instructions.
Schema limits
A schema through tool use stops syntax errors. It cannot stop wrong values, so validate meaning too.
Nullable fields
If a value may be missing, make it optional. Required fields push the model to invent data.
Batches
Half the cost and up to 24 hours, with no latency promise and no tool loop inside a request.
When does a retry help?Retry only when the fix is in the output, not missing from the input.
flowchart TD
A["Validation failed"] --> B{"Is the data in the source?"}
B -->|Yes| C["Retry with the specific error"]
B -->|No| D["Return null and flag it"]
C --> E{"Valid now?"}
E -->|Yes| F["Accept"]
E -->|No| G["Send to human review"]
Common trap
Retrying when the information is simply not in the document. Retries only fix format and structure problems.
Try it yourself
Build an extraction pipeline with a schema and a retry that feeds validation errors back, then run it as a batch.
These questions ask what you do when things go wrong in a long-running system.
Case facts
Keep amounts, dates and IDs in a persistent block, because summaries blur exactly those details.
Escalation
Honor an explicit request for a person at once. Escalate on policy gaps. Sentiment and self-reported confidence are poor signals.
Error propagation
Recover locally from transient failures, and pass up only what you cannot fix, with partial results.
Human review
A high overall accuracy can hide a weak document type. Measure by segment before reducing review.
Provenance
Keep claim-to-source mappings through synthesis, and annotate conflicts rather than picking a winner.
When an agent should escalateSentiment is not on this chart, on purpose.
flowchart TD
A["New customer request"] --> B{"Asked for a human?"}
B -->|Yes| H["Hand off now with a summary"]
B -->|No| C{"Does policy cover it?"}
C -->|"No or unclear"| H
C -->|Yes| D{"Making progress?"}
D -->|No| H
D -->|Yes| E["Resolve it"]
Common trap
Returning an empty result when a search actually failed. The coordinator then treats a failure as an answer.
Try it yourself
Add a case-facts block and a scratchpad file to a long agent session, then design one escalation rule with examples.
Use the Agent SDK to build a loop with tools, error handling and sessions. Add a coordinator with two subagents and pass context by hand.
Week 3: configure Claude Code properly
Set up CLAUDE.md, path-scoped rules, a skill with context: fork and allowed-tools, and one MCP server in .mcp.json with an env var for the token.
Week 4: tools and extraction
Write MCP tools with structured errors and retry flags. Build an extraction pipeline with a schema, a validation retry loop and a batch run.
Week 5: context and review
Practice case-facts blocks, scratchpad files and a multi-pass code review. Design one human review flow.
Week 6: exam practice
Do the preparation exercises and sample questions in the official guide, then the mock below, under time.
Exam day and after
Scored 100 to 1,000 and you need 720. Your report shows percent correct by domain, but only the total decides the result.
Items are multiple choice or multiple response, and each one tells you how many answers to pick.
A failed attempt means a wait of 14 days, then 30, then 90, with at most four attempts in 12 months. Every attempt is paid.
You can cancel or reschedule up to 24 hours before the appointment. After that the fee is gone.
You see 4 of the 6 published scenarios and cannot choose them, so prepare all six: support agent, code generation, multi-agent research, developer productivity, CI, and data extraction.
When two answers both work, the exam usually wants the one that is deterministic or the one that fixes the root cause rather than monitoring it.
Test yourself10 practice questions, scored by exam topic.
Exam facts checked on October 31, 2026 against CCAR-F exam guide, July 2026. Lessons are our own explanations, so use the official docs as the final word, and confirm price and dates before booking.