This prompt is for product teams building conversational agents that must decide, in a single step, whether to ask the user for clarification or proceed with a tool call. The core job is binary classification: given a user request that could map to multiple tools, the prompt forces a clarify or proceed decision with explicit reasoning. The ideal user is an AI engineer or product lead who needs to reduce silent wrong-tool execution by making ambiguity explicit before any function is invoked. Required context includes the user's raw input, the full set of available tool definitions with their descriptions, and any conversation history that might disambiguate intent.
Prompt
Ambiguous Request Clarification vs Tool Call Decision Prompt

When to Use This Prompt
Define the job, reader, and constraints for the Ambiguous Request Clarification vs Tool Call Decision Prompt.
Use this prompt when your system has tools with overlapping capabilities—such as search_knowledge_base and search_ticket_history—and user requests like 'find my recent issues' could reasonably trigger either. The prompt is designed for pre-execution gating: it runs before any tool is called, not after a failure. It is most valuable in customer-facing systems where a wrong tool call produces a visible error or a confusing response that erodes trust. Do not use this prompt when the tool set is small and non-overlapping, when latency constraints prohibit an extra model round-trip, or when you already have a deterministic router that can resolve ambiguity through keyword matching or user profile data. In those cases, the prompt adds cost without reducing risk.
The prompt requires careful eval design. You must measure two competing failure modes: the unnecessary clarification rate (asking the user to disambiguate when the intent was actually clear) and the wrong-tool selection rate (proceeding with a tool call that turns out to be incorrect). These metrics trade off against each other, and the right threshold depends on your product's tolerance for friction versus errors. Before deploying, build a golden dataset of at least 50 examples spanning clear single-tool intents, genuinely ambiguous requests, and edge cases where context from conversation history should resolve the ambiguity. Run the prompt against this dataset and tune the decision boundary by adjusting the system instructions, not by modifying the prompt template itself. If you cannot achieve both an unnecessary clarification rate below 15% and a wrong-tool selection rate below 5%, consider adding a confidence scoring layer or routing ambiguous cases to human review instead of forcing a binary decision.
Use Case Fit
Where the Ambiguous Request Clarification vs Tool Call Decision Prompt works well and where it introduces risk. Use these cards to decide if this prompt fits your product context before integrating it into a harness.
Good Fit: Conversational Agents with Multiple Tools
Use when: your product exposes 3+ tools with overlapping capabilities and users express intents in natural language that could map to more than one tool. Guardrail: Ensure your tool descriptions are distinct and non-overlapping in the system prompt to reduce unnecessary clarification requests.
Bad Fit: Single-Tool or Deterministic Routing
Avoid when: the system has only one tool available or the routing logic can be handled by a simple classifier or keyword match. Guardrail: Use a lightweight intent classifier for deterministic cases and reserve this prompt only for genuine ambiguity. Overuse adds latency and token cost with no benefit.
Required Inputs: Tool Schemas and User Context
What you need: a complete list of available tools with descriptions, parameter schemas, and the full user request plus conversation history. Guardrail: If tool schemas are incomplete or user context is truncated, the model will default to clarification even when the intent is clear. Validate input completeness before invoking this prompt.
Operational Risk: Unnecessary Clarification Rate
What to watch: the model asks for clarification when the user intent is actually clear, frustrating users and increasing time-to-resolution. Guardrail: Track the unnecessary clarification rate in eval and set a threshold (e.g., <10%). If exceeded, review tool descriptions for overlap and add few-shot examples of when to proceed despite minor ambiguity.
Operational Risk: Wrong-Tool Selection Under Ambiguity
What to watch: the model proceeds with a tool call but selects the wrong tool, causing downstream execution errors that are harder to detect than a refusal. Guardrail: Log every tool selection decision with the model's reasoning. Implement a pre-execution validation layer that checks argument completeness and tool appropriateness before the call is dispatched.
Regulatory Risk: Silent Wrong-Tool Execution
What to watch: in regulated domains, calling the wrong tool can trigger irreversible actions, data exposure, or compliance violations without any human review. Guardrail: For high-risk or write-operation tools, add a human-in-the-loop gate that requires explicit approval before execution, regardless of the model's confidence. Never rely solely on the prompt's binary decision for regulated actions.
Copy-Ready Prompt Template
A reusable prompt that forces a binary decision—clarify or proceed—when user input maps to multiple tools, with structured reasoning and eval-ready output.
This template is the core decision engine for your conversational agent. It receives a user request and a list of available tools, then produces a single, auditable output: either a tool call with arguments or a clarification question. The prompt is designed to be strict. It must not guess, silently default to the most popular tool, or call a tool with hallucinated arguments. The output schema includes a decision field ("clarify" or "proceed"), a reasoning string, and, if proceeding, a tool_call object. This structure makes the decision testable and traceable in logs, which is essential for measuring unnecessary clarification rates and wrong-tool selection rates.
textSYSTEM: You are a tool-selection router in a production AI system. Your only job is to decide whether a user request can be safely routed to a single tool or requires clarification. You have access to the following tools: [TOOLS] RULES: 1. If exactly one tool clearly matches the user's intent AND all required arguments for that tool are present or can be safely defaulted from context, respond with `"decision": "proceed"` and include the `tool_call`. 2. If zero tools match, respond with `"decision": "clarify"` and ask what the user wants to do. 3. If multiple tools match AND you cannot determine which one the user intends, respond with `"decision": "clarify"`. List the ambiguous tools and ask a specific disambiguating question. 4. If one tool matches but a required argument is missing and cannot be safely defaulted, respond with `"decision": "clarify"` and ask only for the missing argument. 5. Never call a tool with made-up or assumed argument values. 6. Never call a write, delete, or execute tool (any tool tagged `risk: high`) if confidence is not explicit. OUTPUT SCHEMA: { "decision": "clarify" | "proceed", "reasoning": "string explaining which tools matched, which didn't, and why the decision was made", "clarification_question": "string, only if decision is clarify", "ambiguous_tools": ["tool_name"], "tool_call": { "name": "string", "arguments": {} } } USER REQUEST: [INPUT] CONTEXT (conversation history, user profile, document data): [CONTEXT]
To adapt this template, replace [TOOLS] with your actual function definitions in JSON Schema format. The model needs parameter names, types, descriptions, and required fields to make accurate argument-filling decisions. If you have a risk taxonomy, add a risk field to each tool definition and enforce Rule 6. Replace [INPUT] with the current user utterance. Replace [CONTEXT] with any retrieved information, conversation history, or user profile data that could help disambiguate intent or supply default argument values. If no context exists, pass an empty object. For high-stakes domains like healthcare or finance, add a [RISK_LEVEL] placeholder and a rule that forces "clarify" for any tool tagged above a certain threshold. The output schema is deliberately flat to simplify parsing; do not nest tool_call inside conditional blocks. After copying, run this prompt against your golden eval set of ambiguous and unambiguous requests to measure the unnecessary clarification rate and wrong-tool selection rate before shipping.
Prompt Variables
Required inputs for the Ambiguous Request Clarification vs Tool Call Decision Prompt. Each placeholder must be populated before the prompt is assembled and sent to the model.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[USER_REQUEST] | The raw user input that may be ambiguous or map to multiple tools | Schedule a meeting with the team about the Q3 review | Required. Must be non-empty string. Check for injection patterns before passing to model. |
[AVAILABLE_TOOLS] | JSON array of tool definitions with name, description, and parameter schemas | [{"name": "create_calendar_event", "description": "Creates a calendar event with attendees, time, and title"}, {"name": "create_task", "description": "Creates a task item with assignee and due date"}] | Required. Must be valid JSON array with at least one tool. Each tool must have name and description fields. Schema check before prompt assembly. |
[CONVERSATION_HISTORY] | Prior turns in the conversation for context on user intent | [{"role": "user", "content": "I need to organize the Q3 review"}, {"role": "assistant", "content": "Would you like to schedule a meeting or create a task?"}] | Optional. If provided, must be valid JSON array of message objects with role and content. Null allowed for first-turn requests. |
[CLARIFICATION_POLICY] | Rules for when clarification is required versus when the model should proceed | Clarify when: multiple tools match with equal confidence, required arguments are missing, or the user intent spans conflicting tool categories. Proceed when: one tool clearly matches with high confidence and all required arguments are present or inferrable. | Required. Must be a non-empty string defining explicit decision boundaries. Vague policies produce inconsistent abstention behavior. |
[OUTPUT_SCHEMA] | Expected JSON structure for the decision output | {"decision": "clarify" | "proceed", "selected_tool": string | null, "reasoning": string, "missing_information": string[], "candidate_tools": string[]} | Required. Must be valid JSON Schema or example structure. Parse check before prompt assembly. Decision field must be constrained to enum values. |
[MAX_CANDIDATE_TOOLS] | Upper bound on how many candidate tools the model should consider before defaulting to clarification | 3 | Required. Must be positive integer. Prevents the model from ranking too many tools when ambiguity is high. Typical range: 2-5. |
[CONFIDENCE_THRESHOLD] | Minimum confidence score required to proceed with a tool call instead of clarifying | 0.85 | Required. Must be float between 0.0 and 1.0. Threshold below 0.7 increases wrong-tool selection rate. Threshold above 0.95 increases unnecessary clarification rate. |
Implementation Harness Notes
How to wire the Ambiguous Request Clarification vs Tool Call Decision Prompt into a production application with validation, retries, and observability.
This prompt operates as a pre-execution gate in your tool-calling pipeline. Before any tool is invoked, the user's request passes through this prompt to produce a binary decision: clarify or proceed. The proceed path includes the selected tool and arguments; the clarify path includes the specific question to ask the user. Wire this prompt as a synchronous step after intent detection but before tool dispatch. The model call should be made with temperature=0 to maximize decision stability, and you should set a low max_tokens value (around 300–500) since the output is a compact JSON decision object, not a conversational response.
Validation and retry logic is critical here because a malformed decision can silently skip the gate. Implement a JSON schema validator that checks for the required fields: decision (enum: clarify or proceed), reasoning (string), and conditional fields clarification_question (required when decision=clarify) and selected_tool plus arguments (required when decision=proceed). If validation fails, retry the prompt once with the validation error appended to the system message. If the second attempt also fails, default to the clarify path with a generic fallback question and log the failure as a gate_validation_error for immediate review. Never silently proceed to tool execution when the gate output is unparseable.
Observability and logging should capture the full decision trace: the raw user input, the model's JSON output, the validation result, and the final routing action. Log the reasoning field alongside your application-level metrics so you can audit why the model chose to clarify or proceed. Track two primary eval metrics in production: unnecessary clarification rate (how often the model asks for clarification when the user's request was actually unambiguous) and wrong-tool selection rate (how often the model proceeds but selects the incorrect tool). Both metrics require human annotation or a separate judge model comparing the decision against ground-truth labels. If either rate exceeds your threshold, escalate to prompt revision or model upgrade before the gate silently degrades user experience.
Expected Output Contract
Defines the required fields, types, and validation rules for the structured output of the Ambiguous Request Clarification vs Tool Call Decision Prompt. Use this contract to parse and validate the model's response before routing to clarification or tool execution.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
decision | enum: | Must be exactly one of the two allowed string values. Reject any other value. | |
reasoning | string | Must be a non-empty string. Length should be between 20 and 500 characters. Reject if missing or empty. | |
candidate_tools | array of strings | Must be a JSON array of tool names. If decision is | |
selected_tool | string or null | Must be a non-empty string if decision is | |
ambiguity_source | string or null | Must be a non-empty string describing the conflict if decision is | |
clarification_question | string or null | Must be a user-facing question if decision is | |
confidence_score | number | Must be a float between 0.0 and 1.0 inclusive. If decision is |
Common Failure Modes
What breaks first when a model must decide between clarifying an ambiguous request and calling a tool, and how to guard against each failure mode.
Silent Wrong-Tool Execution
What to watch: The model selects a plausible but incorrect tool instead of asking for clarification, executing a read or write operation the user never intended. This is the highest-severity failure because downstream state changes or data leaks are harder to detect than a refusal. Guardrail: Require a confidence score before every tool call. Route calls below a calibrated threshold to a human-review queue or a clarification prompt. Log the full tool-selection reasoning for audit.
Unnecessary Clarification Spiral
What to watch: The model asks for clarification when the user request is already specific enough to select the correct tool. This degrades user experience, increases latency, and erodes trust in the assistant's competence. Guardrail: Define a minimum information threshold for each tool. If all required arguments are extractable from the current context, proceed. Eval the unnecessary-clarification rate against a golden dataset of clearly-routable inputs.
Overlapping Tool Ambiguity
What to watch: Multiple tools have similar descriptions or overlapping capabilities, and the model picks one arbitrarily without recognizing the ambiguity. This is common when tool schemas are authored by different teams without coordination. Guardrail: Include a disambiguation policy in the system prompt that requires the model to list candidate tools and request the specific distinguishing information before proceeding. Test with pairwise tool-overlap scenarios in eval.
Confidence Score Miscalibration
What to watch: The model reports high confidence for wrong tool selections or low confidence for correct ones, making the confidence gate unreliable. This undermines the entire abstention architecture. Guardrail: Calibrate confidence thresholds against production outcomes, not just model self-report. Track false-positive and false-negative rates by tool. Retune thresholds when tool schemas or system prompts change.
Write-Operation Abstention Bypass
What to watch: The model correctly identifies a write tool but proceeds to call it despite low confidence because the abstention policy is not enforced at the execution layer. The prompt says "ask for approval" but the harness executes anyway. Guardrail: Implement a pre-execution gate in the application layer that blocks all write-tool calls unless confidence exceeds a higher threshold or explicit human approval is recorded. The prompt alone cannot enforce this.
Argument Hallucination Under Ambiguity
What to watch: The model decides to call a tool but lacks required arguments, so it invents plausible values from the conversation context or training data instead of asking the user. This produces well-formed but incorrect tool calls. Guardrail: Validate argument completeness and source grounding before execution. If any required argument is not explicitly present in the user input or verified context, block the call and route to a clarification prompt that names the missing field.
Evaluation Rubric
Criteria for testing whether the prompt correctly decides between clarifying an ambiguous request and proceeding with a tool call. Use these checks before shipping to production.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Correct clarification trigger | Prompt returns clarify action when user input maps to 2+ tools with equal confidence | Prompt selects a tool when ambiguity is present | Run 50 ambiguous inputs; require >=90% clarification rate |
Correct proceed trigger | Prompt returns tool_call action when user input maps to exactly 1 tool with high confidence | Prompt requests clarification for unambiguous inputs | Run 50 unambiguous inputs; require >=95% tool_call rate |
Unnecessary clarification rate | Clarification rate on unambiguous inputs is below 5% | Clarification rate exceeds 5% on known-single-tool inputs | Measure on golden dataset of 100 unambiguous requests |
Wrong-tool selection rate | Zero tool calls to the wrong tool when ambiguity exists | Any instance of calling Tool B when Tool A was the only correct match | Run 30 ambiguous-but-solvable inputs; require 0 wrong-tool calls |
Clarification specificity | Clarification message names the ambiguity and asks for the specific missing discriminator | Clarification is generic (e.g., 'Can you clarify?') without naming the decision point | Manual review of 20 clarification outputs; require >=90% specificity |
Confidence score calibration | Confidence score >=0.8 correlates with correct tool_call; score <0.5 correlates with correct clarify | High-confidence tool calls are wrong; low-confidence clarifications are unnecessary | Log confidence scores against ground truth for 200 examples; compute Brier score |
Refusal language safety | Clarification message does not hallucinate tool capabilities or fabricate options | Clarification suggests a tool that does not exist or misrepresents a tool's function | Schema-aware validator checks that all mentioned tool names exist in the provided tool list |
Latency budget compliance | Decision completes within [MAX_LATENCY_MS] milliseconds end-to-end | Decision exceeds latency budget, causing user-facing delay | Load test with 100 concurrent requests; measure p95 latency |
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 simple JSON output schema. Use [USER_REQUEST] and [AVAILABLE_TOOLS] as the only dynamic inputs. Skip confidence scoring and focus on binary clarify-vs-proceed output. Test with 20-30 hand-crafted ambiguous and clear examples.
codeYou are a tool-use decision assistant. Given a user request and a list of available tools, decide whether to CLARIFY or PROCEED. User request: [USER_REQUEST] Available tools: [AVAILABLE_TOOLS] Return JSON: { "decision": "CLARIFY" | "PROCEED", "reasoning": "string" }
Watch for
- Over-clarification on slightly ambiguous but safe requests
- Missing edge cases where multiple tools genuinely overlap
- No validation of output schema shape in early iterations

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