Google Cloud Agent Platform (Vertex)
Google Cloud’s Agent Platform was called Vertex until 2026. Its full name is now Gemini
Enterprise Agent Platform, and its API is still aiplatform.googleapis.com.
An Agent Platform connection sends the models you choose through your own Google Cloud project, so Google bills your project instead of Amp. It serves Claude models through Model Garden and Gemini models through the OpenAI-compatible endpoint.
Amp authenticates with Workload Identity Federation. You add Amp to a workload identity pool in your project and grant it the Vertex AI User role, and Amp stores no key or secret.
Set Up a Connection
In Amp, open personal model routing or workspace model routing and add a Google Cloud Agent Platform connection. You will authenticate with Workload Identity Federation, and the form walks you through getting the credentials by showing you this script:
# The Google Cloud project that will be billed for inference.
export PROJECT_ID=my-project
export PROJECT_NUMBER=$(gcloud projects describe "$PROJECT_ID" --format "value(projectNumber)")
# The Amp user or workspace that will use this connection.
export AMP_ISSUER=AMP_ISSUER
export AMP_SUBJECT=AMP_SUBJECT
gcloud services enable aiplatform.googleapis.com iam.googleapis.com \
cloudresourcemanager.googleapis.com sts.googleapis.com --project "$PROJECT_ID"
gcloud iam workload-identity-pools create amp-inference \
--project "$PROJECT_ID" --location global --display-name "Amp"
gcloud iam workload-identity-pools providers create-oidc amp-inference \
--project "$PROJECT_ID" --location global --workload-identity-pool amp-inference \
--issuer-uri "$AMP_ISSUER" \
--attribute-mapping "google.subject=assertion.sub" \
--attribute-condition "assertion.sub == '$AMP_SUBJECT'"
gcloud projects add-iam-policy-binding "$PROJECT_ID" \
--role roles/aiplatform.user \
--member "principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/amp-inference/subject/$AMP_SUBJECT"
gcloud iam workload-identity-pools providers describe amp-inference \
--project "$PROJECT_ID" --location global --workload-identity-pool amp-inference \
--format "value(name)"The last command prints the provider resource name. Paste it into the Workload Identity Provider field, select which models should use the connection, and save.
Gemini models work as soon as the API is enabled. Each Claude model must be enabled once per
project in Model Garden by a
project Owner or a person with the Consumer Procurement Entitlement Manager role. A 404 error
that says “your project does not have access to it” means the model is not enabled yet.
Use the Check Access button to confirm that Google accepts Amp’s identity. Amp bills the project
that owns the pool and uses the global location unless you change them under Custom Project
and Custom Location.
You can also add the connection from the CLI:
amp config model-providers setup-guide google-cloud-agent-platform --workspace
# The Google Cloud project that owns the workload identity pool.
export PROJECT_ID=my-project
export PROJECT_NUMBER=$(gcloud projects describe "$PROJECT_ID" --format "value(projectNumber)")
amp config model-providers add-router google-cloud-agent-platform --workspace \
--workload-identity-provider "projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/amp-inference/providers/amp-inference" \
--model-mapping anthropic/claude-opus-4-6 To confirm that a model is served through your connection, run a small inference and inspect the modelRouting field of the JSON result:
amp config model-providers check-access --provider-model anthropic/claude-opus-4-6 \
--thread https://ampcode.com/threads/T-... This sends a real request with a short prompt, so it may incur a small cost on your Google Cloud
project (or a few Amp credits if Amp serves the model instead). Pass any thread you own with --thread, or set AMP_THREAD_ID; the thread is only used to associate the cost, and its
transcript is not changed.
Credentials Amp Does Not Accept
Workload Identity Federation is the only supported authentication method. Amp does not accept these credentials, and does not plan to:
- Service account JSON keys. These are long-lived secrets, and Google blocks key creation by default in organizations created since May 2024.
- API keys, including Express Mode keys. These keys only reach Gemini through the
generateContentAPI and cannot call Claude. - Tokens from
gcloud auth print-access-token. These tokens expire after one hour, and Amp cannot refresh them. - Google account sign-in (OAuth). This would tie the connection to one person’s Google account instead of a project-level trust.
For more, see Google’s Workload Identity Federation documentation.