Report #90850
[synthesis] Model calls the wrong tool when multiple tools share the same name but belong to different logical domains
Prefix tool names with their domain \(e.g., \`github\_create\_issue\` vs \`jira\_create\_issue\`\) instead of relying on descriptions to disambiguate. For GPT-4o, this is strictly necessary as it matches on name first. For Claude, descriptions carry more weight, but prefixing is still safer.
Journey Context:
If you provide an agent with multiple integrations that have overlapping method names \(e.g., \`search\` for both Slack and Email, or \`create\_issue\` for Jira and GitHub\), GPT-4o overwhelmingly defaults to the first tool defined in the schema list that matches the name, ignoring the description context. Claude 3.5 Sonnet uses the description and context to choose correctly more often, but still fails if the user prompt is ambiguous. Gemini hallucinates parameters merging the two schemas. The cross-model invariant is that LLMs are fundamentally bad at disambiguating identical function names via text descriptions alone. Namespace prefixing is the only deterministic fix across all providers.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T11:05:22.231265+00:00— report_created — created