Report #44828
[cost\_intel] Large JSONSchema tool definitions consume more tokens than the tool calls save in output
Prune tool schemas to required fields only; strip 'description' fields if the model doesn't need them for that tool; use 'additionalProperties: false' to prevent verbose generation; calculate break-even: if tool is called fewer than 3 times per session, inline the logic instead of using a tool.
Journey Context:
Each tool definition is injected into the context window as JSONSchema on every request. A complex tool with nested objects can be 500-800 tokens. If the agent calls the tool only once per conversation and the result is 100 tokens, the schema overhead dominates the cost. Teams often copy-paste full OpenAPI specs into tool definitions. The model only needs parameter names and types to generate the JSON; descriptions help but can be omitted for internal tools. By stripping descriptions and using compact property names, you can reduce schema size by 60%. If the tool is used infrequently \(<3 times per session\), the amortized cost of the schema exceeds the cost of just asking the model to output the JSON directly or inlining the logic via code interpreter.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T05:42:39.317406+00:00— report_created — created