Inferensys

Prompt

Ambiguity Severity Grading Prompt

A practical prompt playbook for using the Ambiguity Severity Grading Prompt in production AI workflows to enable differentiated handling from auto-resolve to immediate escalation.
Developer doing prompt engineering on laptop, prompt variations visible on screen, casual coding session.
PROMPT PLAYBOOK

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.

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.

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.

PRACTICAL GUARDRAILS

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

PROMPT PLAYBOOK

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.

text
You 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.

IMPLEMENTATION TABLE

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.

PlaceholderPurposeExampleValidation 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.

PROMPT PLAYBOOK

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.

IMPLEMENTATION TABLE

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 ElementType or FormatRequiredValidation 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.

PRACTICAL GUARDRAILS

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

IMPLEMENTATION TABLE

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.

CriterionPass StandardFailure SignalTest 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

ADAPTATION OPTIONS

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
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.