Preserve Information Provenance and Handle Uncertainty in Multi-Source Synthesis
This module is about not losing source grounding when multiple agents summarize, merge, and synthesize evidence.
The exam’s core idea:
Every important claim should keep its source trail.
When sources disagree, preserve the disagreement instead of forcing a single clean answer.
Anthropic’s Citations docs describe source-grounded answers as responses where exact passages support claims, allowing users to verify answers and surface sources. The same principle applies even when you are not using the built-in Citations API: subagents should preserve claim-source mappings so downstream synthesis does not detach claims from evidence. (Claude)
1. Core mental model
Use this rule:
A synthesized claim is only as trustworthy as the source mapping that survives into the final report.
A reliable multi-source synthesis pipeline should preserve:
claim
source
source type
source date
collection date
excerpt
methodology context
confidence
conflict status
The exam shortcut:
2. Why provenance gets lost
Source attribution often disappears during summarization.
Original subagent output
{
"claim": "Customer churn decreased from 8.2% to 6.9% in Q2.",
"source": "Q2 Customer Retention Report",
"source_url": "internal://reports/customer-retention-q2",
"publication_date": "2026-07-15",
"data_collection_period": "2026-04-01 to 2026-06-30",
"excerpt": "Churn decreased from 8.2% in Q1 to 6.9% in Q2.",
"methodology": "Monthly active paid accounts; excludes trial accounts."
}
Bad compressed summary
What got lost?
Exact values
time period
source document
methodology
whether trial accounts were excluded
ability to verify the claim
Better compressed summary
{
"claim": "Customer churn decreased from 8.2% in Q1 to 6.9% in Q2.",
"source_refs": ["SRC-001"],
"data_collection_period": "2026-04-01 to 2026-06-30",
"methodology_note": "Monthly active paid accounts; excludes trial accounts."
}
Exam point:
Summaries may get shorter, but claim-source mappings must remain intact.
3. Structured claim-source mapping
A subagent should not return only prose. It should return structured claims with sources.
Recommended schema
{
"claim_id": "C-001",
"claim": "Customer churn decreased from 8.2% in Q1 to 6.9% in Q2.",
"claim_type": "financial_metric | news_event | technical_finding | policy_statement | customer_fact",
"value": "6.9%",
"comparison_value": "8.2%",
"unit": "percent",
"source_refs": [
{
"source_id": "SRC-001",
"source_name": "Q2 Customer Retention Report",
"source_url": "internal://reports/customer-retention-q2",
"document_type": "internal_report",
"publication_date": "2026-07-15",
"data_collection_period": "2026-04-01 to 2026-06-30",
"relevant_excerpt": "Churn decreased from 8.2% in Q1 to 6.9% in Q2.",
"source_characterization": "Internal retention report using paid-account methodology.",
"methodological_context": "Excludes trial accounts and free-tier accounts."
}
],
"confidence": "high",
"conflict_status": "uncontested"
}
Anthropic’s Citations API represents this product-level idea: citations reference specific locations in source documents, such as page ranges, character ranges, or content-block ranges depending on document type. (Claude)
4. Downstream synthesis must preserve mappings
The synthesis agent should not merge claims by deleting source IDs.
Bad synthesis input
The synthesizer cannot tell:
Which source is audited?
Which period?
Which revenue definition?
Which publication date?
Whether the numbers actually conflict?
Good synthesis input
[
{
"claim_id": "C-001",
"claim": "Revenue grew 12% year-over-year.",
"metric": "GAAP revenue",
"period": "FY2025",
"source_refs": ["SRC-annual-report-2025"],
"publication_date": "2026-02-20",
"methodology": "Audited annual report."
},
{
"claim_id": "C-002",
"claim": "Revenue grew 10% year-over-year.",
"metric": "constant-currency revenue",
"period": "FY2025",
"source_refs": ["SRC-investor-deck-q4"],
"publication_date": "2026-02-21",
"methodology": "Management presentation; constant-currency basis."
}
]
Now the synthesizer can say:
The two revenue-growth figures are not necessarily contradictory: one is GAAP revenue growth and the other is constant-currency revenue growth.
5. Conflicting statistics from credible sources
The exam specifically says: do not arbitrarily select one value.
Bad
Better
The sources report different values:
| Metric | Value | Source | Date | Methodology |
|---|---:|---|---|---|
| Employee attrition | 14% | HR Annual Report | 2026-01-15 | Full-time employees only |
| Employee attrition | 11% | Workforce Analytics Dashboard | 2026-01-20 | Full-time + part-time employees |
These figures should be treated as contested or methodologically different until the [coordinator](<../D1 - Agentic Architecture & Orchestration/D1.2 - Multi-Agent Orchestration.md>) decides which definition is appropriate.
Exam answer pattern:
Preserve both values.
Attach source attribution.
Include dates and methodology.
Mark the conflict explicitly.
Let coordinator choose reconciliation policy.
6. Conflict annotation schema
{
"conflict_group_id": "CG-001",
"topic": "employee_attrition_rate",
"conflict_type": "different_methodology | different_time_period | direct_contradiction | stale_vs_current | unknown",
"values": [
{
"claim_id": "C-010",
"value": "14%",
"source_id": "SRC-hr-annual-report",
"publication_date": "2026-01-15",
"data_collection_period": "2025-01-01 to 2025-12-31",
"methodology": "Full-time employees only",
"excerpt": "Annual attrition for full-time employees was 14%."
},
{
"claim_id": "C-011",
"value": "11%",
"source_id": "SRC-workforce-dashboard",
"publication_date": "2026-01-20",
"data_collection_period": "2025-01-01 to 2025-12-31",
"methodology": "Full-time and part-time employees",
"excerpt": "Overall employee attrition was 11%."
}
],
"recommended_resolution": "Do not collapse into one number unless the report specifies which employee population is in scope."
}
This gives the coordinator a useful decision object.
7. Temporal data: publication date vs collection date
Temporal metadata prevents false contradictions.
Two claims may look inconsistent:
But with dates:
That may represent a trend, not a contradiction.
Required temporal fields
{
"publication_date": "2026-03-01",
"data_collection_start": "2025-10-01",
"data_collection_end": "2025-12-31",
"as_of_date": "2025-12-31",
"last_updated": "2026-02-20"
}
Use the right date:
| Date field | Meaning |
|---|---|
publication_date |
When the source was published |
data_collection_period |
When the underlying data was collected |
as_of_date |
The date the value represents |
last_updated |
When a living source was updated |
accessed_date |
When the system retrieved it |
Exam shortcut:
Different dates can explain different values.
Do not label temporal change as contradiction without checking dates.
8. Completing analysis with conflicts included
The exam says document analysis should include conflicting values and let the coordinator decide before synthesis.
Bad subagent behavior
Good subagent behavior
{
"field": "renewal_date",
"conflict_detected": true,
"values": [
{
"value": "2027-03-01",
"source": "Master Services Agreement",
"section": "Term and Renewal",
"excerpt": "The agreement renews on the anniversary of the Effective Date.",
"derivation": "Effective Date 2026-03-01 + 12 months"
},
{
"value": "2027-04-01",
"source": "Order Form",
"section": "Commercial Terms",
"excerpt": "Renewal begins April 1, 2027.",
"derivation": "explicit"
}
],
"recommended_coordinator_action": "Ask whether order form terms override MSA terms before synthesis."
}
The coordinator can then decide:
Use contract hierarchy.
Ask human reviewer.
Report both values.
Prefer explicit order-form terms if policy says order forms override MSA.
9. Report structure: established vs contested
A good synthesis output should clearly separate:
well-established findings
contested findings
time-sensitive findings
methodology-dependent findings
gaps / insufficient evidence
Example report structure
# Synthesis Report
## Well-established findings
These findings are supported by multiple consistent sources or one authoritative source.
1. The current refund workflow emits `RefundRequestedEvent`.
- Sources: `RefundController.ts`, `RefundRequestedEvent.ts`
- Evidence: ...
## Contested or conflicting findings
These findings differ across credible sources.
1. Renewal date differs between MSA and Order Form.
- MSA-derived value: 2027-03-01
- Order Form explicit value: 2027-04-01
- Recommended action: apply contract precedence policy or route to legal review.
## Methodology-dependent findings
These are not necessarily contradictory but use different definitions.
1. Revenue growth differs by basis.
- GAAP revenue growth: 12%
- Constant-currency revenue growth: 10%
## Temporal caveats
1. Market share values differ across 2024 and 2026 sources and may represent change over time.
## Evidence gaps
1. No source provided for competitor price-match exception policy.
This avoids pretending every input has equal certainty.
10. Preserve original source characterization
Do not overstate what the source says.
Source says
Bad synthesis
Good synthesis
The study reports an association between onboarding time and retention; it does not establish causation.
The synthesis should preserve:
causal vs correlational language
sample size
population studied
methodology
limitations
source confidence
author/source type
Anthropic’s long-context guidance highlights the need to make references explicit when multiple documents are combined; ambiguous references like “this document” become problematic in stitched multi-document contexts. (Anthropic)
11. Rendering different content types appropriately
The exam explicitly says: do not force every synthesis output into one uniform format.
Different content types should be rendered differently.
Financial data → tables
| Metric | Value | Period | Source | Methodology |
|---|---:|---|---|---|
| Revenue growth | 12% | FY2025 | Annual Report | GAAP |
| Revenue growth | 10% | FY2025 | Investor Deck | Constant currency |
| Gross margin | 71% | FY2025 | Annual Report | GAAP |
Why:
News → prose or timeline
On March 3, the company announced the acquisition. On March 6, regulators requested additional documents. On March 12, the company said the review timeline remained unchanged.
or:
| Date | Event | Source |
|---|---|---|
| 2026-03-03 | Acquisition announced | Press release |
| 2026-03-06 | Regulator requested documents | Agency filing |
| 2026-03-12 | Company reaffirmed timeline | Investor update |
Technical findings → structured lists
## Technical findings
- Finding: Backend returns `requires_review`, but frontend switch does not handle it.
- Files: `api/orders.ts`, `web/OrderStatus.tsx`
- Severity: Important
- Evidence: ...
- Suggested fix: Add frontend handling for `requires_review`.
Exam shortcut:
Use the format that preserves meaning.
Do not flatten financial data, news events, and technical findings into identical prose bullets.
12. Subagent output contract for provenance
Use this as an exam-ready pattern.
{
"subagent_id": "market_research_agent",
"task": "Summarize market share evidence",
"claims": [
{
"claim_id": "C-001",
"claim": "Company A had 18% market share in 2024.",
"claim_type": "market_statistic",
"value": 18,
"unit": "percent",
"source_refs": [
{
"source_id": "SRC-001",
"source_name": "2024 Industry Market Report",
"source_url": "https://example.com/report-2024",
"document_type": "industry_report",
"publication_date": "2025-02-15",
"data_collection_period": "2024-01-01 to 2024-12-31",
"relevant_excerpt": "Company A captured 18% market share in 2024.",
"methodological_context": "Survey of enterprise buyers; excludes SMB segment."
}
],
"confidence": "high",
"conflict_group_id": null
}
],
"conflicts": [],
"evidence_gaps": []
}
The downstream agent should preserve claim_id, source_id, and conflict_group_id.
13. Coordinator merge pattern
When combining claims:
1. Group claims by topic.
2. Compare values, dates, units, populations, and methods.
3. Mark exact agreement as well-established.
4. Mark differing values as contested or methodology-dependent.
5. Preserve all source mappings.
6. Choose rendering format by content type.
7. Send synthesis only the merged claim graph, not raw ungrounded prose.
Merge output
{
"topic": "market_share_company_a",
"status": "temporal_difference",
"merged_summary": "Company A's reported market share rose from 18% in 2024 to 22% in 2026.",
"claims": ["C-001", "C-002"],
"sources": ["SRC-001", "SRC-002"],
"temporal_interpretation": "Different collection years; treat as time-series change, not contradiction."
}
14. Common exam traps
Trap 1: Summarization without source mapping
Wrong:
Right:
Trap 2: Choosing one conflicting statistic arbitrarily
Wrong:
Right:
Trap 3: Missing temporal metadata
Wrong:
Right:
Trap 4: Overstating source conclusions
Wrong:
Right:
Preserve the source’s characterization: association, estimate, projection, allegation, audited result, or confirmed fact.
Trap 5: Uniform rendering
Wrong:
Right:
Use tables for financial comparisons, prose/timelines for news, and structured lists for technical findings.
Trap 6: Coordinator receives already-resolved conflicts
Wrong:
Right:
Subagent returns all conflicting values with excerpts and lets the coordinator apply reconciliation policy.
15. Scenario-based practice questions
Question 1
A subagent summarizes three documents into:
It omits source names, dates, values, and excerpts.
What is the best fix?
A) Ask for a shorter summary.
B) Require structured claim-source mappings with source names, URLs/document IDs, dates, values, and relevant excerpts.
C) Trust the summary.
D) Remove all numbers.
Answer
B. The issue is lost provenance. Claims need source mappings that survive synthesis.
Question 2
Two credible sources report different churn rates: 6.9% and 8.1%.
What should the synthesis agent do?
A) Pick the lower number.
B) Pick the higher number.
C) Include both values with source attribution, dates, and methodology context, then mark the finding contested or methodology-dependent.
D) Average them.
Answer
C. Conflicting statistics should be preserved and annotated, not arbitrarily resolved.
Question 3
One market report says market share was 18%, and another says it was 22%. The first used 2024 data; the second used 2026 data.
What is the best interpretation?
A) The sources necessarily contradict.
B) The difference may reflect temporal change, so preserve collection dates and interpret as a time-series difference unless definitions also conflict.
C) Use only the older report.
D) Delete both values.
Answer
B. Dates matter. Different collection periods can explain different values.
Question 4
A legal contract subagent finds two renewal dates in different documents.
What should it do?
A) Choose one silently.
B) Return both values with document names, excerpts, sections, and conflict annotation for the coordinator.
C) Ignore renewal dates.
D) Invent a compromise date.
Answer
B. Subagents should not hide conflicts. They should pass structured conflict data upstream.
Question 5
A study says:
The synthesis says:
What went wrong?
A) The source characterization was distorted.
B) The report used too many citations.
C) The result should have been a table.
D) Nothing.
Answer
A. Synthesis must preserve whether a source claims association, causation, estimate, projection, or confirmed fact.
Question 6
A financial report has multiple metrics, periods, and methodologies.
What is usually the best rendering?
A) Dense prose paragraph only.
B) Table with metric, value, period, source, and methodology.
C) No formatting.
D) A single bullet saying “financials changed.”
Answer
B. Tables preserve comparability for numeric financial data.
Question 7
A news synthesis needs to explain how events developed over time.
What format is usually appropriate?
A) Timeline or chronological prose with dates and sources.
B) Random unordered bullets.
C) A financial metric table only.
D) JSON schema only.
Answer
A. News often benefits from chronology.
Question 8
A technical review synthesis contains API/client mismatch findings.
What format is usually best?
A) Structured list with files, issue, evidence, severity, and suggested fix.
B) Narrative prose only.
C) Financial table.
D) Omit source files.
Answer
A. Technical findings should preserve exact files, issue details, evidence, and remediation.
Question 9
A coordinator is merging subagent outputs. Which action is best?
A) Drop claim IDs after merging.
B) Preserve claim IDs, source IDs, conflict group IDs, and dates through synthesis.
C) Keep only prose summaries.
D) Remove methodological context.
Answer
B. Claim-source mappings must survive the merge.
Question 10
Why should subagents include publication and data collection dates?
A) To make output longer.
B) To prevent temporal differences from being mistaken for contradictions.
C) To avoid citing sources.
D) To replace source excerpts.
Answer
B. Temporal metadata helps distinguish real disagreement from changes over time or stale data.
16. Final D5.6 checklist
Memorize this:
1. Summarization can lose source attribution.
2. Preserve claim-source mappings through every synthesis step.
3. Each claim should carry source IDs, document names/URLs, excerpts, and dates.
4. Include publication dates and data collection periods.
5. Include methodology and source characterization.
6. Do not arbitrarily choose among conflicting credible sources.
7. Preserve conflicting values and annotate the conflict.
8. Let the coordinator decide reconciliation strategy.
9. Distinguish direct contradictions from methodology differences.
10. Distinguish contradictions from temporal changes.
11. Reports should separate well-established findings from contested findings.
12. Preserve original source language such as suggests, estimates, alleges, confirms, or proves.
13. Financial data often belongs in tables.
14. News often belongs in prose or timelines.
15. Technical findings often belong in structured lists.
D5.6 mental model
Claims need sources.
Sources need dates.
Dates prevent false conflicts.
Conflicts need annotation.
Synthesis should preserve uncertainty, not erase it.
Format should match content type.
The exam’s favorite distinction is:
Do not make synthesis look cleaner by deleting uncertainty. Preserve source mappings, dates, methodology, and conflicts so the final answer remains verifiable.