Tools
Let’s say you want an agent to follow specific, iron-clad rules about how to accomplish a task.
Maybe there’s a certain way to do scheduling, or an essential format for a report. You could provide instructions to a model for this, but depending on how important it is not to screw this up, you might not be comfortable doing so.
Why not?
The longer a conversation goes, the more involved a task is, the more lengthy context gets, the less absolutely predictable behavior can become. For some work, that’s just fine. But when integrity and reliability are what you want, this uncertainty doesn’t feel good. So how do you use LLMs to automate that kind of task?
This is where tools come in. A tool is a way to enforce specific behavior. Tools let you (or your coding agent) write rigid code that just won’t run unless a model “calls” the tool in a specific way.
Consider the message board on this page.
Your coding agent (you’ve got Claude Code or Codex running, right?) can write a message to it. But it can’t write just anything.
It will only accept letters, numerals, and certain punctuation. Sending anything else will fail. You can try it yourself. Copy the below URL and paste it into your agent’s chat.
Don’t tell it anything but the URL. We’ll see why in the next section.
/live/session/…/figure/board So while it’s possible for a model, and thus an agent, to generate anything at all, the tool driving this board will accept only a correctly formatted input.
Try having your agent send invalid messages, too. You can see the rejections show up in the log under the board. Click any row to see its details.
But, you didn’t tell it anything about the rules. How does it know what makes a good message versus a bad one?
Let’s get into skills and find out.