The Schema Is the Interface
When an AI model "uses a tool," it doesn't execute code. It doesn't import a library. It doesn't call a function. What it does is read a structured description of what a tool can do, decide whether that tool is relevant to the current task, and generate a JSON object containing the arguments it wants to pass. Your application then executes the actual function and returns the result.
This is the general architecture of tool use across major AI providers in 2026 — OpenAI, Anthropic, Google, and the open-source ecosystem. In the tool-calling interface, the model sees the schema rather than executing or inspecting the implementation. That schema is the entire interface contract.
Understanding this distinction is critical for anyone building with AI agents. The quality of your tool definitions directly determines whether the model calls the right tool, passes the right arguments, and produces useful results. Bad schemas produce bad tool calls — not because the model is incapable, but because you gave it the wrong map.
Anatomy of a Tool Definition
Every tool definition, regardless of provider, has three components:
Name — a short identifier the model uses to reference the tool. This appears in the model's output when it decides to call a tool. Names should be descriptive and unambiguous: get_weather is clear; process_data is not.
Description — a plain-English explanation of what the tool does and when to use it. This is the most important field. The model reads this description to decide whether the tool is relevant to the user's request. A vague description leads to incorrect tool selection. A precise description leads to correct tool selection.
Parameters — a JSON Schema object describing the inputs the tool accepts. Each parameter has a type, a description, and an indication of whether it's required. The model reads these definitions to decide what arguments to generate. Parameter descriptions should include the expected format, valid ranges, and concrete examples.
Here's what this looks like in practice. When you define a tool for Claude, you provide an input_schema with a top-level type of object, a properties map describing each parameter, and a required array listing mandatory fields. OpenAI uses the same structure under a parameters key. Google's Gemini follows the same pattern. The JSON Schema format has become the universal language for describing tools to AI models.
Why Descriptions Matter More Than Code
Tool calling reliability lives almost entirely in three places: the JSON Schema you give the model, the plain-English description attached to each tool and each parameter, and the error-handling logic in your agent loop. Of these three, the description is the highest-leverage surface.