Inferensys

Prompt

Contradiction Resolution Prompt for Multi-Hop Evidence

A practical prompt playbook for using Contradiction Resolution Prompt for Multi-Hop Evidence in production AI workflows.
Operations team reviewing AI workflow automation on laptop, workflow builder visible, casual office setup.
PROMPT PLAYBOOK

When to Use This Prompt

Defines the operational context for the contradiction resolution prompt, specifying when it is essential and when it should be avoided.

This prompt is designed for operators of high-stakes Retrieval-Augmented Generation (RAG) systems in domains like legal, finance, and compliance, where the cost of a false consensus is high. Its core job is to handle a specific failure mode: when two or more pieces of retrieved evidence directly contradict each other. Instead of forcing the model to synthesize a single, fluent, but misleading answer, this prompt instructs it to produce a structured 'Conflict Report.' This report transparently analyzes the nature of the contradiction, assesses the relative credibility of the conflicting sources, and recommends a resolution strategy for the user. The primary user is an AI engineer or product manager who needs their system to surface ambiguity rather than hide it.

The ideal scenario for this prompt is a multi-hop reasoning task where the final answer depends on reconciling facts from multiple documents. For example, a financial analyst might ask, 'What was the company's reported revenue in Q3?' and the system retrieves a press release stating $1.2B and a later SEC filing stating $1.15B. A standard prompt might arbitrarily pick one or create a confusing blend. This prompt, however, will produce a report identifying the source of each figure, noting the temporal and credibility differences (e.g., 'preliminary release' vs. 'official filing'), and recommending the audited filing as the authoritative source. It is a critical component of a trustworthy AI architecture where auditability is a non-negotiable requirement.

Do not use this prompt when you need a single, definitive answer for a low-stakes application, when all retrieved sources are already consistent, or when the contradiction is trivial and does not affect the user's decision. Applying this prompt to a simple factual query with no conflict will result in a verbose and unnecessary report, degrading the user experience. It is also not a substitute for a robust retrieval pipeline; if your system frequently retrieves contradictory information due to poor chunking or search quality, fix the retrieval step first. The next step after understanding this use case is to review the 'Prompt Template' section to see the exact instructions and adapt the placeholders to your specific source metadata.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Contradiction Resolution Prompt delivers value and where it introduces unacceptable risk. This prompt is designed for high-stakes analysis, not for generating a definitive answer.

01

Good Fit: High-Stakes Analysis

Use when: operating in legal, finance, or compliance domains where contradictory evidence is common and forcing a single answer is dangerous. Guardrail: The prompt's output is a structured conflict report, not a final answer, which naturally supports human review workflows.

02

Bad Fit: Simple Factoid QA

Avoid when: the user expects a single, definitive answer to a simple question. This prompt is too heavy and will over-analyze. Guardrail: Route simple queries to a standard RAG answer prompt. Use a classifier to detect multi-source complexity before invoking this playbook.

03

Required Inputs

What you need: Two or more pieces of contradictory evidence with clear source provenance (e.g., document ID, date, author). Guardrail: The prompt's source credibility assessment is only as good as the metadata you provide. Do not feed it raw, unattributed text chunks.

04

Operational Risk: Hallucinated Resolution

What to watch: The model may invent a false compromise or hallucinate a reason to dismiss one source to resolve the cognitive dissonance. Guardrail: The eval harness must explicitly check that the report fairly represents all sides and that the resolution strategy is logically derived from the provided evidence, not fabricated.

05

Latency and Cost Profile

What to watch: Analyzing multiple long documents and generating a detailed report consumes significant tokens and time. Guardrail: Set tight context budgets. If the contradictory evidence spans more than a few pages, use a summarization step first or escalate to a human analyst for complex document review.

06

Escalation Trigger: Unresolvable Conflict

