Skip to main content
Skip to content

Получение второго мнения с резиновым утка агентом

Используйте агент резиновой утки, чтобы получить независимая критика планов, кода и тестов в GitHub Copilot CLI или .GitHub Copilot app

Introduction

Резиновая утка — это встроенный агент, доступный в GitHub Copilot CLI и GitHub Copilot app. Он выступает в качестве конструктивного критика. При работе с задачей главный агент для сеанса может передать свой текущий план, проектирование, реализацию или тесты агенту резины утки для проверки. Агент ищет слепые зоны, конструктивные недостатки и существенные проблемы, а также предоставляет конкретные, практические отзывы. Copilot Затем учитываю эту критику, прежде чем продолжить.

Агент «резиновая утка» предназначен для рассмотрения предлагаемых изменений, а не для самостоятельного внесения изменений в файлы. Главный агент сессии решает, что делать с обратной связью.

Почему «резиновая утка»?

Название происходит от давней техники в программной инженерии, называемой rubber ducking , при которой вы объясняете свой код или предлагаемое решение неодушевлённому объекту — традиционно резиновой утке. Идея в том, что, артикулируя своё мышление, вы часто обнаруживаете ошибки, недопонимания или логические недостатки.

Агент с резиновой уткой применяет аналогичную идею к Copilot. Прежде чем двигаться дальше с нетривиальными изменениями, Copilot можно остановиться, сформулировать текущую мысль и проверить его независимому рецензенту. В отличие от настоящей резиновой утки, этот отвечает: он отвечает структурированной критикой, на Copilot которую можно действовать.

Второе мнение от другой модели

Ключевая особенность дизайна агента в виде резиновой утки заключается в том, что он специально работает на другой модели ИИ, отличной от той, что ведёт вашу сессию. Copilot выбирает модель критики, которая контрастирует с текущей моделью сессии. Например, если вы выбрали модель Клода для своей сессии, агент резиновой утки может использовать модель GPT в качестве критика. Copilot Агент «резиновая утка» используется только в том случае, если доступна подходящая модель для полезной критики.

Преимущество использования другой модели в том, что критик реже сталкивается с теми же слепыми зонами, смещениями или режимами отказа, что и модель, создавшая работу. По сути, вы получаете две независимые точки зрения на одну и ту же проблему.

Соответствующая модель критики выбирается автоматически каждый раз при вызове агента резиновой утки, исходя из вашей текущей модели сессии. При переключении моделей во время сеанса следующий вызов агента резиновой утки выбирает соответствующего критика для новой модели сеанса.

Что делает агент резиновой утки

Когда обращаются к агенту резиновой утки, он:

  1. Читает работу в контексте. Он понимает, чего пытается достичь код, дизайн или предложение, как он интегрируется с остальной системой и какие предположения существуют.
  2. Выявляет реальные проблемы. Он ищет ошибки, логические ошибки, уязвимости безопасности, конструктивные ошибки, антипаттерны, узкие места производительности и другие проблемы, которые действительно влияют на успех задачи.
  3. Рекомендует конкретные решения. Для каждого найденной проблемы она указывает проблему, её влияние и конкретные предлагаемые изменения.
  4. Классифицирует свою обратную связь по степени тяжести:
    • Проблемы с блокировкой — должны быть исправлены для успеха работы.
    • Проблемы с неблокировкой — их нужно исправить для улучшения качества, но это не помешает успеху.
    • Предложения — менее приоритетные улучшения, которые всё равно реально влияют на результат.
  5. Сообщает только те находки, которые имеют значение. Если проблем нет, это указано явно. Агент rubber duck настроен так, чтобы не комментировать стиль, форматирование, нормы именования, грамматику в комментариях, незначительные переработки или лучшие практики, которые не предотвращают реальные проблемы.

Агент-резиновая утка имеет доступ только для чтения к вашей кодовой базе через стандартные инструменты исследования. Он не может редактировать файлы или запускать команды, изменяющие окружение.

Ручное вызов агента «резиновая утка»

По умолчанию агент резиновой утки не вызывается автоматически. Вы должны явно попросить Copilot критику каждый раз, когда вы хотите один. Например, после запроса Copilot составить план работы вы можете ввести запрос, например:

Rubber duck your plan.

Или в процессе серии изменений можно предложить:

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

Вы также можете вызвать агента резиновой утки с помощью команды рубки:

/rubber-duck What edge cases are missing?

Автоматическое вызов агента резиновой утки

Если Copilot CLIвы хотите заранее обратиться к агенту резиновой утки Copilot , не спрашивая, вы можете включить автоматическое вызов агента из /subagents средства выбора.

  1. В интерактивном Copilot CLI сеансе введите /subagents.
  2. Используйте клавиши со стрелками клавиатуры, чтобы выбрать агент резиновой утки, а затем нажмите клавишу ВВОД.
  3. Выберите упреждающий вызов , а затем нажмите клавишу ВВОД , чтобы переключить параметр между выключением и включением.
  4. Используйте escape-ключ для выхода из /subagents средства выбора.

Включение автоматического вызова для агента резиновой утки таким образом обновляет Copilot файл параметров (как правило ~/.copilot/settings.json), чтобы ваш выбор параметров сохранялось для будущих сеансов:

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

Если автоматический вызов включен, Copilot рекомендуется обратиться к агенту резиновой утки в моменты высокого использования, а не только при застрявании. Типичные ситуации включают:

  • После планирования непростого изменения, но до его внедрения. Это момент с наибольшим рычагом для выявления конструктивных недостатков, при этом корректировки курса всё ещё стоят недорого.
  • В середине реализации — чтобы проверить наличие слепых зон в сложной работе.
  • После написания тестов убедитесь, что покрытие теста полное и что поведение действительно соответствует вашему первоначальному запросу.
  • Реактивно, при Copilot повторяющихся неудачах или неожиданных результатах, нужно получить независимый анализ задачи, а не повторять тот же подход.

Для небольших, хорошо изученных изменений Copilot обычно опускают агент «резиновая утка».

Когда Copilot обращается к агенту резиновой утки, он суммирует результирующая критика в выходных данных сеанса, а не повторяя его подробно, например: "Критика указала слепое пятно в моем плане вокруг X, поэтому я обновил свой план для решения этого".

Преимущества использования агента «резиновая утка»

  • Выявляет проблемы на ранних этапах. Большинство нетривиальных задач, которые не проходят, имеют проблемы, которые критика могла бы заметить на этапе планирования. Лучше получать обратную связь до написания кода, чем решать проблемы позже.

    Примечание.

    Консультация с агентом rubber duck запускает дополнительный проход рассуждения на отдельной модели, что добавляет задержку и требует дополнительного использования модели. Плюс в том, что немного больше времени и ресурсов заранее можно сэкономить ваше время и использование моделей в целом, выявляя проблемы на раннем этапе и снижая количество неудачных попыток выполнить задачу.

  • Уменьшает количество слепых зон у одной модели. Поскольку агент использует модель из другой семьи, это приносит по-настоящему другую перспективу, а не повторяет ту же логику, что и исходная работа.

  • Улучшает качество сложных изменений. Архитектурные решения, многофайловые изменения и незнакомые кодовые базы требуют второго мнения перед Copilot принятием подхода.

  • Не мешает простым делам. Copilot Консультируется с агентом Rubber Duck только тогда, когда работа непростая, поэтому не замедляет быстрые правки и очевидные исправления.

Дополнительные материалы