Files
Bo Yang ed8add2e9b test(cli): Make JSON test files deterministic and sequential
Sort keys when saving rebuilt JSON test files and re-assign sequential event IDs to avoid gaps from filtered events. Also applied these changes to all existing test files in the contributing folder.

Change-Id: Ib126228f016db1d28030eee4f7d9d8cbc604e038
2026-04-10 11:08:42 -07:00
..

ADK Agent Function Tools Sample

Overview

This sample demonstrates how to create an agent equipped with built-in Python function tools using the ADK framework.

It defines an Agent wrapped around two utility functions: generate_random_number and is_even. The LLM can automatically invoke these underlying Python functions based on user prompts. This sample shows how simple it is to turn raw python methods into actionable capabilities for your agents.

Sample Prompts

  • Give me a random number.

  • Give me a random number up to 50, and tell me if it's even.

  • Give me a random number and is 44 even?

    This will cause parallel tools being called in a single step

Graph

Agent (name="function_tools")
├── Tool (name="generate_random_number")
└── Tool (name="is_even")

How To

  1. Define standard Python functions with type hints and precise docstrings:

    import random
    
    def generate_random_number(max_value: int = 100) -> int:
        """Generates a random integer between 0 and max_value (inclusive). ..."""
        return random.randint(0, max_value)
    
    def is_even(number: int) -> bool:
        """Checks if a given number is even. ..."""
        return number % 2 == 0
    
  2. Register the functions directly to the agent's tools list during instantiation:

    from google.adk.agents import Agent
    
    root_agent = Agent(
        name="function_tools",
        tools=[generate_random_number, is_even],
    )