Google Agent Platform
Discover the agents your teams deploy on Vertex AI Agent Engine and Dialogflow CX with one GCP connection.
Airia connects to a Google Cloud project and discovers the agents deployed there on two product surfaces with a single connection:
- Vertex AI Agent Engine: code-first agents (Google calls them reasoning engines) written with a framework such as the Agent Development Kit (ADK), LangChain, LangGraph or LlamaIndex and deployed to Google's managed runtime.
- Dialogflow CX (Conversational Agents): agents built in the Dialogflow CX console.
Google renamed Vertex AI to Gemini Enterprise Agent Platform in April 2026. The Agent Engine
APIs, IAM roles and console paths still use the aiplatform and vertex-ai names, so this page
uses Vertex AI where it refers to them.
Status
The Google Agent Platform connector is released behind a feature flag, so it may not be enabled for your tenant yet. If the Google Agent Platform tile under Discover → Connect is marked Coming Soon, ask your Airia contact to enable it.
What Airia discovers
| Google resource | Appears in Airia as | Components |
|---|---|---|
| Agent Engine deployment (reasoning engine) | An agent | One tool per operation the deployment exposes (its registered class methods, such as query or stream_query), with the method's schema |
| Dialogflow CX agent | An agent | One tool per tool configured on the agent. The generative model set in the agent's generative settings is recorded as its AI model |
For each agent Airia records its name, description, a link to it in Google's console (the
Google Cloud console for Agent Engine, the Dialogflow CX console for Dialogflow agents), and the
project and location it lives in (shown as project-id (location)). The AI provider is
recorded as Google.
Each sync reconciles the inventory with Google Cloud. A deployment or agent deleted in Google Cloud is removed from Airia, and one that changes is marked Not secured again so it can be reviewed:
- Agent Engine: any update to the deployment counts, including a change to its operations.
- Dialogflow CX: a change to the agent's own settings counts (name, description, language, time zone, start flow or playbook, logging, security settings). The agent's tools and model are re-read only when one of those settings changes, so a tool or model edit on its own shows up in Airia after the agent's next settings change.
Discovery is inventory only:
- No AI model names for Agent Engine deployments. An Agent Engine agent chooses its model in its own code, so Google does not report it. Dialogflow CX agents do report theirs.
- No automatic AI Gateway routing. Airia does not reconfigure these agents to send model traffic through the gateway. If you control an Agent Engine agent's code, you can point its model client at the gateway yourself; see Gemini Enterprise Agent Platform.
- Dialogflow CX flows, pages, playbooks and data stores are not discovered.
- No MCP servers. Neither API exposes one.
GCP coverage at a glance
Three questions that often get conflated; keep them separate:
| Question | Answer |
|---|---|
| Can Airia discover Vertex AI Agent Engine and Dialogflow CX agents? | Yes, with this connector |
| Can Airia route Gemini models through the AI Gateway with a Gemini API key? | Yes, with the Gemini gateway provider. Configured separately from this connector |
| Can Airia route models hosted on Vertex AI (Gemini, Claude, Llama) through the AI Gateway with a GCP service account? | Yes, with the Gemini Enterprise Agent Platform gateway provider. Configured separately from this connector |
Authentication model
A GCP service account JSON key. One connection covers one project and one location; create another connection for each additional project or location.
Required GCP APIs and IAM roles (least privilege)
Enable both APIs in the project, even if you only use one of the two surfaces:
- Vertex AI API (
aiplatform.googleapis.com) - Dialogflow API (
dialogflow.googleapis.com)
Then grant the service account both roles on the project:
| Role | Covers |
|---|---|
roles/aiplatform.viewer (Vertex AI Viewer) | Listing and reading Agent Engine deployments (aiplatform.reasoningEngines.list, aiplatform.reasoningEngines.get) |
roles/dialogflow.reader (Dialogflow API Reader) | Listing and reading Dialogflow CX agents and their configuration (dialogflow.agents.list, dialogflow.agents.get) |
No write permissions are needed. If your internal policy prefers a single broader role,
roles/aiplatform.user (Vertex AI User) also covers Agent Engine but grants more than needed.
Each sync reads both surfaces, and a sync fails if either one is refused. If your teams use
only Agent Engine, still enable the Dialogflow API and grant roles/dialogflow.reader: an empty
Dialogflow CX project is fine, a disabled API or missing role is not. The same applies the other
way round.
Customer-side setup steps
- In the Google Cloud console, open the project that hosts your Agent Engine deployments or Dialogflow CX agents.
- APIs & Services → Library. Enable the Vertex AI API and the Dialogflow API.
- IAM & Admin → Service Accounts → Create service account. Name it something like
airia-agent-discovery. - Grant the service account
roles/aiplatform.viewerandroles/dialogflow.readeron the project. - Open the service account → Keys → Add key → Create new key → JSON, and download the key file.
- In Airia, go to Discover → Connect → Google Agent Platform and create a new connection with the project ID, location and the contents of the key file.
The same setup with the gcloud CLI:
PROJECT_ID=your-project-id
SA=airia-agent-discovery
gcloud services enable aiplatform.googleapis.com dialogflow.googleapis.com --project "$PROJECT_ID"
gcloud iam service-accounts create "$SA" --project "$PROJECT_ID" \
--display-name "Airia agent discovery"
for ROLE in roles/aiplatform.viewer roles/dialogflow.reader; do
gcloud projects add-iam-policy-binding "$PROJECT_ID" \
--member "serviceAccount:$SA@$PROJECT_ID.iam.gserviceaccount.com" \
--role "$ROLE"
done
gcloud iam service-accounts keys create ~/airia-agent-discovery.json \
--iam-account "$SA@$PROJECT_ID.iam.gserviceaccount.com"If your organization enforces the iam.disableServiceAccountKeyCreation policy, the last step
fails; ask your Google Cloud administrator for an exception for this project.
Form fields the Airia UI asks for
| Field | Required | Notes |
|---|---|---|
| Name | Yes | A label for the connection, for example "Prod us-central1" |
| Project ID | Yes | The GCP project ID (not the project name or number). Cannot be changed after the connection is saved |
| Location | Yes | Chosen from a list of supported Google Cloud locations. Cannot be changed after the connection is saved |
| Service account JSON | Yes | The full JSON key file, pasted as-is. Stored encrypted, masked on edit |
To point an existing connection at a different project or location, create a new connection.
Choosing a location
The one location you pick is used for both surfaces, and every sync reads both:
- Pick a region, for example
us-central1oreurope-west4: the region your Agent Engine deployments run in. Dialogflow CX agents in that same region are discovered by the same connection. - Avoid
globalandus. They are Dialogflow CX multi-region locations, and Agent Engine is not offered in them, so a connection set to either is expected to fail its syncs even though the connection test only warns.
If your Agent Engine deployments are in more than one region, create one connection for each region.
Connection test checks
- Configuration: the project ID, location and service account JSON are present, and the JSON parses.
- Authentication: Google Cloud accepts the service account key. A temporary Google Cloud error here is reported as a warning rather than a failure.
- Dialogflow CX agents:
dialogflow.agents.listis allowed, and reports how many agents were found. - Agent Engine deployments:
aiplatform.reasoningEngines.listis allowed, and reports how many deployments were found.
A failed check 1 or 2 blocks saving. Checks 3 and 4 are warnings, so you can save the connection with one, but a missing permission or a disabled API named in a warning also makes every sync fail (see the callout above). A warning that no agents or deployments were found on a surface is harmless when you have none there.
Multiple environments
One connection per project and location pair. Name each connection so the pair is clear ("Prod us-central1", "Sandbox europe-west4").
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Authentication fails | The key was deleted or the service account is disabled | Create a new JSON key and update the connection |
A check warns that aiplatform.reasoningEngines.list or dialogflow.agents.list is missing | The role is not granted on this project, or that API is not enabled | Grant the role named in the warning and enable the API, then test again |
| The test passes with a warning but every sync fails | One surface is refused (see the previous row) | Fix the warning; syncs need both surfaces |
| "Connected, but no Vertex AI Agent Engine (ReasoningEngine) resources were found" | The connection's location is not the region the deployments run in | Create a connection in the region your Agent Engine deployments use |
Syncs fail on a connection set to global or us | Agent Engine is not offered in those locations | Create the connection in a specific region instead |
| A Dialogflow CX agent shows no model | The agent has no generative settings, or they could not be read when it was first discovered | If the agent does use a generative model, check that the service account can read its generative settings |
| A Dialogflow CX agent is marked Not secured after every sync | Its model or tools could not be read, so Airia re-reads them each sync until the read succeeds | Check the service account's Dialogflow permissions; once a read succeeds the status stops resetting |
Related connectors
- Gemini Enterprise is its own connector with the same field shape (project ID, location, service account JSON); see Gemini Enterprise.
- Google Workspace covers domain-level AI deployments and per-user OAuth grants; see Google Workspace. It is a different connector with different credentials.