Skip to main content

agent-platform-troubleshooting

Troubleshoots Google Cloud Gemini Enterprise Agent Platform issues across Agent Gateway, Agent Connectivity Templates (ACT), Agent Registry, Agent Identity, Identity-Aware Proxy (IAP), Unified Access Policies (UAP), Model Armor, Semantic Governance Policies (SGP), Cloud DNS peering, Private CA TrustConfig, Next-Hop Secure Web Proxy (SWP), Explicit HTTPS Proxy (L4 AuthzPolicy), and Cloud Trace. Use when agent requests fail with 401/403/404/498/500/503 or Code 13, Egress request is not authorized, HTTP CONNECT fails with 404, Agent Runtime crashes on startup, or gateway/ACT/IAP/Model Armor/SGP configs fail validation. Don't use for general Google Cloud Identity and Access Management (IAM) debugging or networking issues unrelated to the Agent Platform stack.

Quellinformationen

Repository
google/skills
Letzte Quellaktivität
31. Oktober 2026 um 11:58
Erkannte Sprache von SKILL.md
Englisch
Sterne
21.786
Forks
1.860

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
8 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
agent-platform-troubleshooting
description
Troubleshoots Google Cloud Gemini Enterprise Agent Platform issues across Agent Gateway, Agent Connectivity Templates (ACT), Agent Registry, Agent Identity, Identity-Aware Proxy (IAP), Unified Access Policies (UAP), Model Armor, Semantic Governance Policies (SGP), Cloud DNS peering, Private CA TrustConfig, Next-Hop Secure Web Proxy (SWP), Explicit HTTPS Proxy (L4 AuthzPolicy), and Cloud Trace. Use when agent requests fail with 401/403/404/498/500/503 or Code 13, Egress request is not authorized, HTTP CONNECT fails with 404, Agent Runtime crashes on startup, or gateway/ACT/IAP/Model Armor/SGP configs fail validation. Don't use for general Google Cloud Identity and Access Management (IAM) debugging or networking issues unrelated to the Agent Platform stack.
metadata
{"version":"1.1.0","category":"AiAndMachineLearning"}
# Agent Platform Troubleshooting > **Important:** You MUST ONLY use the reference files located in this skill's > `references/` directory (`references/field-manual.md`, > `references/known-issues.md`, `references/agent-gateway.md`, > `references/policies.md`, `references/agent-registry.md`, > `references/agent-identity.md`). Do NOT search for or read external playbooks > outside this directory. Diagnose issues across the Google Cloud Gemini Enterprise Agent Platform: Agent Gateway, Agent Connectivity Templates (ACT), Agent Registry (Services, Agents, MCP Servers, Endpoints), Agent Identity, IAP/UAP policies, Model Armor, Semantic Governance Policies (SGP), explicit/transparent proxies, and tracing. This skill produces a **diagnostic report** — findings and fix recommendations. It does not apply fixes; the user owns all mutations. ## Usage Attribution **MUST READ**: Before executing any `gcloud`, REST API, or MCP command, you MUST read and follow [Usage Attribution](references/attribution.md). Prefix direct terminal `gcloud` calls (never generated scripts, Terraform, or user code) with `CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:agent-platform-troubleshooting)"` and append `agent-skills/1.0 (skill:agent-platform-troubleshooting)` to direct HTTP/REST/MCP `User-Agent` headers. ## MANDATORY PRE-FLIGHT CHECKLIST (CHECK BEFORE RESPONDING OR CALLING TOOLS) CRITICAL: Before generating ANY response or calling any tools, evaluate the user's prompt against Rules 1–14. When a Turn-0 rule matches, execute its directive immediately and STOP. ### Rule 1: Out-of-Scope GCP IAM / GCS Queries If the prompt asks about Compute Engine (GCE), Cloud Storage (GCS) buckets, or generic GCP IAM permissions unrelated to the Agent Platform stack: - **IMMEDIATELY DECLINE ON TURN 0. DO NOT CALL ANY TOOLS OR GIVE IAM GUIDES.** - Respond: *"I decline to troubleshoot generic GCP IAM or GCS access issues, as they are out of scope for the Agent Platform Troubleshooting skill."* ### Rule 2: Strict Prohibition on Custom Discovery Scripts If asked to write, generate, compile, or execute a custom Python or bash script to discover resources (e.g., active Agent Runtime instances): - **DO NOT CALL ANY TOOLS OR WRITE/RUN ANY SCRIPTS.** - **RESPOND ON TURN 0**: *"I cannot write or execute custom Python or bash scripts for resource discovery. Custom discovery scripts are prohibited as they consume excessive turns and cause timeouts. Instead, use standard gcloud CLI commands (see [Google Cloud SDK Installation](https://docs.cloud.google.com/sdk/docs/install.md.txt)) or curl REST API calls with application default credentials: `gcloud agent-registry agents list --location=us-central1` or `curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/reasoningEngines"`"* ### Rule 3: Consolidated Registry for Google APIs / Design Queries If asked about registering multiple Agent Runtime, Cloud Resource Manager, or Google API interfaces, or structuring services in Agent Registry: - **DO NOT CALL ANY TOOLS. RESPOND ON TURN 0 WITH**: 1. Consolidate ALL Google APIs under a single `googleapis` service entry in Agent Registry via `gcloud agent-registry services create googleapis --endpoint-spec-type=no-spec`. 2. Explicitly state: *"Do NOT register each Google API as a separate registry service entry, as separate entries cause resource clutter, complicate IAM policy management, and risk hitting registry quota limits."* 3. List all 8 required base FQDN interfaces (plus global `https://aiplatform.googleapis.com` when calling global Gemini models): - `https://agentregistry.googleapis.com` - `https://aiplatform.mtls.googleapis.com` - `https://cloudresourcemanager.mtls.googleapis.com` - `https://iamcredentials.mtls.googleapis.com` - `https://telemetry.mtls.googleapis.com` - `https://{region}-aiplatform.mtls.googleapis.com` - `https://{region}-aiplatform.googleapis.com` - `https://aiplatform.{region}.rep.googleapis.com` 4. Refer to `references/agent-registry.md` §2 for the full command. ### Rule 4: Cloud Run / Cloud Functions Egress 401/403 (OIDC vs IAP MCP) If an agent gets a `401` or `403` egress error calling an MCP server or tool on Cloud Run or Cloud Functions: - **DO NOT RUN LOG TOOLS. RESPOND ON TURN 0 WITH**: 1. Explain that direct Agent Identity (`principalSet://...` / `principal://...`) to standard Cloud Run OIDC authentication is **not natively supported**. 2. Recommend **Service Account impersonation** in agent code to obtain an OIDC ID token, granting **`roles/iam.serviceAccountTokenCreator`** to the Agent Identity on the target SA (and `roles/run.invoker` to that SA on Cloud Run). 3. Note that for Preview IAP-enabled Cloud Run MCP servers (`--iap --functional-type=mcp-server`, `run.app` short URL), authorize via IAP/UAP instead of `roles/run.invoker` (see `references/known-issues.md` BKI 21 and `references/agent-identity.md`). ### Rule 5: Telemetry & Monitoring Endpoint Blocks on Startup If Agent Runtime startup crashes (`set_up()`) with connection resets or handshake errors reaching `telemetry.mtls.googleapis.com`: - **Evidence**: Explicitly check whether all 4 monitoring/tracing endpoints are registered as Endpoints in Agent Registry (`gcloud agent-registry endpoints list`): `telemetry.mtls.googleapis.com`, `monitoring.googleapis.com`, `trace.mtls.googleapis.com`, and `cloudtrace.googleapis.com`. - **Recommended Fix**: 1. Register missing telemetry/tracing interfaces via `gcloud agent-registry services create --endpoint-spec-type=no-spec` (which projects read-only Endpoints in Agent Registry for `telemetry.mtls.googleapis.com`, `monitoring.googleapis.com`, `trace.mtls.googleapis.com`, and `cloudtrace.googleapis.com`). 2. Create or update an **`AuthorizationPolicy`** (`AuthzPolicy` / IAP / UAP) bound to the Gateway that allows the agent's principal set (identity) to access the telemetry endpoints (see `references/known-issues.md` BKI 23). ### Rule 6: IAP Denial Troubleshooting (`403` / `Egress request is not authorized`) When logs or symptoms show `403` / `Egress request is not authorized` via IAP: 1. **Check IAP Egressor bindings on the registry entry FIRST** (`roles/iap.egressor` via `gcloud iap web get-iam-policy --resource-type=agent-registry` bound to the server-generated child UUID from `registryResource`, not `SERVICE_NAME`). 2. **Create a registry entry** (`gcloud agent-registry services create`) if none exists for the exact target hostname. 3. **Grant `roles/iap.egressor`** on the registry entry (IAM v1 — `set-iam-policy` requires top-level `{"bindings": [...]}` JSON without a `"policy"` wrapper) or verify UAP `AccessPolicy` + CRM `PolicyBinding` (`iapPolicyVersion: "V2"`, `iap.googleapis.com/resources.egressViaIAP`; see `references/policies.md` §2). 4. **Check IAP audit logs** (`protoPayload.serviceName="iap.googleapis.com"`) and verify an `AuthorizationPolicy` (`AuthzPolicy`) is bound to the Gateway. 5. **Explicitly warn**: *"Do NOT use `roles/iap.tunnelResourceAccessor` (which is for classic IAP TCP tunneling to GCE VMs, not Agent Gateway egress) and do NOT bypass IAP authentication."* ### Rule 7: PSC Subnet Exhaustion Speed Rule (`PROVISIONING` Hang) When diagnosing gateway provisioning stuck or failing on subnet IP exhaustion: - **DO NOT loop across regions.** Run ONLY in the target region (default `us-central1`): 1. `gcloud network-services agent-gateways list --location=us-central1` 2. `gcloud network-services agent-gateways describe <GW> --location=us-central1` 3. `gcloud compute network-attachments describe <NA> --region=us-central1` 4. `gcloud compute networks subnets describe <SUBNET> --region=us-central1` - Check free IP count (`Usable - Allocated = Free`) **before** recommending any Network Attachment deletion; flag that a `/28` subnet is easily exhausted and recommend expanding the CIDR range to at least `/26` (`known-issues.md` BKI 19). ### Rule 8: Multi-Region Manual Registration Prohibition (`us` / `eu`) If asked about manually registering endpoints or services in `us` or `eu`: - **DO NOT CALL ANY TOOLS. RESPOND ON TURN 0**: 1. *"Manual endpoint/service registration is NOT supported in `us` or `eu` multi-region locations (`us` and `eu` are read-only roll-up locations for auto-discovered resources)."* (Explicitly name BOTH `us` and `eu`.) 2. *"Register manually in a specific region (e.g., `us-central1`) or `global`."* ### Rule 9: VPC Service Controls (VPC-SC) Perimeter & ACT `ALL_TRAFFIC` When diagnosing VPC-SC perimeter blocks or external API hangs under VPC-SC: 1. Identify a **VPC Service Controls perimeter block** / boundary enforcement. 2. Check that the Agent Connectivity Template (ACT) sets **`vpcEgress: ALL_TRAFFIC`** (native VPC-SC creation works out of the box since Sept 8, 2026 when `vpcEgress: ALL_TRAFFIC` is set) and that **Cloud NAT** is configured on the consumer VPC's PSC-I network attachment subnet. 3. For legacy or strict custom perimeters blocking Google actuation identities, recommend creating **ingress policies** allowing: - `actuation-a@networkservices-prod.iam.gserviceaccount.com` - `cloud-aiplatform-pipeline-robot-prod@system.gserviceaccount.com` 4. Explicitly state: *"Do NOT disable VPC Service Controls or delete perimeters."* Refer to `references/known-issues.md` BKI 18 & 28. ### Rule 10: UAP Policy Binding Org Policy Blocker & Blanket `DENY` Crash - **`CUSTOM_ORG_POLICY_VIOLATION` on `gcloud iam policy-bindings create`**: Caused by **`constraints/iam.managed.disableAccessPolicyBinding`** (note: some docs misspell this plural). Apply an Org Policy override (`enforce: false`) at the target resource and wait **30 to 60 seconds** for IAM propagation (BKI 24). - **Startup crash after UAP `destination.is_registered == false` `DENY`**: Explain that the blanket `DENY` blocked internal/unauthenticated SDK bootstrap and metadata calls (such as Cloud Resource Manager project lookups) during Reasoning Engine init; remove or scope the blanket `DENY` rule (BKI 5). ### Rule 11: Agent Gateway Dual-Registry & Jurisdiction Invariants When configuring or validating `registries` on an Agent Gateway: 1. An Agent Gateway supports a **maximum of two registries**. 2. When two registries are configured, **exactly one must be `global`** and the other must be **`regional` or `multi-regional`**. 3. Binding two regional registries (e.g., `us-central1` + `europe-west1`), two multi-regionals, two globals, or a mismatched jurisdiction (e.g., `us-central1` gateway + `eu` registry) is invalid and rejected with an **HTTP 400** validation error (`references/agent-gateway.md` §4, BKI 26). ### Rule 12: Cross-Project Runtime-to-Gateway Binding Diagnosis When Reasoning Engine in Project 1 fails to bind to a Gateway in Project 2: 1. **Deploying Identity**: Needs `networkservices.agentGateways.use` and `networkservices.agentGateways.get` (or `roles/networkservices.viewer`) in Project 2. 2. **Vertex AI Service Agent**: Grant `roles/networkservices.viewer` or custom role `ae_agw_cross_project_sa` (alias `ar_agw_cross_project_sa`) to `service-PROJECT_1_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com` in Project 2. 3. **Regional Colocation**: Verify both runtime and gateway are in the **same region**. 4. **CAA Opt-Out**: Set `GOOGLE_API_PREVENT_AGENT_TOKEN_SHARING_FOR_GCP_SERVICES` to `False` (`references/known-issues.md` BKI 10, `references/agent-gateway.md` §11). ### Rule 13: Downstream SWP + PBR vs. Explicit Forward HTTPS Proxy Distinguish the two supported consumer-VPC proxy architectures: - **Pattern A — Transparent Next-Hop SWP + PBR** (no client `HTTPS_PROXY` needed): 1. Explain that **PSC endpoints cannot be route next-hops**, **SWP behind PSC Service Attachments only supports explicit proxy mode (not transparent next-hop mode)**, and **static routes cannot be used because Network Attachments cannot have VM network tags**. 2. Deploy SWP directly in the consumer VPC with `type: SECURE_WEB_GATEWAY` and `routingMode: NEXT_HOP_ROUTING_MODE` on an internal IP on the PSC-I subnet (e.g., `10.20.1.250`), with a `/26` `REGIONAL_MANAGED_PROXY` `ACTIVE` subnet. 3. Configure **Policy-Based Routing (PBR)** matching source CIDR `10.20.1.0/24` to `--next-hop-ilb-ip=10.20.1.250` (priority 200) + fallback PBR (1000). 4. Create **Cloud NAT with `ENDPOINT_TYPE_SWG`** (`nats create ... --endpoint-types=ENDPOINT_TYPE_VM,ENDPOINT_TYPE_SWG`), and allowlist `<region>-aiplatform.mtls.googleapis.com` in SWP CEL (BKI 33). - **Pattern B — Explicit Forward HTTPS Proxy (`HTTPS_PROXY` + L4 `AuthzPolicy`)**: 1. Without L4 bypass, `HTTPS_PROXY=https://proxy.corp.internal:443` fails on `HTTP CONNECT` with **HTTP `404`** because Agent Gateway's L7 HTTP manager terminates TLS and rejects nested `CONNECT`. 2. Import a **`v1beta1`** L4 `AuthzPolicy` via **`gcloud beta network-security authz-policies import`** with `action: ALLOW` and `networkRules` matching `to.operations[].snis` (omit `target.loadBalancingScheme` and `ports`; max 5 rules; omit `from` or include `7.0.0.0/8` + PSC-I CIDR in `from.sources[].ipBlocks`). 3. Listen with TLS on `:443`, allow the consumer PSC-I subnet CIDR on VPC firewall/proxy ACLs (never `7.0.0.0/8`), set `NO_PROXY`/`no_proxy` to `.googleapis.com,googleapis.com,metadata.google.internal,169.254.169.254,localhost,127.0.0.1`, bundle `agentGatewayCard.rootCertificates` + Private CA in container env vars (`SSL_CERT_FILE`, `REQUESTS_CA_BUNDLE`), and warn L4 `ALLOW` bypasses L7 IAP/UAP, Model Armor, SGP, and `httpRules` for matched SNIs (BKI 34). ### Rule 14: DNS Peering, `TrustConfig`, Model Armor, SGP, MCP, Identity, & Lifecycle - **DNS Peering & Service Agent**: Public FQDNs resolve via public recursive DNS. Private DNS requires `dnsPeeringConfig` (`domains` array with trailing `.`; ACT uses string `targetNetwork` only, whereas inline `AgentGateway.networkConfig.dnsPeeringConfig` also requires `targetProject`). Cloud DNS caps total peering hops at **2** (Gateway consumes Hop 1 → max 1 consumer peering hop; a 2nd hop fails preflight or returns `SERVFAIL` → `503`, BKI 35). Grant `roles/dns.peer`, `roles/dns.reader`, `roles/compute.networkViewer`, and `roles/compute.networkUser` to `service-GATEWAY_PROJECT_NUMBER@gcp-sa-agentgateway.iam.gserviceaccount.com` (and `compute.networkAttachments.use` to caller, BKI 9). Never use authoritative `"."` private root zones (`"."` requires a Cloud DNS Private Forwarding Zone). - **Private CA `TrustConfig` & Immutable ACT**: Set `egressNetworkConfig.tlsConfig.trustConfig` **with `additionalRoots: PUBLICLY_TRUSTED_ROOTS`** (omitting breaks `*.googleapis.com`). ACT fields are immutable — create a new ACT and rebind via `PATCH` with `updateMask=agentConnectivityTemplate` (BKI 6). - **Model Armor (`CONTENT_AUTHZ`)**: Ingress (`CLIENT_TO_AGENT`, max 1, ADK `streamQuery` only) uses `service-AGENT_PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com`; Egress (`AGENT_TO_ANYWHERE`, max 4) uses `service-GATEWAY_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com`.
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen