Tools are functions the harness exposes to the model, each with a name, a description and a parameter schema. They are the only way an agent loop affects anything outside the model: reading files, running commands, querying data, calling APIs.
Design principles
- Tool design is interface design. The model knows a tool only through its name, description and schema. Vague descriptions produce vague usage. Write them like a docstring for a new colleague.
- Fewer, sharper tools. Overlapping tools make the model pick the wrong one some of the time. Consolidate them.
- Lean output. Tool results go into the context window, so large outputs crowd out what matters. See context engineering.
- Risk varies by tool. Read-only tools can run freely, while writes and outward-facing actions need guardrails.
Related
Model Context Protocol, a standard way to expose tools to any agent.