Usar el chat con agente como programador par

En este documento, se describe cómo configurar y usar el modo de agente de Gemini Code Assist como programador en pareja en tu entorno de desarrollo integrado (IDE).

El modo de agente está disponible en VS Code.

Estas son algunas formas en las que puedes usar Gemini Code Assist en el modo de agente:

  • Haz preguntas sobre tu código.
  • Usa herramientas y contexto integrados en el modo de agente para mejorar el contenido generado.
  • Configura servidores de MCP para extender las capacidades del agente.
  • Obtén soluciones para tareas complejas con varios pasos.
  • Genera código a partir de documentos de diseño, problemas y comentarios de TODO.
  • Controla el comportamiento del agente comentando, editando y aprobando planes y el uso de herramientas durante la ejecución.

Cómo funciona el modo de agente

En el modo de agente, tu instrucción se envía a la API de Gemini con una lista de herramientas disponibles. La API de Gemini procesa la instrucción y devuelve una respuesta. La respuesta puede ser una respuesta directa o una solicitud para usar una herramienta disponible.

Cuando se solicita una herramienta, el agente se prepara para usarla y verifica si tiene permiso para usarla sin autorización explícita. En el caso de las solicitudes de herramientas que modifican el sistema de archivos o realizan operaciones de mutación en cualquier recurso, Gemini te pedirá que permitas la operación, a menos que hayas configurado Gemini para que siempre permita la herramienta o las herramientas. Es posible que las solicitudes de herramientas de solo lectura no pidan permiso antes de completar la tarea. Cuando se te solicite que permitas el uso de una herramienta, puedes elegir permitir o rechazar la operación. El agente también puede ofrecerte opciones para permitir siempre una herramienta o un servidor, o bien permitir operaciones similares.

Una vez que se otorga el permiso para usar la herramienta, el agente la usa para completar la acción requerida, y el resultado de la acción se envía de vuelta a la API de Gemini. Gemini procesa el resultado de la acción de la herramienta y genera otra respuesta. Este ciclo de acción y evaluación continúa hasta que se completa la tarea.

Para tareas complejas, Gemini puede mostrar un plan de alto nivel para que lo apruebes. Puedes ajustar el plan y hacer preguntas en el chat antes de comenzar el proceso. Cuando estés conforme con el plan, puedes aprobarlo. El agente comenzará a trabajar en la primera tarea y te pedirá aclaraciones o permisos según sea necesario a medida que ejecute el plan.

Contexto del modo Agente

El contexto permite que un agente genere mejores respuestas para una instrucción determinada. El contexto se puede obtener de los archivos de tu IDE, los archivos de las carpetas del sistema local, las respuestas de las herramientas y los detalles de tu instrucción.

Según tu IDE y configuración, es posible que el agente tenga acceso a diferentes contextos.

Por lo general, Gemini Code Assist en modo de agente puede obtener contexto de las siguientes maneras:

  • Información en tu espacio de trabajo del IDE
  • Respuestas de herramientas integradas, como grep, terminal, lectura de archivos o escritura de archivos.
  • Respuestas de la Búsqueda de Google
  • Es el contenido de una URL determinada que se proporciona en una instrucción o mediante una herramienta.
  • Archivos de contexto que creas en Markdown con alcance para todos tus proyectos, un proyecto específico o instrucciones específicas para un componente, módulo o subsección en particular de tu proyecto. Los archivos de contexto pueden contener instrucciones, lineamientos o contexto que quieras que Gemini tenga en cuenta durante las interacciones en el modo de agente.

Memoria del modo Agente

El modo de agente de Gemini Code Assist aprovecha el servicio de descubrimiento de memoria de la CLI de Gemini para encontrar y cargar archivos GEMINI.md que proporcionan contexto para el agente. El servicio de detección de memoria busca archivos de forma jerárquica, comenzando por el directorio de trabajo actual y subiendo hasta la raíz del proyecto y tu directorio principal. También busca en los subdirectorios.

Puedes tener archivos de contexto globales, a nivel del proyecto y a nivel del componente, que se combinan para proporcionar al modelo la información más relevante.

Puedes usar el comando /memory show para ver el contenido combinado de todos los archivos GEMINI.md cargados y el comando /memory refresh para volver a cargarlos.

Extensiones de la CLI de Gemini

En VS Code, puedes usar las extensiones de la CLI de Gemini para configurar y extender la funcionalidad del modo de agente de Gemini Code Assist.

El agente busca extensiones en dos ubicaciones:

  • WORKSPACE/.gemini/extensions, donde WORKSPACE es tu espacio de trabajo actual.
  • ~/.gemini/extensions, donde ~ es tu directorio principal.

El agente carga todas las extensiones de ambas ubicaciones, pero, si existe una extensión con el mismo nombre en ambas, tendrá prioridad la que se encuentre en el directorio del espacio de trabajo. Cada extensión es un directorio que contiene un archivo gemini-extension.json. Este archivo contiene la configuración de la extensión.

