Agent skill

Google Adk

by Mindrally in Mindrally/skills

Best practices for building AI agents with Google's Agent Development Kit (ADK) in Python, covering agent design, tools, sessions, memory, artifacts, evaluation, and deployment.

Apache-2.0Auto-check passedAI & LLM Engineering

Install Google Adk

skills CLI
$ npx skills add Mindrally/skills --skill google-adk -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Mindrally/skills google-adk --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Mindrally/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/google-adk .claude/skills/google-adk && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
google-adk
GitHub stars
269
Token cost
~2.5k tokens
SKILL.md length
974 words
Files
1
Skills in repo
34
Repo updated
First seen
Licence
Apache-2.0

At a glance

Best practices for building AI agents with Google's Agent Development Kit (ADK) in Python, covering agent design, tools, sessions, memory, artifacts, evaluation, and deployment.

  • Works in 9 steps: Define the agent — Create an LlmAgent… → Author tools — Write plain Python… → Compose multi-agent systems — For… → …
  • Building LLM agents
  • SKILL.md covers Workflow for Building an ADK…, Agent Design, Tools and Sessions, State, and Memory, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Google Adk is an agent skill from Mindrally/skills. Best practices for building AI agents with Google's Agent Development Kit (ADK) in Python, covering agent design, tools, sessions, memory, artifacts, evaluation, and deployment. Use when building LLM agents or multi-agent systems with ADK, defining ADK tools, wiring up sessions/state/memory, working with ADK artifacts, writing agent evals, or deploying ADK agents to Vertex AI Agent Engine or Cloud Run.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in AI & LLM Engineering, covering LLM evaluation, Building AI agents and Deployment. It works with Vertex AI, Python and Cloud Run. The repository describes itself as: 265+ Claude Code skills for every major framework and language. Install with: npx skills add Mindrally/skills. The licence is Apache-2.0.

When your agent uses it

  • Building LLM agents
  • Multi-agent systems with ADK
  • Defining ADK tools
  • Wiring up sessions/state/memory

Example prompts

  • “/google-adk”

Requirements

  • Python 3

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Define the agent — Create an LlmAgent (or Agent) with a clear name, model, instruction, and description. Keep the instruction focused on…
  2. Author tools — Write plain Python functions with type hints and docstrings, or wrap existing APIs with FunctionTool. Validate all inputs…
  3. Compose multi-agent systems — For complex workflows, split responsibility across sub-agents and use SequentialAgent, ParallelAgent, or…
  4. Wire up session and state — Choose a SessionService (in-memory for dev, DatabaseSessionService or Vertex AI-managed for production) and…
  5. Add memory (optional) — Configure a MemoryService for cross-session recall when the agent needs to remember facts between separate…
  6. Handle artifacts (optional) — Configure an ArtifactService when the agent generates or receives files, images, or other binary outputs.
  7. Run locally — Use adk web, adk run, or the Runner API to exercise the agent against a Session.
  8. Evaluate — Write .evalset.json test cases and run adk eval to check tool-call trajectories and response quality against regressions.
  9. Deploy — Package the agent for Vertex AI Agent Engine, Cloud Run, or GKE, and separate dev/staging/prod configuration.

What it can do on your machine

Read from SKILL.md and the folder at commit 7682ca7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Google Adk loads about 2.5k tokens when it runs. Until then it costs about 104 tokens; SKILL.md has 974 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~104
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Mindrally/skills at commit 7682ca7, republished under its Apache-2.0 licence (© Mindrally). 974 words, ~2,472 tokens.