What to watch: The model may still produce a report when the evidence is fundamentally irreconcilable without external facts. Guardrail: Define a clear 'unresolvable' output schema. The prompt should be instructed to recommend 'human arbitration required' and stop, rather than speculating. Monitor for this flag in production logs.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

Paste this prompt into your system instruction or user message to generate a structured conflict report from contradictory evidence.

This prompt template is designed to be dropped directly into your application's system prompt or a high-priority user message. It instructs the model to act as a neutral analyst, not an answer-generator. The core job is to surface and structure a contradiction between two or more pieces of evidence, assess the credibility of each source, and recommend a resolution strategy without fabricating a consensus. The template uses square-bracket placeholders for all dynamic inputs, making it safe to wire into a production RAG pipeline where evidence chunks and user queries are injected programmatically.

text
You are a neutral evidence analyst. Your task is to resolve contradictions in provided evidence, not to answer the user's question directly.

## User Query
[USER_QUERY]

## Contradictory Evidence
### Evidence A
Source: [SOURCE_A_METADATA]
Text: [EVIDENCE_A_TEXT]

### Evidence B
Source: [SOURCE_B_METADATA]
Text: [EVIDENCE_B_TEXT]

[ADDITIONAL_EVIDENCE_BLOCKS]

## Instructions
1.  **Identify the Core Conflict:** State the exact point of contradiction between the evidence pieces in one clear sentence.
2.  **Assess Source Credibility:** For each source, note factors that affect its reliability (e.g., publication date, author expertise, document type, potential biases evident in the text). Do not assume one source is correct.
3.  **Analyze the Conflict:** Explain possible reasons for the contradiction (e.g., temporal change, different definitions, factual error, incomplete context).
4.  **Recommend a Resolution Strategy:** Choose exactly one of the following strategies and justify your choice:
    - **Prefer A:** Evidence A is more credible/relevant.
    - **Prefer B:** Evidence B is more credible/relevant.
    - **Reconcile:** The contradiction is apparent and can be resolved by clarifying context or definitions.
    - **Abstain:** The conflict cannot be resolved with the available evidence.
5.  **Generate a Conflict Report:** Structure your entire output as a JSON object matching the schema below.

## Output Schema
{
  "core_conflict": "string",
  "source_assessments": [
    {
      "source_label": "A",
      "credibility_factors": ["string"],
      "reliability_notes": "string"
    },
    {
      "source_label": "B",
      "credibility_factors": ["string"],
      "reliability_notes": "string"
    }
  ],
  "conflict_analysis": "string",
  "resolution_strategy": "Prefer A" | "Prefer B" | "Reconcile" | "Abstain",
  "strategy_justification": "string",
  "synthesized_answer": "string or null (provide a concise answer only if strategy is Prefer A, Prefer B, or Reconcile, grounded strictly in the chosen evidence)"
}

## Constraints
- Do not invent information to resolve the conflict.
- If you abstain, set `synthesized_answer` to null.
- Your `conflict_analysis` must fairly represent both sides.

To adapt this template, replace the placeholders with your application's data. [USER_QUERY] is the original question that triggered the retrieval. [EVIDENCE_A_TEXT] and [EVIDENCE_B_TEXT] are the raw text chunks from your vector store or search index. Crucially, [SOURCE_A_METADATA] should be a pre-formatted string containing the document title, date, author, and any other provenance information you have—this is what the model uses for credibility assessment. If you have more than two conflicting pieces of evidence, duplicate the evidence block structure and add them to the [ADDITIONAL_EVIDENCE_BLOCKS] section. The output schema is strict JSON, so you must use a model that supports structured output or a robust JSON parser in your harness. For high-stakes domains like legal or financial analysis, always route the final conflict_analysis and strategy_justification fields to a human review queue before the synthesized_answer is shown to an end user.

IMPLEMENTATION TABLE

Prompt Variables

Required and optional inputs for the Contradiction Resolution Prompt. Each placeholder must be populated before the prompt is assembled and sent to the model. Validation notes describe how to check the input at the application layer before generation.

