Introduction
El pato de goma es un agente integrado en CLI de GitHub Copilot que actúa como crítico constructivo. Mientras trabaja en una tarea, el agente CLI principal para una sesión puede pasar su plan actual, diseño, implementación o pruebas al agente 'rubber duck' para su revisión. El agente de pato de goma busca puntos ciegos, defectos de diseño y problemas sustantivos, e informa de nuevo con comentarios concretos y prácticos. Copilot entonces toma en cuenta esa crítica antes de continuar.
El agente de pato de goma está diseñado para revisar los cambios propuestos, no para realizar cambios de archivo en sí mismos. El agente principal de la sesión decide qué hacer con los comentarios.
Nota:
Actualmente, el agente de pato de goma solo está disponible si el agente principal utiliza un modelo de lenguaje grande de Claude o GPT.
¿Por qué "pato de goma"?
El nombre procede de una técnica de larga duración en ingeniería de software denominada pato de goma en la que se explica el código, o solución propuesta, a un objeto inanimate, tradicionalmente un pato de goma. La idea es que al articular su pensamiento, a menudo descubre errores, malentendidos o defectos lógicos.
El agente de pato de goma aplica una idea similar a Copilot. Antes de avanzar con un cambio no trivial, Copilot puede detener, articular su pensamiento actual y hacer que un revisor independiente lo examine. A diferencia de un pato de goma real, este responde: devuelve una crítica estructurada que Copilot puede actuar.
Segunda opinión de otro modelo
Una característica clave de diseño del agente de pato de goma es que se ejecuta deliberadamente en un modelo de IA diferente al que impulsa tu sesión. CLI de GitHub Copilot elige un modelo crítico que contrasta con el modelo de sesión actual. Por ejemplo, si ha elegido usar un modelo de Claude para su sesión, el agente de pato de goma puede usar un modelo GPT como crítico. CLI de Copilot solo utiliza el agente de pato de goma si un modelo adecuado está disponible para proporcionar una crítica útil.
La ventaja de usar un modelo diferente es que es menos probable que el crítico comparta los mismos puntos ciegos, sesgos o modos de error que el modelo que produjo el trabajo. Obtiene efectivamente dos perspectivas independientes sobre el mismo problema.
El modelo crítico adecuado se selecciona automáticamente cada vez que se invoca el agente 'rubber duck', en función del modelo de sesión actual. Si cambia de modelo de sesión a mitad de sesión (por ejemplo, con el comando /model), la siguiente invocación del agente 'rubber duck' elige el crítico adecuado para el nuevo modelo de sesión.
Qué hace el agente patito de goma
Cuando se consulta al agente de pato de goma:
-
**Lee el trabajo en contexto.** Comprende lo que el código, el diseño o la propuesta intenta lograr, cómo se integra con el resto del sistema y qué suposiciones existen. -
**Identifica problemas reales.** Busca errores, errores lógicos, vulnerabilidades de seguridad, defectos de diseño, antipatrones, cuellos de botella de rendimiento y otros problemas que verdaderamente importan para el éxito de la tarea. -
**Recomienda correcciones específicas.** Para cada problema que encuentra, indica el problema, su impacto y un cambio sugerido concreto. -
**Clasifica sus comentarios** por gravedad:- Problemas de bloqueo: debe corregirse para que el trabajo se realice correctamente.
- Problemas no bloqueantes: deben corregirse para mejorar la calidad, pero no evitarán el éxito.
- Sugerencias: mejoras de prioridad inferior que siguen teniendo un impacto real en el resultado.
-
**Solo informa de las conclusiones que importan.** Si no encuentra ningún problema, lo dice explícitamente. El agente de pato de goma está configurado para no comentar sobre el estilo, el formato, las convenciones de nomenclatura, la gramática en los comentarios, las refactorizaciones secundarias o las prácticas recomendadas que no impiden problemas reales.
El agente 'rubber duck' tiene acceso únicamente de lectura a su repositorio de código a través de las herramientas de exploración estándar. No puede editar archivos ni ejecutar comandos que cambien el entorno.
Cuando Copilot consulta al agente de pato de goma
Cuando el agente de pato de goma está habilitado, se le instruye a Copilot que lo consulte en momentos de alta relevancia en lugar de solo cuando está atascado. Entre las situaciones típicas se incluyen las siguientes:
- Después de planear un cambio no trivial, pero antes de implementarlo. Este es el momento de máxima influencia para detectar defectos de diseño, mientras que los ajustes en el rumbo siguen siendo baratos.
- Implementación media, para comprobar si hay puntos ciegos en un trabajo complejo.
- Después de escribir pruebas, valida que la cobertura de las pruebas es completa y que el comportamiento satisface realmente la solicitud original.
- Reactivamente, cuando Copilot se alcanzan errores repetidos o resultados inesperados, para obtener un análisis independiente del problema en lugar de volver a intentar el mismo enfoque.
Para cambios bien comprendidos y pequeños Copilot normalmente se omite el agente de pato de goma.
Cuando Copilot consulta al agente de pato de goma, resume la crítica resultante para usted en el resultado de la cronología en lugar de repetirla textualmente, por ejemplo, "La crítica señaló un punto ciego en mi plan en torno a X, por lo que actualicé mi plan para abordar eso".
Invocación manual del agente de pato de goma
Normalmente CLI de Copilot , consulta automáticamente al agente de pato de goma. No es necesario hacer nada más. La salida de la escala de tiempo muestra cuándo el agente principal recibe una crítica de pato de goma. Sin embargo, a veces la CLI no utilizará el agente de goma de pato. Por ejemplo, puede decidir que los cambios no son lo suficientemente extensos como para justificar una crítica.
Puede usar un mensaje de lenguaje natural para pedir Copilot explícitamente que obtenga una segunda opinión. Por ejemplo, después de pedir Copilot que genere un plan de trabajo, puede escribir un mensaje como:
Rubber duck your plan.
Puede que, a medida que se realice una serie de cambios, desee preguntar:
Get a critique of the changes you've made so far.
Ventajas del uso del agente de goma de pato
-
Detecta problemas temprano. La mayoría de las tareas no triviales que fallan tienen problemas que una crítica podría haber detectado en la fase de planificación. Es preferible obtener comentarios antes de escribir el código que corregir problemas más adelante en el proceso.
Nota:
Consultar al agente pato de goma ejecuta un razonamiento adicional en un modelo independiente adicional, lo que agrega cierta latencia e implica un uso adicional del modelo. La ventaja es que dedicar un poco más de tiempo y recursos al principio puede ahorrar tiempo y el uso del modelo en conjunto al detectar problemas temprano y reducir el número de intentos fallidos para completar una tarea.
-
Reduce los puntos ciegos de modelo único. Dado que el agente usa un modelo de una familia diferente, aporta una perspectiva realmente diferente en lugar de volver a ejecutar el mismo razonamiento que produjo el trabajo original.
-
Mejora la calidad de los cambios complejos. Las decisiones arquitectónicas, los cambios de varios archivos y los códigos base desconocidos se benefician de una segunda opinión antes Copilot de confirmar un enfoque.
-
No interfiere en tareas sencillas. Copilot solo consulta al agente de pato de goma cuando el trabajo no es trivial, por lo que no ralentiza las modificaciones rápidas y correcciones obvias.