Tool Calling vs Function Calling

The honest answer is that they're the same mechanism, described with two names that grew apart slightly over time. "Function calling" is the older term. "Tool calling" became the broader umbrella once vendor-run capabilities — web search, code execution — showed up using that same request-and-response pattern but weren't a custom function anyone wrote. In casual use, people still say either one to mean the whole thing.

What tool calling is

The broader mechanism: a model requests that a specific action run, with specific arguments, and the application actually carries it out. It covers both a custom function you wrote and a built-in capability a vendor supplies. Learn more: Tool Calling.

What function calling is

The same mechanism applied to one specific kind of tool: a custom function you define yourself, described well enough for the model to call correctly — as distinct from a vendor's built-in tool. Learn more: Function Calling, including why the two names exist in the first place.

Side by side

Tool callingFunction calling
ScopeAny tool — custom or vendor-suppliedSpecifically a custom function you wrote
Underlying mechanismIdenticalIdentical
When the distinction mattersWhen you need to be precise about built-in vs. customSame case, from the narrower side
Everyday useUsed interchangeably with the otherUsed interchangeably with the other

When the distinction is actually worth making

Almost never in casual conversation — but it matters when a provider's own documentation draws the line, since a vendor's built-in tool and a function you wrote can have different setup, different permissions, or different pricing behind them even though the model calls both the same way. Reach for the precise term when you're reading a specific provider's docs or writing your own; use either loosely everywhere else.

In this guide
  1. What tool calling is
  2. What function calling is
  3. Side by side
  4. When the distinction is actually worth making
  5. FAQ

FAQ

If a provider's docs call something "function calling," does that mean it can't be a vendor-run built-in tool?

Usually, yes — by convention, "function" specifically names the custom, schema-defined kind you wrote yourself, distinct from a built-in tool the vendor supplies. The mechanism that calls either one is the same; the name is just narrower.