Skip to content
Search
AgenticGlossary

Tool Use

Tool use (also "function calling") is the bridge between LLMs and the real world. The model doesn't call the tools directly -- your runtime does, after the model emits a structured tool-call request. Results come back as a message, and generation continues.

Tool-use quality separates junior-model agents from production ones. Good tool design has narrow, well-named functions with clear JSON Schema inputs. Bad tool design is a god-function with 20 optional parameters the model fills in wrong.

Example

Tools: search_docs(query), get_order(order_id), send_email(to, subject, body)

User: "Can you look up order #12345 for me and email a shipping update to [email protected]?"

Assistant should:
1. Call get_order("12345")
2. Compose the update from the result
3. Call send_email("[email protected]", "Your order #12345 update", <body>)

When to use it

  • The model needs real-time data it doesn't have (prices, inventory, user-specific state)
  • Actions need to happen (send, create, delete) not just answers
  • Computation the model is bad at (math, symbolic manipulation, code execution)
  • You want traceable, auditable agent behavior

When not to use it

  • The task is fully answerable from the prompt + model knowledge
  • You don't have a sandbox for tools that have side effects
  • Tool latency makes the UX unusable