This prompt is designed for multi-document QA systems where retrieved sources contain contradictory facts, conflicting data points, or incompatible interpretations. Instead of silently picking one source or hallucinating a compromise, the model must detect the conflict, apply a resolution hierarchy, and produce a reconciled answer that explicitly discloses remaining disagreements. Use this when your RAG pipeline retrieves from heterogeneous corpora such as multiple policy documents, research papers, financial filings, or technical manuals where source divergence is expected and must be surfaced to the user rather than hidden.
Prompt
Source Conflict Resolution Prompt for RAG

When to Use This Prompt
Identify when source conflict resolution is necessary and when simpler approaches suffice.
Concrete triggers for this prompt: your retrieval step returns passages that disagree on a numeric value, a factual claim, a policy rule, or a technical specification. The user is asking a question that spans multiple documents with different publication dates, authoring bodies, or data sources. You need the output to include a conflict disclosure section that tells the user which sources agree, which disagree, and what the unresolved tension is. Do not use this prompt when all retrieved sources are consistent, when you have a single authoritative source, when the user expects a fast single-answer response without nuance, or when your application layer already handles conflict resolution through source ranking or majority voting. In those cases, a standard RAG QA prompt with citation instructions is simpler and faster.
Before wiring this into production, define your resolution hierarchy explicitly in the prompt's [RESOLUTION_RULES] placeholder. Common tiers include: recency (prefer newer documents), authority (prefer primary sources over secondary), specificity (prefer documents that directly address the question), and explicit contradiction flagging (surface the conflict when no rule resolves it). Test with known conflicting document pairs before deploying. The most common failure mode is the model attempting to harmonize irreconcilable differences instead of surfacing them—your eval should check that the output contains a conflict disclosure when ground-truth sources genuinely disagree.
Use Case Fit
Where the Source Conflict Resolution Prompt works, where it fails, and the operational conditions required before deploying it into a production RAG pipeline.
Good Fit: Multi-Document Synthesis
Use when: your RAG system retrieves from multiple documents that may disagree (e.g., earnings reports from different analysts, policy documents from different jurisdictions, or medical guidelines from different bodies). Guardrail: The prompt explicitly requires a conflict disclosure section, so downstream UIs can surface disagreement rather than silently picking a winner.
Bad Fit: Single-Source or Homogeneous Corpora
Avoid when: all retrieved passages come from a single authoritative document or a tightly curated corpus with no meaningful contradictions. Risk: The conflict detection step adds latency and token cost without benefit, and may hallucinate phantom disagreements to satisfy the resolution instruction. Guardrail: Gate the prompt behind a retrieval-count check; only invoke when passages originate from 2+ distinct sources.
Required Inputs
Must have: a set of retrieved passages with source identifiers, a user query, and a defined resolution hierarchy (e.g., recency > authority > specificity). Risk: Without explicit source metadata, the model cannot attribute conflicts, and the reconciliation becomes unfalsifiable. Guardrail: Validate that each passage carries a unique source_id and source_date before calling the prompt; reject or enrich inputs that lack them.
Operational Risk: Conflict Amplification
What to watch: The model may over-report minor terminological differences as substantive conflicts, flooding the output with low-value disagreement notices. Guardrail: Include a materiality threshold in the prompt (e.g., 'Only report conflicts that change the answer to the user's question') and test with a golden set of known minor-vs-major disagreements.
Operational Risk: False Reconciliation
What to watch: The model may force a consensus where none exists, fabricating a middle-ground answer that misrepresents both sources. Guardrail: Require the output to include an 'unresolved' category when evidence is irreconcilable, and route unresolved cases to human review with both source excerpts preserved.
Latency and Cost Sensitivity
What to watch: Conflict resolution prompts are inherently longer (multiple passages + resolution instructions) and may double token consumption compared to a simple RAG answer. Guardrail: Set a retry budget of 1-2 resolution attempts before falling back to a simpler 'answer with source attribution' prompt that flags but does not resolve conflicts. Monitor conflict-resolution latency in your observability dashboards.
Copy-Ready Prompt Template
A production-ready prompt template for detecting contradictory evidence across retrieved sources and producing a reconciled answer with conflict disclosure.
This template is designed to be pasted directly into your system instructions or sent as a user message in a multi-document RAG pipeline. It instructs the model to compare evidence from multiple retrieved sources, identify factual contradictions, apply a resolution hierarchy, and produce a structured output that discloses conflicts rather than silently choosing sides. Replace every square-bracket placeholder with your actual data before sending the prompt to the model. The placeholders cover input documents, the user query, output schema requirements, resolution rules, and risk-level constraints.
codeYou are a source conflict resolution system for a multi-document QA pipeline. Your job is to detect contradictory evidence across the provided source documents and produce a reconciled answer that explicitly discloses conflicts. ## INPUT **User Query:** [USER_QUERY] **Retrieved Source Documents:** [DOCUMENTS] Each document is provided with a unique source ID and its full text. Use only the evidence contained in these documents. Do not introduce external knowledge. ## CONFLICT DETECTION RULES 1. Compare every factual claim across all provided source documents. 2. A conflict exists when two or more sources assert mutually exclusive facts about the same entity, event, date, measurement, or relationship. 3. Distinguish between: - **Direct contradictions:** Sources state opposite facts (e.g., "released in 2023" vs. "released in 2024"). - **Partial disagreements:** Sources agree on core facts but differ on details, scope, or interpretation. - **Temporal conflicts:** Sources describe the same entity at different points in time without acknowledging the change. - **Terminology conflicts:** Sources use the same term to mean different things or different terms to mean the same thing. 4. Do not flag as conflicts: differences in writing style, level of detail, or omission of information that another source includes (unless the omission creates a misleading impression). ## RESOLUTION HIERARCHY When conflicts are detected, apply this resolution hierarchy in order: 1. **Recency:** Prefer the source with the most recent publication date or last-updated timestamp, unless the query explicitly asks about a historical state. 2. **Authority:** Prefer sources with higher authority indicators (e.g., primary sources over secondary sources, official documentation over commentary, peer-reviewed over preprint). 3. **Specificity:** Prefer the source that provides more specific, detailed, or directly relevant evidence for the queried fact. 4. **Consensus:** When multiple sources agree and one dissents, prefer the consensus view but disclose the dissenting source. 5. **Unresolvable:** If the hierarchy cannot resolve the conflict, do not fabricate a resolution. Flag the conflict as unresolved and present all sides. ## OUTPUT REQUIREMENTS Produce a JSON object with this exact schema: ```json { "answer": "string (the reconciled answer, written in clear prose)", "conflicts_detected": boolean, "conflict_details": [ { "conflict_type": "direct_contradiction | partial_disagreement | temporal_conflict | terminology_conflict", "claim_a": "string (the claim from the first source)", "source_a": "string (source ID for claim A)", "claim_b": "string (the conflicting claim from the second source)", "source_b": "string (source ID for claim B)", "resolution_applied": "recency | authority | specificity | consensus | unresolved", "resolution_rationale": "string (brief explanation of why this resolution was chosen)" } ], "sources_used": ["string (list of source IDs cited in the answer)"], "unresolved_conflicts": [ { "issue": "string (description of the unresolved conflict)", "competing_claims": ["string (each competing claim with its source ID)"], "reason_unresolved": "string (why the resolution hierarchy could not resolve this conflict)" } ], "confidence": "high | medium | low", "abstention_note": "string | null (if the answer cannot be provided due to unresolvable conflicts or insufficient evidence, explain why here)" }
CONSTRAINTS
- Every factual claim in the
answerfield must be traceable to at least one source document. - If no source provides sufficient evidence to answer the query, set
answerto an empty string and populateabstention_note. - Never invent facts, sources, or resolutions not present in the provided documents.
- If [RISK_LEVEL] is "high", flag all conflicts for human review regardless of resolution confidence.
- If [OUTPUT_LANGUAGE] is specified, produce the answer in that language while preserving source IDs in their original form.
EXAMPLES
[FEW_SHOT_EXAMPLES]
Now process the provided documents and user query according to these instructions.
Adaptation guidance: The template assumes you have already retrieved documents and assigned them unique IDs. If your retrieval system uses different identifiers (URLs, chunk hashes, database row IDs), adjust the source_a and source_b field descriptions accordingly. The resolution hierarchy is a sensible default for general-purpose QA, but you should tune it for your domain: legal workflows might prioritize jurisdiction over recency, financial workflows might prioritize filing date over authority, and medical workflows might require a different hierarchy entirely. The [FEW_SHOT_EXAMPLES] placeholder should contain 2-3 worked examples showing the model how to handle common conflict patterns in your domain. The [RISK_LEVEL] placeholder accepts "low", "medium", or "high" and controls whether unresolved conflicts trigger automatic human review. Before deploying, validate that the JSON schema matches your downstream parser expectations and add a post-processing step that verifies every cited source ID actually exists in your retrieval corpus.
Next steps: After integrating this prompt, implement a validation layer that checks the output JSON for schema compliance, verifies that all sources_used IDs exist in the retrieval index, and routes outputs with confidence: low or non-empty unresolved_conflicts to a human review queue. For high-stakes domains, add an eval harness that measures conflict recall (did the prompt catch all known contradictions in a golden dataset?) and resolution accuracy (did it apply the correct resolution rule?). Start with a retry budget of 2 attempts if the output fails schema validation, then escalate to human review. Avoid the common failure mode of deploying this prompt without testing it against your actual retrieval quality: if your retriever returns low-relevance documents, the conflict detection will produce noisy results that erode user trust.
Prompt Variables
Required inputs for the Source Conflict Resolution Prompt. Validate these before sending to prevent silent failures or hallucinated conflict reports.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[QUERY] | The user question or task that triggered retrieval across multiple sources | What are the side effects of drug X compared to drug Y? | Must be non-empty string. Check for vague queries that make conflict detection ambiguous; consider rewriting before conflict resolution if query lacks specificity. |
[RETRIEVED_SOURCES] | Array of source objects with id, title, text, and optional metadata fields | [{"id":"src1","title":"FDA Label 2024","text":"...","date":"2024-03-01"}] | Minimum 2 sources required for conflict detection. Validate each source has non-empty text field. Null or single-source inputs should skip conflict resolution and route to standard RAG. |
[PRIOR_ANSWER] | The initial generated answer that may contain claims from conflicting sources | Drug X may cause mild nausea according to the 2023 study, while the 2024 label lists severe nausea as a common side effect. | Optional but recommended. If null, the prompt performs first-pass synthesis with conflict detection. If present, validate it was generated from the same [RETRIEVED_SOURCES] set to avoid cross-context conflicts. |
[CONFLICT_RESOLUTION_HIERARCHY] | Ordered rules for resolving conflicts when sources disagree |
| Must be a non-empty ordered list. Validate each rule is actionable and unambiguous. Vague rules like 'prefer better sources' will produce inconsistent resolution. Test with known conflicts before production. |
[OUTPUT_FORMAT] | Schema definition for the reconciled output including conflict disclosure fields | {"reconciled_answer":"string","conflicts_found":boolean,"conflict_details":[{"claim":"string","source_a":"id","source_b":"id","resolution":"string"}]} | Must include fields for answer, conflict flag, and conflict details array. Validate schema is parseable JSON. Missing conflict disclosure fields risk silent suppression of disagreements. |
[ABSTENTION_THRESHOLD] | Confidence level below which the model should abstain rather than reconcile | 0.7 | Float between 0.0 and 1.0. Set based on risk tolerance. Lower values produce more answers with conflict notes; higher values produce more abstentions. Validate threshold is calibrated against eval dataset before production. |
[MAX_CONFLICTS_TO_REPORT] | Upper limit on number of conflicts disclosed in output to prevent overwhelming responses | 5 | Integer >= 1. Prevents unbounded output when many sources conflict. If more conflicts exist, model should report top N by severity or impact and note truncation. Validate truncation behavior in edge-case tests. |
Common Failure Modes
Source conflict resolution fails in predictable ways. These are the most common failure modes when reconciling contradictory evidence across multiple documents, with concrete guardrails to prevent each one.
False Equivalence Between Sources
What to watch: The model treats all sources as equally authoritative, presenting a 'he said, she said' summary that buries the correct answer under false balance. This happens when source metadata like publication date, author expertise, or document type is ignored. Guardrail: Provide explicit authority weights or recency signals in the prompt context. Instruct the model to rank sources by credibility criteria before reconciling, and to explain weighting decisions in the output.
Silent Resolution Without Disclosure
What to watch: The model picks one source's version of facts and presents it as the single truth, never mentioning that another source directly contradicts it. Users receive a confident but one-sided answer with no awareness of the conflict. Guardrail: Require a mandatory conflict disclosure section in the output schema. If contradictions exist, the model must surface them explicitly before offering a reconciled position. Validate that the disclosure section is non-empty when multiple sources disagree.
Hallucinated Reconciliation
What to watch: When sources genuinely cannot be reconciled, the model invents a middle-ground explanation that appears in neither source. This creates plausible-sounding but fabricated compromise language. Guardrail: Add an abstention path: if evidence is irreconcilable, the model must state that reconciliation is not possible and present each source's position separately. Test with deliberately contradictory source pairs to verify the abstention trigger fires.
Recency Bias Overriding Accuracy
What to watch: The model defaults to the most recent source even when it contains errors, outdated methods, or has lower authority than an older but more rigorous source. Publication date becomes a proxy for correctness. Guardrail: Separate recency from authority in the resolution hierarchy. Instruct the model to consider recency only within the same authority tier. Provide explicit rules like 'prefer the source with primary evidence over the more recent secondary summary.'
Context Window Truncation Dropping Key Conflicts
What to watch: When many sources are retrieved, the most contradictory passages may fall outside the context window. The model reconciles only the visible subset and misses critical conflicts entirely. Guardrail: Implement pre-processing that flags contradictory passages before prompt assembly. If flagged passages exceed the context budget, prioritize conflicts by impact and explicitly note in the prompt which sources were excluded due to length constraints.
Over-Confidence in Single-Source Dominance
What to watch: One source is clearly more authoritative, so the model dismisses all conflicting sources without examining whether the minority source contains a valid correction or edge case. Legitimate nuance gets suppressed. Guardrail: Require the model to articulate why each conflicting source was deprioritized, not just that it was. Add a check: 'Before finalizing, state one reason the minority source might still be partially correct.' This forces consideration of edge cases.
Evaluation Rubric
Score each dimension on a 1-5 scale before shipping the Source Conflict Resolution Prompt. A score of 3 or below on any criterion should block deployment until the failure signal is resolved.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Conflict Detection Recall | All contradictory claim pairs in the provided evidence set are identified in the output | Output claims no conflicts exist when the evidence set contains known contradictions | Run against a golden dataset of 20 evidence sets with known conflicts; require 100% recall |
Resolution Hierarchy Adherence | Conflicts are resolved using the specified hierarchy (recency > authority > specificity) without deviation | Output resolves a conflict using an unstated rule or picks a source arbitrarily without justification | Inject conflicts where the correct resolution is unambiguous under the hierarchy; check output reasoning matches |
Source Attribution Accuracy | Every resolved claim is attributed to the correct source document and passage | A claim is attributed to Source A when the evidence clearly comes from Source B | Parse output citations and verify each against the ground-truth source mapping in the test set |
Conflict Disclosure Completeness | Every unresolved or partially resolved conflict is disclosed to the user with both positions stated | Output presents a single reconciled answer while silently dropping a contradictory source position | Check that the number of disclosed conflicts matches the number of unresolved conflicts in the test evidence |
Abstention Appropriateness | Output abstains or explicitly states inability to resolve when evidence is truly irreconcilable | Output fabricates a resolution or picks a side without acknowledging the deadlock | Use evidence pairs with equal authority, recency, and specificity; verify abstention or deadlock disclosure |
No Hallucinated Evidence | Output contains zero claims that cannot be traced to the provided evidence passages | Output introduces a fact, date, or figure not present in any retrieved source | Run claim extraction on output and cross-reference each claim against the evidence set; require 100% grounding |
Output Schema Validity | Output strictly conforms to the defined schema with all required fields present and correctly typed | Output is missing the conflict_summary array or uses a string where an object is required | Validate output against the JSON Schema definition; reject any output that fails structural validation |
Latency and Token Budget Compliance | Prompt completes within the defined latency SLA and token budget under normal load | Prompt exceeds 2x the target latency or consumes more than the allocated max output tokens | Run 50 requests through the harness and measure p95 latency and token consumption against thresholds |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Troubleshooting Edge Cases
Common edge cases and failure modes when deploying Source Conflict Resolution for RAG, with practical recovery steps.
Validate the output structure first, then check if the model defaulted to a simple summary instead of applying the hierarchy. Add a strict pre-response instruction that requires the model to explicitly label each source's position before synthesizing. If the hierarchy is still ignored, reduce the number of sources to 2-3 and add a worked example showing the expected conflict-resolution flow. Retry with the validation error included in the retry prompt.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us