Module 1 · Foundations of Agentic AI · scripted
Tools: Constraining the Actions
The cooking agent had no bounds
In the sveler conversation, the LLM just dreamed up actions. Whisk this, sift that, butter the pan — it assumed a fully equipped kitchen. But what if I don't have a particular utensil, appliance, or ingredient, and it tells me to take an action that uses it?
I could correct it reactively — "there's a problem, I don't own a whisk" — and let it adapt, the way it did with the thick batter. But every correction costs a turn, and the plan was built on assumptions the kitchen never satisfied. Instead, we do something better: we tell the LLM, up front, what tools it has at its disposal — and the tools bound the space of actions it can take.
Tools bound the action space
Same goal, different tools, different agent
Declare the tools in the conversation and watch the plan reshape itself around them:
I want to cook a salmon fillet dinner. The only tools I have: an electric kettle, a heatproof zip-top bag, aluminum foil, a clothes iron, an ironing board, and a coffee mug. Plan the cooking for me, one step at a time — only use what I have.
We can do this properly. Step 1: fill the kettle and boil it. While it heats, season the salmon and seal it flat in the zip-top bag, pressing the air out. We're going to poach it gently, sous-vide style — the bag is our pan and the kettle is our stove. Ready?
Ready. Salmon is in the bag.
Step 2: pour the boiling water into the mug and the bag's container — actually, better: put the bagged salmon in the emptied kettle base? No — never inside the kettle. Use the mug: it's small, so we'll poach in stages. Pour boiling water over the bagged fillet in the largest container you have and cover it with foil to hold heat. Tell me what you're using.
I found the ice bucket. Bag is in, water poured, foil on top.
The ice bucket is perfect — good find. Step 3: let it sit 12 minutes, re-topping with fresh boiling water at minute 6. Meanwhile, heat the iron to its hottest setting — when the salmon is poached, we'll wrap a foil packet around it, skin-side out, and press it with the iron for ninety seconds to crisp the skin.
Same goal — a salmon fillet dinner. But now my only tools are: a microwave, a coffee maker, and a roll of parchment paper.
Different kitchen, different technique. We'll steam, not poach: Step 1 — wrap the seasoned fillet loosely in parchment with a spoonful of water, en papillote. The coffee maker's hot plate will be our warming station for the finished fish, and the carafe gives us hot water for a quick sauce. Start by brewing a plain pot — water only.
- In Example 1, which tool got used for a purpose it wasn't designed for? Who decided that?
- What would each plan look like if we hadn't declared tools — and how many correction turns would it have cost?
- What's the difference between "the LLM can't do X" and "X isn't in the tool list"?
Constraints as a design instrument
Declaring tools turns out to be one of the most important design moves in all of agent building. The tool list is how we tell the agent what kind of world it is acting in — and, just as important, what it must work around. A creative plan under tight constraints (an iron as a grill) and a safe plan under generous ones both come from the same mechanism: the conversation states what actions exist, and the LLM composes a trajectory out of exactly those actions.
But so far, our tools are just names. A real microwave doesn't accept "warm it up a bit" — it wants a power level and a time. That's the next lesson: tools have controls.
Pick a task from your own domain and write two tool lists for it: one generous, one severe. Give an LLM the same goal with each list. Where did the severe list force something clever? Where did it force something worse?