This prompt is designed for RAG system builders who face a common bottleneck: the retrieval step returns more passages than can fit into the generation context window, and the raw retrieval order is not optimized for downstream synthesis. The job-to-be-done is to rank, deduplicate, and sequence retrieved evidence so the generation model receives a clean, prioritized set of passages rather than a noisy dump. The ideal user is an AI engineer or backend developer integrating this prompt as a filter between retrieval and generation, typically in a pipeline where retrieval recall is high but precision and ordering are insufficient for reliable answer quality.
Prompt
Evidence Ordering Prompt for Multi-Document Synthesis

When to Use This Prompt
Identify the right insertion point in your RAG pipeline for evidence ordering and understand the operational boundaries where this prompt adds value versus where it introduces risk.
Use this prompt when you observe that your generator is missing key facts buried in low-ranked passages, repeating information from near-duplicate sources, or producing inconsistent answers because evidence ordering varies across requests. It is particularly valuable when you have a fixed context budget and need to make deliberate trade-offs about which passages to include, compress, or drop. The prompt requires several inputs to function correctly: a set of retrieved passages with source identifiers, the original user query or task description, an ordering strategy selection (such as relevance-first, authority-weighted, or recency-prioritized), and a token budget constraint. Without these, the model cannot make informed ordering decisions and will default to arbitrary ranking.
Do not use this prompt when retrieval already returns a small, highly precise set of passages that fits comfortably in the context window—the overhead of ordering adds latency without meaningful quality improvement. It is also inappropriate when the downstream generator has its own effective internal attention mechanisms for long contexts and adding an intermediate step introduces unnecessary complexity. Avoid this prompt in streaming or real-time applications where the added latency of a separate ordering call breaks user experience expectations. For high-risk domains such as healthcare or legal review, this prompt should be paired with human-in-the-loop validation of the ordered evidence set before generation, as incorrect prioritization can silently drop critical information. After implementing this prompt, the next step is to wire it into your pipeline with validation checks that verify the output contains the expected number of passages, that deduplication markers are present, and that the total token count respects the specified budget.
Use Case Fit
Where the Evidence Ordering Prompt delivers value and where it introduces risk. Use these cards to decide if this pattern fits your RAG pipeline before integrating it into production.
Good Fit: Multi-Source Synthesis
Use when: your retrieval step returns 10+ documents from heterogeneous sources and you need a single ranked, deduplicated evidence list before answer generation. Guardrail: set a maximum input document count and truncate low-relevance passages before ordering to stay within token budgets.
Bad Fit: Single-Document QA
Avoid when: the user question can be answered from a single retrieved passage. The ordering step adds latency and token cost without improving answer quality. Guardrail: add a retrieval-count gate that skips ordering when fewer than N documents are returned.
Required Inputs
Risk: incomplete inputs produce unreliable rankings. Guardrail: validate that every call includes a user query, a document list with content and source IDs, and an explicit ordering strategy selection. Reject requests missing any required field before inference.
Operational Risk: Context Window Overflow
Risk: large retrieval sets combined with ordering instructions can exceed model context limits, causing silent truncation or errors. Guardrail: enforce a token budget check before assembly. If the packed prompt exceeds 80% of the model's context window, compress or drop low-relevance documents first.
Latency Sensitivity
Risk: adding an ordering step before answer generation doubles inference latency, which may violate user-facing SLAs. Guardrail: measure end-to-end latency in pre-production and set a timeout. Consider a fast-path that skips ordering for simple queries or small retrieval sets.
Strategy Drift Across Models
Risk: the same ordering prompt may produce different ranking behavior across model families or versions. Guardrail: pin model versions in production and run regression tests with a golden dataset of expected rankings before any model upgrade.
Copy-Ready Prompt Template
A reusable prompt template for ranking and sequencing retrieved passages before answer generation.
This template is designed to be pasted into your prompt assembly layer. It instructs the model to act as an evidence ordering engine, taking a user query and a set of retrieved documents, and returning a structured, ranked list. The core job is to prioritize the most relevant and authoritative passages while managing your context window budget. Replace every [PLACEHOLDER] with runtime values from your retriever and application logic before sending the request.
textYou are an evidence ordering engine for a multi-document RAG system. Your task is to analyze a set of retrieved documents against a user query and produce a ranked, deduplicated list of evidence passages for downstream answer generation. ## INPUT **User Query:** [USER_QUERY] **Retrieved Documents:** [RETRIEVED_DOCUMENTS] **Context Window Budget:** [MAX_OUTPUT_TOKENS] **Ordering Strategy:** [ORDERING_STRATEGY] **Source Authority Weights:** [AUTHORITY_WEIGHTS] ## TASK 1. **Relevance Scoring:** Score each document's relevance to the user query on a scale of 0.0 to 1.0. 2. **Deduplication:** Identify near-duplicate passages. For each set of duplicates, keep only the one from the most authoritative source and note the merged sources. 3. **Ordering:** Sort the remaining unique passages into a single list based on the selected `[ORDERING_STRATEGY]` (e.g., 'relevance_then_authority', 'recency_weighted', 'diverse_perspectives'). 4. **Budget Truncation:** Truncate the final list to fit within the `[MAX_OUTPUT_TOKENS]` budget, adding an explicit note about how many passages were omitted. ## OUTPUT SCHEMA Return a single JSON object with the following structure: { "ordered_evidence": [ { "rank": 1, "passage_id": "string", "relevance_score": 0.95, "source_authority": "high", "merged_source_ids": ["doc_1", "doc_5"], "passage_text": "string" } ], "omitted_passage_count": 3, "omission_note": "string explaining why passages were omitted (e.g., low relevance, budget constraints)" } ## CONSTRAINTS - Do not synthesize an answer to the user query. Only rank and order the provided evidence. - If no documents are relevant, return an empty `ordered_evidence` array and a clear omission note. - Preserve the original text of the passages exactly; do not paraphrase.
To adapt this template, start by mapping your retriever's output fields to the [RETRIEVED_DOCUMENTS] placeholder, ensuring each document object has a unique ID, text, and source metadata. The [ORDERING_STRATEGY] and [AUTHORITY_WEIGHTS] variables should be controlled by your application logic, not the end-user, to enforce system-wide policies. For high-stakes domains like healthcare or finance, you must add a human review step before the ordered evidence is used for final answer generation. Always validate the output JSON against the schema; a malformed response should trigger a retry or fallback to a default ordering.
Prompt Variables
Required and optional inputs for the Evidence Ordering Prompt. Each placeholder must be populated before the prompt is assembled and sent to the model. Validation notes describe how to check that the input is well-formed before inference.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[RETRIEVED_DOCUMENTS] | The set of documents, passages, or chunks returned by the retrieval system that need to be ordered. | ["doc_1": "The cat sat on the mat...", "doc_2": "Felines often rest on soft surfaces..."] | Must be a non-empty list. Each document must have a unique identifier. Reject if the list contains only null or whitespace-only strings. |
[USER_QUERY] | The original question or information need that triggered the retrieval. | "What are the common resting behaviors of domestic cats?" | Must be a non-empty string. Reject if the query is a generic placeholder like 'test' or 'asdf'. Log a warning if the query is under 10 characters. |
[ORDERING_STRATEGY] | The strategy for ranking evidence: relevance, recency, authority, or a weighted combination. | "relevance_first" | Must match an allowed enum: 'relevance_first', 'recency_first', 'authority_first', 'diverse_top_k'. Reject unknown values. Default to 'relevance_first' if null. |
[CONTEXT_WINDOW_BUDGET] | The maximum number of tokens available for the ordered evidence block. | 3000 | Must be a positive integer. Reject if the budget is less than 500 tokens. Log a warning if the budget exceeds the model's context limit minus estimated instruction and output tokens. |
[DOCUMENT_METADATA] | Optional metadata for each document such as publication date, source authority score, or retrieval score. | {"doc_1": {"date": "2024-01-15", "authority": 0.9}} | If provided, must be a valid JSON object with keys matching document identifiers. Null values for individual metadata fields are allowed. Reject if the JSON is malformed. |
[DEDUPLICATION_THRESHOLD] | The similarity threshold above which two documents are considered duplicates and should be merged or one removed. | 0.85 | Must be a float between 0.0 and 1.0. Reject if the value is outside this range. Default to 0.9 if null. A value of 1.0 disables deduplication. |
[OUTPUT_SCHEMA] | The expected JSON schema for the ordered evidence list, including fields for rank, document_id, relevance_score, and deduplication markers. | {"type": "array", "items": {"properties": {"rank": {"type": "integer"}, "document_id": {"type": "string"}, "relevance_score": {"type": "number"}, "is_duplicate": {"type": "boolean"}}}} | Must be a valid JSON Schema object. Reject if the schema is malformed or missing required fields. Validate that the schema includes at least 'rank' and 'document_id' fields. |
[MAX_OUTPUT_DOCUMENTS] | The maximum number of documents to include in the final ordered list after deduplication and filtering. | 10 | Must be a positive integer. Reject if the value is 0. Log a warning if the value is greater than the number of input documents. Default to the number of input documents if null. |
Implementation Harness Notes
How to wire the evidence ordering prompt into a production RAG pipeline with validation, retries, and observability.
The evidence ordering prompt is not a standalone artifact. It sits between retrieval and generation in a RAG pipeline. The typical call flow is: user query → retrieval (vector, keyword, hybrid) → deduplication → evidence ordering prompt → top-k selection → answer generation prompt. The ordering prompt receives a list of candidate passages with metadata (source, date, retrieval score) and returns a ranked, deduplicated, and relevance-scored list. The application layer, not the prompt, enforces the context window budget by truncating to the top N passages after ordering.
Wire the prompt into your application with a thin wrapper that handles input assembly, output parsing, and validation. Before calling the model, assemble the [RETRIEVED_PASSAGES] array with id, text, source, date, and retrieval_score fields. Inject the [ORDERING_STRATEGY] (e.g., relevance_then_recency, authority_weighted, diversity_aware) and [CONTEXT_BUDGET_TOKENS] as runtime parameters. After the model responds, parse the JSON output and validate: every passage ID in the output must exist in the input; relevance scores must be in the declared range; deduplication markers must reference valid pairs; and the total estimated token count of the ordered list must not exceed the budget. If validation fails, retry once with the validation errors appended to the prompt as [PREVIOUS_ERRORS]. If the retry also fails, fall back to retrieval-score ordering and log the incident for review.
For production observability, log the full prompt, the model response, validation results, and the final ordered list to your trace store. Tag traces with prompt_version, ordering_strategy, passage_count, and model_id. Set up an eval harness that runs weekly: sample 50 queries, retrieve passages, run the ordering prompt, and have a separate LLM judge prompt score the ordering against criteria like 'most relevant passage appears first' and 'duplicates are correctly merged.' Track the pass rate over time. If you observe ordering failures clustering around specific retrieval sources or query types, use those patterns to tune the ordering strategy or add few-shot examples to the prompt. Avoid calling this prompt on every user request if retrieval returns fewer than 3 passages; a simple sort by retrieval score is cheaper and equally effective for small sets.
Expected Output Contract
Defines the required fields, types, and validation rules for the evidence ordering output. Use this contract to build a post-processing validator that rejects malformed responses before they reach downstream answer generation.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
ordered_evidence | array of objects | Array length must be >= 1. Reject if empty or null. | |
ordered_evidence[].passage_id | string | Must match a passage_id from the [INPUT_EVIDENCE_SET]. Reject if missing or unmatched. | |
ordered_evidence[].rank | integer | Must be a unique integer starting at 1 with no gaps. Reject if duplicates or non-sequential. | |
ordered_evidence[].relevance_score | float (0.0-1.0) | Must be a float between 0.0 and 1.0 inclusive. Reject if out of range or non-numeric. | |
ordered_evidence[].is_duplicate | boolean | Must be true or false. If true, duplicate_of field must reference a higher-ranked passage_id. | |
ordered_evidence[].duplicate_of | string or null | Required when is_duplicate is true. Must reference a passage_id with a lower rank value. Reject if self-referencing. | |
ordering_strategy_applied | string (enum) | Must match one of the allowed strategies from [ORDERING_STRATEGY]. Reject if unrecognized value. | |
context_window_usage | object | Must contain total_tokens and remaining_budget fields. Reject if total_tokens exceeds [MAX_CONTEXT_TOKENS]. |
Common Failure Modes
Evidence ordering prompts fail in predictable ways when deployed in production RAG systems. These cards cover the most common failure patterns, why they happen, and concrete guardrails to prevent them before they reach users.
Recency Bias Overwhelms Relevance
What to watch: The prompt places the most recently retrieved documents at the top, causing the model to overweight them regardless of actual relevance. Older but more authoritative sources get buried. Guardrail: Add an explicit ordering instruction that ranks by relevance score first, then by source authority, with recency as a tiebreaker only. Validate output ordering against a golden set of known-relevant documents.
Context Window Exhaustion from Duplicates
What to watch: Near-duplicate passages from multiple sources consume token budget without adding signal. The model receives redundant evidence and misses unique information that fell outside the window. Guardrail: Run a deduplication pass before ordering. Include a deduplication_threshold parameter and instruct the prompt to mark merged passages with source provenance rather than listing duplicates separately. Log the token count before and after dedup.
Position Bias Skews Synthesis Toward Early Passages
What to watch: The model disproportionately weights evidence appearing first in the prompt, even when later passages are more relevant. This is a known attention bias in transformer models. Guardrail: Randomize passage order across multiple inference calls for critical answers, or place a concise relevance summary at the top that explicitly flags the strongest evidence regardless of position. Monitor answer consistency across order permutations in eval.
Conflicting Evidence Produces Hallucinated Reconciliation
What to watch: When retrieved passages contradict each other, the model invents a middle-ground answer that appears in neither source rather than flagging the conflict. Guardrail: Add a conflict detection instruction that requires the model to identify contradictions before synthesis. If conflicts exist, output a structured conflict_report with source positions and abstain from synthesizing until resolution. Escalate to human review when confidence drops below threshold.
Silent Evidence Omission Under Token Pressure
What to watch: When the evidence set exceeds the context budget, the model drops passages without indicating what was excluded. Users receive answers that appear fully grounded but are missing critical counter-evidence. Guardrail: Require the prompt to output an evidence_coverage section listing which sources were included and which were truncated. Set a minimum token allocation per evidence chunk and fail loudly if coverage drops below 80% of retrieved passages.
Source Authority Collapse in Mixed-Quality Retrieval
What to watch: The model treats all retrieved passages as equally trustworthy, giving a blog post the same weight as a regulatory filing. Low-quality sources contaminate the synthesis. Guardrail: Include source authority metadata in each evidence block and instruct the prompt to weight by authority tier before relevance. Add an authority_override rule that elevates verified sources above unverified ones regardless of retrieval score. Validate with authority-weighted eval pairs.
Evaluation Rubric
Criteria for testing the Evidence Ordering Prompt before production deployment. Each row defines a pass standard, a failure signal to watch for, and a concrete test method.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Relevance Score Calibration | Top-ranked evidence has a relevance score >= 0.8 and bottom-ranked <= 0.3 for a known test set | All scores cluster between 0.6-0.8 with no differentiation | Run prompt on 20 pre-scored query-evidence pairs; compute Spearman rank correlation between model scores and human relevance labels |
Deduplication Accuracy | Near-duplicate passages (cosine similarity > 0.85) are marked with | Duplicate passages appear as separate entries with no dedup marker | Inject 5 known duplicate pairs into a 30-passage set; verify all 5 pairs are flagged and merged |
Context Window Budget Adherence | Ordered evidence list stays within [MAX_TOKENS] budget when tokenized with target tokenizer | Output exceeds budget by more than 5% or truncates mid-sentence | Set [MAX_TOKENS] to 2000; run 10 trials with varying evidence sizes; assert token count <= 2100 for all outputs |
Ordering Strategy Compliance | Evidence is ordered according to the specified [ORDERING_STRATEGY] (relevance, recency, authority, or diversity) | Output uses relevance ordering when recency was specified | Run 4 test cases, one per strategy; verify the first 3 evidence entries match the expected ordering logic for that strategy |
Source Provenance Preservation | Every ordered evidence entry retains its original [SOURCE_ID] and [DOCUMENT_ID] fields | Source IDs are missing, truncated, or reassigned to wrong passages | Parse output JSON; assert every entry has non-null [SOURCE_ID] and [DOCUMENT_ID]; cross-reference 10 random entries against input source map |
Low-Relevance Exclusion | Passages with relevance score below [MIN_RELEVANCE_THRESHOLD] are excluded from the ordered list | Zero-relevance or clearly off-topic passages appear in the output | Set [MIN_RELEVANCE_THRESHOLD] to 0.2; inject 3 passages with human-labeled relevance of 0.0; assert none appear in output |
Output Schema Validity | Output is valid JSON matching the [OUTPUT_SCHEMA] with all required fields present | Missing | Validate output against JSON Schema using ajv or equivalent; run on 50 test cases; require 100% schema conformance |
Conflict Flagging | When two passages contradict each other, the | Contradictory passages are listed without any conflict marker | Inject 3 known contradictory passage pairs; assert all 3 have |
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.
Adapt This Prompt
How to adapt
Start with the base prompt and a small set of 3-5 retrieved passages. Use a single ordering strategy (relevance-only) and skip deduplication. Accept raw model output without schema validation.
codeOrder these [N] passages by relevance to the query. Return a ranked list with passage IDs and relevance scores (1-10). Query: [QUERY] Passages: [PASSAGE_LIST]
Watch for
- Model reordering passages without explaining why
- Relevance scores that are all 9 or 10 with no discrimination
- Passages with identical content getting different ranks
- Context window overflow when passage count grows beyond 10-15

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