Tool Calls Passing Validation But Missing User Intent
- Average speed
- km/h
- Result
- Finish time
- 50 min
- You entered
- Distance
- 10 km
- You entered
This article explains why a tool call can pass every validation check yet still fail to do what the user actually wanted, and how to close that gap. You will learn the common causes, concrete examples, and practical ways to design, test, and review tool calls so they truly serve the user’s intent.
Formula
The calculator above works out average pace and speed from a finish time and distance. The formulas are:
- Pace (min/km) = Finish time (minutes) ÷ Distance (km)
- Speed (km/h) = Distance (km) ÷ (Finish time (minutes) ÷ 60)
Variables: t = finish time in minutes, d = distance in kilometres. Pace is minutes per kilometre, speed is kilometres per hour.
Worked Example
Using the default values: finish time = 50 minutes, distance = 10 km.
- Pace = 50 ÷ 10 = 5.00 min/km
- Speed = 10 ÷ (50 ÷ 60) = 10 ÷ 0.8333 = 12.00 km/h
The calculator shows pace 5.00 min/km and speed 12.00 km/h.
Why Validation Isn’t Enough
Validation checks that inputs are well‑formed: the right type, within a range, and syntactically correct. But intent is about meaning. A user might type “10” when they meant 10 miles, not 10 kilometres, or enter a finish time that includes a rest stop they want excluded. The tool call passes validation because the data is plausible, yet the result is useless or misleading.
Validation is a necessary filter, not a guarantee of correctness. It catches typos and nonsense, but it cannot read the user’s mind. The gap between “valid” and “useful” is where most real‑world failures happen.
Common Causes of Missed Intent
- Ambiguous units: The user enters a number without specifying whether it’s miles or kilometres, pounds or kilograms, Celsius or Fahrenheit.
- Implicit assumptions: The tool assumes a flat route, no wind, or a constant pace, but the user’s situation is different.
- Different mental model: The user expects “average pace” to include stops, but the formula only uses moving time.
- Missing context: The user enters a distance and time but forgets to mention that the time is for a relay, not a single runner.
- Overly strict validation: The tool rejects a valid input because the range is too narrow (e.g., a 400‑km ride is flagged as impossible).
How to Design Tool Calls That Respect Intent
Start by asking what the user is really trying to accomplish, then make the tool ask for that context explicitly.
- Ask for units explicitly. Provide a dropdown for miles/km, or require the user to type “10 km” instead of just “10”.
- Offer sensible defaults. If most users run on flat roads, default to “flat” but let them change it.
- Explain assumptions. Show a line like “Assumes no stops and constant pace” so the user can correct it.
- Use progressive disclosure. Start with basic fields, then show advanced options (wind, elevation, rest time) only if the user opens them.
- Validate with intent in mind. Instead of just checking ranges, check that the result is plausible (e.g., a 2‑minute kilometre pace is physically impossible for a human).
Testing for Intent, Not Just Validity
Unit tests that feed valid inputs and check the output are not enough. You need to test with realistic user scenarios.
- Test with inputs that are technically valid but semantically odd (e.g., a 1‑km run in 5 minutes, which is a world‑record pace).
- Ask beta users to try the tool without instructions and note where they get confused.
- Add a “did you mean?” check for common mistakes (e.g., if the user enters 10 and the tool assumes km, but the result is an unrealistic pace, suggest miles).
- Log real‑world failures and review them regularly to spot patterns.
Common Mistakes Users Make (and How to Help)
Users often mix up units, forget to convert, or enter times in the wrong format (e.g., 1:30 meaning 1 hour 30 minutes vs. 1.30 hours).
To help: accept multiple formats (1:30, 1.5, 90) and clearly label the expected unit. Show the result in both metric and imperial if relevant. If the result seems extreme, flag it with a warning like “This pace is faster than the current world record – did you enter the correct time?”
When the Tool’s Formula Is the Problem
Sometimes the formula itself is too simplistic. For an average pace calculator, the formula is fine for a steady run, but it fails for intervals or hilly routes. In that case, the tool should say “This calculator assumes a steady pace on flat ground” and point to a more advanced tool if needed.
It’s better to be honest about the tool’s limits than to give a precise‑looking but wrong answer.
Frequently Asked Questions
Why does my tool pass validation but give a wrong answer?
Validation only checks that the input is well‑formed. It doesn’t check that the input matches what you intended. For example, entering “10” for distance is valid, but if you meant miles and the tool assumes km, the pace will be off by a factor of 1.609.
How can I make my tool catch unit mistakes automatically?
Ask for units explicitly, or use a smart default and let the user override. You can also add a sanity check: if the calculated pace is faster than about 2.5 min/km (world‑record level), warn the user that the input may be in the wrong unit.
What’s the difference between validation and verification?
Validation checks that the input is acceptable (type, range, format). Verification checks that the output matches the user’s intent. Verification often requires additional context, like asking “Does this pace seem right to you?”
Should I let users enter free‑form text instead of numbers?
Free‑form text can capture intent better (e.g., “10 km in 50 min”), but it’s harder to parse. A hybrid approach—numbers with unit dropdowns—is usually the best balance.
How do I know when to add more fields vs. keep it simple?
Add fields only if they change the result significantly and are likely to be used. If most users don’t care about wind or elevation, keep them out. You can always add an “advanced” section.
Can I use machine learning to detect intent?
Yes, but for a simple calculator it’s overkill. Rule‑based checks (like unit detection and plausibility ranges) are cheaper and easier to debug. Save ML for cases where the user’s language is genuinely ambiguous.
Related
Formula used
in t | Finish time | min | 50 | 0 in d | Distance | km | 10 | 0 out pace | Average pace | min/km | t / d | 2 out speed | Average speed | km/h | d / (t / 60) | 2
Each line is one input (in, sel, list) or one result (out: label, unit, formula, decimals). How the calculators work
Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.