Lesson 2 — tool calling: how a chat model gets hands
We published the full walkthrough and runnable implementations in JavaScript and Python in Lesson 2: tool calling - how a chat model gets hands. You can follow the breakdown, inspect the exact failure modes, and test the ring directly in the harness against a virtual localStorage filesystem without leaving your browser tab.
A chat model cannot check the weather, read a file, or send an email. It can only generate text. An AI agent is not born from a complex orchestration framework, a planning module, or an external memory layer; it is born from an agreement that turns generated text into an executable instruction. The model simply halts its raw text output to emit a structured schema containing a function name and arguments, your application executes the native code, and you pass the return value back into the conversation array under the matching call ID.
That entire loop takes twenty lines of vanilla code, but the details make or break production reliability. When a function fails, dropping the result breaks the protocol; returning the error allows the model to reason through the failure and self-correct.


Replies