PlaceholderPurposeExampleValidation Notes

[EVIDENCE_SET]

The collection of contradictory evidence passages to be analyzed. Each passage should include source metadata.

{"passages": [{"id": "doc_12", "text": "The contract was signed on March 3rd.", "source": "contract_v2.pdf", "date": "2024-03-03"}, {"id": "email_45", "text": "Signing was delayed to March 5th.", "source": "inbox/thread_789.eml", "date": "2024-03-04"}]}

Must be a valid JSON array of objects. Each object requires an id and text field. Source and date are strongly recommended for credibility assessment. Reject if empty or contains only one passage.

[CONTRADICTION_TYPE]

A hint classifying the nature of the conflict to guide the resolution strategy. Use null if unknown.

"temporal"

Must be one of a predefined enum: "factual", "temporal", "definitional", "source_quality", "omission", or null. Reject any other string value. If null, the model will infer the type.

[DOMAIN]

The high-stakes domain context that dictates the resolution policy and risk tolerance.

"legal_contract_review"

Must be a non-empty string from a controlled vocabulary (e.g., "legal_contract_review", "financial_audit", "clinical_documentation"). Used to activate domain-specific caution and resolution heuristics.

[RESOLUTION_POLICY]

An explicit instruction on how to handle irresolvable conflicts. Overrides the default behavior of flagging for human review.

"flag_for_human_review"

Must be one of: "flag_for_human_review", "report_without_resolution", "prefer_most_recent_source", "prefer_highest_authority". Default is "flag_for_human_review". Reject unknown values.

[OUTPUT_SCHEMA]

The strict JSON schema the conflict report must conform to.

{"type": "object", "properties": {"conflict_id": {"type": "string"}, "parties": {"type": "array"}, "resolution_recommendation": {"type": "string"}}, "required": ["conflict_id", "parties"]}

Must be a valid, parseable JSON Schema object. The application layer should validate the final model output against this schema. Reject if schema is malformed.

[MAX_SOURCE_QUOTES]

The maximum number of direct quotes from the evidence to include in the analysis to prevent verbatim regurgitation.

3

Must be a positive integer. If not provided, default to 3. Reject values less than 1 or greater than 10 to control output length and prevent copy-paste.

[CONFIDENCE_THRESHOLD]

The minimum confidence score (0.0 to 1.0) required for the model to propose an automated resolution. Below this, the output must escalate.

0.85

Must be a float between 0.0 and 1.0. The application should check the model's self-reported confidence in the output against this threshold. If the output confidence is below this value, the resolution recommendation should be ignored and escalated.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Contradiction Resolution Prompt into a production application with validation, retries, and human review gates.

The Contradiction Resolution Prompt is not a fire-and-forget answer generator. It is a conflict analysis engine that must be embedded in a harness that validates its output, enforces its abstention from forced resolution, and routes high-risk conflicts to human review. The prompt expects at least two contradictory evidence passages, optional source metadata, and a domain context like legal or finance. The harness should assemble these inputs from your retrieval pipeline, ensuring that the passages passed to the prompt genuinely conflict rather than simply address different aspects of the same question. A pre-filter that detects semantic contradiction before invoking this prompt will reduce unnecessary LLM calls and prevent the model from manufacturing conflicts where none exist.

Wire the prompt into an application workflow with the following guardrails. Input assembly: retrieve candidate passages, run a lightweight contradiction detector (e.g., an NLI model or a smaller LLM call), and only invoke this prompt when a conflict score exceeds a threshold. Output validation: parse the JSON response and enforce the schema—conflict_type, source_credibility_assessment, resolution_strategies, and recommended_strategy must all be present. Reject outputs that pick a winner without analysis or that omit a strategy. Retry logic: if validation fails, retry once with a stricter system instruction that forbids premature resolution. If the retry also fails, log the raw output and escalate. Human review gate: for conflict_type values of direct_contradiction or methodological_conflict in regulated domains, route the conflict report to a review queue before any downstream action is taken. Model choice: use a model with strong reasoning and instruction-following, such as Claude 3.5 Sonnet or GPT-4o. Avoid smaller models that may collapse the conflict into a false consensus. Logging: capture the full prompt, response, validation result, and reviewer decision for audit trails, especially in legal and finance use cases where conflict handling decisions must be defensible.

