google.adk.agents.LlmAgent as an A2A-compatible server without modifying your agent code. The GoogleADKAgentExecutor manages ADK session lifecycle, tool injection, and response extraction automatically so you can concentrate on building your agent’s logic.
Installation
Quick example
Define your ADK agent in a standard Python module, then pass it toflokoa run. The executor wraps it and starts the A2A server.
my_adk_agent.py
http://localhost:8080 and accepts A2A requests immediately.
GoogleADKAgentExecutor
flokoa.integrations.google_adk.agent_executor.GoogleADKAgentExecutor wraps a google.adk.agents.LlmAgent and implements the A2A AgentExecutor interface. flokoa run instantiates it for you, but you can also use it directly when building custom server setups.
- Automatic session management — The executor creates a fresh
InMemorySessionService,InMemoryArtifactService, andInMemoryMemoryServicefor each request via the ADKRunner, so you never manage session state yourself. - Automatic tool injection — Tools defined as
AgentToolCRDs are mounted at/etc/flokoa/tools/and injected into the ADK agent’stoolslist at runtime, the same way as the pydantic-ai integration. - TTL-based caching — Tool definitions and model configuration are cached (default: 60 seconds). Set
FLOKOA_CACHE_TTL_SECONDSto adjust the TTL, or setFLOKOA_CACHE_ENABLED=falseto disable caching entirely. - Final-response extraction — The executor streams all ADK events and extracts the last text part as the final response delivered to the A2A caller.
Toolsets
WhenAgentTool CRDs are mounted by the operator, the executor builds a FlokoaToolset and appends it to the ADK agent’s tools list before each run. The executor checks whether a FlokoaToolset is already present to avoid adding duplicate toolsets across requests.
The Google ADK integration also supports the openapi tool type. When an OpenAPI tool definition is mounted, the executor creates an ADK OpenAPIToolset from the inline spec and includes its RestApiTool instances in the toolset passed to the agent.
The Google ADK integration requires a Google model provider. Configure a Model CR that references a Google Gemini model and attach it to your Agent CR. If the agent’s
model field is not set and no Model CR is referenced, the ADK runner will raise an error at request time.Running in Kubernetes
Build a container image with your ADK agent andflokoa[google-adk] installed, then declare an Agent CR with framework: google-adk.
AgentTool CRDs into the container automatically. The executor picks them up at runtime without any changes to your agent code.