CCAR-F Agentic Architecture and Orchestration Practice Question
An architect is building a customer-support agent that calls a `lookup_order` tool. The tool occasionally returns HTTP 503 errors during peak hours. The architect wants the agent to recover from transient failures without human intervention. Which approach best fits Claude's agentic tool-use loop?
⚠ Common exam trap
The trap here is assuming the host application should absorb retries silently, when in fact the failure must be surfaced to Claude as an error tool_result.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Append a `tool_result` block containing the error message and `is_error: true`, then send the conversation back to Claude so it can decide to retry or try another approach.
The agentic loop expects every tool_use block to be answered by a matching tool_result. When the underlying call fails, the orchestrator must still reply, marking the result with is_error so the model sees the failure and can plan a retry, fallback, or clarifying question. Hiding or suppressing the error removes Claude's ability to reason about recovery.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Terminate the agent turn and return a generic 'service unavailable' message to the end user.
Why it's wrong here
Aborting the turn defeats the purpose of an agentic architecture, which is to reason about failures and continue. A single transient 503 does not justify ending the session; the model should get the chance to retry, switch tools, or ask the user for more information before any user-facing failure message is produced.
- ✗
Increase the model's `max_tokens` parameter so Claude has more room to reason about the failure.
Why it's wrong here
max_tokens controls output length, not tool reliability, and has no relationship to HTTP 503 recovery. Raising it wastes budget and does not inform Claude that the tool failed. The failure must be communicated through the tool_result block, not through a generation-length setting, for the agent to react appropriately.
- ✓
Append a `tool_result` block containing the error message and `is_error: true`, then send the conversation back to Claude so it can decide to retry or try another approach.
Why this is correct
This is the canonical way to surface tool failure inside the agentic loop. By returning the error as a tool_result with is_error set, the orchestrator keeps the conversation valid and lets Claude reason about retry, backoff, or fallback, rather than the host application silently retrying and hiding the failure state from the model.
- ✗
Silently retry the `lookup_order` call up to five times inside the host application before returning any result to Claude.
Why it's wrong here
Blind host-side retries hide the failure from the model and can amplify load during a 503 storm. Claude never learns the tool was degraded, so it cannot choose an alternative path such as asking the user for the order ID manually. Retries belong in the loop only when they are bounded, observable, and when the error is still reported back as a tool_result.
About these practice questions
This CCAR-F question is part of Courseiva's 271-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
JA
Written and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed September 2026 · checked against the official Anthropic exam blueprint
This CCAR-F practice question is part of Courseiva's free Anthropic certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the CCAR-F exam.