Utilizzare la chat con agenti come pair programmer

Questo documento descrive come configurare e utilizzare la modalità agente di Gemini Code Assist come pair programmer nel tuo ambiente di sviluppo integrato (IDE).

La modalità agente è disponibile in VS Code.

Ecco alcuni modi in cui puoi utilizzare Gemini Code Assist in modalità agente:

  • Fare domande sul codice.
  • Utilizza gli strumenti e il contesto integrati in modalità Agente per migliorare i contenuti generati.
  • Configura i server MCP per estendere le funzionalità dell'agente.
  • Ricevi soluzioni per attività complesse con più passaggi.
  • Genera codice da documenti di progettazione, problemi, commenti TODO.
  • Controlla il comportamento dell'agente commentando, modificando e approvando i piani e l'utilizzo degli strumenti durante l'esecuzione.

Come funziona la modalità Agente

In modalità agente, il prompt viene inviato all'API Gemini con un elenco di strumenti disponibili. L'API Gemini elabora il prompt e restituisce una risposta. La risposta potrebbe essere una risposta diretta o una richiesta di utilizzare uno strumento disponibile.

Quando viene richiesto uno strumento, l'agente si prepara a utilizzarlo e verifica se è autorizzato a utilizzarlo senza un'autorizzazione esplicita. Per le richieste di strumenti che modificano il file system o eseguono operazioni di mutazione su qualsiasi risorsa, Gemini ti chiederà di consentire l'operazione, a meno che tu non abbia configurato Gemini in modo che consenta sempre lo strumento o gli strumenti. Le richieste di strumenti di sola lettura potrebbero non richiedere l'autorizzazione prima di completare l'attività. Quando ti viene chiesto di consentire l'utilizzo di uno strumento, puoi scegliere di consentire o negare l'operazione. L'agente potrebbe anche offrirti opzioni per consentire sempre uno strumento o un server o consentire operazioni simili.

Una volta concessa l'autorizzazione a utilizzare lo strumento, l'agente lo utilizza per completare l'azione richiesta e il risultato dell'azione viene inviato di nuovo all'API Gemini. Gemini elabora il risultato dell'azione dello strumento e genera un'altra risposta. Questo ciclo di azione e valutazione continua fino al completamento dell'attività.

Per le attività complesse, Gemini potrebbe mostrare un piano di alto livello per la tua approvazione. Puoi perfezionare il piano e porre domande nella chat prima di iniziare la procedura. Una volta che il piano ti soddisfa, puoi approvarlo. L'agente inizia a lavorare sulla prima attività e ti chiederà chiarimenti o autorizzazioni in base alle necessità durante l'esecuzione del piano.

Contesto della modalità Agente

Il contesto consente a un agente di generare risposte migliori per un determinato prompt. Il contesto può essere tratto dai file nell'IDE, dai file nelle cartelle di sistema locali, dalle risposte dello strumento e dai dettagli del prompt.

A seconda dell'IDE e delle impostazioni, l'agente potrebbe avere a disposizione contesti diversi.

I seguenti metodi per ottenere il contesto sono in genere disponibili per Gemini Code Assist in modalità agente:

  • Informazioni nello spazio di lavoro IDE.
  • Risposte degli strumenti integrati come grep, terminale, lettura di file o scrittura di file.
  • Risposte della Ricerca Google.
  • Contenuti di un determinato URL fornito in un prompt o da uno strumento.
  • File di contesto creati in Markdown con ambito impostato su tutti i tuoi progetti, un progetto specifico o istruzioni specifiche per un particolare componente, modulo o sottosezione del progetto. I file di contesto possono contenere istruzioni, linee guida o contesto di cui vuoi che Gemini tenga conto durante le interazioni in modalità Agente.

Memoria della modalità Agente

La modalità agente di Gemini Code Assist utilizza il servizio di rilevamento della memoria della CLI Gemini per trovare e caricare i file GEMINI.md che forniscono il contesto per l'agente. Il servizio di rilevamento della memoria cerca i file in modo gerarchico, a partire dalla directory di lavoro attuale e spostandosi fino alla radice del progetto e alla tua home directory. Esegue la ricerca anche nelle sottodirectory.

Puoi avere file di contesto a livello globale, di progetto e di componente, che vengono combinati per fornire al modello le informazioni più pertinenti.

Puoi utilizzare il comando /memory show per visualizzare i contenuti combinati di tutti i file GEMINI.md caricati e il comando /memory refresh per ricaricarli.

Estensioni della CLI Gemini

In VS Code, puoi utilizzare le estensioni della CLI Gemini per configurare ed estendere la funzionalità della modalità agente di Gemini Code Assist.

