Usar o chat autônomo como um programador em dupla

Neste documento, descrevemos como configurar e usar o modo agente do Gemini Code Assist como um programador em dupla no ambiente de desenvolvimento integrado (IDE).

Com o modo agente, você pode fazer o seguinte e muito mais:

  • Faça perguntas sobre o código.
  • Use contexto e ferramentas integradas para melhorar o conteúdo gerado.
  • Configure servidores MCP para ampliar as habilidades do agente.
  • Receba soluções para tarefas complexas com várias etapas.
  • Gerar código com base em documentos de design, problemas e comentários do TODO.
  • Controle o comportamento do agente comentando, editando e aprovando planos e o uso de ferramentas durante a execução.

Limitações

Alguns recursos do chat padrão do Gemini Code Assist podem não estar disponíveis no modo agente ou funcionar de maneira diferente do chat padrão.

A recitação não está disponível no modo agêntico. No modo agente, o Gemini não cita fontes, e não é possível desativar as sugestões de código que correspondem às fontes citadas.

Antes de começar

Usar o modo agente

No modo agente, você pode pedir para o Gemini concluir metas de alto nível e tarefas complexas.

Para aproveitar ao máximo o modo agente, siga as práticas recomendadas de comandos e forneça o máximo de detalhes possível.

Para mudar para o modo de agente:

VS Code

  1. Para abrir o chat do Gemini Code Assist, clique em spark Gemini Code Assist na barra de atividades do seu ambiente de desenvolvimento integrado.
  2. Clique na chave Agente para entrar no modo de agente. O botão fica destacado quando está no modo agente e cinza quando está no chat normal.
  3. No chat do Gemini Code Assist, insira seu comando.

O Gemini responde ao seu comando ou pede permissão para usar uma ferramenta.

Para interromper o agente, clique em Parar.

Para usar o chat padrão do Gemini Code Assist, clique em Novo chat para criar um novo chat.

O modo agente do Gemini Code Assist é alimentado pela CLI do Gemini.

IntelliJ

  1. Clique em spark Gemini na barra da janela de ferramentas. Faça login se for solicitado.
  2. Selecione a guia Agente.
  3. Descreva a tarefa que você quer que o agente realize.
  4. À medida que o agente segue as etapas para concluir a tarefa, você tem a opção de revisar e aprovar as mudanças.

  5. Opcional: para aprovar mudanças automaticamente, selecione Configurações Opções do agente e clique na caixa de seleção ao lado de Aprovar mudanças automaticamente.

Configurar ferramentas para o modo de agente

Ferramentas são uma categoria ampla de serviços que um agente pode usar para contexto e ações na resposta ao seu comando. Alguns exemplos de ferramentas são as integradas, como grep e leitura ou gravação de arquivos, servidores locais ou remotos do protocolo de contexto de modelo (MCP) e as funções executáveis deles ou implementações de serviços personalizadas.

Controlar o uso de ferramentas integradas

O modo agente tem acesso às suas ferramentas integradas, como pesquisa, leitura e gravação de arquivos, comandos de terminal e muito mais.

VS Code

Use as configurações coreTools e excludeTools para controlar quais ferramentas o Gemini pode acessar no modo agente.

coreTools
Permite especificar uma lista de ferramentas que você quer disponibilizar para o modelo. Também é possível especificar restrições específicas de comando para ferramentas que oferecem suporte a isso. Por exemplo, adicionar o seguinte ao JSON de configurações do Gemini só vai permitir que o comando de shell ls -l seja executado:"coreTools": ["ShellTool(ls -l)"].
excludeTools
Permite especificar uma lista de ferramentas que você não quer que estejam disponíveis para o modelo. Também é possível especificar restrições específicas de comando para ferramentas que oferecem suporte a isso. Por exemplo, adicionar o seguinte ao JSON de configurações do Gemini bloqueia o uso do comando rm -rf: "excludeTools": ["ShellTool(rm -rf)"].

Uma ferramenta listada em excludeTools e coreTools é excluída.

