Law 21 · Instruction & Output

The Tool Description Is the Prompt

An agent is only as capable as its tools are legible.

Diagram explaining The Tool Description Is the Prompt

The principle

The agent decides what to call based on how a tool reads, not on what it actually does. A vague description — 'searches the database' — gets passed over for a tool the model understands better, even a worse one. Thin tool descriptions cause more failures than thin instructions ever do.

Why it happens

The model never sees your tool's implementation; at decision time it only sees the name, the description, and the argument schema, so tool routing is fundamentally a text-comprehension task over those few sentences. Studies of real tool ecosystems find the large majority of tool descriptions contain at least one quality problem, with many failing to clearly state their purpose, and rewriting them to spell out behavior measurably raises task success. The effect is sharp enough that vendors documenting their own tool APIs recommend at least three to four sentences per description covering what it does, when to use it and when not to, and what it returns. A terse searches the database loses to a richer competitor not because the underlying tool is worse but because the model cannot recover intent the words never carried.

Watch for

In practice

You ship two retrieval tools: query_db described as 'searches the database' and web_search described as 'searches the web for current information, returns titles, snippets, and URLs'. The agent keeps hitting the web for facts that live in your Postgres because it has no idea query_db covers customer orders, date ranges, and status filters. You blame the model and consider fine-tuning. The real fix takes ten minutes: rewrite the description to spell out what tables it covers, when to prefer it over web search, the exact arg shape, and a sample return. Treat each tool description like an onboarding doc for a sharp engineer who has never seen your schema.

Apply it

  1. Write each description like API docs for a new engineer: what it does, when to use it and when not to, expected inputs, and a sample return.
  2. Disambiguate overlapping tools by stating in each description what it covers that the others do not.
  3. When tool selection is unreliable, rewrite the descriptions before changing the model or adding routing logic.

The takeaway

Write tool descriptions like you're onboarding a sharp new engineer: what it does, when to use it (and when not to), what it expects, what it returns. The description is the interface the model actually reasons over.

Sources and further reading

Related laws

Read every law in the digital edition Back to all 50 laws