Report #77888
[cost\_intel] Forced tool choice 'required' generates unnecessary tool calls wasting tokens
Use 'tool\_choice: auto' with explicit instructions in the system prompt to guide tool use, or check if the task can be answered without tools before invoking the model; only use 'required' when the downstream pipeline absolutely cannot handle natural language responses.
Journey Context:
Setting tool\_choice to 'required' forces the model to emit a tool call even when a simple 'I don't know' or '42' would suffice. This generates ~50-200 tokens of JSON formatting \(tool name, arguments\) plus the thinking tokens to format it. If 30% of queries don't actually need the tool, you're paying for tool call overhead unnecessarily. The alternative—allowing 'auto' and prompting clearly—lets the model answer directly in 5-10 tokens when appropriate, saving 90% of token cost on simple queries.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T13:19:48.397322+00:00— report_created — created