define tool-function-calling --plain-english

Illustration for "Tool / Function Calling" from the Non-Technical Technical Dictionary

Tool / Function Calling

TLDR:An agent doesn't actually do anything.

An agent doesn't actually do anything. It fills out a work order and hands it to something that does.

Back when we covered agents, I told you the line between a chatbot and an agent is tools. The agent can call an API, run a command, send an email, update a price. I left out the part that trips people up, which is how a model "uses" a tool at all. Because here's the thing the model never stops being: words in a box. It can't reach through the screen and charge a credit card. It can't physically send an email. So how does it do anything?

It writes a work order.

Picture a general contractor running your kitchen remodel. He doesn't personally swing a hammer. He doesn't do the plumbing, the wiring, or the tile himself. When the job hits plumbing, he writes up a work order and hands it to a subcontractor, the plumber: "need a half-inch copper line run to the sink." The plumber does the actual work and reports back. The contractor reads the result and decides the next move.

That's function calling. You hand the model a list of tools it's allowed to request, each one like a blank work order it can fill out:

  • send_email
  • get_orders
  • post_to_slack

When the model decides it needs one, it doesn't do the job itself. It emits a tidy, structured request: call get_orders, with these dates. Something outside the model (the harness) reads that request, actually runs it against the real app, and hands the result back. The model reads what came back and decides what to do next.

The "structured" part is the whole point. It's not the model mumbling "maybe somebody should check the orders?" It fills out the form exactly: the tool's name, the inputs, in a shape a machine can act on without guessing. It's the difference between telling a waiter "I'll have the chicken thing" and writing the order down on the ticket, legibly, so the kitchen can read it.

Now look back at the agent loop. Decide a step, do it, look at what came back, decide the next step. Function calling is that "do it" hinge. It's the exact moment the words in the box turn into something happening in the real world.

Why a non-coder should care. Every time an agent did something for you, booked the meeting, pulled the report, dropped the message in Slack, that was a function call underneath. And it explains a quiet failure mode. If you didn't give the agent the right tool, it literally cannot do the job, no matter how clever it sounds. It'll either tell you it can't, or worse, pretend it did. The tools you hand it are the complete set of things it can touch in the real world. That's the same fence as the drive-thru menu from earlier. The only things it can order are the ones you printed on the board.

The model decides. The tools do. Function calling is the work order between them.