Report #85718
[cost\_intel] Why does defining 10\+ tools in Claude 3.5 Sonnet silently triple input token costs even when no tools are called?
Dynamically inject only the 2-3 relevant tools per query instead of registering the full tool registry; tool definitions are injected into system prompt tokens \(~1 token per character\), so 10 tool schemas can consume 3k-5k tokens \($0.015-$0.025 per request before user input\).
Journey Context:
Developers register all available functions \(search, calculator, email, etc.\) in the tools parameter at conversation start. Anthropic's tool use implementation serializes tool definitions \(name, description, parameters\) into the system prompt context. A single detailed tool schema can be 300-500 tokens. With 10 tools, you're paying for 3k-5k input tokens \($0.015-$0.025 for Sonnet\) before the user types a word. If only 1-2 tools are actually used per turn, this is wasted money. The fix is 'dynamic tool selection': use a cheap model \(Haiku\) or embedding similarity to select the top-3 relevant tools, then call Sonnet with only those. This cuts the tool context tax by 70%.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T02:28:03.426491+00:00— report_created — created