This prompt is for trust-and-safety engineers and platform operators who need to classify user requests that fall into a gray area. When a request is not clearly safe and not clearly a policy violation, the system must decide whether to respond, refuse, or route to a human review queue. Misclassifying ambiguous intent creates two costly outcomes: unsafe responses that bypass policy, or unnecessary review queue volume that overwhelms human reviewers. This playbook provides a structured classification prompt that scores ambiguity, assigns a risk category, and recommends a review queue with a calibrated confidence level.
Prompt
Ambiguous Intent Human Review Routing Prompt

When to Use This Prompt
Define the operational boundaries for the ambiguous intent classifier and identify the exact conditions that trigger this escalation path.
Use this prompt when your existing safety classifiers return low-confidence scores, when a user challenges a refusal, or when a request contains mixed signals that could indicate either a legitimate need or a probing attempt. The prompt expects several inputs to function correctly: the raw user request, the session history leading up to the ambiguous turn, the specific policy text that is potentially in conflict, and the confidence scores from any upstream classifiers. Without these inputs, the prompt cannot distinguish between a confused legitimate user and a sophisticated adversarial probe. Wire this prompt into the escalation path between automated safety checks and final human review, not as a replacement for either layer.
Do not use this prompt for clear-cut policy violations that should be refused outright, or for obviously benign requests that should be handled automatically. If you route every low-confidence decision through this prompt without first checking whether the request is trivially safe or trivially unsafe, you will add latency and cost without improving safety outcomes. The prompt is designed for the narrow band of cases where ambiguity is genuine and the cost of misclassification is high. Before deploying, calibrate the upstream confidence thresholds that feed into this prompt, and measure both the false-positive escalation rate and the false-negative pass-through rate against your organization's risk tolerance.
Use Case Fit
Where the Ambiguous Intent Human Review Routing Prompt works well and where it introduces operational risk. Use these cards to decide if this prompt fits your workflow before integrating it into a production harness.
Good Fit: High-Volume Triage with Unclear Intent
Use when: you have a large volume of user inputs that cannot be confidently classified by a deterministic system and misrouting creates compliance or safety risk. Guardrail: Deploy this prompt as a second-stage classifier after a fast, high-precision rule-based filter to manage review queue load.
Bad Fit: Binary Safe/Unsafe Decisions
Avoid when: the only required output is a simple block/allow decision. This prompt is designed for nuanced routing, not binary classification. Guardrail: Use a dedicated safety classifier prompt for binary decisions and reserve this prompt for cases that fall into a low-confidence band.
Required Input: Risk Taxonomy and Queue Definitions
What to watch: Without a well-defined risk taxonomy and named review queues, the model will invent categories or route everything to a generic fallback. Guardrail: Provide a strict enum of [RISK_CATEGORIES] and [REVIEW_QUEUES] in the prompt. Validate that the output matches the defined set before acting on the routing decision.
Operational Risk: Reviewer Queue Flooding
What to watch: A low confidence threshold or overly cautious prompt can route too many items to human review, overwhelming your operations team. Guardrail: Implement a [CONFIDENCE_THRESHOLD] parameter and track the escalation rate. Set an SLO for the maximum percentage of traffic sent to review, and tune the threshold if it is breached.
Operational Risk: Inconsistent Routing Across Model Updates
What to watch: A model upgrade can silently change routing behavior, sending previously auto-resolved intents to the wrong queue. Guardrail: Maintain a golden dataset of ambiguous inputs with expected routing labels. Run regression tests against this dataset before promoting any new model or prompt version.
Bad Fit: Real-Time, Sub-Second Latency Requirements
Avoid when: the routing decision must be made in under 200ms to avoid degrading the user experience. An LLM call adds latency that is unacceptable for synchronous, real-time flows. Guardrail: Use this prompt in an asynchronous pre-screening step or apply it only to inputs that a fast classifier has already flagged as ambiguous.
Copy-Ready Prompt Template
A reusable prompt template for classifying ambiguous user intents by risk, confidence, and review queue.
This template is the core instruction set for an AI system that must decide whether an unclear user request can be handled automatically or requires human review. It is designed for trust-and-safety engineers who need to route ambiguous inputs—where the user's goal is not obviously benign or malicious—to the correct queue without over-escalating safe traffic or under-escalating risky content. Copy the template below, replace every square-bracket placeholder with your application's specific data, and test the output against your routing logic before deployment.
textYou are an intent classification and routing assistant for a production AI platform. Your task is to analyze a user request that has been flagged as ambiguous—meaning its intent is unclear, could be interpreted in multiple ways, or contains mixed signals. ## INPUT User Request: [USER_INPUT] Conversation History (last 5 turns): [CONVERSATION_HISTORY] User Role/Context: [USER_CONTEXT] ## CLASSIFICATION TASK Analyze the request and produce a structured routing decision. Consider: 1. The most likely benign interpretation. 2. The most likely harmful or policy-violating interpretation. 3. The ambiguity factors present (e.g., vague language, missing context, sarcasm, coded terms). ## RISK CATEGORIES Use the following risk taxonomy: - `low_risk`: Likely benign, safe to handle automatically. - `medium_risk`: Potentially problematic, requires review but not urgent. - `high_risk`: Likely policy violation, safety concern, or regulated domain overstep. - `critical_risk`: Imminent harm, child safety, self-harm, or security breach. ## REVIEW QUEUES Available queues: [REVIEW_QUEUES] ## OUTPUT SCHEMA Return a single JSON object with this exact structure: { "classification": { "primary_intent": "string (best guess at what the user wants)", "ambiguity_type": "string (e.g., 'vague_language', 'coded_terms', 'mixed_signals', 'missing_context')", "risk_category": "low_risk | medium_risk | high_risk | critical_risk", "confidence_score": 0.0-1.0 }, "routing": { "recommended_queue": "string (must match an available queue name)", "escalation_priority": "normal | elevated | urgent", "auto_handle": true/false }, "rationale": { "benign_interpretation": "string", "harmful_interpretation": "string", "key_ambiguity_factors": ["string"], "decision_reasoning": "string" }, "reviewer_context": { "summary_for_reviewer": "string (concise summary if routed to human)", "evidence_snippets": ["string (relevant excerpts from input or history)"], "suggested_questions": ["string (what the reviewer should investigate)"] } } ## CONSTRAINTS - If confidence_score is below [CONFIDENCE_THRESHOLD], auto_handle must be false. - If risk_category is 'high_risk' or 'critical_risk', auto_handle must be false regardless of confidence. - Never include PII from the input in the rationale or reviewer_context fields unless it is essential to the review and the review queue is authorized to receive it. - If the request involves [REGULATED_DOMAINS], escalate to the appropriate regulated-domain review queue. - Do not attempt to fulfill the user's request. Only classify and route. ## EXAMPLES [FEW_SHOT_EXAMPLES]
After copying the template, replace the placeholders with your operational data. [REVIEW_QUEUES] should be a list of your actual queue names with brief descriptions so the model can select accurately. [CONFIDENCE_THRESHOLD] is a number between 0.0 and 1.0 that gates automatic handling—start at 0.85 and adjust based on your false-positive tolerance. [REGULATED_DOMAINS] should list the specific domains (e.g., 'medical', 'legal', 'financial') that trigger mandatory escalation in your jurisdiction. [FEW_SHOT_EXAMPLES] is critical: provide 3-5 examples showing ambiguous inputs and correct routing decisions, including at least one edge case where the model should escalate despite low apparent risk. Without good examples, the model will default to overly cautious or overly permissive routing. Validate the output JSON against your schema before ingesting it into your routing pipeline, and log every decision where confidence_score falls below 0.7 for offline review and threshold calibration.
Prompt Variables
Replace each placeholder with application data before inference. Missing or malformed variables will cause routing failures and misclassification.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[USER_QUERY] | The full user message requiring intent classification | Can you help me set up a way to move funds faster? | Required. Non-empty string. Must be the raw user input without truncation. |
[CONVERSATION_HISTORY] | Previous turns in the session for context | User: I need financial advice. Assistant: I can provide general information. | Optional. Array of message objects with role and content. Null allowed for first-turn requests. |
[POLICY_DOCUMENT] | Safety policy defining disallowed and regulated categories | Section 3.1: Financial advice requiring licensed professional review is prohibited. | Required. Non-empty string. Must contain explicit category definitions and escalation criteria. |
[REVIEW_QUEUES] | Available human review queues with descriptions and SLAs | queue_finance: Licensed financial review, 4hr SLA; queue_security: Security operations, 1hr SLA | Required. JSON array of queue objects with id, name, description, and sla_hours fields. |
[CONFIDENCE_THRESHOLD] | Minimum confidence score for automated routing | 0.85 | Required. Float between 0.0 and 1.0. Scores below this threshold route to default_review queue. |
[SESSION_RISK_SCORE] | Cumulative risk score from prior turns in the session | 0.3 | Optional. Float between 0.0 and 1.0. Null allowed for first-turn requests. Escalation threshold triggers at 0.7. |
[OUTPUT_SCHEMA] | Expected JSON structure for the routing decision | {"intent_category": "string", "risk_level": "low|medium|high|critical", "confidence": float, "recommended_queue": "string", "rationale": "string"} | Required. Valid JSON Schema object. Must include intent_category, risk_level, confidence, recommended_queue, and rationale fields. |
Implementation Harness Notes
How to wire the Ambiguous Intent Human Review Routing Prompt into a production safety pipeline with validation, retries, logging, and human review integration.
This prompt is designed to sit between your primary safety classifier and your human review routing system. It activates only when the classifier returns a low-confidence or ambiguous result—typically a confidence score between 0.4 and 0.7 on a 0–1 scale. Do not run this prompt on every user input; that defeats the purpose of having a fast upstream classifier and will inflate your review queue with clear-cut cases. Instead, gate execution on a confidence threshold check: if classifier.confidence < [AMBIGUITY_THRESHOLD], invoke this prompt with the original user input, the classifier's top-k labels and scores, and any relevant conversation context.
Wire the prompt into an asynchronous decision pipeline. The caller should be a lightweight service that: (1) receives the ambiguous classification event, (2) assembles the prompt with [USER_INPUT], [CLASSIFIER_LABELS], [CONVERSATION_CONTEXT], and [REVIEW_QUEUES], (3) sends the request to your model endpoint with temperature=0 and a structured output mode if available, (4) validates the response against the expected output schema before routing, and (5) logs the full decision for audit. If the model returns a malformed response—missing the risk_category field, an unrecognized review_queue, or a confidence value outside 0–1—retry once with a stricter schema reminder appended to the prompt. If the retry also fails, default-route to the general_review queue and flag the event for manual triage.
The output schema must include at minimum: risk_category (enum of your defined categories), confidence (0–1 float), recommended_queue (must match a valid queue ID from your routing system), reasoning_summary (one sentence for the reviewer), and escalation_urgency (enum: standard, priority, critical). Validate all fields before the routing decision is executed. For escalation_urgency = critical, bypass normal queue assignment and trigger your incident response notification path. Log every routing decision with the model's raw output, the validated fields, the final queue assignment, and a timestamp. This log becomes your primary artifact for measuring routing accuracy, reviewer workload, and threshold calibration over time.
Model choice matters here. Use a model with strong instruction-following and low refusal tendency on safety-adjacent content—Claude 3.5 Sonnet, GPT-4o, or Gemini 1.5 Pro are reasonable defaults. Avoid models that over-refuse on ambiguous safety content, as they will route too many cases to review. If you are running locally or air-gapped, test open-weight models (Llama 3.1 70B+, Qwen 2.5 72B) against a golden eval set before deploying; smaller models often struggle with the nuanced distinction between ambiguous_high_risk and ambiguous_low_risk categories. Do not use this prompt with a model that lacks structured output support unless you add a post-processing repair step.
Build an eval harness before you ship. Create a golden dataset of 200–500 ambiguous inputs with known-correct routing decisions, covering each risk category and urgency level. Run the prompt against this set weekly and track: routing accuracy (did it pick the right queue?), over-escalation rate (routing to human review when the case was actually low-risk), under-escalation rate (routing to low-priority when it should have been critical), and schema compliance rate. Set alert thresholds on over-escalation above 15% and under-escalation above 2%. Feed reviewer corrections back into the eval set: when a human reviewer overrides the routing decision, capture that override as a new labeled example. This closes the loop between prompt behavior and operational reality.
Expected Output Contract
Fields, format, and validation rules for the model response. Your application should validate every field before acting on the classification.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
classification | string enum | Must match one of: [RISK_CATEGORIES]. Reject unknown values. | |
confidence_score | number (0.0-1.0) | Must be a float between 0.0 and 1.0 inclusive. Route to human review if below [CONFIDENCE_THRESHOLD]. | |
recommended_queue | string | Must match a valid queue ID from [QUEUE_MAP]. Reject unmapped values. | |
rationale_summary | string (<=280 chars) | Must be non-empty and <=280 characters. Truncate and flag if longer. | |
ambiguity_flags | array of strings | Each element must be a known flag from [AMBIGUITY_FLAG_LIST]. Reject unknown flags. | |
requires_immediate_attention | boolean | Must be true or false. If true, classification must be in [HIGH_SEVERITY_CATEGORIES]. | |
original_query_hash | string (SHA-256) | Must be a 64-character hex string. Validate length and character set. | |
escalation_evidence | array of objects | If present, each object must contain 'source' (string) and 'snippet' (string <=500 chars). Null allowed. |
Common Failure Modes
What breaks first when routing ambiguous user intent to human review, and how to guard against each failure pattern.
Over-Escalation Flooding Review Queues
What to watch: The prompt classifies every low-confidence or slightly vague input as requiring human review, overwhelming reviewers with trivial cases. This happens when the routing threshold is set too sensitively or the prompt lacks a 'handle autonomously' path for common ambiguities. Guardrail: Implement a tiered confidence model with a 'clarify' action before escalation. Require the prompt to first attempt disambiguation by asking the user a targeted question. Only escalate if the second response remains ambiguous or high-risk.
Risk Misclassification Under Ambiguity
What to watch: The prompt defaults to a lower risk category when intent is unclear, allowing a genuinely harmful request to bypass review. This often occurs because the model interprets ambiguity in favor of the user rather than erring on the side of safety. Guardrail: Add an explicit instruction: 'When intent is ambiguous and any plausible interpretation involves regulated, harmful, or policy-violating content, classify at the higher risk tier.' Validate this behavior with adversarial test cases where harmful intent is deliberately obscured.
Context Window Truncation Dropping Critical Signals
What to watch: In multi-turn conversations, earlier turns containing risk indicators are truncated from the context window. The routing prompt sees only the most recent, seemingly benign message and fails to escalate. Guardrail: Require a rolling risk summary as part of the prompt's input context. Before each routing decision, include a concise 'Session Risk Summary' field that carries forward prior flags, escalation history, and cumulative risk score, ensuring the prompt evaluates the full arc of interaction.
Reviewer Receives Insufficient Context
What to watch: The prompt routes to a human but provides only the ambiguous message without surrounding context, prior turns, user history, or the specific reason for escalation. The reviewer must spend time reconstructing the situation before making a decision. Guardrail: Structure the output to include a mandatory 'Reviewer Brief' field containing the full conversation excerpt, the specific ambiguity detected, the risk categories considered, the model's confidence scores, and the recommended next step. Test that reviewers can decide within 60 seconds of reading the brief.
Prompt Drift from Policy Updates
What to watch: Safety policies change, but the routing prompt's risk categories and escalation rules remain static. Newly prohibited content types pass through because the prompt was never updated to recognize them. Guardrail: Externalize risk category definitions and policy rules into a retrievable configuration block injected at prompt assembly time. Version the policy configuration alongside the prompt template. Run regression tests against the updated policy within the CI pipeline before deployment.
Adversarial Ambiguity Exploitation
What to watch: Malicious users deliberately craft inputs that sit in the ambiguity gap between clear policy violations and benign requests, knowing the system hesitates to escalate borderline cases. Over time, they map the exact boundary and operate just inside it. Guardrail: Include few-shot examples of adversarial ambiguity patterns in the prompt. Add a specific classification label for 'Suspected Adversarial Probing' that triggers escalation even when individual messages fall below the risk threshold. Log these cases for pattern analysis and policy refinement.
Evaluation Rubric
How to test output quality before shipping. Run these checks on a labeled dataset of at least 200 ambiguous requests covering your policy categories.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Routing accuracy | ≥ 90% of ambiguous requests routed to the correct review queue as labeled by human annotators | Mismatch between predicted queue and ground-truth label on > 10% of test cases | Confusion matrix comparison against labeled dataset; compute precision and recall per queue |
Confidence calibration | Mean confidence score for correct classifications is ≥ 0.7; mean confidence for incorrect classifications is ≤ 0.5 | Confidence scores above 0.8 on misrouted requests, or below 0.4 on correctly routed requests | Brier score and reliability diagram on held-out test set; check for overconfidence on errors |
Refusal avoidance | ≤ 5% of ambiguous requests incorrectly refused instead of routed to human review | System returns a refusal or policy block when the correct action is human handoff | Scan output for refusal language patterns; compare refusal rate against labeled routing labels |
Queue distribution balance | No single review queue receives > 60% of routed requests unless justified by policy distribution | One queue dominates routing output, indicating classification bias or missing categories | Histogram of predicted queue assignments; chi-squared test against expected distribution from labels |
Escalation justification quality | ≥ 85% of routing decisions include a specific, non-generic reason referencing the ambiguity type | Routing reason is generic placeholder text, missing, or repeats the queue name without explanation | LLM-as-judge evaluation on justification specificity; check for minimum token length and keyword diversity |
Latency budget compliance | 95th percentile routing latency ≤ 2 seconds end-to-end | Routing decisions exceed 2 seconds, causing user-facing timeout or degraded experience | Load test with 200 concurrent requests; measure p50, p95, p99 latency from input receipt to routing output |
Adversarial robustness | ≤ 10% routing change rate when ambiguous phrasing is perturbed with synonyms or reordering | Routing flips to a different queue when the request is semantically identical but reworded | Perturbation test: apply 5 synonym/reorder variants per request; measure routing consistency across variants |
Human review workload impact | False-positive escalation rate ≤ 15% (requests routed to human review that could have been handled automatically) | Review queue receives high volume of trivially resolvable requests that did not need human attention | Post-hoc audit of routed requests by human reviewers; label each as necessary escalation or unnecessary handoff |
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 lightweight classifier call. Use a single risk category and a binary confidence flag (high_confidence / low_confidence). Skip queue routing logic and just return the classification. Run 50–100 hand-labeled examples through a spreadsheet to spot obvious misclassifications before building any pipeline.
codeClassify the following user request as one of: [CLEAR_SAFE, CLEAR_UNSAFE, AMBIGUOUS]. If AMBIGUOUS, also return a confidence score from 0.0 to 1.0. Request: [USER_INPUT]
Watch for
- Over-classifying benign edge cases as AMBIGUOUS because the model defaults to caution
- Confidence scores that cluster at 0.5 instead of spreading across the range
- No baseline measurement of reviewer workload before you start routing

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