Report #87652
[cost\_intel] OpenAI tool definitions consume 10-50x more tokens than raw JSON due to formatting overhead
Minimize tool descriptions to essential schema only; remove verbose natural language from 'description' fields; use 'strict': true and 'additionalProperties': false to reduce token overhead; move complex logic to client-side if tool definitions exceed 500 tokens
Journey Context:
Developers count the characters in their tool JSON and assume that's the token cost. However, OpenAI embeds the tool definitions into the system message with specific formatting tokens \(function signatures, type annotations, and description embeddings\). In practice, a 200-character tool definition can consume 300-500 tokens. With 10 tools, you're burning 3000-5000 tokens \(~$0.15-$0.30 with GPT-4o\) before the user even types a message. The 'auto' tool choice then compounds this by forcing the model to 'think' about tools every turn. The alternative of using 'none' or 'required' with specific tools reduces this overhead significantly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T05:42:38.485214+00:00— report_created — created