Download SKILL.mdSave it as .claude/skills/google-adk/SKILL.md (or your agent's skills folder).
name
google-adk
description
Best practices for building AI agents with Google's Agent Development Kit (ADK) in Python, covering agent design, tools, sessions, memory, artifacts, evaluation, and deployment. Use when building LLM agents or multi-agent systems with ADK, defining ADK tools, wiring up sessions/state/memory, working with ADK artifacts, writing agent evals, or deploying ADK agents to Vertex AI Agent Engine or Cloud Run.
metadata.maintainer
Mindrally
metadata.source
https://github.com/Mindrally/skills

Google Agent Development Kit (ADK)

This skill covers building production-grade AI agents with Google's Agent Development Kit (ADK) for Python, including agent composition, tool design, session/state/memory management, artifacts, evaluation, and deployment.

Workflow for Building an ADK Agent

  1. Define the agent — Create an LlmAgent (or Agent) with a clear name, model, instruction, and description. Keep the instruction focused on one job.
  2. Author tools — Write plain Python functions with type hints and docstrings, or wrap existing APIs with FunctionTool. Validate all inputs before side effects.
  3. Compose multi-agent systems — For complex workflows, split responsibility across sub-agents and use SequentialAgent, ParallelAgent, or LoopAgent for deterministic orchestration, or delegate via sub_agents for LLM-driven routing.
  4. Wire up session and state — Choose a SessionService (in-memory for dev, DatabaseSessionService or Vertex AI-managed for production) and use session.state for conversation-scoped data.
  5. Add memory (optional) — Configure a MemoryService for cross-session recall when the agent needs to remember facts between separate conversations.
  6. Handle artifacts (optional) — Configure an ArtifactService when the agent generates or receives files, images, or other binary outputs.
  7. Run locally — Use adk web, adk run, or the Runner API to exercise the agent against a Session.
  8. Evaluate — Write .evalset.json test cases and run adk eval to check tool-call trajectories and response quality against regressions.
  9. Deploy — Package the agent for Vertex AI Agent Engine, Cloud Run, or GKE, and separate dev/staging/prod configuration.

Agent Design

  • Keep each agent focused on a single clear goal, persona, and tool set — avoid one agent that tries to do everything.
  • Use LlmAgent for flexible, reasoning-driven behavior and workflow agents (SequentialAgent, ParallelAgent, LoopAgent) for deterministic orchestration that doesn't need an LLM to decide the next step.
  • Write instructions that define task boundaries, tool-use rules ("always call lookup_order before answering order questions"), and escalation behavior ("if you cannot resolve the issue, transfer to human_handoff_agent").
  • Split multi-agent systems by responsibility (e.g., a "triage" agent, a "billing" agent, a "technical support" agent) rather than by implementation convenience.
  • Keep the model name configurable (environment variable or config file) so it can be swapped across gemini-2.0-flash, gemini-2.5-pro, or other supported models without code changes.
  • Use output_schema (a Pydantic model) when the agent's final response must be structured data consumed by other code.

Tools

  • Give tools narrow, typed inputs and outputs — a single function should do one thing, with a docstring the LLM uses to decide when to call it.
  • Validate tool arguments before performing any side effect (writes, external calls, payments).
  • Keep secrets, credentials, and privileged API keys out of agent instructions and prompts; inject them at the tool implementation layer instead.
  • Handle tool errors explicitly and return actionable failure messages (e.g., {"status": "error", "message": "order_id not found"}) rather than raising unhandled exceptions that break the agent loop.
  • Be aware of ADK tool limitations — some built-in tools (e.g., google_search, code_execution) cannot be combined with other tools on the same agent; delegate to a dedicated sub-agent instead.
  • Prefer FunctionTool for custom Python logic, AgentTool to let one agent call another agent as a tool, and built-in tools (google_search, BuiltInCodeExecutor) only when their constraints fit the use case.
Example: Defining an Agent with Tools
python
from google.adk.agents import Agent
from google.adk.tools import FunctionTool
from google.adk.runners import InMemoryRunner
from google.genai import types


def get_order_status(order_id: str) -> dict:
    """Look up the current status of a customer order.

    Args:
        order_id: The unique identifier of the order, e.g. "ord-12345".

    Returns:
        A dict with 'status' ('found' or 'error') and either 'state'
        and 'updated_at', or an error 'message'.
    """
    if not order_id or not order_id.startswith("ord-"):
        return {"status": "error", "message": "invalid order_id format"}

    # In production this would call a real order service.
    orders = {"ord-12345": {"state": "shipped", "updated_at": "2026-08-30T10:00:00Z"}}
    order = orders.get(order_id)
    if order is None:
        return {"status": "error", "message": f"no order found for {order_id}"}
    return {"status": "found", **order}


root_agent = Agent(
    name="order_support_agent",
    model="gemini-2.0-flash",
    description="Answers customer questions about order status.",
    instruction=(
        "You help customers check their order status. "
        "Always call get_order_status before answering an order question. "
        "If the tool returns an error, apologize and ask the customer to "
        "double-check their order ID. Never invent an order status."
    ),
    tools=[FunctionTool(func=get_order_status)],
)


async def main() -> None:
    runner = InMemoryRunner(agent=root_agent, app_name="order_support")
    session = await runner.session_service.create_session(
        app_name="order_support", user_id="user-1"
    )
    message = types.Content(
        role="user", parts=[types.Part(text="What's the status of ord-12345?")]
    )
    async for event in runner.run_async(
        user_id="user-1", session_id=session.id, new_message=message
    ):
        if event.content and event.content.parts:
            for part in event.content.parts:
                if part.text:
                    print(part.text)


if __name__ == "__main__":
    import asyncio

    asyncio.run(main())

Sessions, State, and Memory

  • Use session.state for current-conversation data — user preferences discovered mid-conversation, counters, intermediate results.
  • Use a MemoryService for cross-session recall and retrieval (facts that should persist after the session ends and be searchable in future sessions).
  • Keep state values small and serializable (strings, numbers, small dicts/lists) — never store large files or binary payloads directly in session state.
  • Make state keys stable and documented; use prefixes (user:, app:, temp:) to scope state lifetime consistently across the app.
  • For production, use DatabaseSessionService or the managed Vertex AI session service instead of InMemorySessionService, which loses all state on process restart.
Show full SKILL.md (355 more words)Show less

Artifacts

  • Use artifacts for generated files, uploaded files, reports, images, audio, and any other binary data — not session state.
  • Configure an ArtifactService (e.g., InMemoryArtifactService for dev, GcsArtifactService for production) on the Runner before relying on artifact operations like save_artifact or load_artifact.
  • Version artifact filenames intentionally (ADK auto-increments versions per filename) and avoid overwriting semantically different outputs under the same name.
  • Store only references or short summaries in session state when the full content belongs in an artifact — e.g., keep report_v2.pdf as the artifact and "generated report v2" as the state note.

Evaluation and Deployment

  • Add .evalset.json test cases covering tool-call trajectories (which tools were called, in what order, with what arguments) and final response quality.
  • Run adk eval <agent_module> <eval_set_file> in CI to catch prompt regressions before merging instruction changes.
  • Use ADK's trace and event logs (adk web's trace view, or Runner events) to debug agent decisions — inspect which tool was called, what arguments were passed, and what the model saw.
  • Keep local development, staging, and production configuration separate (different SessionService/ArtifactService backends, different API keys, different model tiers).
  • Add observability for latency, tool failures, token use, and handoff failures — wrap tool functions with timing/logging decorators and export metrics to your existing monitoring stack.
  • Deploy to Vertex AI Agent Engine for a managed, autoscaled runtime, or containerize with adk deploy cloud_run / a custom Dockerfile for Cloud Run or GKE when more control over the environment is needed.

