# Sobre o agente pato de borracha

O agente pato de borracha é um crítico interno que dá ao Copilot uma segunda opinião construtiva sobre seus próprios planos, códigos e testes usando um modelo de IA diferente daquele que conduz sua sessão.

## Introduction

Pato de borracha é um agente integrado ao GitHub Copilot CLI que atua como um crítico construtivo. Ao trabalhar em uma tarefa, o principal agente da CLI para uma sessão pode transmitir seu plano, design, implementação ou testes atuais para o agente pato de borracha para revisão. O agente pato de borracha procura pontos cegos, falhas de design e problemas significativos, e reporta com feedback concreto e acionável.
Copilot em seguida, leva essa crítica em conta antes de continuar.

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

> \[!NOTE]
> No momento, o agente pato de borracha estará disponível apenas se o agente principal estiver usando um grande modelo de linguagem do Claude ou GPT.

## 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 pato de borracha aplica uma ideia semelhante ao 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. Diferente de um pato de borracha real, este responde: ele faz uma crítica estruturada para que o Copilot possa agir.

## Segunda opinião de outro modelo

Um dos principais recursos de design do agente pato de borracha é que ele é executado deliberadamente em um **modelo de IA diferente daquele que conduz sua sessão**.
GitHub Copilot CLI escolhe um modelo crítico que contrasta com o modelo de sessão atual. Por exemplo, se você optou por usar um modelo do Claude para sua sessão, o agente pato de borracha pode usar um modelo do GPT como crítico.               Copilot CLI usará o agente pato de borracha somente se um modelo adequado estiver disponível para fazer 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 de 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 de sessão no meio da sessão (por exemplo, com o comando `/model`), a próxima invocação do agente pato de borracha escolherá o crítico apropriado para o novo modelo de sessão.

## O que o agente pato de borracha faz

Quando é consultado, o agente pato de borracha:

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 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.

O 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.

## Quando o Copilot consulta o agente pato de borracha

Quando o agente pato de borracha está habilitado, o Copilot é instruído a consultá-lo em momentos críticos, em vez de somente quando estiver em dificuldade. 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 aproveitamento 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 confirmar que a cobertura dos testes está completa e que o comportamento 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 alterações pequenas e bem entendidas, o Copilot normalmente ignora o agente pato de borracha.

Quando o Copilot consulta o agente pato de borracha, ele resume a crítica resultante para você na linha do tempo em vez de repeti-la literalmente — por exemplo, "A crítica apontou um ponto cego no meu plano sobre X; por isso, atualizei meu plano para resolver isso."

## Invocação manual do agente pato de borracha

O Copilot CLI costuma consultar o agente pato de borracha automaticamente. Você não precisa fazer nada. A linha do tempo mostra quando o agente principal está fazendo uma crítica com o método do pato de borracha. No entanto, às vezes, a CLI não usará o agente pato de borracha. Por exemplo, pode decidir que as alterações não são extensas o suficiente para justificar uma crítica.

Você pode usar um prompt de linguagem natural para pedir Copilot explicitamente para obter uma segunda opinião. Por exemplo, depois de solicitar Copilot a produção de um plano de trabalho, você pode inserir um prompt como:

```copilot
Rubber duck your plan.
```

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

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

Você também pode invocar o agente pato de borracha usando um comando de barra:

```copilot
/rubber-duck What edge cases are missing?
```

## 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.

  > \[!NOTE]
  > Ao consultar o agente 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 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

* [Sobre agentes personalizados](/pt/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/about-custom-agents#built-in-agents)