# Google Adk Builtin Tools

> 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.

- Skill: `eagleisbatman/google-adk-builtin-tools` (Agent Skill)
- Install (CLI): `npx skillmds@latest add eagleisbatman/google-adk-builtin-tools`
- Raw SKILL.md: https://api.skillmd.com/api/skills/eagleisbatman/google-adk-builtin-tools/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: eagleisbatman (https://skillmd.com/u/eagleisbatman)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/eagleisbatman/google-adk-builtin-tools

---


# Google ADK — Built-in Tools Catalog

## Import

```python
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

```python
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

```python
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]` |

```python
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]` |

```python
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]` |

```python
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]` |

```python
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]` |

```python
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):

```python
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:

```python
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)

