CertSafari
    CLAUDE-CERTIFIED-ARCHITECT-FOUNDATIONS-CCAR-F · Lessons

    Domain 5 · Lesson 30/30

    Claim-Source Mappings: Keeping Provenance Through Multi-Agent Synthesis

    Preserve information provenance and handle uncertainty in multi-source synthesis

    16 min read
    2.5% of exam
    6 sources
    Published 29 Sep 2026
    Docs as of 26 Sep 2026

    What you will be able to do

    • Explain where source attribution is lost when subagent findings are summarized or compacted
    • Design a subagent output contract that carries source URL, document name and relevant excerpt for every claim
    • Describe how a synthesis stage should preserve and merge claim-source mappings rather than rewrite them
    • Require publication or data collection dates in subagent structured outputs so temporal differences are not misread as contradictions
    • Handle conflicting statistics from credible sources by annotating each value with its source attribution and letting the coordinator decide how to reconcile before synthesis
    • Structure a synthesis report that separates well-established findings from contested ones and renders financial data, news and technical findings each in a fitting format

    Key concept

    Claim-source mapping — A structured record that pairs each individual claim with the evidence behind it: source URL, document name and the relevant excerpt. Every agent downstream has to carry it forward intact. If a claim loses its mapping at any handoff, nothing later in the pipeline can recover where it came from.

    1.Where provenance leaks: every compression step

    In a multi-agent research system, a lead agent splits the question into parts. It hands each part to a subagent, and each subagent searches, reads and reports back. Anthropic's Research system describes each subagent as one that independently searches, evaluates results and "returns findings to the LeadResearcher." The step that looks harmless is the handoff. Anthropic's guidance on multi-agent systems notes that results must be summarized when passed between agents, because each agent has its own context window and the coordinator cannot absorb every raw page its subagents read.

    Summarization keeps the point of a finding and drops the scaffolding around it. For provenance, the source is exactly that scaffolding. A subagent might read a report, pull out a statistic and write "adoption grew 40%" in its summary. The coordinator receives the claim with no URL, no document name and no excerpt. From then on the synthesis agent can only repeat the claim without support or guess at a source. Neither is attribution.

    Context compaction makes the same trade inside a single agent. Compaction replaces the older conversation with a model-generated summary. The cookbook calls it a whole-transcript operation in which user messages, tool calls and tool results are all flattened into that summary. It is lossy by design, and the cookbook warns that overly aggressive compaction can lose critical detail whose importance only shows up later. Its experiment makes the loss concrete:

    What a ~2,783-token compaction summary kept and dropped, from the context engineering cookbook
    Detail checkedKindIn the compaction summary?
    Median lifespan of C. elegans at 20°CHigh-level factYes
    Shortest-lived vertebrate used in aging research (killifish)High-level factYes
    Share of human disease genes with Drosophila orthologsHigh-level factYes
    I-squared heterogeneity value, appendix Table A5Obscure specificNo
    Effect magnitude for IIS reduction, appendix Table A2Obscure specificNo
    Epigenetic clock acceleration ratio, appendix Table A7Obscure specificNo

    The cookbook's point is that the summary kept the facts central to the task. The precise supporting details were cut. Provenance metadata has the same profile as the dropped rows: it is specific, it looks secondary, and it only matters when someone later asks "says who?" The cookbook also describes a counterweight, structured note-taking, where the agent writes notes that are persisted outside the context window and pulls them back in later. It adds that what lands in memory depends on the guidance you provide. Free-text summaries have no schema at all, so nothing forces a source to survive them. Structured outputs exist to guarantee valid, parseable output for downstream processing, and the next section uses that guarantee.

    A synthesis agent combines a subagent finding that unemployment in a region is '5.1%' with another subagent finding that it is '6.3%'. The coordinator initially treats this as a contradiction requiring reconciliation, but on closer inspection the two figures come from reports published fourteen months apart. What structural change to subagent output would prevent this kind of false contradiction going forward?

    Sources123

    2.Make the source a required field, not a request

    The fix belongs in the subagent's output contract, not in politer wording. The exam guide's requirement is specific: subagents output structured claim-source mappings (source URLs, document names, relevant excerpts), and downstream agents preserve those mappings through synthesis. A prompt line like "please cite your sources" is a hope. A schema with required fields is enforced. Anthropic's structured outputs documentation lists what goes wrong without one, even with careful prompting: parsing errors, inconsistent types and missing required fields.

    Structured outputs close that gap through constrained decoding. The documented example extracts contact details from an email, but the mechanism is general. You declare properties, list the ones that must appear, and forbid anything else:

    The output_config schema from the structured outputs docs. Swap these contact fields for claim, source URL, document name and excerpt, and the required list becomes your provenance guarantee.python
    output_config={
            "format": {
                "type": "json_schema",
                "schema": {
                    "type": "object",
                    "properties": {
                        "name": {"type": "string"},
                        "email": {"type": "string"},
                        "plan_interest": {"type": "string"},
                        "demo_requested": {"type": "boolean"},
                    },
                    "required": ["name", "email", "plan_interest", "demo_requested"],
                    "additionalProperties": False,
                },
            }
        },

    The Claude API's Citations feature shows what a well-formed mapping looks like when Claude answers from supplied documents. Every cited span of the answer comes back with structured data: the exact text relied on, the document it came from, and a location. The cookbook lists advantages over prompt-based citation. Prompt-based techniques make Claude output full quotes, which costs output tokens. The feature also refuses to invent a source, because it will not return citations pointing to documents or locations that were not provided as valid sources.

    One citation attached to a response text block: the excerpt and the document title travel with the claimjson
    "citations": [
            {
              "type": "char_location",
              "cited_text": "Once your order ships, you'll receive an email with a tracking number. ",
              "document_title": "Order Tracking Information"
            },
    How the exam guide's mapping elements line up with the Citations feature's output
    Mapping element the exam guide requiresCitations feature equivalent
    Relevant excerptcited_text
    Document namedocument_title
    Location inside the documentchar location (plain text), page location (PDF), content block location (custom content)
    Source URLNot shown in the cookbook example; carry it in your own schema

    One more field belongs in the same contract: time. The exam guide asks you to require subagents to include publication or data collection dates in their structured outputs, so downstream agents can get the temporal interpretation right. Without a date, a temporal difference is easily misinterpreted as a contradiction. Suppose one credible source reports a figure collected last year and another reports the same metric collected this quarter. The two values differ because the world changed, not because either source is wrong. A synthesis agent that sees only two bare numbers will flag a conflict, or silently pick one, when the right move is to present them as two points in time.

    Anthropic's fact-checking workflow example shows the cost of undated evidence. A press article said the company "recently expanded" into three categories, but a skeptic could challenge the claim because the article did so without confirming the launches happened within Q2, the period being checked. The statement might be true and still unusable, because nothing places it in time. Make the publication or collection date a required field alongside source URL, document name and excerpt. Structured outputs then guarantee the field is present, so a subagent that cannot find a date has to say so explicitly rather than leave the date out.

    Sources145

    3.Synthesis merges mappings; it does not rewrite them

    Once subagents return structured mappings, the synthesis agent inherits a narrower job than "write the report." It has to preserve every mapping and merge them. When findings are combined, each claim in the output still has to point back to the evidence the subagents attached. When two subagents back the same claim, the merged claim should keep the support from both, not quietly keep one and drop the other.

    Anthropic's Research system treats attribution as its own stage. After the research loop ends, the system passes all findings to a CitationAgent, which processes the documents and research report to identify specific locations for citations. The design only works if the documents and findings actually arrive at that stage. A citation step at the end cannot attach a source that an earlier summary threw away. That is why the contract from the previous section has to be in place first.

    If a merge step is itself a tool call, for example a coordinator tool that accepts merged claims, strict tool use lets you guarantee its inputs match the schema. A merged claim that arrives without its source fields is then rejected at the boundary instead of passing silently into the report.

    Merging gets hard when two subagents return conflicting statistics from credible sources. The tempting shortcut is for the synthesis agent to pick one value, perhaps the more recent, the rounder or the first one it read. Arbitrarily selecting one value destroys information: the reader never learns that credible sources disagreed, or which source said what. The correct handling is annotating the conflict with source attribution. Both values stay in the output, each tied to its own source, with the disagreement marked as a disagreement.

    The same rule applies one stage earlier. A subagent doing document analysis should complete its work with the conflicting values included and explicitly annotated, not resolve the conflict on its own. Anthropic's fact-checking workflow example shows the shape of that output: each checked claim comes back as a structured verdict with the conflicting source value beside it, such as a claimed NPS of 71 marked "Contradicted. The survey says 62", or claimed 99.99% uptime against a reliability report that says 99.71%, with a 6-hour May incident. Reconciliation then belongs to the coordinator, which sees every subagent's evidence. In the Research system it is the LeadResearcher that synthesizes subagent results and decides whether more research is needed. The coordinator decides how to reconcile the conflict before passing the findings to synthesis: gather more evidence, check whether dates explain the difference, or carry both values into the report as contested.

    During a competitive-intelligence synthesis, two subagents report different figures for a competitor's annual revenue: one cites a press release stating $420 million, the other cites an analyst report stating $460 million. Both sources are credible. How should the synthesis agent handle this discrepancy in the final report?

    Sources165

    4.Structure the report: established versus contested, each content type in its own form

    Preserved mappings and annotated conflicts only help the reader if the final report shows them. The exam guide asks for structuring reports with explicit sections distinguishing well-established findings from contested ones. A claim that several credible sources support belongs in the well-established section. A claim that sources dispute, or that no source covers, belongs in a contested section with its conflicting values and their source attribution intact. Blending the two into one confident narrative gives contested claims the same weight as settled ones.

    Anthropic's fact-checking workflow example sorts its claims in exactly this way. Each claim ends with one of three verdicts, and a report built from them splits naturally:

    Verdicts from the fact-check workflow example's answer key, and where each would go in a report that separates established from contested findings
    VerdictClaims in the exampleReport section
    SupportedClaims 2, 3, 9 and 10Well-established findings
    ContradictedClaims 1, 4, 5 and 6Contested findings, with the source's value beside the claim
    UnverifiableClaims 7 and 8Contested findings, marked as having no covering source

    The same example shows why the report must preserve original source characterizations. Claim 6 turned on the gap between "the fastest-growing" and "one of the fastest-growing"; the example notes that a single rushed agent often glosses over the difference between the two. A synthesis that paraphrases the source's wording has changed the claim. Methodological context matters as much: a skeptic could challenge claim 3 because the survey confirmed the figure but no source establishes a prior baseline for the claimed growth. Carry that context, such as what was measured, against what baseline and over what period, with the finding, so the reader can judge how established it really is.

    The last requirement concerns format. Structured outputs can generate structured reports, but a report is not better for converting everything to a uniform format. The exam guide asks you to render different content types appropriately in synthesis outputs: financial data as tables, so figures and periods can be compared across sources; news as prose, so sequence and context survive; and technical findings as structured lists, so each finding stays discrete and checkable. The citations stay attached whatever the format. The Citations cookbook, for example, renders cited text with numbered markers and a numbered reference list showing each cited text and its source document.

    Sources154

    Exam traps

    Each one states something that sounds right. Open it to see what is actually true.

    1. 1.Compaction or summarization keeps a finding's citation as long as it keeps the finding itself.Why is that wrong?

      Summaries keep the task-central facts and drop precise specifics. Compaction is lossy by design and can lose critical detail whose importance only shows up later. Provenance has to be stored in a structured form that the compression step cannot drop.

      Covered in Where provenance leaks: every compression step

    2. 2.Telling subagents in the prompt to cite their sources is enough to guarantee every claim arrives with one.Why is that wrong?

      Prompting alone can still produce missing required fields. A schema enforced through structured outputs guarantees that required fields, such as source URL and excerpt, are present.

      Covered in Make the source a required field, not a request

    3. 3.Two credible sources giving different values for the same metric means one of them is wrong.Why is that wrong?

      The sources may describe different periods. Without publication or data collection dates in the structured output, a temporal difference looks like a contradiction, and an undated claim cannot be placed in the period being checked.

      Covered in Make the source a required field, not a request

    4. 4.When credible sources report conflicting statistics, the synthesis agent should pick the most credible value so the report stays clean.Why is that wrong?

      Arbitrarily selecting one value hides the conflict and the losing source. Conflicting values should be included and annotated with source attribution, and the coordinator decides how to reconcile them before synthesis.

      Covered in Synthesis merges mappings; it does not rewrite them

    Sources

    Every claim above is drawn from one of these pages, quoted as it was written on the date shown.

    1. 1.
      “ensuring valid, parseable output for downstream processing”
      ↩︎ Where provenance leaks: every compression step
      “Type safe: Guaranteed field types and required fields”
      ↩︎ Make the source a required field, not a request
      “Even with careful prompting, you may encounter:”
      ↩︎ Make the source a required field, not a request
      “Strict tool use (strict: true): Guarantee schema validation on tool names and inputs”
      ↩︎ Synthesis merges mappings; it does not rewrite them
      “Type safe: Guaranteed field types and required fields”
      ↩︎ Exam trap 2
    2. 3.
      “Compaction is a whole-transcript operation: user messages, assistant messages, tool calls, tool results, even prior compaction blocks are all flattened into the summary.”
      ↩︎ Where provenance leaks: every compression step
      “RESULT: high-level 3/3 preserved, obscure 0/3 preserved”
      ↩︎ Where provenance leaks: every compression step
      “the agent regularly writes notes persisted outside the context window, then pulls them back in at later times.”
      ↩︎ Where provenance leaks: every compression step
      “overly aggressive compaction can lose subtle but critical context whose importance only becomes apparent later.”
      ↩︎ Exam trap 1
    3. 4.
      “The citation feature will not return citations pointing to documents or locations that were not provided as valid sources.”
      ↩︎ Make the source a required field, not a request
      “Prompt-based techniques often require Claude to output full quotes from the source document it intends to cite.”
      ↩︎ Make the source a required field, not a request
      “A numbered reference list showing each cited text and its source document”
      ↩︎ Structure the report: established versus contested, each content type in its own form
    4. 5.
      “without confirming the launches happened within Q2”
      ↩︎ Make the source a required field, not a request
      “Contradicted. The reliability report says 99.71%, with a 6-hour May incident”
      ↩︎ Synthesis merges mappings; it does not rewrite them
      “note the schema option that forces verifiers to return structured verdicts”
      ↩︎ Synthesis merges mappings; it does not rewrite them
      “An over-strict flag costs a minute of human review; an under-strict pass costs credibility with investors.”
      ↩︎ Synthesis merges mappings; it does not rewrite them
      “A single rushed agent often glosses over the difference between”
      ↩︎ Structure the report: established versus contested, each content type in its own form
      “without confirming the launches happened within Q2”
      ↩︎ Exam trap 3
      “An over-strict flag costs a minute of human review; an under-strict pass costs credibility with investors.”
      ↩︎ Exam trap 4
    5. 6.
      “passes all findings to a CitationAgent, which processes the documents and research report to identify specific locations for citations.”
      ↩︎ Synthesis merges mappings; it does not rewrite them
      “This ensures all claims are properly attributed to their sources.”
      ↩︎ Synthesis merges mappings; it does not rewrite them
      “The LeadResearcher synthesizes these results and decides whether more research is needed”
      ↩︎ Synthesis merges mappings; it does not rewrite them
      “This ensures all claims are properly attributed to their sources.”
      ↩︎ Key concept