Introduction
Резиновая утка — встроенный агент GitHub Copilot CLI , который выступает конструктивным критиком. Во время работы над задачей основной агент CLI для сессии может передать свой текущий план, дизайн, реализацию или тесты агенту резиновой утки для рассмотрения. Агент ищет слепые зоны, конструктивные недостатки и существенные проблемы, а также предоставляет конкретные, практические отзывы. Copilot Затем учитываю эту критику, прежде чем продолжить.
Агент «резиновая утка» предназначен для рассмотрения предлагаемых изменений, а не для самостоятельного внесения изменений в файлы. Главный агент сессии решает, что делать с обратной связью.
Примечание.
Резиновая утка агент в настоящее время доступна только если основной агент использует большую языковую модель Claude или GPT.
Почему «резиновая утка»?
Название происходит от давней техники в программной инженерии, называемой rubber ducking , при которой вы объясняете свой код или предлагаемое решение неодушевлённому объекту — традиционно резиновой утке. Идея в том, что, артикулируя своё мышление, вы часто обнаруживаете ошибки, недопонимания или логические недостатки.
Агент с резиновой уткой применяет аналогичную идею к Copilot. Прежде чем двигаться дальше с нетривиальными изменениями, Copilot можно остановиться, сформулировать текущую мысль и проверить его независимому рецензенту. В отличие от настоящей резиновой утки, этот отвечает: он отвечает структурированной критикой, на Copilot которую можно действовать.
Второе мнение от другой модели
Ключевая особенность дизайна агента в виде резиновой утки заключается в том, что он специально работает на другой модели ИИ, отличной от той, что ведёт вашу сессию. GitHub Copilot CLI выбирает модель критики, которая контрастирует с текущей моделью сессии. Например, если вы выбрали модель Клода для своей сессии, агент резиновой утки может использовать модель GPT в качестве критика. Второй пилот CLI Агент «резиновая утка» используется только в том случае, если доступна подходящая модель для полезной критики.
Преимущество использования другой модели в том, что критик реже сталкивается с теми же слепыми зонами, смещениями или режимами отказа, что и модель, создавшая работу. По сути, вы получаете две независимые точки зрения на одну и ту же проблему.
Соответствующая модель критики выбирается автоматически каждый раз при вызове агента резиновой утки, исходя из вашей текущей модели сессии. Если вы меняете модель сессии во время сессии (например, с помощью команды /model ), следующий вызов агента rubber duck выбирает подходящего критика для новой модели сессии.
Что делает агент резиновой утки
Когда обращаются к агенту резиновой утки, он:
-
**Читает работу в контексте.** Он понимает, чего пытается достичь код, дизайн или предложение, как он интегрируется с остальной системой и какие предположения существуют. -
**Выявляет реальные проблемы.** Он ищет ошибки, логические ошибки, уязвимости безопасности, конструктивные ошибки, антипаттерны, узкие места производительности и другие проблемы, которые действительно влияют на успех задачи. -
**Рекомендует конкретные решения.** Для каждого найденной проблемы она указывает проблему, её влияние и конкретные предлагаемые изменения. -
**Классифицирует свою обратную** связь по степени тяжести:- Проблемы с блокировкой — должны быть исправлены для успеха работы.
- Проблемы с неблокировкой — их нужно исправить для улучшения качества, но это не помешает успеху.
- Предложения — менее приоритетные улучшения, которые всё равно реально влияют на результат.
-
**Сообщает только те находки, которые имеют значение.** Если проблем нет, это указано явно. Агент rubber duck настроен так, чтобы не комментировать стиль, форматирование, нормы именования, грамматику в комментариях, незначительные переработки или лучшие практики, которые не предотвращают реальные проблемы.
Агент-резиновая утка имеет доступ только для чтения к вашей кодовой базе через стандартные инструменты исследования. Он не может редактировать файлы или запускать команды, изменяющие окружение.
Когда Copilot консультируется с агентом-резиновой уткой
Когда активирован агент резиновой утки, Copilot ему поручают обращаться к нему в моменты высокого рычага, а не только в заедании. Типичные ситуации включают:
- После планирования непростого изменения, но до его внедрения. Это момент с наибольшим рычагом для выявления конструктивных недостатков, при этом корректировки курса всё ещё стоят недорого.
- В середине реализации — чтобы проверить наличие слепых зон в сложной работе.
- После написания тестов убедитесь, что покрытие теста полное и что поведение действительно соответствует вашему первоначальному запросу.
- Реактивно, при Copilot повторяющихся неудачах или неожиданных результатах, нужно получить независимый анализ задачи, а не повторять тот же подход.
Для небольших, хорошо изученных изменений Copilot обычно опускают агент «резиновая утка».
Когда Copilot он консультируется с агентом резиновой утки, он резюмирует полученную критику в выходе временной шкалы, а не повторяет её дословно — например: «Критика указала на слепую зону в моём плане вокруг X, поэтому я обновил свой план, чтобы это исправить.»
Ручное вызов агента «резиновая утка»
Обычно Второй пилот CLI автоматически консультируется с агентом-резиновой уткой. Вам не нужно ничего делать. Выход временной шкалы показывает, когда главный агент получает критику резиновой утки. Однако иногда CLI не использует агент «резиновая утка». Например, он может решить, что изменения недостаточно масштабны, чтобы оправдать критику.
Вы можете использовать подсказку на естественном языке, чтобы явно попросить Copilot получить второе мнение. Например, после запроса Copilot составить план работы вы можете ввести запрос, например:
Rubber duck your plan.
Или в процессе серии изменений можно предложить:
Get a critique of the changes you've made so far.
Преимущества использования агента «резиновая утка»
-
Выявляет проблемы на ранних этапах. Большинство нетривиальных задач, которые не проходят, имеют проблемы, которые критика могла бы заметить на этапе планирования. Лучше получать обратную связь до написания кода, чем решать проблемы позже.
Примечание.
Консультация с агентом rubber duck запускает дополнительный проход рассуждения на отдельной модели, что добавляет задержку и требует дополнительного использования модели. Плюс в том, что немного больше времени и ресурсов заранее можно сэкономить ваше время и использование моделей в целом, выявляя проблемы на раннем этапе и снижая количество неудачных попыток выполнить задачу.
-
Уменьшает количество слепых зон у одной модели. Поскольку агент использует модель из другой семьи, это приносит по-настоящему другую перспективу, а не повторяет ту же логику, что и исходная работа.
-
Улучшает качество сложных изменений. Архитектурные решения, многофайловые изменения и незнакомые кодовые базы требуют второго мнения перед Copilot принятием подхода.
-
Не мешает простым делам. Copilot Консультируется с агентом Rubber Duck только тогда, когда работа непростая, поэтому не замедляет быстрые правки и очевидные исправления.