{
  "id": "function-calling",
  "code": "PTL-0060",
  "term": "Function Calling",
  "aliases": [
    "tool use",
    "tool calling"
  ],
  "category": "retrieval-tools",
  "definition": "Function calling, or tool use, is a model capability in which the model outputs a structured request to invoke a developer-defined function with arguments, which the application executes and returns as a result to the model.",
  "description": "Tools are usually described to the model with a name, a natural-language description, and a JSON Schema for parameters. Clear tool descriptions function as prompts in their own right and strongly affect when and how tools are used.",
  "example": null,
  "broader": [],
  "narrower": [],
  "related": [
    "react",
    "model-context-protocol",
    "structured-outputs",
    "toolformer"
  ],
  "introduced": null,
  "sources": [
    {
      "title": "Tool use with Claude",
      "authors": "Anthropic",
      "year": 2024,
      "url": "https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview"
    },
    {
      "title": "Gorilla: Large Language Model Connected with Massive APIs",
      "authors": "Patil et al.",
      "year": 2023,
      "url": "https://arxiv.org/abs/2305.15334"
    }
  ],
  "url": "https://protologue.com/t/function-calling/",
  "citation": "Protologue. (2026). Function Calling. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0060). https://protologue.com/t/function-calling/"
}