Labs / Lab 01

Build a dumb CLI tool an AI can call

Start with one deterministic capability that does one job, prints one result, and exits clearly.

What this adds

Give the model one reliable capability.

The term counter is deliberately boring. That is the point. A useful agent tool should have predictable arguments, predictable output, and predictable failure modes.

Once you trust the shell boundary, you can wrap it, validate it, and hand it to a host.

Boundary

The capability lives outside the model. The model may decide to call it later, but the tool itself is deterministic software.

Done when

Bad arguments fail clearly, valid runs are repeatable, and the command is safe to invoke twice.

Real-world analog

The Git CLI is the gold standard here. Commands like git status and git grep are exactly the kind of boring, dependable tools you want an agent to call.

Why this matters

Most of the "agent magic" people describe is really a model choosing among deterministic tools like this one.

Next lab

Lab 02: wrap it in JSON.