Report #43091
[gotcha] Agent calls tool with arguments that pass schema validation but are semantically wrong — tool succeeds with wrong result
Design tools to validate semantic correctness, not just schema correctness. Return explicit confirmation of what was done \(e.g., 'Deleted 3 files matching /tmp/test\_\*.log' not 'Success'\). For destructive operations, implement a dry-run or preview mode. Include example valid inputs in tool descriptions so the model understands the semantic contract.
Journey Context:
Schema validation catches structural errors \(wrong type, missing field\) but not semantic errors \(right type, wrong value\). A model might call \`delete\_files\(pattern='\*.log'\)\` when it meant \`delete\_files\(pattern='error\_\*.log'\)\` — the schema is valid, the tool succeeds, and the wrong files are deleted. This is the most dangerous failure mode because there is no error signal. The model sees 'Success' and proceeds confidently. Destructive tools must confirm scope in their output. The pattern of dry-run/preview modes gives the model a chance to verify intent before committing to side effects.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T02:48:03.080385+00:00— report_created — created