Do not use this prompt inside an autonomous agent loop that automatically acts on the resolution recommendation. The recommended strategy is advisory, not executable. Downstream actions—such as preferring one source, requesting additional evidence, or presenting both sides to the user—must be implemented in application code with explicit policy rules. The prompt's value is in producing a structured, fair analysis of the conflict, not in making the final call. Test the harness end-to-end with known contradictory document pairs and verify that the system never silently adopts one source without a logged conflict report and, where required, human approval.

IMPLEMENTATION TABLE

Expected Output Contract

Schema contract for the conflict report JSON. Use this to validate model output before surfacing to users or downstream systems.

Field or ElementType or FormatRequiredValidation Rule

conflict_id

string (UUID v4)

Must match regex for UUID v4. Reject if missing or malformed.

contradictory_claims

array of objects

Array length must be >= 2. Each object must contain claim_text, source_id, and source_excerpt fields.

claim_text

string

Non-empty string. Must be a direct quote or close paraphrase from the source excerpt.

source_id

string

Must match a [SOURCE_ID] provided in the input context. Reject if source not found in input.

source_excerpt

string

Must be a substring match (fuzzy, >80% similarity) against the provided source text for that source_id.

conflict_type

enum: direct_contradiction | temporal_change | definitional_dispute | methodological_difference | factual_disagreement

Must be one of the allowed enum values. Reject any other string.

resolution_strategy

enum: prefer_more_recent | prefer_higher_authority | prefer_primary_source | flag_for_human_review | present_both_with_confidence | unable_to_resolve

Must be one of the allowed enum values. If unable_to_resolve, human_review_required must be true.

confidence_score

number (0.0 to 1.0)

Must be a float between 0.0 and 1.0 inclusive. If < 0.5, human_review_required must be true.

human_review_required

boolean

Must be true if confidence_score < 0.5 or resolution_strategy is flag_for_human_review or unable_to_resolve. Parse check: strict boolean, not string.

PRACTICAL GUARDRAILS

Common Failure Modes

Contradiction resolution prompts fail in predictable ways. Here are the most common failure modes when analyzing conflicting multi-hop evidence and how to guard against them in production.

01

False Balance Between Unequal Sources

What to watch: The model treats a fringe source and an authoritative source as equally credible, producing a 'both sides' report that misleads by false equivalence. Guardrail: Include explicit source credibility criteria in the prompt (recency, authoritativeness, peer review status) and require weighted confidence scoring per source before conflict analysis.

02

Premature Resolution Without Full Evidence

What to watch: The model resolves a contradiction by picking a winner before all evidence is examined, especially when one source appears earlier in context. Guardrail: Require the prompt to enumerate all conflicting claims first, then analyze each source's support independently, and only then recommend a resolution strategy. Add an explicit 'incomplete evidence' check step.

03

Hallucinated Reconciliation Facts

What to watch: The model invents a middle-ground fact or bridging explanation not present in any source to 'smooth over' the contradiction. Guardrail: Constrain the output to only use explicitly cited evidence. Add a post-generation verification step that checks every factual statement in the conflict report against source spans. Flag unsupported reconciliation claims.

04

Source Misattribution Across Hops

What to watch: When chaining evidence across multiple retrieval steps, the model attributes a claim to the wrong source document, breaking audit trails. Guardrail: Require inline citation with document ID and span reference at every reasoning hop. Validate citation accuracy with a separate verification prompt that checks each citation against its claimed source.

05

