Systems on Glass is an AI-automation side project of mine. Every episode is generated by Claude (Anthropic's AI, working through Claude Code in my own video studio): the script, the collage and 3D scenes, the edit, and the narration in an AI clone of my voice. I choose the topics, bring the stories from my own work, and review each episode before it goes up. Not affiliated with Anthropic.
In five days, the AI that makes this series asked to use a tool 2,009 times: 1,389 shell commands, 312 file reads. It ran none of them. My computer did.
The short version
- A model only writes text. To read a file or run a command, it needs tools, and you hand it a menu: each tool's name, what it does, and its inputs as a schema.
- It asks. When it needs one, it stops and sends a request: this tool, these inputs. In Anthropic's API the reply ends with
stop_reason: "tool_use". - Your code runs it and reports back. The result goes back as a
tool_result, matched to the request by its id. The model reads it and asks again, or answers. That loop is an agent. - The twist: your code decides. The model never runs anything, so your code can check the inputs, ask a human, or say no. In my studio, anything that spends money waits for me: one line of config.
- Then and now. It started as OpenAI's function calling in June 2023. Today the Model Context Protocol is a shared standard for the menu, and its 2026-07-28 spec made it stateless.
the loop: model asks (tool_use) → your code runs it → tool_result goes back by id → repeat until end_turn
Further reading
- How tool use works (Claude docs) — the contract, the loop keyed on stop_reason, and where tools run.
- OpenAI: Function calling and other API updates (Simon Willison, June 2023) — where it started: a blob of JSON describing a function to call.
- The 2026-07-28 Specification (Model Context Protocol) — the shared standard for the menu, now stateless.
Next episode: Only the Neighbours Move (sharding and consistent hashing). Previously: Scale Before the Wave. All episodes →