Para obtener más información, consulta Extensiones de la CLI de Gemini.

Limitaciones

Se aplican las siguientes limitaciones cuando se usa el modo de agente:

  • El agente no puede llamar a las herramientas de Gemini Code Assist. Para usar estas herramientas, debes salir del modo de agente.
  • El agente no puede usar la personalización de código. Debes salir del modo de agente para usar la personalización de código.
  • Los proyectos con varias raíces no se admiten en el modo de agente. Si usas el modo de agente en un proyecto con varios directorios raíz, el agente solo tendrá acceso al primer directorio raíz que encuentre.
  • Los registros de Gemini para Google Cloud no se admiten en el modo de agente.

Antes de comenzar

  1. Configura Gemini Code Assist.
  2. Configura el canal de versiones de Gemini Code Assist en la compilación de Insiders:
    1. Abre la paleta de comandos (Cmd + Shift + P) y, luego, selecciona Open User Settings JSON.
    2. Agrega la siguiente línea a tu configuración de usuario en formato JSON:
      "geminicodeassist.updateChannel": "Insiders",

Cómo usar el modo de agente

En el modo de agente, puedes pedirle a Gemini que complete objetivos de alto nivel y tareas complejas.

Para aprovechar al máximo el modo agente, sigue las prácticas recomendadas para generar instrucciones y proporciona la mayor cantidad de detalles posible.

Para cambiar al modo de agente, haz lo siguiente:

VS Code

  1. Para abrir el chat de Gemini Code Assist, en la barra de actividad de tu IDE, haz clic en spark Gemini Code Assist.
  2. Haz clic en el botón de activación Agente para ingresar al modo de agente. El botón de activación se destaca cuando se cambia al modo de agente y se muestra en gris cuando se está en el chat normal.
  3. En el chat de Gemini Code Assist, ingresa tu instrucción.

Gemini te da una respuesta a tu instrucción o solicita permiso para usar una herramienta.

Para detener el agente, haz clic en Detener.

Para usar el chat estándar de Gemini Code Assist, haz clic en Nuevo chat para crear uno nuevo.

El modo de agente de Gemini Code Assist se basa en la CLI de Gemini.

IntelliJ

Esta función no es compatible con Gemini Code Assist para IntelliJ ni otros IDE de JetBrains.

Configura herramientas para el modo de agente

Las herramientas son una amplia categoría de servicios que un agente puede usar para obtener contexto y realizar acciones en su respuesta a tu instrucción. Algunas herramientas de ejemplo son las integradas, como grep y la lectura o escritura de archivos, los servidores locales o remotos del protocolo de contexto del modelo (MCP) o las implementaciones de servicios personalizadas.

Configura servidores de MCP

Para controlar qué servidores están disponibles en el modo de agente, agrégalos a la configuración de Gemini en formato JSON según la documentación del servidor.

VS Code

  1. Instala las dependencias que requiera tu servidor de MCP.
  2. Abre la configuración de Gemini en formato JSON ubicada en ~/.gemini/settings.json, donde ~ es tu directorio principal.
  3. Agrega servidores de MCP locales o remotos a la configuración de Gemini en formato JSON según las instrucciones del servidor.

    En el siguiente ejemplo, se agrega el servidor MCP remoto de Cloudflare y se instalan los servidores de GitHub y GitLab en la máquina local.

    {
        "mcpServers": {
        "github": {
          "command": "npx",
          "args": [
            "-y",
            "@modelcontextprotocol/server-github"
          ],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_example_personal_access_token12345"
          }
        },
        "gitlab": {
          "command": "npx",
          "args": [
              "-y",
              "@modelcontextprotocol/server-gitlab"
          ]
        },
            "cloudflare-observability": {
                "command": "npx",
                "args": ["mcp-remote", "https://observability.mcp.cloudflare.com/sse"]
            },
            "cloudflare-bindings": {
                "command": "npx",
                "args": ["mcp-remote", "https://bindings.mcp.cloudflare.com/sse"]
            }
        }
    }
    

  4. Abre la paleta de comandos y selecciona Developer: Reload Window.

Los servidores de MCP que configuraste están disponibles para que el agente los use en el modo de agente.

IntelliJ

Esta función no es compatible con Gemini Code Assist para IntelliJ ni otros IDE de JetBrains.

Autenticación del servidor de MCP

En el caso de los servidores de MCP que requieren autenticación, puedes agregarlos a tu configuración de Gemini en formato JSON.

En el siguiente ejemplo, se agrega un token de acceso personal para GitHub:

{
//other settings...

"github": {
  "command": "/Users/username/code/github-mcp-server/cmd/github-mcp-server/github-mcp-server",
  "args": ["stdio"],
  "env": {
    "GITHUB_PERSONAL_ACCESS_TOKEN": "ACCESS_TOKEN"
  }
},

// other settings...
}

