Skip to main content
Skip to content

Obtendo uma segunda opinião com o agente Rubber Duck

Use o agente Rubber Duck para obter uma crítica independente de planos, códigos e testes dentro de GitHub Copilot CLI ou no GitHub Copilot app.

Introduction

Pato de borracha é um agente interno disponível em GitHub Copilot CLI e no GitHub Copilot app. Atua como um crítico construtivo. Ao trabalhar em uma tarefa, o agente principal de uma sessão pode passar seu plano, design, implementação ou testes atuais para o agente de pato de borracha para revisão. O agente pato de borracha procura pontos cegos, falhas de design e questões substantivas, e reporta com comentários concretos e acionáveis. Copilot em seguida, leva essa crítica em conta antes de continuar.

O agente patinho de borracha é projetado para revisar as alterações propostas, não para fazer alterações de arquivo por si mesmo. O agente principal da sessão decide o que fazer com os comentários.

Por que "pato de borracha"?

O nome vem de uma técnica de longa data na engenharia de software chamada esquiva de borracha na qual você explica seu código, ou solução proposta, para um objeto inanimado , tradicionalmente um pato de borracha. A ideia é que, ao articular seu pensamento, você frequentemente descobre erros, mal-entendidos ou falhas lógicas.

O agente de pato de borracha aplica uma ideia semelhante a Copilot. Antes de avançar com uma mudança não trivial, Copilot pode parar, articular seu pensamento atual e examiná-lo por um revisor independente. Ao contrário de um pato de borracha real, este responde: ele oferece uma crítica estruturada para que Copilot possa agir.

Segunda opinião de outro modelo

Um dos principais recursos de design do agente patinho de borracha é que ele é executado deliberadamente em um modelo de IA distinto daquele que conduz sua sessão. Copilot escolhe um modelo crítico que contrasta com o modelo de sessão atual. Por exemplo, se você optou por usar um modelo Claude para sua sessão, o agente "pato de borracha" pode usar um modelo GPT como avaliador. Copilot usa o agente de pato de borracha somente se um modelo adequado estiver disponível para fornecer uma crítica útil.

O benefício de usar um modelo diferente é que o crítico tem menos probabilidade de compartilhar os mesmos pontos cegos, preconceitos ou modos de falha que o modelo que produziu o trabalho. Você efetivamente obtém duas perspectivas independentes sobre o mesmo problema.

O modelo crítico apropriado é selecionado automaticamente sempre que o agente pato de borracha é invocado, com base no modelo de sessão atual. Se você alternar modelos durante uma sessão, a próxima invocação do agente de pato de borracha escolherá o crítico apropriado para o novo modelo da sessão.

O que o agente de pato de borracha faz

Quando o agente de pato de borracha é consultado, ele:

  1. Lê o trabalho no contexto. Ele entende o que o código, o design ou a proposta está tentando realizar, como ele se integra ao restante do sistema e quais suposições existem.
  2. Identifica problemas reais. Ele procura bugs, erros lógicos, vulnerabilidades de segurança, falhas de design, antipadrões, gargalos de desempenho e outros problemas que realmente importam para o sucesso da tarefa.
  3. Recomenda correções específicas. Para cada problema encontrado, ele declara a questão, seu impacto e uma mudança sugerida concreta.
  4. Categoriza seus comentários por severidade:
    • Problemas de bloqueio devem ser corrigidos para que o trabalho seja bem-sucedido.
    • Problemas não bloqueantes devem ser corrigidos para melhorar a qualidade, mas não impedirão o sucesso.
    • Sugestões – melhorias de prioridade mais baixa que ainda têm um impacto real no resultado.
  5. Apenas relata descobertas que importam. Caso não encontre problemas, ele declara isso de forma explícita. O agente de pato de borracha está configurado para não comentar sobre estilo, formatação, convenções de nomenclatura, gramática em comentários, refatorações secundárias ou práticas recomendadas que não evitam problemas reais.

