Tool_choice = auto sending content and tool_calls

You have the answer in diagram and more details in the link.


Tool choice

By default the model will determine when and how many tools to use. You can force specific behavior with the tool_choice parameter.

  1. Auto: (Default) Call zero, one, or multiple functions. tool_choice: "auto"

  2. Required: Call one or more functions. tool_choice: "required"

  3. Forced Function: Call exactly one specific function. tool_choice: {"type": "function", "name": "get_weather"}

https://platform.openai.com/docs/guides/function-calling?api-mode=responses#additional-configurations