Para configurar as ferramentas integradas disponíveis no modo de agente, faça o seguinte:

  1. Abra o JSON das configurações do Gemini localizado em ~/.gemini/settings.json, em que ~ é seu diretório inicial.
  2. Para restringir o uso de ferramentas do agente a uma lista de ferramentas aprovadas, adicione a seguinte linha ao JSON das configurações do Gemini:

    "coreTools": ["TOOL_NAME_1,TOOL_NAME_2"]
    

    Substitua TOOL_NAME_1 e TOOL_NAME_2 pelos nomes das ferramentas integradas que você quer que o agente tenha acesso.

    Você pode listar quantas ferramentas integradas quiser. Por padrão, todas as ferramentas integradas estão disponíveis para o agente.

  3. Para restringir o uso de ferramentas do agente a comandos específicos, adicione a seguinte linha ao JSON das configurações do Gemini:

    "coreTools": ["TOOL_NAME(COMMAND)"]
    

    Substitua:

    • TOOL_NAME: o nome da ferramenta integrada
    • COMMAND: o nome do comando da ferramenta integrada que você quer que o agente possa usar.
  4. Para excluir uma ferramenta do uso do agente, adicione a seguinte linha ao JSON de configurações do Gemini:

    "excludeTools": ["TOOL_NAME_1,TOOL_NAME_2"]
    

    Substitua TOOL_NAME_1 e TOOL_NAME_2 pelos nomes das ferramentas integradas que você quer excluir do uso do agente.

  5. Para excluir um comando de ferramenta do uso do agente, adicione a seguinte linha ao JSON de configurações do Gemini:

    "excludeTools": ["TOOL_NAME(COMMAND)"]
    

    Substitua:

    • TOOL_NAME: o nome da ferramenta integrada
    • COMMAND: o nome do comando da ferramenta integrada que você quer excluir do uso do agente.

Para mais informações sobre as configurações de configuração do coreTools e do excludeTools, consulte a documentação de configuração da CLI Gemini.

IntelliJ

Esse recurso não é compatível com o Gemini Code Assist para IntelliJ ou outros ambientes de desenvolvimento integrado do JetBrains.

Configurar servidores MCP

VS Code

Para controlar quais servidores estão disponíveis no modo de agente, adicione-os ao JSON de configurações do Gemini de acordo com a documentação do servidor.

  1. Instale as dependências necessárias para o servidor MCP.
  2. Abra o JSON das configurações do Gemini localizado em ~/.gemini/settings.json, em que ~ é seu diretório inicial.
  3. Adicione servidores MCP locais ou remotos ao JSON de configurações do Gemini de acordo com as instruções do servidor.

    O exemplo a seguir adiciona o servidor MCP remoto do Cloudflare e instala os servidores do GitHub e do GitLab na 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. Abra a paleta de comandos e selecione Desenvolvedor: recarregar janela.

Os servidores MCP configurados estão disponíveis para o agente usar no modo de agente.

IntelliJ

Para controlar quais servidores estão disponíveis no modo de agente, adicione-os a um arquivo mcp.json e coloque-o no diretório de configuração do seu ambiente de desenvolvimento integrado.

  1. Instale as dependências necessárias para o servidor MCP.
  2. Crie um arquivo mcp.json no diretório de configuração do seu ambiente de desenvolvimento integrado.
  3. Adicione servidores MCP locais ou remotos ao JSON de configurações do Gemini de acordo com as instruções do servidor.

    O exemplo a seguir adiciona o servidor MCP remoto do Cloudflare e instala os servidores do GitHub e do GitLab na 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"]
            }
        }
    }
    

Os servidores MCP configurados estão disponíveis para o agente usar no modo de agente.

Autenticação do servidor MCP

Alguns servidores MCP exigem autenticação. Siga a documentação do servidor para criar os tokens de usuário necessários.

VS Code

Para servidores MCP que exigem autenticação, adicione-os ao JSON das configurações do Gemini.

O exemplo a seguir adiciona um token de acesso pessoal para o 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...
}

Em que ACCESS_TOKEN é o token de acesso do usuário.

IntelliJ

Para servidores MCP que exigem autenticação, adicione-os ao arquivo mcp.json.

O exemplo a seguir adiciona um token de acesso pessoal para o 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...
}

Em que ACCESS_TOKEN é o token de acesso do usuário.

Criar um arquivo de contexto

O contexto permite que um agente gere respostas melhores para um determinado comando. O contexto pode ser extraído de arquivos no seu ambiente de desenvolvimento integrado, arquivos nas pastas do sistema local, respostas da ferramenta e detalhes do comando. Para mais informações, consulte Contexto do modo de agente.