Common Mistakes

  • Making one agent responsible for every workflow instead of decomposing into focused sub-agents.
  • Letting tools accept arbitrary shell, SQL, or HTTP input without validation, which turns a tool call into an injection vector.
  • Relying on prompt text for access control — instructions like "never reveal other users' data" are guidance, not enforcement; check permissions in tool code.
  • Hiding important side effects (payments, deletions, external notifications) behind generic tool names like process or handle — name tools for what they actually do.
  • Forgetting to set output_key or output_schema when downstream code depends on a structured final response, leading to fragile string parsing.
  • Skipping evals on instruction changes — a rephrased prompt can silently change which tools the model chooses to call.

© Mindrally, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in google-adk of Mindrally/skills.

Open the folder on GitHubat commit 7682ca7

Compare with similar skills

Google Adk next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Google Adk compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Google Adk this skillMindrally/skills269—~2.5kAutomated safety check: PassApache-2.0
Google Cloud Agent SDK Masterjeremylongshore/tons-of-skills-marketplace2.8k—~1.4kAutomated safety check: PassMIT
Failproof AI SDK IntegrationFailproofAI/failproofai5.3k—~6kAutomated safety check: PassCustom licence
Retail Product Search Agentgoogle/adk-recipes10k—~3kAutomated safety check: PassApache-2.0
Google Agents CLI Adk Codepifferologo/cloud-agents-cli1291 repos~768Automated safety check: PassApache-2.0
Azure AI Projects Python SDKmicrosoft/skills3.1k—~2.8kAutomated safety check: PassMIT