Temporal Context Collapse

What to watch: The model ignores publication dates and treats a superseded document as equally valid as a more recent update, missing that the contradiction is resolved by chronology. Guardrail: Include document timestamps in the evidence payload and instruct the model to check temporal relationships before declaring a conflict. Flag contradictions that may be explained by versioning or updates.

06

Over-Confidence in Resolution Recommendation

What to watch: The model presents a tentative resolution as definitive, dropping uncertainty language and caveats from the final report. Guardrail: Require a structured confidence level for every resolution recommendation. Enforce mandatory uncertainty disclosure when sources are evenly matched, incomplete, or low-credibility. Add a human-review gate for high-stakes conflict reports.

IMPLEMENTATION TABLE

Evaluation Rubric

Score each dimension 1-5 before shipping the Contradiction Resolution Prompt. A score below 3 on any criterion requires a prompt or harness fix.

CriterionPass StandardFailure SignalTest Method

Conflict Detection Recall

All explicit contradictions in the provided evidence are identified in the conflict report

A provided contradiction is missing from the report's list of conflicts

Run against a golden dataset of 20 evidence pairs with known contradictions; measure recall

Source Representation Fairness

Each conflicting source's claim is stated accurately without strawmanning or editorializing

A source's position is misrepresented, minimized, or paraphrased to appear weaker than the original text

Human review of 10 conflict reports; check if each source's core claim is restated verbatim or faithfully

Credibility Assessment Grounding

Every credibility factor cited is traceable to a document attribute (date, author, source type, corroboration)

Credibility factors are invented, hallucinated, or based on external knowledge not present in the provided evidence

Spot-check 15 credibility statements; require a cited document field for each factor

Resolution Strategy Appropriateness

The recommended strategy matches the conflict type (flag for human, prefer more recent, prefer more authoritative, note uncertainty)

The strategy is 'pick one source' without justification, or forces a false consensus when evidence is irreconcilable

Classify 10 conflict scenarios; check if the prompt's output strategy matches a pre-labeled expected strategy

Abstention Discipline

The prompt refuses to resolve when evidence is genuinely insufficient, with a clear reason

The prompt fabricates a resolution or picks a side arbitrarily when evidence is balanced and insufficient

Test with 5 irreconcilable evidence pairs; verify output contains an explicit abstention statement

Output Schema Compliance

The output is valid JSON matching the [OUTPUT_SCHEMA] with all required fields present

The output is missing required fields, contains extra untyped fields, or is not parseable JSON

Automated schema validation in the eval harness; 100% parse rate required over 50 runs

No Hallucinated Evidence

All claims in the conflict report are directly attributable to the provided [EVIDENCE_SET]

The report introduces facts, dates, or source details not present in the input evidence

Run a claim extraction script on 20 outputs; verify each claim substring exists in the input evidence

Latency and Token Budget

The prompt completes within the application's latency SLO and token budget for the conflict resolution step

Output exceeds max_tokens or takes longer than the allowed step timeout, causing harness retries or truncation

Load test with 50 evidence pairs at varying lengths; measure p95 latency and token consumption

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Start with the base prompt and a small set of known contradictory document pairs. Use a frontier model (GPT-4o, Claude 3.5 Sonnet) with default temperature. Focus on getting the conflict report structure right before adding strict validation.

Simplify the output schema to only require conflict_type, source_summaries, and resolution_recommendation. Skip credibility scoring and evidence weighting until the core logic works.

code
[CONTRADICTING_EVIDENCE_1]: [Insert first passage]
[CONTRADICTING_EVIDENCE_2]: [Insert second passage]
[QUESTION]: [User's original question]

Watch for

  • The model forcing a false resolution instead of flagging irreconcilable conflict
  • Overly verbose source summaries that bury the contradiction
  • Missing explicit citation to which source says what
  • Model hallucinating additional evidence not present in the provided passages
Prasad Kumkar

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.