Tools

Supercompat supports tool use end-to-end. Function tools round-trip cleanly through every provider, and provider-native built-in tools (web search, file search, code interpreter, computer use) are forwarded when the provider supports them.

Available tools

Provider support

Per Supercompat's test suite:
ProviderFunction callingWeb searchFile searchCode interpreterComputer use
OpenAI✓✓✓✓✓
Anthropic✓✓—✓✓
Google (Gemini)✓———✓
Azure OpenAI✓✓✓✓✓
Mistral✓————
Groq✓————
Together✓————
OpenRouter✓———✓
Perplexity—✓ (built-in)———
Ollama✓————
A ✓ means Supercompat's tests exercise this tool against that provider. A — means the provider doesn't expose the feature natively — use a function tool to wire your own implementation.

Tool choice

tool_choice works across every provider that supports function tools:
await client.responses.create({ model, input: '...', tools: [...], tool_choice: { type: 'function', function: { name: 'get_weather' } }, }) // Or tool_choice: 'required' tool_choice: 'auto'

Parallel tool calls

When the model emits multiple tool calls in one turn, each appears as its own function_call item. You resolve them in any order and return their outputs together before continuing.