VS Code

  1. Crie um arquivo chamado GEMINI.md em um local que corresponda ao escopo em que você quer que o contexto seja aplicado. A tabela a seguir detalha os locais dos arquivos de contexto para diferentes escopos:

    Escopo Local
    Todos os seus projetos ~/.gemini/GEMINI.md
    Um projeto específico Seu diretório de trabalho ou qualquer diretório pai até a raiz do projeto (identificada por uma pasta .git) ou seu diretório inicial.
    Um componente, módulo ou subseção específica de um projeto Subdiretórios do seu diretório de trabalho.

    O sistema de memória do agente é criado carregando arquivos de contexto de vários locais. O contexto de arquivos mais específicos, como os de componentes ou módulos específicos, substitui ou complementa o conteúdo de arquivos de contexto mais gerais, como o arquivo de contexto global em ~/.gemini/GEMINI.md.

  2. Escreva as regras, informações do guia de estilo ou contexto que você quer que o agente use em Markdown e salve o arquivo. Para mais informações, consulte o arquivo de contexto de exemplo no GitHub.

O agente inclui as informações no arquivo de contexto junto com os comandos que você envia.

IntelliJ

  1. Crie um arquivo chamado GEMINI.md ou AGENT.md na raiz do projeto.

  2. Escreva as regras, informações do guia de estilo ou contexto que você quer que o agente use em Markdown e salve o arquivo.

O agente inclui as informações no arquivo de contexto junto com os comandos que você envia. Você também pode adicionar contexto incluindo um arquivo manualmente com a sintaxe @FILENAME, em que FILENAME é o nome do arquivo com as informações contextuais que você quer incluir.

Usar comandos

Com os comandos de barra /, você pode executar rapidamente comandos semelhantes aos de uma janela de terminal.

VS Code

Você pode usar os seguintes comandos da CLI do Gemini no modo de agente:

  • /tools: mostra uma lista de ferramentas disponíveis na sua sessão do modo agente.
  • /mcp: lista os servidores do Protocolo de contexto de modelo (MCP) configurados, o status da conexão, os detalhes do servidor e as ferramentas disponíveis.

Para mais informações sobre os comandos da CLI do Gemini, consulte Comandos da CLI do Gemini. Nem todos os comandos da CLI do Gemini estão disponíveis no modo de agente.

IntelliJ

Esse recurso não é compatível com o Gemini Code Assist para IntelliJ ou outros ambientes de desenvolvimento integrado do JetBrains.

Sempre permitir ações do agente

Você pode permitir automaticamente todas as ações do agente.

Para permitir automaticamente todas as ações do agente:

VS Code

Use o modo yolo para permitir automaticamente todas as ações do agente. Para configurar o modo YOLO:

  1. Abra o arquivo JSON de configurações do usuário do VS Code:

    1. Abra a paleta de comandos (ctrl/command + Shift + P).
    2. Selecione Preferências: abrir configurações do usuário (JSON).
  2. Adicione o seguinte ao arquivo JSON de configurações do usuário do VS Code:

    //other settings...
    
    "geminicodeassist.agentYoloMode": true,
    //other settings...
    
  3. Abra a paleta de comandos e selecione Desenvolvedor: recarregar janela.

O modo agente usa o modo yolo e não pede permissão antes de realizar ações quando você envia um comando. Ao usar um espaço de trabalho restrito, o agente vai pedir confirmação antes de realizar ações, independente dessa configuração.

IntelliJ

Para aprovar mudanças automaticamente, na guia do agente de chat do Gemini, selecione Configurações Opções do agente e clique na caixa de seleção ao lado de Aprovar mudanças automaticamente.

O modo agente aprova automaticamente todas as solicitações e não pede permissão antes de realizar ações quando você envia um comando.

Outros comandos

Teste os seguintes comandos com suas próprias informações:

  • "O que esse repositório faz? Me ajude a entender a arquitetura."
  • "O que essa [classe/função] faz?"
  • "Adicione um recurso a esta base de código: [link ou caminho para a base de código]."
  • "Refatore as funções [A] e [B] para usar o método comum [C]."
  • "Corrija o problema do GitHub [link-to-github-issue]".
  • "Crie um aplicativo para [objetivo] com uma interface que permita ao usuário [tarefa] no [ambiente]."
  • "Migre as versões da biblioteca neste repositório de [X] para [Y]".
  • "Otimize a performance deste código Go para que ele seja executado mais rápido."
  • "Use [nome da API] para criar esse recurso."
  • "Implemente um algoritmo para fazer [x], [Y] e [Z]."

A seguir