Skip to content
CCAF Preparation

Domain 1 · 27% of exam

Agentic Architecture & Orchestration glossary

67 terms drawn from this domain’s 7 lessons and the sources they cite. A term that matters in more than one domain appears on each of their pages.

The full glossary is searchable across all five domains, and the domain curriculum explains where each term is used.

--continue
The flag (`-c`) that resumes the most recent session in the current directory without any ID tracking. Use `--resume` instead when a script juggles multiple conversations and must target a specific one. code.claude.com › headless
--resume
The flag that continues a specific existing session by ID or name, restoring the full conversation history, model, agent, permission mode, goals, and unexpired scheduled tasks — except `plan` and `bypassPermissions`, which are never restored. It never creates a session, and lookup is scoped to the current project directory and its git worktrees. Running it from a different directory than the session was created in is the most common cause of getting a fresh session instead. code.claude.com › sessions
Agent tool
The built-in tool that spawns subagents, renamed from `Task` in Claude Code v2.1.63 and emitted as `Agent` in `tool_use` blocks. Include `Agent` in `allowedTools` to auto-approve subagent invocations without a permission prompt. code.claude.com › subagents
AgentDefinition
The SDK configuration object for a subagent. `description` (when to use the agent) and `prompt` (its system prompt) are required; `tools` and `model` are optional. Omitting `tools` gives the subagent every tool available to subagents, while listing them restricts it to exactly those. Note the field is named `prompt`, not `systemPrompt`. code.claude.com › subagents
Agentic loop
The core execution cycle behind a Claude-based agent: send a request to the Messages API, inspect `stop_reason`, execute any requested tools, append the results to conversation history, and repeat. It is deterministic control flow defined in code, not a prompt trick or a retry loop. platform.claude.com › how-tool-use-works
Attention dilution
The failure mode where an agent processing too many items in one pass gives thorough analysis to the first few and skims the rest, flagging a pattern in one file while approving identical code in another. The fix is a multi-pass architecture — a dedicated local analysis pass per item so each gets the full attention budget, then a separate cross-item integration pass — not a bigger context window, because the problem is attention quality rather than context capacity.
canUseTool
The permission callback that fires only when the evaluation flow falls through to a prompt. Tools auto-approved by `acceptEdits`, `bypassPermissions`, or an allow rule never reach it — so for a check that must run on every call, use a `PreToolUse` hook instead. code.claude.com › permissions
Checkpointing
The separate mechanism that snapshots and reverts file changes, creating one checkpoint per user prompt. Its blind spot is that it tracks only edits made through Claude's own file-editing tools, not changes made via Bash commands. code.claude.com › checkpointing
Coordinator agent
The hub of a hub-and-spoke system. It decomposes the task, dynamically selects which subagents to invoke, partitions research scope to minimise duplication, passes context explicitly, aggregates results, runs iterative refinement loops when coverage is short, and handles errors.
Deny rule
A permission rule that blocks a matching tool call even in `bypassPermissions` mode. A hook returning `allow` does not skip deny and ask rules — those are evaluated regardless of the hook result. code.claude.com › permissions
disable_parallel_tool_use
The boolean that restricts Claude to a single tool call per response. It lives **inside** the `tool_choice` object, not at the top level: with `auto` it means at most one tool call, with `any` or `tool` exactly one. platform.claude.com › parallel-tool-use
disallowed_tools
The deny lever with two distinct forms: a bare entry such as `"Bash"` removes the tool definition from the request entirely so Claude cannot see or attempt it, while a scoped entry such as `"Bash(rm *)"` keeps the tool visible and denies only matching calls, in every permission mode. code.claude.com › permissions
Duplicated-work failure
The delegation failure where vague per-subagent task descriptions cause two agents to research the same topic while another goes uncovered. The fix is to give each subagent an objective, an output format, guidance on tools and sources, and clear task boundaries. anthropic.com › multi-agent-research-system
Dynamic adaptive decomposition
Generating subtasks from what is discovered at each step rather than planning them up front, so the plan evolves as the agent learns. It suits open-ended investigation — legacy exploration, security audits, debugging — where the scope is not known at the start.
Effort scaling
The rule that a coordinator should scale subagent count and tool calls to query complexity: roughly one agent with 3-10 tool calls for simple fact-finding, 2-4 subagents with 10-15 calls each for direct comparisons, and more than 10 subagents for complex research. anthropic.com › multi-agent-research-system
end_turn
The `stop_reason` value meaning the model reached a natural stopping point. The agentic loop terminates and the response is used as the final answer. platform.claude.com › handling-stop-reasons
Evaluator-optimizer
The workflow pattern where one LLM call generates a response while another evaluates it and gives feedback, in a loop. It fits best when evaluation criteria are clear and iterative refinement provides measurable value. anthropic.com › building-effective-agents
fork_session
The boolean option (`forkSession` in TypeScript, default false) used with `resume` to fork to a new session ID instead of continuing the original. The fork starts from a copy of the history up to that point; the original's ID and history are unchanged, leaving two independently resumable sessions. code.claude.com › sessions
Fresh start with summary injection
Starting a new session and injecting a structured summary of the prior session’s findings, naming the files that changed so the agent performs targeted re-analysis of only those. It is the correct response to stale context or a long, cluttered history: no stale tool results survive, the prior knowledge does, and nothing is re-explored needlessly.
general-purpose subagent
The built-in subagent Claude can invoke at any time, alongside the two authored routes of programmatic definition via the `agents` option and filesystem definition in `.claude/agents/`. On a name clash, the programmatic definition wins over the filesystem one. code.claude.com › subagents
Ground truth (adaptive decomposition)
Real feedback from the environment at each step — tool results, test runs, actual file contents — that an adaptive plan must adapt to instead of reasoning from its own prior assumptions. anthropic.com › building-effective-agents
Hook decision priority
When multiple hooks or permission rules disagree, `deny` beats `defer`, which beats `ask`, which beats `allow`. If any hook returns `deny` the operation is blocked regardless of what the others returned. code.claude.com › hooks
Hook events
The SDK's callback points on agent events. Available in both Python and TypeScript: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `UserPromptSubmit`, `Stop`, `SubagentStart`, `SubagentStop`, `PreCompact`, `PermissionRequest`, `Notification`. `SessionStart` and `SessionEnd` are TypeScript-only. code.claude.com › hooks
HookMatcher
The matcher configuration that scopes a hook to particular events. Its `matcher` field is tested against the event's target — usually the tool name — and accepts alternations such as `Write|Edit` or regexes such as `^mcp__`; a hook with no matcher runs for every event of that type. code.claude.com › hooks
Hub-and-spoke architecture
The multi-agent shape the exam tests: a coordinator at the centre and specialised subagents as spokes, with all inter-subagent communication flowing through the coordinator. Centralisation buys observability, consistent error handling, and controlled information flow.
is_error
The optional boolean on a `tool_result` block that signals a client-tool execution failure; return the error text as `content` with `"is_error": true` and Claude incorporates it into its response. Server-tool errors are handled transparently by Anthropic's infrastructure and are not your responsibility. platform.claude.com › handle-tool-calls
Iteration cap
A maximum number of loop iterations, used as a safety bound to maintain control over cost and compounding errors. It is acceptable as a backstop but never as the primary stopping mechanism, and it does not fix premature termination. anthropic.com › building-effective-agents
Malformed-call retry
Claude's own model-level behaviour: when its tool call is invalid or missing required parameters, it retries 2-3 times with corrections before apologising to the user. This is a separate mechanism from `isRetryable`, which applies after your tool has run and failed. platform.claude.com › handle-tool-calls
max_tokens
An absolute ceiling on generated output, not a target — the model may stop earlier, so a short result is not evidence that your criteria suppressed output. Exceeding it produces `stop_reason: "max_tokens"`, handled by raising the limit or continuing the response. platform.claude.com › messages
max_turns
The Agent SDK option (`maxTurns` in TypeScript) documented as the maximum agentic turns, meaning tool-use round trips. It bounds the loop as a safety measure but never signals that the task finished — completion is still `stop_reason`. code.claude.com › typescript
model_context_window_exceeded
The `stop_reason` returned when the response filled the model's context window; treat it as truncation, the same way you would `max_tokens`. On 4.5-and-later models a request whose input plus `max_tokens` exceeds the window is accepted and stops this way rather than erroring. platform.claude.com › context-windows
Model-driven decision-making
Letting Claude reason about which tool to call next from the current context, rather than hard-coding the sequence in a pre-configured decision tree or fixed tool sequence. It is favoured because the model adapts to situations the developer never mapped out — except where business logic demands deterministic compliance.
Multi-agent token premium
The measured cost of orchestration: agents use roughly 4x more tokens than chat interactions and multi-agent systems roughly 15x more. Multi-agent architecture is only economically viable when the task's value exceeds that premium. anthropic.com › multi-agent-research-system
Narrow decomposition failure
The coordinator failure where whole categories of a broad topic are never assigned to any subagent, so the final report is incomplete in scope rather than depth. The root cause is the coordinator's decomposition, never the downstream subagents.
Orchestrator-workers
Anthropic's formal name for the hub-and-spoke coordinator-subagent pattern: a central LLM dynamically breaks down tasks, delegates them to worker LLMs, and synthesises their results. Its defining trait versus parallelization is that subtasks are determined by the orchestrator rather than pre-defined. anthropic.com › building-effective-agents
Parallel subagent spawning
Emitting multiple Task/Agent tool calls in a single coordinator response rather than one per turn, so independent subtasks finish in the time of the slowest one rather than the sum. Isolated context windows are what make the concurrency safe. code.claude.com › subagents
Parallel tool use
Claude may call several tools in a single response, and Claude 4 and later do so by default when it helps. Return one `tool_result` per `tool_use` block, all in one user message with no text before them; splitting results across messages teaches the model to stop calling tools in parallel. platform.claude.com › parallel-tool-use
Parallelization (workflow pattern)
The named workflow pattern with two sub-variants: sectioning, which breaks a task into independent subtasks run in parallel, and voting, which runs the same task several times for diverse outputs. Its subtasks are pre-defined, which distinguishes it from orchestrator-workers. anthropic.com › building-effective-agents
pause_turn
The `stop_reason` returned when a long-running server-tool turn is paused, typically because a server-tool loop hit its internal iteration limit. Handle it by appending the assistant response to `messages` and re-requesting unchanged — never by treating the turn as done. platform.claude.com › handling-stop-reasons
Permission evaluation order
The strict sequence the SDK applies to every tool request: hooks, then deny rules, then ask rules, then permission mode, then allow rules, then the `canUseTool` callback. Prompt-based guidance appears nowhere in this list, which is why it is not enforcement. code.claude.com › permissions
permissionDecision
The `PreToolUse` hook output field whose four values are `allow`, `deny`, `ask`, and `defer`. `defer` does not fall through to the next permission step — it ends the query so you can resume it later, and any `updatedInput` returned with it is ignored. code.claude.com › hooks
PostToolUse
The hook event that runs after a tool executes but before the model processes the result, used to normalise heterogeneous tool output into a consistent format. It cannot block a policy-violating action, because by the time it fires the action has already happened. code.claude.com › hooks
PostToolUse output fields
`additionalContext` appends information to a tool result while leaving the original intact; `updatedToolOutput` replaces the tool’s output before Claude sees it and works for any tool in both SDKs. For normalising heterogeneous tool output, `updatedToolOutput` is the closer match, since it substitutes the normalised result rather than adding a note beside raw data. code.claude.com › hooks
Premature termination
The failure mode where an agent stops mid-task, classically caused by checking `response.content[0].type == "text"` for completion when Claude returned explanatory text alongside a `tool_use` block. The fix is always a correct `stop_reason` check, never an iteration cap.
Prerequisite gate
A programmatic check that blocks a tool from executing until a prior condition is met — for example refusing `process_refund` until `get_customer` has returned a verified customer ID in the session. It is code, so the model cannot bypass it by deciding to skip a step.
PreToolUse
The hook event that runs before a tool executes, able to block, modify, or redirect the outgoing call — the implementation mechanism for prerequisite gates. Hooks run before every other permission step and a hook deny applies even in `bypassPermissions` mode. code.claude.com › hooks
Programmatic enforcement
Hooks, prerequisite gates, or code-level checks that physically block a tool until its prerequisites complete. It is deterministic — it works every time regardless of what the model decides — and is the required answer for financial, security, and compliance operations.
Prompt chaining
Anthropic’s formal name for a fixed sequential pipeline: a task decomposed into predetermined steps, each LLM call processing the previous one’s output. The point is to trade latency for higher accuracy by making each call an easier task. Chains can carry “gates” — programmatic checks on intermediate output that catch a malformed result before it propagates. anthropic.com › building-effective-agents
Prompt-based guidance
Putting workflow rules in the system prompt. It is probabilistic: it works most of the time but carries a non-zero failure rate, which is acceptable for formatting and style but not where a single failure means financial loss, a security breach, or a compliance violation.
refusal
The `stop_reason` returned when streaming classifiers intervene over a potential policy violation; current models can decline on an otherwise-normal HTTP 200 response. Documented handling is to read `stop_details` and retry on a fallback model. platform.claude.com › handling-stop-reasons
Routing (workflow pattern)
The workflow pattern that classifies an input and directs it to a specialised follow-up task — for example sending cheap, common cases to a smaller model and hard ones to a more capable model. anthropic.com › building-effective-agents
Session
The conversation history the SDK accumulates while an agent works — the prompt, every tool call, every tool result, and every response — written to disk as JSONL under `~/.claude/projects/<encoded-cwd>/*.jsonl`, where the encoded directory is the working directory with every non-alphanumeric character replaced by `-`. Sessions persist the conversation, not the filesystem. code.claude.com › sessions
session_id
The identifier a headless run reports in its JSON result, captured in scripts with `claude -p "..." --output-format json | jq -r '.session_id'` so a later step can pass it to `--resume`. code.claude.com › headless
Stale context problem
Resuming a session after files have changed means the old tool results are still in history, so the agent reasons from code that no longer exists and gives contradictory advice. Asking it to re-read the changed files is not enough — the stale results stay in the conversation.
stop_reason
The response field that says why generation stopped, and the only reliable signal for agentic loop control. It is deterministic and unambiguous, arrives in the body of a successful HTTP 200 response (errors are 4xx/5xx instead), and should be branched on rather than natural-language cues, text checks, or iteration counts. platform.claude.com › messages
stop_sequence (stop reason)
The `stop_reason` returned when one of your custom `stop_sequences` was generated. Read the response's `stop_sequence` field to see which one fired. platform.claude.com › handling-stop-reasons
Structured handoff protocol
The self-contained summary an agent must produce when escalating to a human, who does not have access to the conversation transcript. It carries the customer ID, a conversation summary, root cause analysis, the amount where relevant, and a recommended action.
Subagent
A specialised agent invoked by a coordinator that runs in its own fresh context window. It does not inherit the coordinator's conversation history or system prompt, shares no memory between invocations, and returns only its final distilled message to the parent. code.claude.com › subagents
Subagent context isolation
A subagent's context window starts fresh with no parent conversation; the only content crossing the boundary is the Agent tool's prompt string. Intermediate tool calls and results stay inside the subagent, so heavy exploration never accumulates in the coordinator's context. code.claude.com › subagents
Subagent lifecycle hooks
`SubagentStart` fires when a subagent is spawned and is observational — it receives the subagent’s type and id and can log or inject context, but cannot block or modify the invocation. `SubagentStop` fires when the subagent finishes and can return `decision: "block"` with a reason to send it back to work, but does not transform the output. To block a spawn use a PreToolUse hook on the Agent tool; to reshape returned output use PostToolUse.
Task tool
The exam guide's name for the mechanism a coordinator uses to spawn subagents; `"Task"` must appear in the coordinator's `allowedTools` or it cannot invoke subagents at all. Current Claude Code renamed it `Agent`, though `Task` still appears in the `system:init` tools list. code.claude.com › subagents
tool_result block
The block that returns a tool's output to Claude, carrying `tool_use_id` (matching the request's `id`), optional `content`, and optional `is_error`. It is sent in a **user**-role message — there is no `tool` or `function` role in the Messages API. platform.claude.com › handle-tool-calls
tool_result placement rules
Two hard formatting rules: the tool result message must immediately follow the corresponding `tool_use` message with nothing in between, and all `tool_result` blocks must come first in that message's content array, before any text. Breaking either produces a 400 rather than degraded behaviour. platform.claude.com › handle-tool-calls
tool_use (stop reason)
The `stop_reason` value meaning the model invoked one or more tools. It is the only value that continues the loop by executing tools and returning their results; treat every other value as "not finished, check why". platform.claude.com › handling-stop-reasons
tool_use block
The assistant-role content block in which Claude requests a tool call. It carries three fields: `id` (unique, used to match the result later), `name`, and `input` conforming to the tool's `input_schema`. platform.claude.com › handle-tool-calls
tool_use_id
The field on a `tool_result` block that matches it to the `id` of the originating `tool_use` block. Results are matched by this ID, which is what makes parallel tool calls in one iteration unambiguous. platform.claude.com › handle-tool-calls
updatedInput
The `PreToolUse` output field that rewrites a tool call's input rather than blocking it. Paired with `permissionDecision: "allow"` it auto-approves the modified input; with `"ask"` it shows the modification to the user; omitted, the modified input still applies and flows through normal permission evaluation. code.claude.com › hooks