| name | google-adk-builtin-tools |
| description | Catalog of all ADK built-in tools. Use when looking for pre-built tools to add to agents — search, memory, artifacts, transfer, grounding, and user interaction tools. |
Google ADK — Built-in Tools Catalog
Import
from google.adk.tools import (
google_search,
exit_loop,
load_memory,
preload_memory,
load_artifacts,
get_user_choice,
transfer_to_agent,
url_context,
google_maps_grounding,
enterprise_web_search,
LongRunningFunctionTool,
VertexAiSearchTool,
DiscoveryEngineSearchTool,
ExampleTool,
)
Search & Grounding Tools
| Tool | Description | Usage |
|---|
google_search | Web search via Google Search | tools=[google_search] |
url_context | Fetches and reads web page content | tools=[url_context] |
google_maps_grounding | Grounds responses with Google Maps data | tools=[google_maps_grounding] |
enterprise_web_search | Enterprise web search | tools=[enterprise_web_search] |
VertexAiSearchTool | Vertex AI Search datastore | See below |
DiscoveryEngineSearchTool | Discovery Engine search | See below |
google_search
from google.adk.agents import Agent
from google.adk.tools import google_search
agent = Agent(
name="researcher",
model="gemini-2.5-flash",
instruction="Research topics using web search.",
tools=[google_search],
)
VertexAiSearchTool
from google.adk.tools import VertexAiSearchTool
vertex_search = VertexAiSearchTool(
data_store_id="projects/PROJECT/locations/LOCATION/collections/default_collection/dataStores/DATASTORE_ID",
)
agent = Agent(
name="knowledge_agent",
model="gemini-2.5-flash",
instruction="Answer questions using the knowledge base.",
tools=[vertex_search],
)
Memory Tools
| Tool | Description | Usage |
|---|
load_memory | On-demand memory recall (agent calls it) | tools=[load_memory] |
preload_memory | Auto-loads relevant memories before each turn | tools=[preload_memory] |
from google.adk.agents import Agent
from google.adk.tools import load_memory, preload_memory
agent = Agent(
name="remembering_agent",
model="gemini-2.5-flash",
instruction="Remember past conversations. Use load_memory when relevant.",
tools=[load_memory],
)
Artifact Tools
| Tool | Description | Usage |
|---|
load_artifacts | Loads saved artifacts for the agent to view | tools=[load_artifacts] |
from google.adk.agents import Agent
from google.adk.tools import load_artifacts
agent = Agent(
name="viewer",
model="gemini-2.5-flash",
instruction="Help users view their saved files.",
tools=[load_artifacts],
)
Agent Transfer Tools
| Tool | Description | Usage |
|---|
transfer_to_agent | Explicitly transfers control to a named agent | tools=[transfer_to_agent] |
from google.adk.agents import Agent
from google.adk.tools import transfer_to_agent
agent = Agent(
name="router",
model="gemini-2.5-flash",
instruction="Transfer to specialist agents as needed.",
tools=[transfer_to_agent],
sub_agents=[specialist_a, specialist_b],
)
Loop Control Tools
| Tool | Description | Usage |
|---|
exit_loop | Breaks out of a LoopAgent iteration | tools=[exit_loop] |
from google.adk.agents import Agent, LoopAgent
from google.adk.tools import exit_loop
refiner = Agent(
name="refiner",
model="gemini-2.5-flash",
instruction="Refine until quality is good, then call exit_loop.",
tools=[exit_loop],
)
loop = LoopAgent(name="loop", sub_agents=[refiner], max_iterations=5)
User Interaction Tools
| Tool | Description | Usage |
|---|
get_user_choice | Prompts user to choose from options | tools=[get_user_choice] |
from google.adk.agents import Agent
from google.adk.tools import get_user_choice
agent = Agent(
name="interactive",
model="gemini-2.5-flash",
instruction="When uncertain, ask the user to choose.",
tools=[get_user_choice],
)
Long-Running Tools
Wraps a function tool that takes a long time (avoids timeout):
from google.adk.tools import LongRunningFunctionTool
def slow_analysis(data: str) -> str:
"""Performs deep analysis that may take minutes.
Args:
data: The data to analyze.
"""
result = run_expensive_computation(data)
return result
agent = Agent(
name="analyzer",
model="gemini-2.5-flash",
instruction="Analyze data thoroughly.",
tools=[LongRunningFunctionTool(func=slow_analysis)],
)
Example Tool (Few-Shot)
Provides examples of input/output to guide the model:
from google.adk.tools import ExampleTool
example_tool = ExampleTool(
name="format_example",
examples=[
{"input": "john doe", "output": "John Doe"},
{"input": "jane smith", "output": "Jane Smith"},
],
)
Key Rules
- Built-in tools are imported from
google.adk.tools
- Most built-in tools are singleton instances — pass them directly (no instantiation)
VertexAiSearchTool and DiscoveryEngineSearchTool need instantiation with config
LongRunningFunctionTool wraps your function — don't pass it directly to tools
- Memory tools require a
memory_service configured on the Runner
exit_loop only works inside a LoopAgent's sub-agents
transfer_to_agent is implicit in multi-agent systems but can be explicit
Related Skills
google-adk-function-tool — Creating custom function tools
google-adk-memory — Memory service configuration (for load_memory/preload_memory)
google-adk-artifacts — Artifact service (for load_artifacts)
google-adk-workflow-agents — LoopAgent (for exit_loop)