Agente pato de borracha tem acesso somente leitura à sua base de código por meio das ferramentas de exploração padrão. Ele não pode editar arquivos ou executar comandos que alterem seu ambiente.

Invocação manual do agente de pato de borracha

Por padrão, o agente de pato de borracha não é invocado automaticamente. Você precisa pedir Copilot explicitamente uma crítica sempre que quiser uma. Por exemplo, depois de solicitar Copilot a produção de um plano de trabalho, você pode inserir um prompt como:

Rubber duck your plan.

Ou, durante uma série de alterações, você pode perguntar:

Get a critique of the changes you've made so far.

Você também pode invocar o agente Rubber Duck usando um comando de barra:

/rubber-duck What edge cases are missing?

Invocando automaticamente o agente rubber duck

Em Copilot CLI, se você quiser que Copilot consulte proativamente o agente de pato de borracha sem ser solicitado, você pode ativar a invocação automática para o agente no seletor /subagents.

  1. Em uma sessão interativa Copilot CLI , insira /subagents.
  2. Use as teclas de seta do teclado para selecionar o agente Rubber Duck e pressione Enter.
  3. Selecione Invocação Proativa e pressione Enter para ativar e desativar a configuração.
  4. Use a tecla Esc para sair do seletor /subagents.

Ativar a invocação automática para o agente rubber duck dessa forma atualiza o arquivo de configurações Copilot (normalmente ~/.copilot/settings.json), de modo que sua escolha de configuração persista em sessões futuras:

{
  "subagents": {
    "agents": {
      "rubber-duck": {
        "autoInvoke": true
      }
    }
  }
}

Quando a invocação automática está habilitada, Copilot é instruído a consultar o agente de pato de borracha em momentos de maior impacto, em vez de apenas quando estiver travado. As situações típicas incluem:

  • Depois de planejar uma alteração não trivial, mas antes de implementá-la. Este é o momento de maior alavancagem para detectar falhas de design, enquanto as correções de curso ainda são baratas.
  • No meio da implementação, para verificar se há pontos cegos em um trabalho complexo.
  • Depois de escrever testes, para validar que a cobertura dos testes está completa e que o comportamento realmente satisfaz sua solicitação original.
  • Reativamente, quando Copilot ocorrem falhas repetidas ou resultados inesperados, para obter uma análise independente do problema em vez de tentar novamente a mesma abordagem.

Para modificações pequenas e bem entendidas Copilot, normalmente se ignora o agente "rubber duck".

Quando Copilot consulta o agente de pato de borracha, ele resume a crítica resultante na saída da sessão em vez de repeti-la verbatim — por exemplo, "A crítica apontou um ponto cego no meu plano em torno de X, então atualizei meu plano para resolver isso."

Benefícios de usar o agente pato de borracha

  • Captura problemas mais cedo. A maioria das tarefas não triviais que falham têm problemas que uma crítica poderia ter pego na fase de planejamento. Obter comentários antes que o código seja escrito é preferível para corrigir problemas posteriormente no processo.

    Observação

    Ao consultar o agente de pato de borracha, executa-se uma passagem adicional de raciocínio em um modelo separado, o que adiciona uma certa latência e requer uso adicional do modelo. O lado positivo é que gastar um pouco mais de tempo e recursos antecipadamente pode economizar tempo e uso geral do modelo, identificando problemas mais cedo e reduzindo o número de tentativas falhas de concluir uma tarefa.

  • Reduz os pontos cegos de um único modelo. Como o agente usa um modelo de uma família diferente, ele traz uma perspectiva genuinamente diferente em vez de executar novamente o mesmo raciocínio que produziu o trabalho original.

  • Melhora a qualidade das alterações complexas. Decisões arquitetônicas, alterações de vários arquivos e bases de código desconhecidas se beneficiam de uma segunda opinião antes Copilot de confirmar uma abordagem.

  • Fica fora do caminho para tarefas simples. Copilot só consulta o agente de pato de borracha quando o trabalho não é trivial, portanto, ele não reduz a velocidade de edições rápidas e correções óbvias.

Leitura adicional