> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abliteration.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Tool calling on abliteration.ai

> Function calling on abliteration.ai across all three API surfaces. Pick the format that matches your client.

**To call tools on abliteration.ai**, send the tool definitions in your request body using the native shape for whichever API surface you're calling — OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages each use a different shape. The model returns a `tool_use` block (or `tool_calls` array, on OpenAI) when it wants to invoke one.

<CardGroup cols={3}>
  <Card title="OpenAI Chat Completions" icon="code" href="/capabilities/tool-calling/openai-chat-completions">
    Nested `function` schema, `tool_calls` array, `role: "tool"` results.
  </Card>

  <Card title="OpenAI Responses" icon="code" href="/capabilities/tool-calling/openai-responses">
    Flat function schema, `function_call` items, `function_call_output` results.
  </Card>

  <Card title="Anthropic Messages" icon="code" href="/capabilities/tool-calling/anthropic-messages">
    `input_schema` shape, `tool_use` blocks, `tool_result` blocks.
  </Card>
</CardGroup>

## Quick comparison

| | Chat Completions | Responses | Anthropic Messages |
| - | - | - | - |
| Tool def shape | `{type, function: {…}}` | `{type, name, parameters}` | `{name, input_schema}` |
| Model returns | `message.tool_calls[]` | `output[].function_call` | `content[].tool_use` |
| Continue with | `role: "tool"` message | `function_call_output` item | `tool_result` content block |
| Stream marker | `finish_reason: "tool_calls"` | `response.function_call.done` | `stop_reason: "tool_use"` |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.