tools parameter, and the model returns tool_calls when it determines a function should be used. You then execute these functions and optionally pass the results back to the model for further processing.
Patterns
Function calling fits a handful of common shapes. Pick the one that matches what you’re building, then follow the link for runnable Python, TypeScript, and cURL examples.| Pattern | Description | Use cases | Page |
|---|---|---|---|
| Simple | One function, one call | Basic utilities, simple queries | Call functions |
| Multiple | Choose from many functions | Many tools, model has to choose | Call functions |
| Parallel | Same function, multiple calls in one turn | Complex prompts, batched lookups | Parallel calls |
| Parallel multiple | Multiple functions, parallel calls | Single requests that need many tools | Parallel calls |
| Multi-step | Sequential function calling in one turn | Data-processing workflows | Agentic patterns |
| Multi-turn | Conversational context plus functions | Agents with humans in the loop | Agentic patterns |
| Vision | Tool use with image inputs | Extract structured data from images | Vision-language function calling |
Supported models
For the current list of models that support function calling, see the serverless and dedicated endpoint model catalogs.Next steps
- Call functions: one tool call per response (simple and multiple).
- Call functions in parallel: multiple tool calls in one response.
- Agentic patterns: multi-step and multi-turn loops.
- Vision-language function calling: combine image understanding with tool use on VLMs.
- Best practices: design tools and control selection for reliable calls.