L'agente cerca le estensioni in due posizioni:

  • WORKSPACE/.gemini/extensions dove WORKSPACE è il tuo spazio di lavoro attuale.
  • ~/.gemini/extensions dove ~ è la tua home directory.

L'agente carica tutte le estensioni da entrambe le posizioni, ma se esiste un'estensione con lo stesso nome in entrambe, quella nella directory del workspace avrà la precedenza. Ogni estensione è una directory che contiene un file gemini-extension.json. Questo file contiene la configurazione dell'estensione.

Per saperne di più, vedi Estensioni della CLI Gemini.

Limitazioni

Quando utilizzi la modalità Agente, si applicano le seguenti limitazioni:

  • L'agente non può chiamare gli strumenti Gemini Code Assist. Per utilizzare questi strumenti, devi uscire dalla modalità Agente.
  • L'agente non può utilizzare la personalizzazione del codice. Per utilizzare la personalizzazione del codice, devi uscire dalla modalità Agente.
  • I progetti con più radici non sono supportati in modalità agente. Se utilizzi la modalità agente in un progetto con più directory radice, l'agente ha accesso solo alla prima directory radice che incontra.
  • I log di Gemini per Google Cloud non sono supportati in modalità agente.

Prima di iniziare

  1. Configura Gemini Code Assist.
  2. Imposta il canale di rilascio di Gemini Code Assist sulla build Insiders:
    1. Apri la tavolozza dei comandi (Cmd + Shift + P) e poi seleziona Apri JSON impostazioni utente.
    2. Aggiungi la seguente riga al file JSON delle impostazioni utente:
      "geminicodeassist.updateChannel": "Insiders",

Utilizzare la modalità Agente

In modalità Agente, puoi chiedere a Gemini di completare obiettivi di alto livello e attività complesse.

Per ottenere il massimo dalla modalità Agente, segui le best practice per i prompt e fornisci il maggior numero possibile di dettagli.

Per passare alla modalità Agente:

VS Code

  1. Per aprire la chat di Gemini Code Assist, nella barra delle attività dell'IDE, fai clic su spark Gemini Code Assist.
  2. Fai clic sul pulsante di attivazione/disattivazione Agente per attivare la modalità Agente. L'opzione è evidenziata quando è attivata la modalità Agente e grigia quando è attiva la chat normale.
  3. Nella chat di Gemini Code Assist, inserisci il prompt.

Gemini ti fornisce una risposta al prompt o richiede l'autorizzazione per utilizzare uno strumento.

Per arrestare l'agente, fai clic su Interrompi.

Per utilizzare la chat standard di Gemini Code Assist, fai clic su Nuova chat per creare una nuova chat.

La modalità agente di Gemini Code Assist è basata sulla CLI Gemini.

IntelliJ

Questa funzionalità non è supportata in Gemini Code Assist per IntelliJ o altri IDE JetBrains.

Configurare gli strumenti per la modalità Agente

Gli strumenti sono una categoria generica di servizi che un agente può utilizzare per il contesto e le azioni nella sua risposta al tuo prompt. Alcuni strumenti di esempio sono strumenti integrati come grep e lettura o scrittura di file, server Model Context Protocol (MCP) locali o remoti o implementazioni di servizi personalizzati.

Configurare i server MCP

Per controllare quali server sono disponibili in modalità agente, aggiungili al file JSON delle impostazioni di Gemini in base alla documentazione del server.

VS Code

  1. Installa le dipendenze richieste dal server MCP.
  2. Apri il file JSON delle impostazioni di Gemini che si trova in ~/.gemini/settings.json, dove ~ è la tua home directory.
  3. Aggiungi server MCP locali o remoti al file JSON delle impostazioni di Gemini in base alle istruzioni del server.

    L'esempio seguente aggiunge il server MCP Cloudflare remoto e installa i server GitHub e GitLab sulla macchina locale.

    {
        "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. Apri la tavolozza dei comandi e seleziona Sviluppatore: ricarica finestra.

I server MCP configurati sono disponibili per l'agente da utilizzare in modalità agente.

IntelliJ

Questa funzionalità non è supportata in Gemini Code Assist per IntelliJ o altri IDE JetBrains.

Autenticazione server MCP

Per i server MCP che richiedono l'autenticazione, puoi aggiungerli al file JSON delle impostazioni di Gemini.

L'esempio seguente aggiunge un token di accesso personale per 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...
}

dove ACCESS_TOKEN è il token di accesso dell'utente.

Creare un file di contesto

