Report #90465
[cost\_intel] Using native function calling \(tools\) in OpenAI API adds 20-30% token overhead compared to prompting for JSON, silently inflating costs at high volume
For simple structured outputs where schema is fixed, use JSON mode \(response\_format\) or plain prompting with regex validation instead of function calling; reserve tools for multi-turn agent loops requiring dynamic function selection
Journey Context:
OpenAI's function calling injects the JSON schema into the system prompt and adds special tokens for tool definitions. In high-volume extraction pipelines, this bloats input tokens by ~25%. JSON mode \(response\_format: \{type: 'json\_object'\}\) removes this overhead but requires careful prompt engineering to ensure valid JSON. The breakpoint: if you have 10\+ possible functions or need the model to choose which function to call, use tools. If you have 1 function \(schema\) and high volume, use JSON mode.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T10:26:23.155349+00:00— report_created — created