0Pricing
Prompt Engineering & LLM Optimization for Developers · Lesson

Function Calling & Tool Use

Learn how to enable LLMs to interact with external tools and APIs by teaching them to call specific functions based on user prompts.

Function Calling & Tool Use is a free Prompt Engineering & LLM Optimization for Developers lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Prompt Engineering & LLM Optimization for Developers learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

LLMs & External Tools

Large Language Models (LLMs) are amazing at understanding and generating text. However, they typically don't have direct access to:

  • Real-time information: Like today's weather or current stock prices.
  • External actions: Such as sending an email or booking a flight.
  • Complex computations: Beyond simple arithmetic.

This is where Function Calling comes in!

Bridging the Gap with Tools

Function calling allows LLMs to interact with the outside world by letting them 'call' external tools or APIs. It bridges the gap between the LLM's language abilities and real-world actions.

Think of it as giving the LLM a set of specialized gadgets it can recommend using when needed.

How it Works: The LLM's Role

When you use function calling, the LLM doesn't *execute* code itself. Instead, it acts like a smart planner or router:

  • It analyzes your prompt.
  • It identifies if any defined tools could help fulfill your request.
  • If so, it suggests which tool to use and what arguments (inputs) to pass to it.

Your application then takes this suggestion and performs the actual action.

Defining Your Tools (Schema)

Before an LLM can recommend a tool, it needs to know what tools are available. You provide a 'schema' – a description of each function/tool your application can perform.

This schema tells the LLM:

  • The function's name (e.g., get_current_weather).
  • A clear description of what the function does.
  • Its required parameters (inputs) and their types (e.g., location: string).

Example: A Weather Tool Definition

Here's how you might conceptually define a simple weather tool for an LLM. This description helps the LLM understand *when* and *how* to use it.

function get_current_weather(location: string, unit: "celsius" | "fahrenheit" = "fahrenheit") {
  // Gets the current weather for a given location.
  // Returns temperature, conditions, and humidity.
}

The Interaction Flow

Let's trace a typical interaction with function calling:

  1. User Prompt: You ask the LLM a question (e.g., "What's the weather in Paris?").
  2. LLM Suggestion: The LLM sees the weather tool definition and suggests calling get_current_weather(location="Paris").
  3. Your App Action: Your application receives this suggestion, calls a real weather API, and gets the data.
  4. LLM Final Response: Your app sends the weather data back to the LLM, which then generates a natural language response for you.

Step-by-Step Scenario

Imagine you have a get_stock_price tool defined. Here's a flow:

  • User: "What's the current price of Apple stock?"
  • LLM (internally): "Aha! The user wants a stock price. I have a get_stock_price tool that takes a symbol."
  • LLM Output: tool_call: get_stock_price(symbol="AAPL")
  • Your App: Executes the get_stock_price function with "AAPL".
  • Your App: Gets "$175.50" and sends it back to the LLM.
  • LLM: "The current price of Apple (AAPL) stock is $175.50."

Benefits of Function Calling

Function calling dramatically enhances LLM capabilities:

  • Access to Real-time Data: Get up-to-date information that the LLM's training data might not have.
  • Perform Actions: Enable LLMs to trigger real-world processes.
  • Reduce Hallucinations: Ground LLM responses in factual, external data, making them more reliable.
  • Complex Logic: Delegate complex calculations or data retrieval to robust external systems.

Common Use Cases

Function calling is versatile and can be applied to many scenarios:

  • Data Retrieval: Fetching information from databases, APIs, or files.
  • Calculations: Using a calculator tool for precise math.
  • Sending Notifications: Integrating with email or messaging services.
  • Database Interactions: Querying or updating records.
  • Home Automation: Turning on lights or adjusting thermostats.

Quick Check: LLM's Role

You've defined a tool for your LLM. A user asks a question that requires this tool.

Recap: Tools & Smarter LLMs

You've learned about Function Calling, a powerful technique that allows LLMs to interact with external tools and APIs. By defining schemas for your functions, you enable LLMs to act as smart planners, suggesting relevant actions and arguments based on user prompts.

This capability opens up a world of possibilities, making LLM-powered applications more dynamic, factual, and capable of real-world interaction.

Frequently asked questions

Is the “Function Calling & Tool Use” lesson free?

Yes — the full text of “Function Calling & Tool Use” is free to read here on the web, and the Prompt Engineering & LLM Optimization for Developers course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Prompt Engineering & LLM Optimization for Developers course, upgrade to CoddyKit PRO.

What will I learn in “Function Calling & Tool Use”?

Learn how to enable LLMs to interact with external tools and APIs by teaching them to call specific functions based on user prompts. You practise Prompt Engineering & LLM Optimization for Developers with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Prompt Engineering & LLM Optimization for Developers?

No prior experience is required. Prompt Engineering & LLM Optimization for Developers on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Function Calling & Tool Use” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Prompt Engineering & LLM Optimization for Developers lesson?

Yes. Every Prompt Engineering & LLM Optimization for Developers lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Retrieval Augmented Generation (RAG)
  2. Function Calling & Tool Use
  3. Building Simple LLM Agents
  4. Streaming LLM Responses to Users
← Back to Prompt Engineering & LLM Optimization for Developers