Theme
Google ADK Agent Node
The Google ADK Agent node delegates execution to an agent built with the Google Agent Development Kit (ADK) and deployed on Vertex AI. ADK agents can perform multi-step reasoning, call tools, and manage complex workflows autonomously. Use this node when you need an external agent to handle a task that goes beyond what a single LLM call can accomplish.
When to Use
- You have a Google ADK agent deployed on Vertex AI that handles a complex domain (e.g., multi-step order processing, account management, technical troubleshooting).
- You want to combine OmniBots' visual flow builder with ADK's autonomous agent capabilities.
- You need the agent to perform multi-step tool calls and reasoning before returning a result.
- You are building a hybrid architecture where OmniBots manages the conversation shell and ADK agents handle specialized tasks.
Configuration
| Property | Description | Default |
|---|---|---|
| Integration | The ADK/agents integration to use. Selected via the integration selector. Must be an agents type integration. | None (required) |
| Agent ID Override | Override the reasoning engine ID from the integration. Use this if you deploy multiple agents under one project. | From integration |
| Session Variable | Variable to store the ADK session ID for multi-turn agent interactions. | adk_session_id |
| Query Variable | Variable containing the query to send to the agent. If empty, the user's last message is used. | Empty (uses last message) |
| Pass Variables | List of flow variables to pass to the agent as session parameters. The agent can read these for context. | Empty |
| Send Response | Whether to automatically send the agent's response to the user as a chat message. | true |
Google ADK Agent node config panel showing integration selector for agents type, agent ID override field, session variable input, query variable field, pass variables multi-select, and send response toggle
Passing Context
Use Pass Variables to give the ADK agent access to flow data. For example, if your flow has already collected the user's account number and order ID, pass them so the agent can use them:
Pass Variables: ["account_number", "order_id", "user_name"]The agent receives these as session parameters and can reference them during its reasoning and tool-calling steps.
Output Variables
The node stores the agent's response in configurable output variables:
| Output Variable | Default Name | Contains |
|---|---|---|
| Response | adk_response | The agent's text response to the user |
| Tool Calls | (empty) | Record of tool calls the agent made during execution (for debugging and audit) |
| Raw Response | (empty) | The full, unprocessed response from the ADK API |
TIP
You typically only need the adk_response variable. Enable tool_calls and raw_response during development for debugging, then disable them in production to keep your variable space clean.
How It Works
- The node sends the query (user message or custom variable) to the ADK agent on Vertex AI.
- The ADK agent reasons about the query, potentially calling its own tools and APIs over multiple steps.
- The agent returns a final text response.
- If Send Response is enabled, the response is sent directly to the user.
- The response and any tool call records are stored in the configured output variables.
- Execution continues to the appropriate output handle.
Multi-Turn Agent Sessions
The ADK session ID is stored in a variable (default: adk_session_id) and reused on subsequent calls to the same agent. This preserves the agent's memory and context across multiple turns of conversation.
Handles
| Handle | Direction | Description |
|---|---|---|
| Input | In | Receives execution from the previous node |
| Success | Out | The agent returned a response successfully |
| Error | Out | The agent call failed (timeout, API error, authentication failure) |
| Handoff | Out | The agent requested a handoff to a human agent |
Handoff Handle
If the ADK agent determines that it cannot resolve the issue, it can signal a handoff request. This fires the Handoff output handle, which you can connect to a Handoff node for seamless escalation.
WARNING
Google ADK agents require a deployed reasoning engine on Vertex AI. Ensure your integration is configured with the correct GCP project, region, and reasoning engine ID before using this node. Test the connection in Settings > Integrations.
Example Flow
A common pattern is to use OmniBots for greeting and intent routing, then delegate complex tasks to an ADK agent:
[Start] --> [Message: Greeting] --> [LLM Response: Classify Intent]
--> [Condition: intent]
├── "complex_issue" --> [Google ADK Agent]
│ ├── Success --> [End]
│ ├── Error --> [Message: Error] --> [Handoff]
│ └── Handoff --> [Handoff]
└── Default --> [KB Search: FAQ]