Similar skills

  • Google Cloud Agent SDK Master

    jeremylongshore/tons-of-skills-marketplace

    Build, evaluate, deploy, publish, or modernize Google ADK agent applications with Google's maintained agents-cli workflow.

    2.8k GitHub stars~1.4k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Failproof AI SDK Integration

    FailproofAI/failproofai

    Helps instrument a custom Python or TypeScript agent to record events for Failproof AI, verify what gets written, and run an evaluator worker that scores the runs.

    5.3k GitHub stars~6k tokensUpdated 2 days ago
    AI & LLM EngineeringAuto-check passed
  • Retail Product Search Agent

    google/adk-recipes

    Official

    Builds a retail product search agent on Google Cloud, from catalog ingestion into BigQuery and Vector Search to ADK scaffolding, evaluation and Cloud Run deployment.

    10k GitHub stars~3k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Google Agents CLI Adk Code

    pifferologo/cloud-agents-cli

    This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management", or needs ADK (Agent…

    129 GitHub starsUsed in 1 repo~768 tokens
    AI & LLM EngineeringAuto-check passed
  • Official

    Reference for building on Microsoft Foundry with the azure-ai-projects Python SDK: project clients, versioned agents, evaluations, connections, datasets and indexes.

    3.1k GitHub stars~2.8k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Deploy AI Agent

    bolivian-peru/os-moda

    Deploy and manage AI agent workloads with GPU checks, API key management, and health monitoring

    119 GitHub stars~1.1k tokensUpdated 3 mo ago
    AI & LLM EngineeringAuto-check passed

More from Mindrally/skills

All 34 skills in this repo
  • Analytics Data Analysis

    Mindrally/skills

    Best practices for analytics, data analysis, and visualization using Python, pandas, matplotlib, seaborn, and Jupyter notebooks.

    269 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Best practices for AutoML and hyperparameter search with Optuna, Ray Tune, and PyCaret, covering search-space design, validation splits, and leakage prevention.

    269 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Blender Python Addon

    Mindrally/skills

    Best practices for writing Blender Python add-ons using the bpy API, covering operators, panels, properties, registration, and API-safe scripting.

    269 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Expert guidelines for Chrome extension development with Manifest V3, covering security, performance, and best practices.

    269 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Clean Code

    Mindrally/skills

    Clean, maintainable, human-readable code principles combined with anti-over-engineering discipline: naming, single responsibility, DRY, and scoping changes to exactly what was requested.

    269 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Design Systems

    Mindrally/skills

    Comprehensive design system guidelines for building consistent, accessible, and scalable component libraries.

    269 GitHub stars~1.8k tokensUpdated today
    Auto-check passed

Questions about Google Adk

What does Google Adk do?

Best practices for building AI agents with Google's Agent Development Kit (ADK) in Python, covering agent design, tools, sessions, memory, artifacts, evaluation, and deployment. Google Adk is an agent skill from Mindrally/skills. Best practices for building AI agents with Google's Agent Development Kit (ADK) in Python, covering agent design, tools, sessions, memory, artifacts, evaluation, and deployment.

When should I use Google Adk?

Google Adk fits situations like: building LLM agents; multi-agent systems with ADK; defining ADK tools; wiring up sessions/state/memory.

How do I install Google Adk in Claude Code?

Run `npx skills add Mindrally/skills --skill google-adk -a claude-code`. Or copy the skill folder (google-adk in Mindrally/skills) into .claude/skills/google-adk in your project. Claude Code loads it when a task matches its description.

How do I install Google Adk in Codex?

Run `npx skills add Mindrally/skills --skill google-adk -a codex`. Or copy the skill folder (google-adk in Mindrally/skills) into .agents/skills/google-adk in your project. Codex loads it when a task matches its description.

Can I use Google Adk in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Mindrally/skills --skill google-adk -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/google-adk, .gemini/skills/google-adk, .github/skills/google-adk and .opencode/skills/google-adk in your project.

What does Google Adk need to run?

SKILL.md names no scripts, command-line tools or credentials: Google Adk is instructions for the agent only. Our summary lists: Python 3.

Does Google Adk access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Google Adk safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Google Adk use?

Google Adk is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Google Adk use?

About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Google Adk?

Skills that share tags, products or a category with Google Adk: Google Cloud Agent SDK Master (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Failproof AI SDK Integration (FailproofAI/failproofai, 5.3k stars), Retail Product Search Agent (google/adk-recipes, 10k stars) and Google Agents CLI Adk Code (pifferologo/cloud-agents-cli, 129 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Google Adk?

Mindrally (a GitHub organization) maintains it in Mindrally/skills, which has 269 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on October 8, 2026.

Source: Mindrally/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.