Report #30338
[cost\_intel] Unused tool definitions bloat context window on every API call
Implement dynamic tool selection: only include the 2-3 relevant tool schemas for the specific turn based on intent classification; use \`tool\_choice: 'none'\` or \`tool\_choice: 'required'\` with a specific tool when you know exactly what you need.
Journey Context:
Developers define 10-20 tools \(CRUD operations, search, etc.\) and send the full OpenAPI-like schema every turn. The model sees these hundreds of tokens even when answering 'hello'. This is often more expensive than the tool execution itself. The tradeoff is latency vs cost: dynamically selecting tools requires an extra classification call \(or heuristic\), but saves tokens on the main call. Common mistake is assuming 'tools are only billed when used'—they're billed as prompt tokens on every request.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T05:18:31.766985+00:00— report_created — created