The description is not metadata. It is an instruction.
Common tool patterns
Most tools fall into a handful of categories:
Read tools retrieve information the AI does not have. Calendar lookups, database queries, file reads, API calls that return data. These are the most common and the safest, since they do not change anything.
Write tools create or modify something. Sending an email, creating a task, updating a record, writing a file. These need more careful thought about when the AI should be allowed to act autonomously versus asking for confirmation.
Search tools find relevant information from a larger set. Semantic search over documents, keyword search in a database, web search. The AI decides the query; you execute it and return results.
Compute tools perform calculations or transformations the AI would struggle to do reliably in text. Running code, performing math, converting formats, validating data.
All of these can work together so that you give the AI a read tool for your database, a search tool for your documentation, a write tool for creating support tickets, and it can handle a customer question end to end: search the docs, check the customer's account, and create a ticket if it cannot resolve the issue.
Where tools get wired up
The tool-use loop works the same way regardless of where you set it up, but the setup itself varies:
The API directly. You define tools in your API request and handle the execution loop in your code. Most flexible, most work.
MCP servers. If you read the MCP post in the first series, this is where it connects. An MCP server wraps a tool (your calendar, your file system, a database) in the standard protocol. AI tools that support MCP can discover and use these tools without custom code for each one.
Claude Desktop, ChatGPT, and other products. These wire up tools behind the scenes. When Claude reads a file or ChatGPT browses the web, they are using the same tool-use loop. You just do not see the wiring.
Agent frameworks and SDKs. Tools like Claude's Agent SDK, LangChain, or CrewAI manage the loop for you. You define tools, the framework handles the back-and-forth. Less control, faster setup.
When the AI ignores your tool
When the AI does not call a tool you defined, the fix is almost always the description.
The AI is making a judgment call about whether a tool is relevant to the current request, and it is making that call based on the description you wrote. If the description is vague, the AI will not know when to reach for it. If the description is specific about when and why to use the tool, the AI will call it reliably.
This is true across providers. I have seen the same pattern with Claude, with OpenAI's function calling, and with open-source models. The description is the decision-maker, and investing the time in rewriting it often solves problems that may seem like they need architectural changes.
Tomorrow: embeddings. How AI knows that two things mean a similar thing, even when they use completely different words.