VS Code

  1. Crea un file denominato GEMINI.md in una posizione che corrisponda all'ambito a cui vuoi che si applichi il contesto. La tabella seguente mostra in dettaglio le posizioni dei file di contesto per diversi ambiti:

    Ambito Località
    Tutti i tuoi progetti ~/.gemini/GEMINI.md
    Un progetto specifico La directory di lavoro o qualsiasi directory principale fino alla radice del progetto (identificata da una cartella .git) o alla directory home.
    Un componente, un modulo o una sottosezione specifici di un progetto Sottodirectory della directory di lavoro.

    Il sistema di memoria dell'agente viene creato caricando i file di contesto da più posizioni. Il contesto di file più specifici, come quelli per componenti o moduli specifici, sostituisce o integra i contenuti di file di contesto più generali, come il file di contesto globale in ~/.gemini/GEMINI.md.

  2. Scrivi tutte le regole, le informazioni sulla guida di stile o il contesto che vuoi che l'agente utilizzi in Markdown e salva il file. Per maggiori informazioni, consulta il file di contesto di esempio su GitHub.

IntelliJ

Questa funzionalità non è supportata in Gemini Code Assist per IntelliJ o altri IDE JetBrains.

Utilizzare i comandi

Per visualizzare i comandi della CLI Gemini disponibili nella modalità agente di Gemini Code Assist, inserisci / nella chat di Gemini.

Puoi utilizzare i seguenti comandi della CLI Gemini in modalità agente:

  • /tools: mostra un elenco di strumenti disponibili nella sessione della modalità Agente. I sottocomandi includono quanto segue:
    • desc o descriptions: mostra descrizioni dettagliate di ogni strumento.
    • nodesc o nodescriptions: nasconde le descrizioni degli strumenti e mostra solo i nomi degli strumenti.
  • /memory: gestisce il contesto didattico dell'agente caricato dai file GEMINI.md. I sottocomandi includono quanto segue:
    • show: mostra i contenuti completi concatenati della memoria attuale caricata da tutti i file GEMINI.md disponibili.
    • refresh: ricarica la memoria da tutti i file GEMINI.md nelle posizioni disponibili. Per informazioni su come i file GEMINI.md contribuiscono alla memoria gerarchica dell'agente, consulta la documentazione sulla configurazione della CLI Gemini.
  • /mcp: elenca i server Model Context Protocol (MCP) configurati, il loro stato della connessione, i dettagli del server e gli strumenti disponibili. I sottocomandi includono i seguenti:
    • desc o descriptions: mostra descrizioni dettagliate dei server e degli strumenti MCP.
    • nodesc o nodescriptions: nasconde le descrizioni dei server MCP e mostra solo i nomi dei server MCP.
    • schema: mostra lo schema JSON completo per i parametri configurati del server MCP.
  • /stats: mostra statistiche e durata dettagliate della sessione in modalità Agente.

Per ulteriori informazioni sui comandi dell'interfaccia a riga di comando Gemini, consulta Comandi dell'interfaccia a riga di comando Gemini. Tieni presente che non tutti i comandi dell'interfaccia a riga di comando Gemini sono disponibili in modalità agente.

Modalità Yolo

Puoi utilizzare la modalità YOLO per consentire automaticamente tutte le azioni dell'agente.

Per configurare la modalità YOLO:

  1. Apri il file JSON delle impostazioni utente di VS Code:

    1. Apri la tavolozza dei comandi (ctrl/command + Shift + P).
    2. Seleziona Preferenze: apri impostazioni utente (JSON).
  2. Aggiungi quanto segue al file JSON delle impostazioni utente di VS Code:

    //other settings...
    
    "geminicodeassist.agentYoloMode": "true",
    //other settings...
    
  3. Apri la tavolozza dei comandi e seleziona Sviluppatore: ricarica finestra.

La modalità Agente utilizza la modalità YOLO e non chiede l'autorizzazione prima di intraprendere azioni quando invii un prompt.

Prompt aggiuntivi

Prova i seguenti prompt con le tue informazioni:

  • "Che cosa fa questo repository? Aiutami a capire l'architettura."
  • "Che cosa fa questa [classe/funzione]?"
  • "Aggiungi una funzionalità a questa codebase: "[link-or-path-to-codebase]"."
  • "Refattorizza le funzioni [A] e [B] per utilizzare il metodo comune [C]."
  • "Risolvi il problema di GitHub [link-to-github-issue]."
  • "Crea un'applicazione per [obiettivo] con una UI che consenta all'utente di [attività] in [ambiente]."
  • "Migrate library versions in this repository from [X] to [Y]." (Esegui la migrazione delle versioni della libreria in questo repository da [X] a [Y].)
  • "Ottimizza le prestazioni di questo codice Go in modo che venga eseguito più velocemente."
  • "Utilizza [name-of-API] per sviluppare questa funzionalità."
  • "Implementa un algoritmo per eseguire [x], [Y] e [Z]."

Passaggi successivi