Where this is needed
Reproducing an agent bug, building a test fixture, or writing a few-shot example that includes a tool call. All three require hand-writing message blocks that frameworks normally generate, and the structure is fiddly.
The identifier linking a call to its result is the part most often got wrong. A mismatch produces an API error that names neither the call nor the result.
The provider difference
Anthropic represents calls as content blocks inside an assistant message, with results as blocks inside a following user message. OpenAI uses a tool_calls array on the assistant message and separate messages with role "tool".
They are different enough that porting by hand is unreliable, which is why both are generated from the same input here.