# Google Agents Cli Publish > Guía para publicar un agente ADK o A2A en Gemini Enterprise, gestionar el Agent Registry y usar el comando `agents-cli publish gemini-enterprise`. Fuente: https://skillsagentes.com/skills/google/agents-cli/google-agents-cli-publish Markdown: https://skillsagentes.com/skills/google/agents-cli/google-agents-cli-publish.md Repositorio: https://github.com/google/agents-cli Autor: google Licencia: Apache-2.0 Actualizado: el mes pasado Coste de contexto: 163 tok instalada, 2.6k tok al activarse, 2.6k tok con todos los archivos del bundle Bundle: 1 archivo, 10 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add google/agents-cli --skill google-agents-cli-publish --agent claude-code # Cursor npx -y skills add google/agents-cli --skill google-agents-cli-publish --agent cursor # Codex npx -y skills add google/agents-cli --skill google-agents-cli-publish --agent codex # Gemini CLI npx -y skills add google/agents-cli --skill google-agents-cli-publish --agent gemini # Windsurf npx -y skills add google/agents-cli --skill google-agents-cli-publish --agent windsurf # Cline npx -y skills add google/agents-cli --skill google-agents-cli-publish --agent cline ``` ## Qué hace - Registra un agente ADK o A2A en Gemini Enterprise mediante `agents-cli publish gemini-enterprise` - Auto-detecta agent runtime ID y tipo de registro desde `deployment_metadata.json` - Gestiona el fleet de Agent Registry con comandos `gcloud alpha agent-registry` - Ofrece modo interactivo (`--interactive`) y programático (flags/env vars) para CI/CD ## Cuándo usarla - El usuario quiere "publicar un agente" o "registrar un agente con Gemini Enterprise" - Se necesita guía sobre el comando `agents-cli publish gemini-enterprise` - El usuario quiere listar, actualizar o eliminar agentes registrados en Agent Registry ## Cuándo no - Para tareas de despliegue del agente (usar google-agents-cli-deploy) ## Qué la activa - "Publica mi agente ADK en Gemini Enterprise" - "Registra este agente A2A en Cloud Run con Gemini Enterprise" - "Lista los agentes registrados en Agent Registry" - "¿Cómo actualizo el endpoint de un agente en Agent Registry?" ## Antes de instalar - Requiere un agente ya desplegado y una app de Gemini Enterprise existente; `agents-cli` se instala con `uv tool install google-agents-cli`. - Necesita en el PATH: gcloud - Variables de entorno: AGENT_RUNTIME_ID, GEMINI_ENTERPRISE_APP_ID - makes network requests - reads environment config ## Archivos - SKILL.md — 10 KB ## SKILL.md Reproducido tal cual desde google/agents-cli bajo Apache-2.0. Esta sección es el documento original y está en inglés. # Gemini Enterprise Registration > **Requires:** A deployed agent. For Agent Runtime, `deployment_metadata.json` (created by `agents-cli deploy`) enables auto-detection. For Cloud Run or GKE, provide the agent card URL and flags directly. ## Prerequisites 1. **Agent must be deployed** — the agent must be running and reachable 2. **Gemini Enterprise app must exist** — Create one in Google Cloud Console → Gemini Enterprise → Apps before registering 3. **`deployment_metadata.json`** (Agent Runtime only) — Created automatically by `agents-cli deploy`; contains the agent runtime ID, deployment target, the A2A flag, and the agent directory 4. **Text-based agent** — Live/voice (bidi) agents are **not supported** by Gemini Enterprise, which has no `/run_live` transport. Register a text-based agent instead. ## Required Permissions for A2A on Cloud Run - **`roles/run.servicesInvoker`** granted to the Discovery Engine service account (`service-@gcp-sa-discoveryengine.iam.gserviceaccount.com`) on the Cloud Run service. --- ## Registration Modes ### A2A Registration Every scaffolded agent serves the Agent-to-Agent protocol. A2A is the default — and only — registration type on **Cloud Run** and **GKE** (no reasoning engine to invoke natively). It also works on **Agent Runtime** via `--registration-type a2a`. For an ADK agent there the CLI warns against it, because Gemini Enterprise can invoke Agent Runtime natively via `:streamQuery` — prefer ADK registration in that case. For an agent built on another framework there is no ADK app to invoke natively, so A2A is the right mode on every target and the warning is expected. Pass the agent card URL and the command fetches the card and registers it; display name and description default to the card's `name`/`description`. ```bash # A2A on Cloud Run / GKE. The card path depends on the project's language: # Python -> /a2a/{app_name}/.well-known/agent-card.json # Go -> /.well-known/agent-card.json agents-cli publish gemini-enterprise \ --agent-card-url https://my-service-abc123.us-east1.run.app/a2a/app/.well-known/agent-card.json \ --gemini-enterprise-app-id projects/123456/locations/global/collections/default_collection/engines/my-app ``` Pass `--display-name` / `--description` to override the card defaults. On Agent Runtime, the card URL auto-builds from `deployment_metadata.json` if you omit `--agent-card-url`. ### ADK Registration (default on Agent Runtime) > **ADK projects only.** The agent must be deployed to Agent Runtime as an ADK app, since > registration invokes it through `:streamQuery`. An agent on another framework registers over > A2A, so deploy it to Cloud Run or GKE and publish from there. This is the **default and recommended registration for ADK agents on Agent Runtime**: Gemini Enterprise invokes the agent natively via `:streamQuery` on its reasoning engine resource, authenticating end-to-end. Under the hood, `:streamQuery` dispatches to the `AdkApp`'s `streaming_agent_run_with_events` method — when debugging an ADK invocation, search the runtime's `reasoning_engine_stderr` logs for that method name to trace the failure. It's also the path to use when the agent needs an OAuth authorization (`--authorization-id`). The agent is registered directly via its reasoning engine resource name; no agent card URL is needed. ```bash agents-cli publish gemini-enterprise \ --registration-type adk \ --agent-runtime-id projects/123456/locations/us-east1/reasoningEngines/789 \ --gemini-enterprise-app-id projects/123456/locations/global/collections/default_collection/engines/my-app \ --display-name "My Agent" \ --description "Handles customer queries" \ --tool-description "Answers questions about products" ``` --- ## Programmatic Mode (CI/CD) The command is non-interactive by default — pass all required values via flags or environment variables. This makes it safe for CI/CD pipelines. ### Via flags ```bash agents-cli publish gemini-enterprise \ --agent-runtime-id "$AGENT_RUNTIME_ID" \ --gemini-enterprise-app-id "$GEMINI_ENTERPRISE_APP_ID" \ --display-name "Production Agent" \ --registration-type adk ``` ### Via environment variables Most flags have an env var alternative (`--metadata-file`, `--interactive`, and `--list` do not): ```bash export AGENT_RUNTIME_ID="projects/123456/locations/us-east1/reasoningEngines/789" export GEMINI_ENTERPRISE_APP_ID="projects/123456/locations/global/collections/default_collection/engines/my-app" export GEMINI_DISPLAY_NAME="Production Agent" export GEMINI_DESCRIPTION="Handles customer queries" agents-cli publish gemini-enterprise ``` --- ## Interactive Mode (`--interactive`) Pass `--interactive` (or `-i`) to be guided through any missing values with interactive prompts. The command will list available Gemini Enterprise apps, offer to auto-detect the agent runtime ID from metadata, and prompt for display name and description. ```bash agents-cli publish gemini-enterprise --interactive ``` --- ## Complete Flag Reference | Flag | Env Var | Description | |------|---------|-------------| | `--agent-runtime-id` | `AGENT_RUNTIME_ID` | Agent Runtime resource name (auto-detected from `deployment_metadata.json`) | | `--gemini-enterprise-app-id` | `ID` or `GEMINI_ENTERPRISE_APP_ID` | Gemini Enterprise app full resource name | | `--display-name` | `GEMINI_DISPLAY_NAME` | Display name in Gemini Enterprise | | `--description` | `GEMINI_DESCRIPTION` | Agent description | | `--tool-description` | `GEMINI_TOOL_DESCRIPTION` | Tool description (ADK mode only, defaults to description) | | `--registration-type` | `REGISTRATION_TYPE` | `adk` or `a2a` (defaults to `adk` for an ADK agent on Agent Runtime, `a2a` everywhere else, including any non-ADK framework) | | `--agent-card-url` | `AGENT_CARD_URL` | Agent card URL for A2A registration | | `--deployment-target` | `DEPLOYMENT_TARGET` | `agent_runtime`, `cloud_run`, or `gke` (sets the default registration type — ADK on Agent Runtime, A2A on Cloud Run / GKE — and the A2A auth method) | | `--project-id` | `GOOGLE_CLOUD_PROJECT` | GCP project ID for billing | | `--project-number` | `PROJECT_NUMBER` | GCP project number (used for Gemini Enterprise lookup) | | `--authorization-id` | `GEMINI_AUTHORIZATION_ID` | OAuth authorization resource name | | `--metadata-file` | — | Path to deployment metadata (default: `deployment_metadata.json`) | | `--interactive` / `-i` | — | Enable interactive prompts | | `--list` | — | List Gemini Enterprise apps in the current project and exit | --- ## Auto-Detection from Metadata When `deployment_metadata.json` exists, the command automatically: - Reads the **agent runtime ID** (`remote_agent_runtime_id`) - Determines the **registration type**: defaults to **ADK** (native `:streamQuery`) on **Agent Runtime**, and **A2A** on **Cloud Run / GKE** (which have no reasoning engine). A project scaffolded with another framework serves no ADK app, so it defaults to **A2A** on every target. Override with `--registration-type`. - Determines the **deployment target** for authentication This means that for the simplest case (an ADK agent on Agent Runtime, registered as ADK), you only need to provide the Gemini Enterprise app ID: ```bash agents-cli publish gemini-enterprise \ --gemini-enterprise-app-id projects/123456/locations/global/collections/default_collection/engines/my-app ``` --- ## SDK Compatibility (Python only) Agent Runtime deployments may encounter "Session not found" errors with `google-cloud-aiplatform` versions <= 1.128.0. In interactive mode (`--interactive`), the command checks the SDK version from `uv.lock` and offers to upgrade. In programmatic mode, ensure your SDK is up to date before registering. --- ## Agent Registry (agents and MCP servers) Agent Registry (Preview) is the Google Cloud fleet-wide catalog of **agents and MCP servers**, separate from a Gemini Enterprise app. Agents deployed to a managed runtime (Agent Runtime on Gemini Enterprise Agent Platform) are **auto-registered** — no extra step after `agents-cli deploy`. Manage them with `gcloud` (requires `roles/agentregistry.editor`): ```bash # List / inspect agents gcloud agent-registry agents list --project PROJECT --location LOCATION gcloud agent-registry agents describe AGENT_NAME # Update endpoint/metadata — edit the Service resource, not the Agent gcloud agent-registry services update AGENT_NAME \ --display-name "..." --description "..." \ --interfaces "url=ENDPOINT_URL,protocolBinding=http-json" # Register an external MCP server: not auto-introspected, so upload a # toolspec.json (its tools/list response, max 10 KB). No us/eu multi-region. gcloud agent-registry services create SERVER_NAME --location=LOCATION \ --mcp-server-spec-type=tool-spec --mcp-server-spec-content=toolspec.json \ --interfaces="url=SERVER_URL,protocolBinding=jsonrpc" # or http-json, grpc # Remove: delete the underlying runtime agent (auto-registered) OR, for # manually registered agents/servers, delete the Service resource gcloud agent-registry services delete NAME ``` Terraform: `google_agent_registry_service` with an `mcp_server_spec` block. Docs: https://docs.cloud.google.com/agent-registry/manage-agents · https://docs.cloud.google.com/agent-registry/register-mcp-servers --- ## Troubleshooting | Issue | Solution | |-------|----------| | "Session not found" after registration | SDK version issue — upgrade `google-cloud-aiplatform` (see SDK Compatibility above), redeploy, then re-register | | `--registration-type is required` | Non-interactive mode needs `--registration-type` when no `deployment_metadata.json` exists | | "Gemini Enterprise App ID is required" | Provide `--gemini-enterprise-app-id` or set the `ID` / `GEMINI_ENTERPRISE_APP_ID` env var | | Re-publishing the same agent | Registration is idempotent — re-running updates the existing registration in place instead of creating a duplicate | | HTTP 403 on registration | Check that your account has Discovery Engine Editor permissions on the Gemini Enterprise project | | Debugging ADK invocation failures on Agent Runtime | Gemini Enterprise calls the agent via the `AdkApp`'s `streaming_agent_run_with_events` method (the native `:streamQuery` contract). Grep the runtime's `reasoning_engine_stderr` logs for `streaming_agent_run_with_events` to find the underlying error | | "Could not fetch agent card" | Verify the agent is running and the URL is correct; for Cloud Run, ensure `gcloud auth login` is done. A Live/voice agent drops its A2A card and cannot be published — Gemini Enterprise does not support Live agents | --- ## Related Skills - `/google-agents-cli-deploy` — Deployment targets, CI/CD pipelines, and production workflows (also covers Agent Gateway governed ingress/egress and Semantic Governance awareness) - `/google-agents-cli-workflow` — Development workflow, coding guidelines, and operational rules - `/google-agents-cli-scaffold` — Project creation and enhancement with `agents-cli scaffold create` / `scaffold enhance` ## Dónde encaja - Categoría: [DevOps e infraestructura](https://skillsagentes.com/categorias/devops-infraestructura.md) — Despliegues, contenedores, IaC y flujos de gestión de incidentes. - Creador: [google](https://skillsagentes.com/creators/google.md) — 138 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Google Agents Cli Workflow](https://skillsagentes.com/skills/google/agents-cli/google-agents-cli-workflow.md): Guía activa siempre para el ciclo de vida completo de desarrollo con ADK: scaffolding, construcción, evaluación, despliegue, publicación y observación de agentes, con reglas de preservación de código y selección de modelo. - [Google Agents Cli Adk Code](https://skillsagentes.com/skills/google/agents-cli/google-agents-cli-adk-code.md): Referencia rápida de patrones de la API Python de ADK: tipos de agente, definición de tools, orquestación, callbacks, manejo de estado y recetas de referencia para estudiar. - [Google Agents Cli Eval](https://skillsagentes.com/skills/google/agents-cli/google-agents-cli-eval.md): Guía sobre la metodología de evaluación de Agent Platform y el Quality Flywheel: métricas, esquema de dataset, scoring LLM-as-judge y causas comunes de fallo. - [Google Agents Cli Scaffold](https://skillsagentes.com/skills/google/agents-cli/google-agents-cli-scaffold.md): Úsalo para 'crear un proyecto de agente', 'iniciar un proyecto ADK nuevo', 'añadir CI/CD' o 'mejorar/actualizar mi proyecto'. Cubre `scaffold create`, `scaffold enhance` y `scaffold upgrade`, plantillas y targets de deployment. - [Google Agents Cli Deploy](https://skillsagentes.com/skills/google/agents-cli/google-agents-cli-deploy.md): Guía para desplegar un agente ADK, configurar CI/CD, gestionar secretos o solucionar despliegues en Agent Runtime, Cloud Run o GKE, incluyendo Agent Gateway. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)