Skip to main content
framework: google_adk connects PraisonAI’s YAML and CLI to Google’s Agent Development Kit, running your tasks against Gemini models with a single install.
Need a framework that isn’t listed here? See Framework Adapter Plugins to register your own via Python entry points.

Quick Start

1

Install

2

Set API Key

3

Create agents.yaml

4

Run

Pass --framework google_adk on the CLI or set framework: google_adk in your YAML — either alone is enough. When both are present the CLI flag takes precedence.
Both GOOGLE_API_KEY and GEMINI_API_KEY are accepted. The adapter checks GOOGLE_API_KEY first; if absent it falls back to GEMINI_API_KEY. You only need to set one.

How Google ADK Works

Every result begins with the sentinel prefix ### Google ADK Output ###. Downstream parsers can split on this to extract only the run output.

Capabilities

Handoff support landed in PraisonAI PR #2507 and requires praisonai-frameworks>=0.1.8.
Workflow YAML (steps-style) is not supported. Using framework: google_adk in a workflow YAML raises:
Use the roles: agents.yaml shape shown in the Quick Start above.

Models


Sequential Context (Task Chaining)

Tasks reference outputs of earlier tasks with context: [task_name]:
The context: semantics work the same way as in CrewAI, LangGraph, and OpenAI Agents wrappers. The Google ADK adapter wires the dependency list into the SDK’s task-to-task input chain.

Handoffs

Use handoff.to with a single router task; specialists are listed without tasks:
Multi-task configs with handoff.to fall back to sequential execution (OpenAI parity).

Direct Adapter Use (Advanced)

Call the adapter without the CLI or YAML loader:
Most users should use the CLI / YAML flow instead. Direct adapter calls are for advanced integration scenarios.

Verify Installation

Check availability via praisonai doctor:
Or check from Python:
_google_adk_probe() checks three things in order:
  1. importlib.metadata.distribution("google-adk") — the PyPI dist must be installed.
  2. importlib.util.find_spec("google.adk") — the google.adk import namespace must be discoverable.
  3. from google.adk.agents import Agent or from google.adk import Agent — the ADK’s Agent symbol must import without error (tries the submodule path first, falls back to the package root for older ADK layouts).
True from is_available("google_adk") guarantees the adapter can run, not just that the package is on disk.

Pip Extras Reference

The install-hint key maps google_adk (underscore) → google-adk (hyphen) because PyPI normalises the dist name. The YAML key, CLI flag value, and probe name are all google_adk with an underscore.

Troubleshooting

framework='google_adk' is not a valid choice — you are running a pre-PR-#2506 PraisonAI version. Upgrade: pip install -U praisonai. Framework 'google_adk' was requested but is not installed — run pip install 'praisonai[google-adk]' (from your project rather than praisonai-frameworks[google-adk] alone, so praisonai-tools is also pulled in). ValueError: framework='google_adk' in workflow YAML is not supported for workflow execution — switch the file to the roles: agents.yaml shape used in the Quick Start above. google.adk imports successfully but is_available("google_adk") returns False — the probe also requires google-adk to be visible to importlib.metadata.distribution(...). If the package was installed in editable or namespace-only mode without a real dist-info, the probe refuses. Install the published google-adk PyPI package. API key not found — set either GOOGLE_API_KEY or GEMINI_API_KEY. The adapter checks GOOGLE_API_KEY first; if absent it falls back to GEMINI_API_KEY. If both are set, GOOGLE_API_KEY wins.

Best Practices

Choose google_adk when you are already on Gemini and want the official Google ADK semantics, or when sequential task graphs with tool calls are sufficient. For dynamic multi-agent delegation requiring handoffs, both google_adk (>= 0.1.8) and praisonai, autogen_v4, openai_agents, or agno work well.
Handoff support is available since praisonai-frameworks>=0.1.8 (PraisonAI PR #2507). Use handoff.to in your YAML when you need a router agent to delegate to specialists. Multi-task configs fall back to sequential execution. See Handoffs for the full conceptual model.
Always use the roles: agents.yaml shape. The workflow steps: format raises a ValueError at validation time and is explicitly not supported for framework: google_adk.
Declare task dependencies with context: [task_name] in your YAML. This keeps the config declarative and lets the adapter wire the SDK’s task chain automatically — no adapter-level code required.
Every run returns text beginning with ### Google ADK Output ###. Downstream code can split on this sentinel to extract only the run output, making it easy to chain Google ADK results into other systems.

Agno

Agno framework integration — another multi-framework wrapper with handoff support

AutoGen

AutoGen framework integration — adjacent multi-framework wrapper

CrewAI

CrewAI framework integration

PraisonAI Agents

PraisonAI native agents framework

Framework Availability

Probe API for checking installed frameworks

Framework Adapter Plugins

Register custom adapters via entry points

Handoffs

Handoff conceptual model and which frameworks support it

Pydantic AI

Pydantic AI framework integration