Report #75856
[synthesis] Orchestrators fail to resume conversation after a tool execution because tool results must be injected differently per model
Map the tool result to the exact schema required by each model: GPT-4o requires a message with role: 'tool' and tool\_call\_id; Claude requires a role: 'user' message with a tool\_result content block referencing the tool\_use\_id; Gemini requires a functionResponse.
Journey Context:
After a model requests a tool call and the tool executes, the result must be appended to the conversation history. GPT-4o uses a dedicated tool role. Claude requires the developer to pass the result back as a user message containing a tool\_result block—this is highly counterintuitive and a common source of 400 Bad Request errors for developers migrating from OpenAI. Gemini uses a functionResponse part. If an orchestrator treats the tool result as a generic assistant or user message, the API will reject the request on all platforms.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T09:55:08.425550+00:00— report_created — created