Skip to main content
abliteration.ai supports tool calling on every API surface, but each surface uses a different request/response shape. Pick the one that matches your client.

OpenAI Chat Completions

Nested function schema, tool_calls array, role: "tool" results.

OpenAI Responses

Flat function schema, function_call items, function_call_output results.

Anthropic Messages

input_schema shape, tool_use blocks, tool_result blocks.

Quick comparison

Chat CompletionsResponsesAnthropic Messages
Tool def shape{type, function: {…}}{type, name, parameters}{name, input_schema}
Model returnsmessage.tool_calls[]output[].function_callcontent[].tool_use
Continue withrole: "tool" messagefunction_call_output itemtool_result content block
Stream markerfinish_reason: "tool_calls"response.function_call.donestop_reason: "tool_use"