Aquí ACCESS_TOKEN es el token de acceso del usuario.

Crea un archivo de contexto

VS Code

  1. Crea un archivo llamado GEMINI.md en una ubicación que coincida con el alcance al que deseas que se aplique el contexto. En la siguiente tabla, se detallan las ubicaciones de los archivos de contexto para diferentes alcances:

    Alcance Ubicación
    Todos tus proyectos ~/.gemini/GEMINI.md
    Un proyecto específico Tu directorio de trabajo o cualquier directorio principal hasta la raíz de tu proyecto (identificado por una carpeta .git) o tu directorio principal
    Un componente, módulo o subsección específico de un proyecto Subdirectorios de tu directorio de trabajo

    El sistema de memoria del agente se crea cargando archivos de contexto desde varias ubicaciones. El contexto de los archivos más específicos, como los de componentes o módulos específicos, anula o complementa el contenido de los archivos de contexto más generales, como el archivo de contexto global en ~/.gemini/GEMINI.md.

  2. Escribe las reglas, la información de la guía de estilo o el contexto que quieras que use el agente en Markdown y guarda el archivo. Para obtener más información, consulta el archivo de contexto de ejemplo en GitHub.

IntelliJ

Esta función no es compatible con Gemini Code Assist para IntelliJ ni otros IDE de JetBrains.

Cómo usar comandos

Para ver los comandos de la CLI de Gemini que están disponibles en el modo de agente de Gemini Code Assist, ingresa / en el chat de Gemini.

Puedes usar los siguientes comandos de la CLI de Gemini en el modo de agente:

  • /tools: Muestra una lista de las herramientas disponibles en la sesión del modo de agente. Los subcomandos incluyen lo siguiente:
    • desc o descriptions: Muestra descripciones detalladas de cada herramienta.
    • nodesc o nodescriptions: Oculta las descripciones de las herramientas y solo muestra sus nombres.
  • /memory: Administra el contexto de instrucción del agente cargado desde archivos GEMINI.md. Los subcomandos incluyen lo siguiente:
    • show: Muestra el contenido completo y concatenado de la memoria actual cargada desde todos los archivos GEMINI.md disponibles.
    • refresh: Vuelve a cargar la memoria de todos los archivos GEMINI.md en las ubicaciones disponibles. Para obtener información sobre cómo los archivos GEMINI.md contribuyen a la memoria jerárquica del agente, consulta la documentación de configuración de la CLI de Gemini.
  • /mcp: Enumera los servidores de Model Context Protocol (MCP) configurados, su estado de conexión, los detalles del servidor y las herramientas disponibles. Los subcomandos incluyen los siguientes:
    • desc o descriptions: Muestra descripciones detalladas de los servidores y las herramientas de MCP.
    • nodesc o nodescriptions: Oculta las descripciones de los servidores de MCP y solo muestra sus nombres.
    • schema: Muestra el esquema JSON completo de los parámetros configurados del servidor de MCP.
  • /stats: Muestra estadísticas y la duración detalladas de la sesión del modo de agente.

Para obtener más información sobre los comandos de la CLI de Gemini, consulta Comandos de la CLI de Gemini. Ten en cuenta que no todos los comandos de la CLI de Gemini están disponibles en el modo de agente.

Modo Yolo

Puedes usar el modo YOLO para permitir automáticamente todas las acciones del agente.

Para configurar el modo Yolo, haz lo siguiente:

  1. Abre el archivo JSON de configuración del usuario de VS Code:

    1. Abre la paleta de comandos (ctrl/command + Shift + P).
    2. Selecciona Preferences: Open User Settings (JSON).
  2. Agrega lo siguiente a tu archivo JSON de configuración del usuario de VS Code:

    //other settings...
    
    "geminicodeassist.agentYoloMode": "true",
    //other settings...
    
  3. Abre la paleta de comandos y selecciona Developer: Reload Window.

El modo Agente usa el modo YOLO y no te pedirá permiso antes de realizar acciones cuando le envíes una instrucción.

Mensajes adicionales

Prueba las siguientes instrucciones con tu propia información:

  • "¿Qué hace este repositorio? Ayúdame a comprender la arquitectura".
  • "¿Qué hace esta [clase/función]?"
  • "Agrega una función a esta base de código: "[vínculo-o-ruta-a-base-de-código]"".
  • "Refactoriza las funciones [A] y [B] para que usen el método común [C]".
  • "Corrige el problema de GitHub [vínculo al problema de GitHub]".
  • "Crea una aplicación para [objetivo] con una IU que le permita al usuario [tarea] en el [entorno]".
  • "Migra las versiones de la biblioteca en este repositorio de [X] a [Y]".
  • "Optimiza el rendimiento de este código de Go para que se ejecute más rápido".
  • "Usa [nombre de la API] para desarrollar esta función".
  • "Implementa un algoritmo para hacer [X], [Y] y [Z]".

¿Qué sigue?