I’m experimenting with the new Responses API, but I’m only ever seeing one function call per response, even though I’ve set "parallel_tool_calls": true
.
My Responses API payload
{
"input": [
{
"content": [
{ "text": "Can you check my tasks and notes on HubSpot?", "type": "input_text" }
],
"role": "user"
}
],
"model": "gpt-4o",
"instructions": "....",
"parallel_tool_calls": true,
"store": false,
"user": "...",
"tool_choice": "auto",
"tools": [
{ "type": "web_search_preview" },
{
"name": "Tool_Nango_Hubspot_OwnerTaskList",
"description": "Get my HubSpot tasks",
"parameters": {...}
},
{
"name": "Tool_Nango_Hubspot_OwnerNoteList",
"description": "Get my HubSpot notes",
"parameters": {...}
}
]
}
What I get back
{
"output": [
{
"type": "function_call",
"name": "Tool_Nango_Hubspot_OwnerTaskList",
"arguments": {
"action_description": "Retrieving the most recent tasks for from HubSpot.",
"object_type": "task",
"sort_by": "hs_lastmodifieddate"
}
}
],
"parallel_tool_calls": true,
…
}
What I expected
• Both Tool_Nango_Hubspot_OwnerTaskList and Tool_Nango_Hubspot_OwnerNoteList to be emitted in the same Responses API reply, so I can execute them in parallel on my end.
Actual behavior
• Only the Tool_Nango_Hubspot_OwnerTaskList tool is ever called; the assistant stops before calling the Tool_Nango_Hubspot_OwnerNoteList tool.
Questions
-
Does the Responses API currently support true parallel function invocation in GPT‑4o?
-
Are there additional flags, instruction formats, or tool‑ordering requirements I’m missing?
-
Any known limitations or best practices for getting multiple function calls in a single Responses API response?
Thanks in advance for any insights!