Claude Tool Use Tutorial — Build Agents That Take Actions
Claude Tool Use — Build Agents That Take Actions
Claude's native tool use (function calling) lets you build agents that don't just generate text — they take real actions in the world. This tutorial shows you how.
How Tool Use Works
You define tools (functions) with descriptions and input schemas. Claude decides when to call them based on the user's request. You execute the tool and return the result. Claude incorporates the result into its response.
Defining Tools
tools = [
{
"name": "search_products",
"description": "Search the product catalog by keyword",
"input_schema": {
"type": "object",
"properties": {
"query": {"type": "string"},
"max_results": {"type": "integer", "default": 5}
},
"required": ["query"]
}
},
{
"name": "get_order_status",
"description": "Check the status of a customer order",
"input_schema": {
"type": "object",
"properties": {
"order_id": {"type": "string"}
},
"required": ["order_id"]
}
}
]
The Agent Loop
The key pattern is a loop: send message → check if Claude wants to use a tool → execute it → send result back → repeat until Claude gives a final answer.
Best Practices
- Write clear, specific tool descriptions — Claude uses these to decide when to call tools
- Keep input schemas simple and well-documented
- Always validate tool inputs before executing
- Set a maximum iteration count to prevent infinite loops
- Handle tool execution errors gracefully
Learn More
Our course covers Claude tool use in depth in Lesson 4.8, including building MCP servers, multi-tool agents, and production patterns.