ai-patterns-tool-use-patterns
Tool Use Patterns
Quick Guide: Tool use (function calling) lets LLMs invoke external functions. The universal pattern is: define tool schemas (JSON Schema for parameters) -> send tools + message to LLM -> detect tool_use in response -> execute locally -> return result to LLM -> repeat until the model responds with text. Guard every loop with a max-step limit, validate all tool inputs before execution, and return structured errors so the model can recover. Use tool choice control (
auto,required,none, specific tool) to steer model behavior.
<critical_requirements>
CRITICAL: Before Using This Skill
All code must follow project conventions in CLAUDE.md (kebab-case, named exports, import ordering,
import type, named constants)
(You MUST guard every tool loop with a maximum step limit -- unbounded loops risk infinite API calls and runaway costs)
(You MUST validate all tool input arguments before execution -- LLM-generated arguments are untrusted input)
(You MUST return structured error messages to the model when tool execution fails -- never silently swallow errors or return empty results)
(You MUST use JSON Schema for tool parameter definitions -- all major providers require this format)