Tool calling
Giving a model functions it can ask to run — look something up, do an action — so it can go beyond what is in the prompt.
Tool calling lets a model request that your code run a function: fetch a record, search a database, send a message. You describe the available tools and their arguments; the model decides when to call one and with what values; your code runs it and feeds the result back. Repeating that loop is the basis of every agent.
The tool's description is itself a prompt — it is what the model reads to decide whether the tool fits — so it should say when to use the tool and when not to. Vague descriptions cause the model to call the wrong tool, or none at all.