{"id":3897,"date":"2026-10-11T08:23:41","date_gmt":"2026-10-11T08:23:41","guid":{"rendered":"https:\/\/www.exam-topics.com\/blog\/?p=3897"},"modified":"2026-10-19T10:07:33","modified_gmt":"2026-10-19T10:07:33","slug":"claude-subagents-handoffs-and-session-resumption","status":"publish","type":"post","link":"https:\/\/www.exam-topics.com\/blog\/claude-subagents-handoffs-and-session-resumption\/","title":{"rendered":"Anthropic CCAR-F: Claude Subagents, Handoffs, and Session Resumption"},"content":{"rendered":"<p>A multi-agent system can look like an organizational chart: a coordinator assigns research, coding, verification, and reporting to specialist agents. But that analogy hides the engineering problem. Each agent has its own execution context, tools, budget, authority, and failure modes.<\/p>\n<p>Passing a vague instruction such as \u201cfinish the analysis\u201d across that boundary invites inconsistent assumptions, repeated work, and answers that cannot be traced to their sources. In a Claude-based application, reliable delegation begins with explicit task contracts and durable workflow state, not with the number of agents on a diagram.<\/p>\n<p>Subagents are useful when specialization reduces context noise, narrows tool permissions or enables independent work. They add overhead when every task requires the same documents to be reread or parallel branches race to update the same resource. Before delegating, define the evidence each subagent needs, the operations it may perform and the form in which it must return results.<\/p>\n<h2>Delegate a bounded deliverable, not an ambiguous intention<\/h2>\n<p>A coordinator should hand a specialist an answerable question, a constrained input set, an expected output schema, and an explicit definition of success. \u201cCheck whether these five policies contradict each other and cite the relevant sections\u201d is a bounded research task. \u201cUnderstand the customer\u201d is not. The latter gives a subagent no reliable stopping point or test for completeness. A narrow contract also makes it easier to evaluate whether delegation was better than keeping the work in one agent.<\/p>\n<p>For example, a technical support agent might delegate log analysis and configuration review separately. The log specialist receives time boundaries, identifiers, allowed log sources, and a request to identify evidence of failed authentication. The configuration specialist receives approved change records and current access settings. Neither subagent is asked to resolve the incident or change access policy. The coordinator combines evidence and decides whether the next step is diagnosis, clarification, or human escalation.<\/p>\n<p>Include a failure contract. What should the specialist return if the relevant log period is missing, if a document is inaccessible, or if its evidence contradicts another source? \u201cNo conclusion; missing log partition\u201d is a successful report of insufficient evidence, not a failure to comply. Agents should be able to say that evidence is incomplete without inventing a conclusion to satisfy the requested format.<\/p>\n<h2>Treat context transfer as a designed interface<\/h2>\n<p>A spawned subagent should not be assumed to inherit every message, tool result, system instruction, file handle, or permission from its parent. Model and runtime APIs expose different context-passing mechanisms, so architecture must identify exactly what is delivered to a child task. Relying on implicit shared memory is fragile even in a system where multiple agents happen to run in one process. Define the inputs explicitly and verify what the subagent can see before expecting it to make decisions.<\/p>\n<p>A practical handoff envelope includes a task ID, purpose, authoritative source identifiers, relevant excerpts or retrieval instructions, freshness requirements, allowed tools, output schema, and a deadline or budget. Avoid sending an entire parent transcript \u201cjust in case.\u201d That makes the child vulnerable to irrelevant instructions, bloated context, and older evidence that no longer describes the current system. If a child needs more source material, it should request access to the relevant evidence through approved tools rather than hallucinate missing details.<\/p>\n<p>The <a href=\"https:\/\/www.exam-topics.com\/blog\/context-management-for-claude-agents\/\">context management<\/a> problem gets harder when child agents produce summaries. A summary can be useful for coordination but must not become the sole authoritative record. Keep links to original documents, timestamps, and observation IDs so the coordinator can verify high-stakes claims. If two summaries disagree, compare their sources before averaging their conclusions.<\/p>\n<h2>Choose sequential, parallel, and hub-and-spoke patterns deliberately<\/h2>\n<p>Sequential delegation is appropriate when each stage depends on the verified output of the previous one: collect evidence, classify the issue, propose a change, and independently check policy. It is easy to audit but can be slower because later tasks wait. Parallel delegation is suitable for independent source inspections or different hypotheses, as long as the coordinator can distinguish contradictory conclusions and reconcile them. Running dependent tasks in parallel is likely to produce stale reads and avoidable retries.<\/p>\n<p>A hub-and-spoke arrangement can keep the coordinator responsible for user intent and synthesis while specialists perform bounded work. That separation is useful when tools have different permissions: a researcher may read reference documents, a calculator may perform numeric validation, and an operator may prepare a proposed action without being able to commit it. The coordinator should not grant every specialist every tool merely because doing so simplifies initial development.<\/p>\n<p>More agents also increase observability cost, latency and opportunities for disagreement. Before adding a specialist, measure what failed with the simpler design. Did one context window become overloaded? Did one tool set create ambiguous choices? Did expertise differ meaningfully? Was independent verification required? If the answer is no, a deterministic workflow or one agent with well-scoped tools may be clearer and cheaper.<\/p>\n<h2>Merge outputs with provenance and disagreement handling<\/h2>\n<p>A coordinator should not treat two agent summaries as two independent votes if both agents relied on the same copied source. Independence requires different evidence or different validation methods. Merge results as claims backed by source IDs and observed timestamps, then identify whether disagreements reflect different data, different interpretations, or errors. A majority of correlated model opinions is not a reliable substitute for a primary record.<\/p>\n<p>Suppose one subagent finds that a service outage began at 14:07 while another reports 14:11. The coordinator should inspect the basis of both times: one might refer to the first network alert, the other to the first customer ticket. The correct incident narrative may legitimately contain both. A useful synthesis preserves these distinctions instead of writing that the outage \u201cbegan around 14:09\u201d simply because that is the midpoint.<\/p>\n<p>For tasks with schemas, validate the output structure separately from its meaning. A JSON object with valid fields can still cite the wrong case number. Require the claimed evidence to be retrievable and verify critical arithmetic or policy decisions deterministically. The <a href=\"https:\/\/www.exam-topics.com\/blog\/structured-outputs-with-claude\/\">structured-output validation<\/a> boundary is particularly important when subagent output is consumed by another automated component without human interpretation.<\/p>\n<h2>Persist sessions without persisting unsafe assumptions<\/h2>\n<p>Current Claude Code versions name the subagent invocation tool <code>Agent<\/code>; the older <code>Task<\/code> name remains familiar from previous interfaces. Neither name means a delegated worker inherits all tools or approvals. Define each specialist&#8217;s scope, maximum turns, permitted tools, evidence and return contract before invocation. The <a href=\"https:\/\/code.claude.com\/docs\/en\/sub-agents\" rel=\"nofollow\">Claude subagent<\/a> interface evolves, so check its current schema instead of treating an older tool name as an architectural invariant.<\/p>\n<p>Three continuations have different meanings. Resuming a Claude Code session continues an existing conversation; <code>--fork-session<\/code> starts a new session identifier from the previous context so the work can diverge. A skill with <code>context: fork<\/code> runs in an isolated subagent context. None restores a billing approval or proves a write committed. Persist application state and idempotency keys independently, and revalidate permissions and source freshness before resuming a business action.<\/p>\n<p>Long-running workflows may span several model interactions, tool calls, approval waits, or infrastructure restarts. A durable session record should include the workflow ID, task graph, completed and pending steps, approved decisions, source references, operation IDs, and a version of the policy under which the work was authorized. It should not rely on the model recalling a hidden assumption from a conversation many turns earlier.<\/p>\n<p>When a session resumes, recheck external facts that may have changed: permissions, account balance, available inventory, approval expiry, tool configuration, and destination state. A user can lose access while the agent waits, and a proposed change may no longer apply. Resume from the last confirmed business state, not the last sentence in a transcript. The model can regenerate an explanation, but it should not regenerate an already approved mutation with new arguments.<\/p>\n<p>Distinguish a resumable conversation from a resumable business transaction. Saving messages may let Claude continue a discussion, but it does not prove that the downstream tool call was committed exactly once. Use an application-owned operation ledger and idempotency keys for side-effecting steps. For a practical incident, a session might be restored with the credit proposal marked pending while the billing service separately confirms that no adjustment has yet been applied.<\/p>\n<h2>Control duplicate work, loops, and lost approvals<\/h2>\n<p>Parallel agents may each decide that they should open the same incident, update the same ticket, or notify the same person. Prevent duplicates through task ownership, unique action identifiers, and a single commit boundary. Child agents can create proposals, but a transaction coordinator should decide which proposal, if any, may be executed. The operation log should be the source of truth even when a child crashes after reporting success.<\/p>\n<p>Set timeouts and retry policies per task type. Repeating a read-only search after a temporary outage is different from retrying a financial transaction after the response was lost. If a child fails, the coordinator can reassign the investigation with the same evidence snapshot and a new attempt identifier. It should not blindly repeat writes. A retry budget and an escalation path keep the system from consuming resources indefinitely while appearing \u201cbusy.\u201d<\/p>\n<p>Human approvals need the same explicit state. Record who approved which proposed action, under what conditions, and until when. If the target record changes after approval, require a new review where the change is material. Do not interpret a generic chat response as approval for an action whose parameters are no longer the same.<\/p>\n<h2>Design evaluation around recovery and evidence<\/h2>\n<p>A useful multi-agent test does not end at checking whether the final prose is readable. Create cases where a child lacks a source, two specialists return contradictory evidence, one specialist finishes after its deadline, a tool fails after partially committing, and a session resumes after permissions have changed. Define what a correct coordinator should do in each case: cite uncertainty, request missing evidence, reject a stale update, or escalate.<\/p>\n<p>Instrument every handoff with trace identifiers so reviewers can answer what was delegated, which sources were used, which tools ran under whose identity, and why the coordinator accepted or rejected each result. When an agent makes a claim based on another agent&#8217;s report, the evidence chain should survive beyond both transient model contexts. This makes audit and user correction possible without replaying the entire conversation.<\/p>\n<p>Session resumption is safe only when a restarted coordinator can reconstruct which subtask outputs were accepted, which permissions still hold and which external writes are already committed\u2014not merely the earlier conversation text. Stable task identifiers, idempotency keys for mutations and retained source provenance let the system distinguish new work from work already done. When a returning specialist&#8217;s result conflicts with current system state, the coordinator should stop for reconciliation rather than silently overwriting the newer evidence.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Design dependable Claude subagent delegation, handoffs, provenance and recoverable sessions.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[339,2],"tags":[],"et_vendor":[],"et_program":[],"et_certification":[],"et_exam":[],"et_topic":[],"class_list":["post-3897","post","type-post","status-publish","format-standard","hentry","category-claude-anthropic","category-post"],"_links":{"self":[{"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/posts\/3897","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/comments?post=3897"}],"version-history":[{"count":6,"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/posts\/3897\/revisions"}],"predecessor-version":[{"id":4910,"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/posts\/3897\/revisions\/4910"}],"wp:attachment":[{"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/media?parent=3897"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/categories?post=3897"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/tags?post=3897"},{"taxonomy":"et_vendor","embeddable":true,"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/et_vendor?post=3897"},{"taxonomy":"et_program","embeddable":true,"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/et_program?post=3897"},{"taxonomy":"et_certification","embeddable":true,"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/et_certification?post=3897"},{"taxonomy":"et_exam","embeddable":true,"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/et_exam?post=3897"},{"taxonomy":"et_topic","embeddable":true,"href":"https:\/\/www.exam-topics.com\/blog\/wp-json\/wp\/v2\/et_topic?post=3897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}