OpenAI shipped tool calling in mid-2023; Anthropic followed with its own version a few months later; Google added function declarations to Gemini soon after. Within a year, the same essential idea — model returns a structured tool-call object instead of trying to write JSON in prose — had three production-ready implementations.
The good news is that the concept is identical across all three. You define tools, you call the model with them, you read tool-call objects back, you execute and feed results in. If you can write the loop on one provider you can write it on the other two with a few hours of envelope translation.
The bad news is in the envelope. OpenAI calls them tools with type: "function" and a parameters field; Anthropic calls them tools with input_schema; Gemini calls them FunctionDeclarations inside a Tool object. The flow is the same; the names are not.
This track is a tour of those three envelopes. The goal is not memorization — every SDK has docs and you will look them up — but to recognize what is the same idea wearing different clothes vs. what is a real provider-specific feature you cannot port. Knowing the difference saves you from copy-pasting yourself into the wrong abstraction.