Module 1 · Foundations of Agentic AI · scripted

Exercise: Give the Agent Tools

35 min

The goal: a driver with a declared vocabulary

In this exercise you extend your flipped interaction prompts with one addition that changes everything: an explicit set of allowed tools, declared up front — each with a name, a description, and parameters. The agent drives the task by calling them; you play the computer, typing what each call returned. You are about to feel, from the computer's side, how a tool set shapes what an agent can and cannot do.

What you are practicing

Declaring a tool is making a promise: "if you say this word,
with these parameters, the world will do this."

The agent can only act through the words you declare —
so designing the tool set IS designing what's possible.

The tool format

Tools are written in a simple, typeable form:

The format

tool:set_oven
description:Sets the oven temperature and rack position
parameters:temperature: 0..300 degrees celsius rack: {top, middle, bottom} which rack to use label: string a note for the display

Parameter specs: <string>, <number>, <integer>, <boolean>, {a, b, c} for a fixed choice, N..M for a numeric range. A tool may have no parameters at all.

Where to run it

Step 1 · Play the computer

Load the Filesystem explorer template and start the run. Answer each call honestly, as a real filesystem would — invent a plausible project and keep your answers consistent. Let the run finish.

Capture — end of Step 1

The full run: each call, its arguments, your result.
The moment the agent's NEXT call depended on your result —
the choice a fixed script could not have made.

Step 2 · Your domain, your tools

Now build your own: pick an interesting problem from your domain and design the tool set for it — three to six tools, each with a name, description, and parameters in the format above. Write the task prompt so the agent drives. Run it, playing the computer.

Then experiment on the design itself, one change at a time: rename a tool and rerun — does the agent use it differently? Tighten a parameter from <string> to a {choice} or a range — what happens to the calls? Make one description vaguer — what breaks?

Capture — end of Step 2

Your tool definitions, verbatim.
One design change (name, parameter, or description) and the
behavior difference it caused, before/after.

Step 3 · The generic tool set

Design a tool set that isn't for one problem but for MANY: the smallest set of general tools you can devise that handles a wide variety of tasks in some territory. (The one-word language template shows the extreme case: a single tool that runs any command.) Give your generic set two very different tasks and play both runs.

Capture — end of Step 3

The generic set, and the two unlike tasks it handled.
One sentence: what did the generic set do WORSE than a
task-specific set would have?

Bonus · Catch it being creative

Watch for the moment the agent combines your tools in a way you did not anticipate — an unorthodox route that is nonetheless valid. Feed it a task that doesn't quite fit the tools and see what it improvises. If you catch a good one, capture the sequence: these unexpected-but-legal combinations are some of the most interesting evidence of the day.

Deliverable

Three captures (plus any creative-combination trophies). We will compare tool sets together at the end: the naming and parameter changes that most changed behavior, the best generic sets, and what it felt like to be the computer — including every time you had to invent an answer because the agent asked your world a question you hadn't designed.

As you compare
  • Which mattered more to the agent's behavior in your runs: the tool NAMES or the tool DESCRIPTIONS? What's your evidence?
  • Where did the agent ask your world for something your tools couldn't say? That gap is a design finding — what tool is missing?