This prompt is for triage system designers who need a nuanced, multi-level assessment of input ambiguity before routing. A binary ambiguous/not-ambiguous flag is insufficient when downstream actions range from automated resolution to immediate human escalation. This prompt grades ambiguity on a defined severity scale with explicit criteria per level, producing a structured output that a routing engine can use to decide whether to auto-resolve, ask a clarifying question, route to a generalist model, or escalate to a human reviewer. Use this when your system must make differentiated decisions based on how severely an input is underspecified, contradictory, or open to multiple interpretations.
Prompt
Ambiguity Severity Grading Prompt

When to Use This Prompt
Determine if your triage system needs a multi-level ambiguity severity assessment instead of a binary ambiguous/not-ambiguous flag.
The ideal user is an AI platform engineer or product engineer building a classification and routing middleware layer. You should have a defined taxonomy of downstream handlers—such as specialized models, tool chains, human queues, or clarification modules—and you need a consistent, auditable way to decide which handler receives each input. Required context includes the raw user input, any available conversation history or session state, and the set of possible routing destinations with their capabilities. Do not use this prompt when a simple confidence threshold on a single classification label is sufficient, when all ambiguous inputs should follow the same fallback path, or when latency constraints prohibit the additional inference step that severity grading introduces.
Before deploying this prompt, define your severity levels and their corresponding routing actions. A common three-tier scheme is: low severity (minor underspecification resolvable by inference or default assumptions, route to automated handler), medium severity (genuine ambiguity requiring a clarifying question, route to clarification module), and high severity (contradictory signals, safety implications, or multiple equally valid interpretations, escalate to human review). Each tier needs explicit, testable criteria. For example, 'low severity' might mean exactly one entity is missing but inferrable from context, while 'high severity' might mean the input contains mutually exclusive constraints. Without these operational definitions, the severity grades become arbitrary and your routing engine will make inconsistent decisions. Validate your severity definitions against a golden set of labeled examples before production use, and monitor severity distribution shifts as an early signal of input quality changes or model behavior drift.
Use Case Fit
Where the Ambiguity Severity Grading Prompt works and where it introduces risk. Use this to decide if a multi-level severity scale is the right tool before wiring it into your triage system.
Good Fit: Multi-Tier Triage Pipelines
Use when: your system needs differentiated handling based on ambiguity severity—auto-resolve for mild cases, clarify for moderate, and escalate for severe. Guardrail: Map each severity level to a concrete downstream action (queue, model, or human) before deployment. A severity score without a routing contract is just metadata.
Bad Fit: Binary Ambiguity Decisions
Avoid when: you only need a yes/no ambiguity flag. A multi-level severity scale adds complexity, latency, and eval surface area with no benefit. Guardrail: Use a simpler ambiguity detection prompt and only upgrade to severity grading when you have at least three distinct handling paths.
Required Inputs
What you need: the raw user input, the classification intent or label under consideration, and a defined severity rubric with explicit criteria per level. Guardrail: Without a rubric, the model invents its own severity boundaries, producing inconsistent scores across inputs. Define criteria for each level before writing the prompt.
Operational Risk: Severity Inflation
What to watch: the model may over-assign high severity to ambiguous inputs, flooding your escalation queue. Guardrail: Calibrate severity thresholds against a labeled dataset. Monitor the distribution of severity scores in production and set alerts when escalation rates drift beyond expected bounds.
Operational Risk: Inconsistent Criteria Application
What to watch: the same input may receive different severity grades across calls, especially near rubric boundaries. Guardrail: Run eval checks for severity consistency on a golden set of boundary-case inputs. If variance is high, simplify the rubric or add few-shot examples for each severity level.
When to Skip the Prompt Entirely
Avoid when: the downstream system cannot act on graded severity, the input volume is too low to justify calibration effort, or latency constraints require a single-pass classification. Guardrail: If you cannot name the specific action tied to each severity level, you do not need severity grading yet. Start with a binary ambiguity detector.
Copy-Ready Prompt Template
A copy-ready system prompt for grading input ambiguity on a multi-level severity scale with explicit criteria per level.
This prompt template implements a multi-level ambiguity severity grader. It is designed for triage system builders who need more than a binary ambiguous/clear flag. The prompt instructs the model to analyze an input against defined severity criteria, output a structured grade, cite the specific ambiguous spans, and explain its reasoning. This enables differentiated downstream handling: low-severity ambiguity might auto-resolve, medium severity might trigger a clarification question, and high severity might escalate immediately to a human queue.
textYou are an ambiguity severity grader for a production triage system. Your job is to analyze user inputs and assign an ambiguity severity grade based on the criteria below. You must be precise, consistent, and conservative. When in doubt, grade higher rather than lower. ## INPUT [USER_INPUT] ## CONTEXT (if available) [CONVERSATION_HISTORY] [USER_PROFILE] ## AMBIGUITY SEVERITY SCALE Grade the input on this 4-level scale: **SEV0 - Clear**: The input is unambiguous. Intent, entities, and requested action are explicit. No conflicting signals. Example: "Reset my password for account jane@example.com." **SEV1 - Mild Ambiguity**: The input has one minor underspecified element that can be reasonably inferred from context or defaults. Auto-resolution is acceptable. Example: "What's the status?" when conversation context clearly references a specific order. **SEV2 - Moderate Ambiguity**: The input has multiple interpretations, missing critical parameters, or conflicting signals. Clarification is required before routing. Example: "Cancel it" when multiple cancellable items exist in context. **SEV3 - Severe Ambiguity**: The input is fundamentally unclear, self-contradictory, or could map to high-risk actions with very different outcomes. Immediate human escalation is required. Example: "Do the thing we discussed but also the opposite if that doesn't work." ## OUTPUT SCHEMA Return ONLY valid JSON with this exact structure: { "severity_grade": "SEV0" | "SEV1" | "SEV2" | "SEV3", "confidence": 0.0-1.0, "ambiguous_spans": ["exact text span 1", "exact text span 2"], "possible_interpretations": ["interpretation A", "interpretation B"], "missing_information": ["what critical info is absent"], "reasoning": "Brief explanation of the grade assignment.", "recommended_action": "auto_resolve" | "clarify" | "escalate" } ## CONSTRAINTS - If severity is SEV0, ambiguous_spans must be an empty array. - If severity is SEV3, recommended_action must be "escalate". - possible_interpretations must list at least 2 distinct interpretations for SEV2 and SEV3. - missing_information must be non-empty for SEV1 and above. - confidence reflects your certainty in the grade assignment, not the clarity of the input. - Do not hallucinate context. Only use provided [CONVERSATION_HISTORY] and [USER_PROFILE]. - If no context is provided, treat the input as standalone.
Adaptation guidance: Replace [USER_INPUT] with the raw text to grade. [CONVERSATION_HISTORY] and [USER_PROFILE] are optional context slots—remove them if your triage system operates on isolated inputs. Adjust the severity scale examples to match your domain's specific ambiguity patterns. The recommended_action field should map to your actual downstream routing logic. For high-risk domains like healthcare or finance, add a [RISK_LEVEL] parameter and tighten the escalation criteria. Always validate the JSON output against the schema before routing; a malformed grade should trigger a retry or fallback to SEV3 escalation.
Prompt Variables
Inputs the Ambiguity Severity Grading Prompt needs to work reliably. Replace each placeholder before sending to the model. Validation notes describe how to check the input before it reaches the prompt.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[USER_INPUT] | The raw text to grade for ambiguity severity | I need to update the thing we discussed last week for the client project. | Must be a non-empty string. Check length under model context limit. Null or whitespace-only input should be rejected before prompt assembly. |
[SEVERITY_LEVELS] | Defines the multi-level severity scale with explicit criteria per level | LOW: Single minor underspecification, resolvable from context. MEDIUM: Missing key entity or parameter, requires clarification. HIGH: Multiple conflicting signals or completely underspecified intent. CRITICAL: Input is self-contradictory or impossible to action. | Must be a valid JSON array of objects with 'level' and 'criteria' keys. Schema check required. At least 2 levels must be defined. Default scale should be provided if not supplied. |
[DOMAIN_CONTEXT] | Optional domain or product scope to calibrate severity assessment | customer_support_ticketing_system | Can be null. If provided, must match an allowed domain enum. Used to weight severity based on domain-specific impact. Null allowed; prompt should handle missing context gracefully. |
[PREVIOUS_TURN_CONTEXT] | Prior conversation turns for resolving anaphora and implicit references | User: Can you update the billing contact? Agent: Which account? User: The enterprise one. | Can be null or empty array. If provided, must be an array of objects with 'role' and 'content' keys. Null allowed for single-turn grading. |
[OUTPUT_SCHEMA] | The exact JSON schema the model must return | {"severity_level": "MEDIUM", "severity_score": 0.65, "ambiguous_spans": ["the thing", "the client project"], "missing_information": ["specific entity to update", "client name or account ID"], "resolution_strategy": "clarify"} | Must be a valid JSON Schema object. Required fields: severity_level, severity_score, ambiguous_spans, missing_information, resolution_strategy. Schema validation before prompt injection. |
[MAX_AMBIGUOUS_SPANS] | Limits the number of ambiguous spans returned to prevent output bloat | 5 | Must be a positive integer between 1 and 20. Default to 5 if not provided. Prevents the model from over-annotating every word as ambiguous. |
[RESOLUTION_STRATEGIES] | Allowed resolution strategy enum values for the output | ["auto_resolve", "clarify", "escalate", "reject"] | Must be a non-empty array of strings. Each value must be a valid strategy identifier. Used to constrain the model's resolution_strategy field to valid options. |
Implementation Harness Notes
How to wire the Ambiguity Severity Grading Prompt into a production triage system with validation, retries, and escalation logic.
The Ambiguity Severity Grading Prompt is designed to sit between an input ingestion layer and a routing dispatcher. Its job is to produce a structured severity grade—such as none, low, medium, high, or critical—along with explicit criteria evidence, so downstream systems can decide whether to auto-resolve, ask a clarifying question, or escalate to a human. In practice, this means the prompt should be called after initial intent classification but before any tool dispatch or agent handoff. The output must be machine-readable and deterministic enough to drive conditional logic without a human reading every result.
To wire this into an application, wrap the prompt in a function that accepts the raw user input and an optional context payload (e.g., conversation history, account tier, or prior classification results). The function should: (1) assemble the prompt with the [INPUT] and [CONTEXT] placeholders filled; (2) call the model with response_format set to a strict JSON schema that enforces the severity level enum and required evidence fields; (3) validate the response against that schema immediately—if validation fails, retry once with the error message injected into the prompt as a correction hint; (4) log the raw input, severity grade, evidence, model used, latency, and retry count to your observability platform. For high-stakes domains (healthcare, finance, safety), add a rule that any critical or high severity output bypasses automated routing and creates a human review task with the full grading payload attached. Use a model with strong instruction-following and JSON mode support—GPT-4o, Claude 3.5 Sonnet, or equivalent—and set temperature to 0 or near-zero to reduce grading variance.
Common failure modes to guard against: the model may default to medium severity when uncertain, which masks true ambiguity and causes under-escalation. Mitigate this by adding an eval check that compares severity distributions across a golden test set and flags overuse of the middle tier. The model may also hallucinate evidence for its severity grade—validate that cited spans or reasons actually appear in the input. If you're batching ambiguity grading across high-volume streams, implement a circuit breaker that stops processing if the retry rate exceeds 5% or if validation failures spike, and fall back to a conservative high severity default with human review. Finally, treat the severity rubric itself as versioned configuration: when you update the criteria for each level, run a regression suite against known ambiguous inputs to confirm the new rubric doesn't silently shift grading behavior across your traffic.
Expected Output Contract
Validation contract for the Ambiguity Severity Grading Prompt. Use this schema to parse, validate, and route the model response before it reaches downstream triage logic.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
severity_level | string enum: [NONE, LOW, MEDIUM, HIGH, CRITICAL] | Must match exactly one of the defined enum values. Reject any response with a missing or unrecognized level. | |
severity_score | number (0.0 to 1.0) | Must be a float within the inclusive range [0.0, 1.0]. Reject if score is outside range or not a valid number. Map to severity_level thresholds: NONE < 0.2, LOW 0.2-0.4, MEDIUM 0.4-0.6, HIGH 0.6-0.8, CRITICAL > 0.8. | |
ambiguous_spans | array of objects | Each object must contain 'text' (string), 'start_char' (integer), 'end_char' (integer), and 'reason' (string). Validate that start_char < end_char and indices fall within [INPUT] length. Allow empty array only when severity_level is NONE. | |
ambiguous_spans[].text | string | Must be a non-empty substring extractable from [INPUT] using the provided character offsets. Reject if extracted substring does not match. | |
ambiguous_spans[].start_char | integer | Must be a non-negative integer. Must be less than end_char and within [INPUT] length bounds. | |
ambiguous_spans[].end_char | integer | Must be a non-negative integer. Must be greater than start_char and within [INPUT] length bounds. | |
ambiguous_spans[].reason | string | Must be a non-empty string explaining why this span is ambiguous. Reject if reason is generic (e.g., 'unclear') without specific reference to the input content. | |
recommended_action | string enum: [AUTO_RESOLVE, CLARIFY, ROUTE_TO_GENERAL, ESCALATE_TO_HUMAN, IMMEDIATE_ESCALATION] | Must match exactly one of the defined enum values. Validate that action is consistent with severity_level: AUTO_RESOLVE only for NONE/LOW, IMMEDIATE_ESCALATION only for CRITICAL. Reject on mismatch. |
Common Failure Modes
Ambiguity severity grading fails in predictable ways. These are the most common failure modes when deploying severity scales in production triage systems, with concrete mitigations for each.
Severity Inflation Under Uncertainty
What to watch: The model defaults to high-severity grades when it lacks sufficient context, treating missing information as dangerous ambiguity rather than unknown information. This floods escalation queues with false positives. Guardrail: Add an explicit 'Insufficient Information' severity level and instruct the model to distinguish between 'ambiguous and dangerous' versus 'ambiguous because context is missing.' Validate with test cases that are sparse but benign.
Inconsistent Boundary Between Adjacent Levels
What to watch: The model cannot reliably distinguish between adjacent severity levels (e.g., Level 2 vs Level 3) when the criteria differ only in subtle degree. This produces jittery, non-reproducible grades that break downstream routing rules. Guardrail: Collapse adjacent levels that lack a clear, objective discriminator. Test each boundary with 10+ borderline cases and measure inter-run consistency. If agreement is below 90%, merge the levels.
Overfitting to Surface Signals
What to watch: The model latches onto lexical cues (urgent words, ALL CAPS, question marks) rather than semantic ambiguity. A calm message about a critical safety issue gets low severity; a frantic message about a minor question gets high severity. Guardrail: Include counterexamples in few-shot prompts where surface tone contradicts actual severity. Add an eval check that pairs urgent-tone/low-risk and calm-tone/high-risk test cases.
Single-Intent Assumption on Multi-Intent Inputs
What to watch: The model assigns one severity grade to a compound input containing both high-ambiguity and low-ambiguity components, averaging them into a misleading mid-level score. The dangerous sub-intent gets buried. Guardrail: Run multi-intent decomposition before severity grading. Grade each sub-intent independently and route based on the maximum severity found, not the average.
Severity Scale Drift in Long Conversations
What to watch: As conversation context grows, the model's severity calibration shifts. Earlier turns influence later grading, causing either escalation creep (cumulative concern) or desensitization (normalization of ambiguity). Guardrail: Grade each new input independently with conversation history provided only as context for disambiguation, not as severity precedent. Periodically re-anchor with a fresh severity rubric in the prompt.
Silent Failure on Non-Linguistic Ambiguity
What to watch: The model misses ambiguity that arises from missing domain knowledge, conflicting policies, or procedural gaps rather than unclear wording. A technically clear request that violates an unwritten business rule gets a low severity grade and routes to automation. Guardrail: Include domain-specific ambiguity triggers in the severity criteria (e.g., 'request conflicts with policy X,' 'required field Y is absent'). Test with inputs that are linguistically clear but operationally ambiguous.
Evaluation Rubric
Run these checks against a held-out test set covering all severity levels. Each criterion validates a specific failure mode observed in ambiguity grading prompts.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Severity Level Accuracy | Exact match with ground truth severity label on >= 90% of test cases | Severity off by more than one level or systematic over/under-grading | Compare predicted severity against human-labeled test set stratified by severity level |
Criteria Adherence | Output references specific rubric criteria for the assigned severity level | Generic justification without citing defined severity criteria from the prompt | LLM-as-judge check: does explanation map to the correct severity definition from the rubric |
Ambiguity Span Identification | Identifies the exact text spans causing ambiguity in >= 85% of cases | Missing spans, hallucinated spans not present in input, or spans that do not contribute to ambiguity | Span-level overlap scoring against human-annotated ambiguous spans in test set |
Severity Consistency | Same input with minor paraphrasing receives identical severity grade | Severity flips between non-adjacent levels on paraphrased inputs | Pairwise test: run original and paraphrased versions through prompt, measure agreement rate |
Boundary Case Handling | Correctly grades inputs at severity boundaries (e.g., borderline between moderate and high) | Random assignment at boundaries or defaulting to middle severity | Curated boundary test set with expert labels, measure accuracy at severity transitions |
Over-escalation Rate | False positive rate for high/critical severity < 5% | Routine or low-risk ambiguous inputs flagged as critical or high severity | Measure precision and recall per severity level on held-out test set with known ground truth |
Under-escalation Rate | False negative rate for high/critical severity < 3% | Inputs requiring immediate escalation graded as low or moderate severity | Recall check on high-severity test cases; flag any critical input graded below moderate |
Output Schema Compliance | 100% compliance with [OUTPUT_SCHEMA] fields, types, and required elements | Missing severity_level field, malformed JSON, extra fields, or wrong enum values | Schema validation parse check on all test outputs; reject any non-conforming response |
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 flat severity scale (e.g., low, medium, high). Remove strict output schema requirements. Use a single model call without retries. Accept free-text severity explanations instead of structured JSON.
Watch for
- Severity inflation on ambiguous but low-risk inputs
- Inconsistent grading between similar inputs
- No calibration against human judgment
- Missing edge cases in the severity criteria

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