Tool Design for Agents: Few, Sharp, Validated
The tool surface is the agent's API to reality. Design LLM agent tools that are hard to misuse: small surfaces, strict schemas, scoped permissions.
The tool surface is the only place an agent touches reality. Every argument it can get wrong is a failure mode you now own, and every tool you add multiplies the ways the others can be chosen incorrectly.
A surface you can eval
Design tools the way you would design an API for a capable stranger working at speed with no way to ask a follow-up question: narrow, named for intent, and impossible to call halfway.
01 · Schemas
Strict beats permissive
A rejected call is a recoverable event. A silently accepted wrong type is a bug that surfaces three steps later, somewhere else.
02 · Scope
Least privilege, per tool
Scope permissions to the tool rather than the agent, so the [blast radius](/posts/guardrails-budgets-and-kill-switches/) of a bad call is bounded by design, not by prompt.
03 · Errors
Honest and actionable
An error the model can act on is worth more than one that is merely accurate. Say what was wrong and what a valid call looks like.
"Every tool you add is a new way for [the loop](/posts/the-agentic-loop/) to be wrong. Add them like you pay for them."
The experiment: one task suite run against a broad tool surface and a deliberately narrowed one, with call-level traces published for both. This same test is a better input to an agent framework comparison than a catalog of integrations: ask which runtime makes authority, retries, and effects visible and verifiable.