AnthropicClaude Certified Architect – Foundations2026-105.6 Preserve information provenance and handle uncertainty in multi-source synthesis
Carry evidence through every synthesis step
Completed by the knowledge check
Learning objective
Preserve structured claim-to-source mappings, excerpts, and source locations across subagent handoffs and synthesis.
Core idea
A research summary can retain a conclusion while losing the evidence that limits it. For an architect building a multi-agent research system, the important invariant is that every synthesized claim still resolves to the source passages supporting it. A bibliography at the end does not establish that relationship.
See 1.3.4 for separating supporting content from attribution, and 5.1.6 for defining an upstream finding record. This lesson follows that record through handoffs: what synthesis may rewrite, what it must preserve, and how document citations help. The coordinator must receive usable evidence rather than a promise that an agent checked it.
How it works
Preserve relationships rather than citation-shaped text
Give each claim an application-defined claim_id and each supporting passage an evidence_id. A claim references one or more evidence records. Each evidence record retains source_url or a document identifier, document_name, excerpt, and source_location. These names describe your application’s contract, not reserved Claude API fields.
Keep the excerpt separate from the agent’s interpretation. The excerpt records the source’s words; the claim records what the system concludes from them. If the source describes a limited pilot, the synthesized claim must not quietly become a statement about every deployment. The location lets a reviewer inspect the surrounding text when the excerpt is ambiguous.
Require the downstream agent to preserve the identifiers when it rewrites a claim. If two claims become one sentence, retain the evidence references for both clauses. If one broad claim splits into two, assign evidence to each resulting statement rather than copying a citation onto an unsupported clause. Preserve several supporting passages when they contribute different parts of the conclusion.
Put the contract at the handoff
In the Claude Agent SDK, AgentDefinition.prompt defines a specialist’s behavior. Require evidence records in the research specialist’s final response and require claim-to-evidence references in the synthesis specialist’s response. Intermediate tool calls and results stay inside the subagent; only its final message returns to the parent. A parent cannot treat the specialist’s private reading history as evidence it has received.
For a non-forked SDK subagent, the parent passes task content through the Agent tool’s prompt string. Include the records there, or include explicit paths to artifacts the specialist can read. See 1.3.4 for artifact handoffs. A path is useful only when the next step can actually retrieve its contents.
At each boundary, check that referenced evidence exists, required excerpts are nonempty, and source locations remain attached. Then check semantic support: does the excerpt actually justify the rewritten claim? Passing a shape check proves that fields exist; it does not prove that the conclusion follows.
Evidence reaches the coordinator only in each specialist’s final message, and every boundary checks it before the next handoff.
Use document citations for source pointers
When you provide documents to the Messages API, enable native citations with citations: {"enabled": true} on every document in the request. The documented requirement is all documents or none. Responses contain text blocks with a citations list, including cited_text and location fields such as document_index and start_char_index (see 1.3.4).
The citation’s document_index is zero-based across all document content blocks in the request, spanning all messages. At a later handoff, keep that original request’s index-to-document mapping alongside the citation records. If synthesis receives a different document order, a bare document_index no longer identifies the same source. Resolve it to the application’s stable evidence identifier before treating it as a cross-stage reference.
A citation attached to an input sentence does not automatically support every output sentence derived from it. Require the synthesis result to name the evidence identifiers for each resulting claim. When synthesis combines two findings with different sources, retain both mappings and check the contribution of each passage rather than attaching one citation to the entire paragraph.
The API guarantees valid pointers into the provided documents. That guarantee does not establish the truth of a document or settle whether the passage supports your interpretation. Citation support is for text; an image-only scanned PDF without extractable text is not citable through this mechanism.
Native citations cannot be combined with output_config.format: enabling both produces a 400 response. If your pipeline needs cited prose and schema-constrained records, separate the stages and validate the mapping between them. Asking for an application-defined record in a prompt is distinct from enabling the API’s strict structured-output feature.
Key distinctions and trade-offs
Source inventory versus provenance: An inventory lists documents consulted. Provenance identifies which passage supports which assertion. Keeping every URL in a bibliography still loses provenance if those relationships disappear.
Compression versus deletion: You can shorten redundant explanation while retaining evidence identifiers and retrievable excerpts. Removing the only location or qualifier changes what downstream synthesis can verify.
Pointer validity versus evidential support: A valid citation identifies real source text. A reviewer still needs to check whether that text supports the claim’s scope. Anthropic’s hallucination guidance recommends checking claims against supporting quotes and retracting claims that cannot be supported.
Carrying full excerpts costs context. Storing them in accessible artifacts reduces repeated copying, but creates a retrieval obligation. Choose a representation that survives the actual next handoff, rather than optimizing a single agent’s response length.
Architecture / decision scenario
A research coordinator requests an assessment of a fictional database migration. One specialist reads a benchmark report; another reads operational incident notes. The benchmark specialist returns a throughput claim with its document name, exact excerpt, and table location. The incident specialist returns a recovery claim with an incident identifier and relevant paragraph.
The coordinator stores both evidence records and sends their identifiers and retrievable content to synthesis. Synthesis writes one paragraph covering throughput and recovery, attaching the benchmark evidence only to throughput and the incident evidence only to recovery. It retains the benchmark’s single-workload qualifier.
A validation pass finds that the draft also claims lower operating cost, which neither passage supports. Following the quote-verification instruction, the agent removes that assertion rather than borrowing a nearby citation. A final reviewer can trace both surviving claims through the synthesis output, the handoff records, and the original locations. The result preserves a usable evidence trail across every rewrite.
Common exam traps
- Requesting citations only after source records have been discarded.
- Returning a document list without mapping individual claims to passages.
- Assuming the parent receives every document a subagent read.
- Treating a valid citation pointer as proof that the interpretation is correct.
- Combining native citations with
output_config.formatin one request. - Reordering documents without preserving the index-to-document mapping.
What to remember
Capture evidence when the finding is produced and preserve the relationship through every handoff. Synthesis may change wording and grouping; it must retain the excerpts, locations, and evidence references needed to verify the result. Native citations supply document pointers, while your application maintains provenance across agents and stages.
Knowledge check
In a research system, the analysis specialist mentions its sources in running text. The synthesis specialist compresses that into fluent prose with no sources, and a report writer that receives only the synthesis produces a final report that cites nothing. Which fix makes every report claim traceable to its source passages?
A pipeline needs cited prose from source documents and schema-constrained finding records. A draft design sends one Messages API request with citations enabled on the documents and output_config.format set. What should the architect change?
cited_text into a schema fieldoutput_config.format , and citations must be enabled on all documents or none. Separate stages keep native citations for the prose and a schema for the records, and the mapping between the two is validated rather than assumed.Specialist results carry native citations with document_index values. Before synthesis, the coordinator rebuilds the document list in a different order. How should the citations cross that handoff?
document_index to a stable evidence ID via the original mappingdocument_index unchanged with the reordered document listcited_text , and drop its document and location fieldsdocument_index is zero-based across all document blocks of the request that produced the citation, so it identifies a source only within that request; after reordering, a bare index points at another document. Resolving it to the application’s stable evidence identifier keeps the reference valid. The pointer guarantee covers the original request, and an excerpt without its location cannot be inspected in context.A validation pass finds a synthesized sentence claiming lower operating cost. Its citation points to a real benchmark passage that discusses only throughput, and none of the supplied evidence supports a cost conclusion. What should happen to the claim?
References
- Anthropic, Subagents in the SDK
- Anthropic, Citations
- Anthropic, Reduce hallucinations
- Anthropic, How we built our multi-agent research system