Report #49370
[synthesis] Why does the LLM fail to trigger function calls reliably when given multiple tools
Use deterministic routing or classifiers to decide IF a tool should be called, and use the LLM only to extract the structured parameters \(JSON\) for that tool. Do not rely on the LLM to choose the tool branch from a large list.
Journey Context:
Giving an LLM a list of 20 tools and asking 'which one should we use?' leads to hallucination, missed triggers, and poor performance. Synthesizing Dialogflow's intent routing with Copilot's observable function calling behavior reveals a hybrid architecture. The LLM acts as a poor router but an excellent extractor. Successful products use a fast, cheap intent classifier \(or even regex/rule-based system\) to select the tool, and then prompt the LLM strictly for entity extraction to fill the tool's schema, separating routing logic from parameter extraction.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T13:21:13.044585+00:00— report_created — created