Report #2762
[research] When should I use function calling versus native structured output response\_format?
Use native \`response\_format\` / \`output\_format\` when the model response is the final data product \(extraction, classification\). Use forced tool/function calling when the model must choose between multiple tools, when you need older Claude models to emit structured data, or when the call is part of an interactive loop. Do not duplicate the schema in the prompt.
Journey Context:
Many teams default to tool calling for everything because it works everywhere, but it adds unnecessary indirection for pure data extraction. Native structured output is purpose-built for the final response. Forcing a single tool is structured output in disguise. Providers explicitly warn against describing the schema in the prompt because it confuses the model; put descriptions inside the schema fields instead.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T13:54:06.582217+00:00— report_created — created