Architecture Patterns

Function Calling in LLMs

Function Calling in Large Language Models

Quick Answer: A capability that allows language models to generate structured JSON output that maps to predefined function signatures, enabling the model to interact with external tools, APIs, and databases.
Function Calling in Large Language Models is a capability that allows language models to generate structured JSON output that maps to predefined function signatures, enabling the model to interact with external tools, APIs, and databases. Instead of generating free-form text, the model outputs a function name and arguments that application code can execute.

Example

You define a function get_weather(city: str, unit: str). When a user asks 'What is the weather in Paris?', the model does not hallucinate a weather report. Instead, it outputs: {"function": "get_weather", "arguments": {"city": "Paris", "unit": "celsius"}}. Your application executes the actual API call and returns real weather data to the model for its response.

Why It Matters

Function calling transforms LLMs from text generators into action-taking agents. It is the technical foundation for AI assistants that can book flights, query databases, send emails, and interact with any system that has an API. Without function calling, AI agents would not exist.

How It Works

Function calling works through a structured protocol between your application and the model.

First, you define available functions as JSON schemas (name, description, parameters with types). These schemas are sent to the model alongside the user's message.

The model then decides whether to respond with text or call a function. If a function call is appropriate, it outputs the function name and arguments as structured JSON. Your application parses this JSON, executes the real function, and sends the result back to the model.

The model can chain multiple function calls in a single conversation turn, enabling complex workflows like: search for flights, filter by price, then book the cheapest option.

OpenAI, Anthropic, and Google all support function calling (Anthropic calls it 'tool use'). The implementations differ slightly but the core concept is the same: the model generates structured output that maps to real code execution.

Common Mistakes

Common mistake: Writing vague function descriptions that confuse the model about when to use each function

Write clear, specific descriptions with usage examples. Describe not just what the function does, but when the model should choose it over alternatives.

Common mistake: Not handling cases where the model calls the wrong function or provides invalid arguments

Always validate function arguments before execution. Implement fallback logic for incorrect function calls. The model will occasionally make mistakes.

Common mistake: Defining too many functions in a single request, which increases latency and confusion

Keep function sets focused. Use 5-15 functions maximum per request. Group related functions and only expose the relevant set based on conversation context.

Career Relevance

Function calling is a required skill for AI agent developers and AI engineers. Every production AI assistant (customer support bots, coding agents, data analysts) relies on function calling to interact with external systems. Understanding this pattern is essential for building anything beyond a simple chatbot.

Frequently Asked Questions

What is the difference between function calling and tool use?

They refer to the same concept. OpenAI uses 'function calling,' Anthropic uses 'tool use,' and Google uses 'function declarations.' The underlying mechanism is identical: the model generates structured output that maps to executable code.

Can function calling replace traditional API integrations?

Function calling does not replace APIs. It adds an AI layer on top. The model decides which API to call and with what parameters, but your application still makes the actual API requests. Function calling is the decision layer, not the execution layer.

Stay Ahead in AI

Join 1,300+ prompt engineers getting weekly insights on tools, techniques, and career opportunities.

Join the Community →