Tool use vs Function calling
Overview
Tool use and function calling (also tool calling) describe the same underlying capability at different levels of abstraction. Tool use is the general principle that a language model can invoke external capabilities — search, code execution, APIs — to act beyond text generation. Function calling is the common implementation in which the developer supplies a structured schema of available functions, and the model emits a structured request (name plus arguments) that the application executes.[1][2]
The terminology is fragmented across vendors — "tool use," "function calling," and "tool calling" are used for the same feature — which causes developers to mistake one capability for three.
How it works
- The application declares tools/functions with a name, description, and parameter schema.
- The model decides whether to call a tool and emits a structured invocation (the function call).
- The application executes the call and returns the result, which the model incorporates into its next step.
This loop is the core mechanism underlying AI agents; "tool use" names the concept, "function calling" names the schema-constrained mechanism.
| Term | Level |
|---|---|
| Tool use | General principle: model invokes external capabilities |
| Function calling | Implementation: schema-defined invocations |
| Tool calling | Vendor-neutral synonym for function calling |
Function calling is not a different capability from tool use: it is the structured mechanism that realizes it. Differences between vendor APIs are interface details, not distinct features.
Examples
- A model returning
{"name": "get_weather", "arguments": {"city": "Paris"}}for the app to execute is function calling. - Describing that the model "can use a weather tool" is the tool-use framing of the same thing.