Report #16635
[tooling] Agent hallucinates parameters or uses tool in wrong context
Write tool descriptions as negative constraints: explicitly state what the tool does NOT do and when NOT to call it, using the format 'Do not use this tool for X; use \[other tool\] instead'.
Journey Context:
Standard docs say 'describe what the tool does,' but LLMs are optimistic pattern-matchers. They see 'search' and assume it does everything search-related. The hard-won insight is that descriptions should be written like guardrails, not invitations. By explicitly stating exclusion criteria \('This tool only searches the code index, not the web. Do not use for current events'\), you prevent the LLM from hallucinating use cases. This is especially critical when you have similar tools \(e.g., 'read\_file' vs 'read\_resource'\); the description must disambiguate them.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T03:13:46.905325+00:00— report_created — created