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.

Model Context Protocol, a standard way to expose tools to any agent.

Sources