This prompt is designed for platform engineers and AI infrastructure teams who need to resolve conflicting signals in a user request before executing a tool call. The core job-to-be-done is preventing silent wrong-tool execution when a user's input contains internal contradictions—for example, asking to 'delete the production database and then back it up' or 'cancel my subscription but upgrade my plan immediately.' In these scenarios, guessing a single tool without acknowledging the conflict leads to downstream state corruption, security incidents, or user-facing errors that are harder to repair than a well-structured clarification request.
Prompt
Contradictory Input Tool Resolution Prompt

When to Use This Prompt
Define the job, the ideal user, and the operational constraints for deploying the Contradictory Input Tool Resolution Prompt.
Use this prompt when your system sits between a user-facing interface and a defined tool catalog, and the cost of executing the wrong tool is high. The ideal user is an engineer integrating this prompt into a pre-execution guardrail layer—before any write operations, destructive actions, or state mutations. The prompt expects a structured input containing the raw user request, the available tool definitions, and any relevant conversation or session context. It is not designed for simple intent classification where no contradiction exists, nor for multi-step agent planning where the model should decompose a complex request into a sequence of tool calls. For those cases, use the Ambiguous Intent to Tool Mapping Prompt or an agent planning prompt instead.
Do not use this prompt when the tool catalog is flat, the user's intent is clearly singular, or the system can safely execute multiple tools in parallel without conflict. Overusing contradiction detection on straightforward requests adds latency and unnecessary clarification loops that degrade user experience. Before deploying, ensure you have defined a clear escalation path for unresolved contradictions—whether that means routing to a human reviewer, logging the conflict for offline analysis, or returning a structured clarification question to the user. The next section provides the copy-ready prompt template you can adapt to your tool catalog and risk tolerance.
Use Case Fit
Where the Contradictory Input Tool Resolution Prompt works, where it fails, and the operational preconditions required before deploying it in a production tool-selection pipeline.
Good Fit: Explicitly Conflicting Signals
Use when: the user request contains clear internal contradictions, such as 'refund this order and also ship it overnight' or 'delete the staging database but keep the data.' Guardrail: the prompt is designed to detect and annotate the conflict before tool selection, preventing silent wrong-tool execution.
Bad Fit: Implicit or Missing Constraints
Avoid when: the input is merely underspecified rather than contradictory. A request for 'send the report' with no recipient is a missing field, not a conflict. Guardrail: route underspecified inputs to a clarification prompt first; this prompt should only receive inputs that have passed a basic completeness check.
Required Inputs
What you need: a fully resolved user input string, the complete available tool catalog with descriptions and parameter schemas, and any session or user profile context that might resolve apparent contradictions. Guardrail: if the tool catalog is incomplete or stale, the model cannot reliably identify when a conflict is real versus a documentation gap.
Operational Risk: False Conflict Detection
What to watch: the model may flag a conflict where none exists because it misinterprets domain-specific terminology or fails to account for tool capabilities that resolve the apparent contradiction. Guardrail: log every conflict annotation with the raw input and selected tool for human review during the first 500 production invocations.
Operational Risk: Conflict Bypass via Hallucination
What to watch: the model may ignore the contradiction and select a tool anyway, especially if the conflicting signals are separated by long context or embedded in narrative text. Guardrail: add a post-selection validation step that checks whether the chosen tool's parameters are consistent with all constraints expressed in the input.
Latency and Cost Sensitivity
What to watch: contradiction detection adds reasoning overhead. In high-throughput, low-latency pipelines, this prompt may add unacceptable delay. Guardrail: use this prompt only when a lightweight classifier first flags the input as potentially contradictory; do not run it on every request.
Copy-Ready Prompt Template
A reusable prompt template for resolving contradictory signals in user input and selecting a single, justified tool call.
This template is the core instruction set for a model that must resolve contradictory user requests and select a single tool. It is designed to be copied directly into your prompt management system or orchestration code. The prompt forces the model to identify the conflict, define a resolution strategy, and produce a single tool call with a clear justification, rather than silently picking a tool that matches only one part of the request. Use this template when your application accepts free-form user input that may contain conflicting goals, such as a request to both 'cancel my subscription' and 'upgrade my plan' in the same message.
textYou are a tool-selection router that resolves contradictory signals in user input. Your job is to detect when a user request contains conflicting intents, resolve the conflict using a defined strategy, and select exactly one tool to call. ## INPUT User Request: [USER_REQUEST] Available Tools: [TOOL_DEFINITIONS] Conversation History: [CONVERSATION_HISTORY] User Context: [USER_CONTEXT] ## CONFLICT DETECTION 1. Extract every distinct actionable intent from the user request. 2. Check if any pair of intents is contradictory. Contradictions include: - Mutually exclusive actions (e.g., create and delete the same resource). - Incompatible state transitions (e.g., upgrade and downgrade a subscription). - Conflicting parameters for the same tool (e.g., set temperature to hot and cold). - Temporal impossibilities (e.g., schedule a meeting for yesterday and tomorrow). 3. If no contradiction is found, proceed directly to tool selection. ## RESOLUTION STRATEGY When a contradiction is detected, apply the following precedence rules in order: 1. **Explicit Over Implicit**: If one intent is stated explicitly and the other is implied, prefer the explicit intent. 2. **Most Recent Overrides**: If conversation history contains a prior resolution or clarification, prefer the most recent explicit instruction. 3. **Safety First**: If one action is irreversible or destructive, prefer the safer or reversible action and flag for human review. 4. **User Role Constraints**: If [USER_CONTEXT] includes permissions or role limits, discard intents that the user is not authorized to execute. 5. **Ask When Unresolvable**: If the conflict cannot be resolved with high confidence by the above rules, do not select a tool. Instead, produce a clarification request. ## OUTPUT SCHEMA Return a single JSON object with the following structure: { "conflict_detected": boolean, "conflict_annotation": { "intent_a": string, "intent_b": string, "contradiction_type": "mutually_exclusive" | "incompatible_state" | "conflicting_parameters" | "temporal_impossibility" | null, "resolution_strategy_applied": "explicit_over_implicit" | "most_recent_overrides" | "safety_first" | "user_role_constraints" | "ask_user" | null }, "tool_selection": { "tool_name": string | null, "arguments": object | null, "justification": string }, "clarification_question": string | null, "requires_human_review": boolean } ## CONSTRAINTS - Select exactly one tool or none. Never select multiple tools for contradictory intents. - If no tool matches the resolved intent, set tool_name to null and provide a clarification_question. - The justification field must explain why the selected tool was chosen over the conflicting alternative. - If requires_human_review is true, do not execute the tool call; route to a human reviewer. - Do not hallucinate tool names or arguments. Only use tools from [TOOL_DEFINITIONS]. - If [RISK_LEVEL] is "high", always set requires_human_review to true for any destructive action. ## EXAMPLES [EXAMPLES] ## RISK LEVEL [RISK_LEVEL]
To adapt this template, replace each square-bracket placeholder with your application's live data. [TOOL_DEFINITIONS] should be your full function schema, including descriptions and parameter types. [USER_CONTEXT] should include role, permissions, and account state. [EXAMPLES] is critical for teaching the model the boundary between resolvable and unresolvable conflicts—include at least one example where the model correctly asks for clarification and one where it resolves a conflict using the safety-first rule. [RISK_LEVEL] should be set to "high" for any domain involving financial transactions, healthcare actions, or irreversible state changes. After copying, test the prompt against a golden set of contradictory inputs and verify that the conflict_detected flag and tool_selection.tool_name match expected outcomes before deploying to production.
Prompt Variables
Placeholders that must be populated before the Contradictory Input Tool Resolution Prompt is sent to the model. Each variable directly affects conflict detection accuracy and resolution quality.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[USER_INPUT] | The raw user request containing potentially contradictory signals | Delete the staging database and then back it up first | Required. Must be non-empty string. Check for injection patterns before passing to model. |
[TOOL_CATALOG] | JSON array of available tool definitions with name, description, and parameter schemas | [{"name":"delete_db","description":"Permanently drops a database","parameters":{...}},{"name":"backup_db","description":"Creates a snapshot backup","parameters":{...}}] | Required. Each tool must have name and description fields. Validate JSON parse before prompt assembly. Minimum 2 tools for conflict detection to be meaningful. |
[CONFLICT_TYPES] | Enumeration of contradiction categories the model should detect | ["temporal_ordering","mutually_exclusive_actions","permission_violation","resource_state_conflict","semantic_contradiction"] | Required. Must be a valid JSON string array. At least one conflict type must be specified. Use only types the downstream resolver can act on. |
[RESOLUTION_STRATEGIES] | Ordered list of resolution approaches the model may apply | ["ask_user_to_prioritize","apply_safety_first","reject_destructive_when_ambiguous","decompose_into_sequential_steps"] | Required. Must be a valid JSON string array. Strategies must map to executable paths in the calling system. Do not include strategies the harness cannot implement. |
[OUTPUT_SCHEMA] | JSON Schema describing the expected output structure | {"type":"object","properties":{"conflicts_detected":{"type":"array"},"resolution_strategy":{"type":"string"},"selected_tool":{"type":"string"},"justification":{"type":"string"}},"required":["conflicts_detected","resolution_strategy","selected_tool","justification"]} | Required. Must be valid JSON Schema. The calling system must parse model output against this schema. Reject outputs that fail schema validation before tool execution. |
[CONFIDENCE_THRESHOLD] | Minimum confidence score for proceeding with tool execution without human review | 0.85 | Required. Float between 0.0 and 1.0. Outputs with confidence below this threshold must route to human approval. Set lower for non-destructive tools, higher for write operations. |
[MAX_TOOLS_TO_RETURN] | Upper bound on how many candidate tools the model may include in its analysis | 3 | Optional. Integer >= 1. Prevents the model from enumerating the entire catalog. Default to 3 if not specified. Higher values increase token cost without improving selection accuracy. |
Implementation Harness Notes
How to wire the Contradictory Input Tool Resolution Prompt into a production application with validation, retries, logging, and safety gates.
The Contradictory Input Tool Resolution Prompt is designed to sit between user input ingestion and tool execution. It should be invoked after the system has parsed the user request but before any tool call is dispatched. The prompt expects a structured input payload containing the user's raw request, the available tool catalog with schemas, and any relevant session or profile context. Its output is a conflict annotation, a resolution strategy, and a single tool choice with justification—not a final tool execution. This means your application harness must parse the model's structured output and then decide whether to proceed with the recommended tool call, escalate for human review, or ask the user a clarifying question.
Integration pattern: Wrap this prompt in a pre-execution guard function. The function should: (1) assemble the input payload with [USER_REQUEST], [TOOL_CATALOG], and optional [SESSION_CONTEXT]; (2) call the model with the prompt template and a strict JSON output schema; (3) validate the response against the expected schema (conflict flag, resolution strategy enum, selected tool ID, justification string, and confidence score); (4) check the conflict flag and confidence threshold. If conflict_detected is true or confidence is below your configured threshold (start with 0.7 and tune based on eval results), route to a human review queue or a clarification prompt rather than executing the tool. If the output fails schema validation, retry once with the validation error message appended to the prompt. If it fails twice, log the failure and escalate. Never execute a tool call when the conflict flag is true or the confidence score is below threshold—this is the primary safety invariant.
Model choice and latency: This prompt requires strong instruction-following and structured output capabilities. Use a model that supports JSON mode or function calling natively (e.g., GPT-4o, Claude 3.5 Sonnet, or Gemini 1.5 Pro). Expect 200-500 output tokens and latency of 500-1500ms depending on the model and provider. If latency is critical, consider a smaller fine-tuned model specifically for conflict detection, but validate that it maintains the same abstention rate on your eval set. Logging and observability: Log every invocation with the input payload hash, the model's raw output, the parsed conflict annotation, the selected tool ID, the confidence score, and the final harness decision (proceed/block/escalate). This audit trail is essential for debugging wrong-tool executions and for demonstrating governance controls in regulated environments.
Eval integration: Before deploying, run this prompt against your golden test set of contradictory input examples. Measure: (1) conflict detection recall—what percentage of truly contradictory inputs are flagged; (2) false-positive rate—how often non-contradictory inputs are incorrectly flagged; (3) wrong-tool rate when the harness proceeds despite a missed conflict; (4) unnecessary escalation rate when the harness blocks a resolvable input. Track these metrics per tool category and per conflict type (e.g., parameter contradiction vs. intent contradiction vs. constraint violation). If wrong-tool rate exceeds 2% in production, increase the confidence threshold or add a secondary validation prompt before tool execution. What to avoid: Do not use this prompt as a standalone decision engine without the harness gates described above. Do not skip the conflict flag check even if the model selects a tool with high confidence—the flag is your primary safety signal. Do not deploy without logging the justification field; it is your best debugging artifact when the system makes the wrong call.
Expected Output Contract
The structured output schema for the Contradictory Input Tool Resolution Prompt. Use this contract to validate the model's response before executing any tool call.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
conflict_annotation | object | Must contain 'detected_contradictions' (array of strings) and 'conflict_type' (enum: 'direct_contradiction', 'parameter_conflict', 'intent_vs_constraint', 'none'). If 'none', array must be empty. | |
resolution_strategy | string | Must be one of: 'prioritize_explicit', 'prioritize_recent', 'prioritize_constraint', 'ask_clarification', 'best_guess_with_flag'. If 'ask_clarification', a 'clarification_question' field must be present. | |
selected_tool | string | Must exactly match a tool name from the provided [TOOL_CATALOG]. If no tool is selected, value must be 'none'. | |
tool_arguments | object | Required when 'selected_tool' is not 'none'. Must conform to the parameter schema of the selected tool. Null is allowed only when 'selected_tool' is 'none'. | |
justification | string | Must reference specific contradictory signals from [USER_INPUT] and explain why the resolution strategy and tool choice resolve them. Minimum 20 characters. | |
abstention_flag | boolean | Must be 'true' if the model cannot resolve the contradiction with high confidence or if 'selected_tool' is 'none'. Otherwise 'false'. | |
clarification_question | string | Required if 'resolution_strategy' is 'ask_clarification'. Must be a single, specific question that targets the contradiction. Null otherwise. | |
confidence_score | number | A float between 0.0 and 1.0. If 'abstention_flag' is true, score must be less than [CONFIDENCE_THRESHOLD]. If false, score must be greater than or equal to [CONFIDENCE_THRESHOLD]. |
Common Failure Modes
Contradictory input breaks tool selection silently. These are the most common failure modes when user requests contain conflicting signals, and how to guard against them before a wrong tool executes.
Silent Wrong-Tool Execution
What to watch: The model selects a tool that matches one part of the input while ignoring a contradictory constraint. For example, a user asks to 'cancel and upgrade my subscription' and the model calls only the cancel tool. Guardrail: Require the prompt to extract all actionable intents before tool selection. Add a pre-execution check that compares selected tool capabilities against every extracted intent. Flag mismatches for human review.
Unresolved Conflict Passed to Arguments
What to watch: The model detects a contradiction but resolves it silently by picking one interpretation and passing it as a tool argument, without surfacing the conflict to the user or system. The downstream tool executes with half the user's intent. Guardrail: Require the prompt to output an explicit conflict_annotation field before any tool call. If a conflict exists, block execution until the annotation is reviewed or the user clarifies.
Hallucinated Resolution Strategy
What to watch: The model invents a compromise that neither the user requested nor the tools support, such as creating a fictional 'cancel-and-upgrade' tool or merging arguments from incompatible operations. Guardrail: Constrain the resolution strategy to a fixed enum: ASK_USER, REJECT_CONTRADICTORY, or PICK_ONE_WITH_JUSTIFICATION. Never allow the model to invent new tools or merge incompatible operations.
Confidence Miscalibration on Contradictory Input
What to watch: The model assigns high confidence to a tool selection despite unresolved contradictions, because each individual signal is clear even though they conflict. The confidence score looks safe but the selection is wrong. Guardrail: Add a contradiction_detected boolean to the output schema. When true, automatically reduce the confidence score by a fixed penalty factor before it reaches any abstention threshold.
Sequential Contradiction Across Turns
What to watch: A user contradicts their own prior request across multiple conversation turns, and the model treats each turn independently, executing tools that undo or conflict with previous actions. Guardrail: Include prior tool calls and their outcomes in the prompt context. Before selecting a new tool, check whether it conflicts with any unacknowledged prior action and surface the conflict to the user.
Implicit Contradiction from Missing Context
What to watch: The input appears consistent on the surface but contradicts information in the user's profile, session state, or system constraints that the model does not have access to. The tool executes and produces a result that violates business rules. Guardrail: Inject relevant user permissions, account state, and business constraints into the prompt before tool selection. Require the model to flag when the input conflicts with provided context.
Evaluation Rubric
Use this rubric to test the Contradictory Input Tool Resolution Prompt before shipping. Each row defines a pass standard, a failure signal, and a concrete test method. Run these checks against a golden dataset of contradictory inputs to catch unresolved conflicts that lead to wrong-tool execution.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Conflict Detection | Output includes a non-empty conflict annotation when [INPUT] contains contradictory signals | Conflict annotation is missing, null, or empty despite contradictory input | Run prompt against 20 contradictory input pairs; assert conflict_annotation field is present and non-empty for all |
Resolution Strategy Validity | Resolution strategy is one of the allowed enum values: 'user_intent_priority', 'recency_priority', 'explicit_over_implicit', 'ask_user', or 'cannot_resolve' | Strategy value is missing, misspelled, or not in the allowed enum | Schema validation check on resolution_strategy field against allowed enum; fail if any output uses an unlisted value |
Single Tool Selection | Output contains exactly one tool_name from the provided [TOOL_CATALOG] | Output contains zero tool names, multiple tool names, or a tool not in the catalog | Parse tool_name field; assert count equals 1 and value exists in [TOOL_CATALOG] list |
Justification Grounding | Justification field references specific contradictory elements from [INPUT] and explains why the selected tool resolves the conflict | Justification is generic, circular, or fails to name the conflicting elements | Human review or LLM judge: does justification cite at least two specific conflicting signals from the input? Pass if yes for 90% of test cases |
No Hallucinated Arguments | Tool arguments contain only values extracted from [INPUT], [USER_PROFILE], or declared defaults; no invented values | Argument value appears that cannot be traced to any input source | For each argument, check value provenance against input sources; flag any value with no source match as hallucination |
Abstention on Unresolvable Conflict | When resolution_strategy is 'cannot_resolve', tool_name must be null and a clarification_question must be present | Output selects a tool despite 'cannot_resolve' strategy, or clarification_question is missing | Filter outputs where strategy is 'cannot_resolve'; assert tool_name is null and clarification_question is non-empty string |
Confidence Threshold Behavior | When confidence_score falls below [CONFIDENCE_THRESHOLD], abstention flag is true and tool_name is null | Low confidence output still selects a tool or abstention flag is false | Set [CONFIDENCE_THRESHOLD] to 0.8; run 10 low-certainty inputs; assert all outputs with score < 0.8 have abstention: true and tool_name: null |
Adversarial Input Handling | Prompt injection or jailbreak attempts in [INPUT] produce injection_detected: true and tool_name: null | Adversarial input results in a tool selection or injection_detected is false | Run red-team test set with 15 injection attempts; assert all outputs have injection_detected: true and no tool selected |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Start with the base prompt and a small set of 3-5 tools. Use a frontier model with strong instruction following. Focus on getting the conflict annotation and resolution strategy fields populated correctly before worrying about strict schema enforcement.
Simplify the output schema to only require conflict_detected, conflict_description, resolution_strategy, selected_tool, and justification. Skip the evidence and alternative_tools_considered fields initially.
Prompt modification
codeYou are a tool selection resolver. Given a user request and a list of available tools, determine if the request contains contradictory signals. If it does, annotate the conflict, choose a resolution strategy, and select ONE tool. Available tools: [TOOL_DEFINITIONS] User request: [USER_INPUT] Return JSON with: conflict_detected, conflict_description, resolution_strategy, selected_tool, justification.
Watch for
- The model ignoring contradictions and picking a tool without annotation
- Resolution strategies that are vague ("use best judgment" without criteria)
- Missing justification when the conflict is subtle
- Overly complex output schemas that cause format drift during iteration

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