Skip to main content

Ответственное использование агента кодирования Copilot на GitHub.com

Узнайте, как использовать Агент кодирования Copilot на GitHub.com ответственно, понимая свои цели, возможности и ограничения.

О Агент кодирования Copilot на GitHub.com

Агент кодирования Copilot — это автономный и асинхронный агент разработки программного обеспечения, интегрированный в GitHub. Агент может забрать задачу из проблемы или из Copilot Chat, создать запрос на вытягивание, а затем выполнить итерацию по запросу на вытягивание в ответ на комментарии.

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

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

Агент был оценен на различных языках программирования с английским языком в качестве основного поддерживаемого языка.

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

Обработка запросов

Задача, предоставленная Copilot через проблему, комментарий запроса на вытягивание или сообщение Copilot Chat объединяется с другими соответствующими контекстными сведениями для формирования запроса. Этот запрос отправляется в большую языковую модель для обработки. Входные данные могут принимать форму обычного естественного языка, фрагментов кода или изображений.

Анализ языковой модели

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

Создание ответов

Языковая модель создает ответ на основе его анализа запроса. Этот ответ может принимать форму предложений естественного языка и предложений кода.

Форматирование вывода

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

Вы можете отправить отзыв агенту, закомментируя запрос на вытягивание или явно упоминая агент (@copilot). Затем агент повторит отправку обратной связи в языковую модель для дальнейшего анализа. После завершения изменений агента на основе обратной связи агент будет отвечать на комментарий с обновленными изменениями.

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

Кроме того, в рамках процесса разработки продуктов GitHub выполняет красную команду (тестирование), чтобы понять и повысить безопасность агента.

Дополнительные сведения о повышении производительности см. в разделе "Повышение производительности" для Агент кодирования Copilot ниже.

Варианты использования для Агент кодирования Copilot

Вы можете делегировать задачу Copilot в различных сценариях, включая, но не ограничивается:

  • Обслуживание базы кода: устранение связанных с безопасностью исправлений, обновлений зависимостей и целевой рефакторинг.
  • Документация. Обновление и создание новой документации.
  • Разработка функций: реализация добавочных запросов функций.
  • Улучшение охвата тестов: разработка дополнительных наборов тестов для управления качеством.
  • Прототип новых проектов: Гринфилдинг новых концепций.

Повышение производительности для Агент кодирования Copilot

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

Дополнительные сведения об ограничениях см. в разделе "Ограничения" Агент кодирования Copilot (ниже).

Убедитесь, что задачи хорошо ограничены

Агент кодирования Copilot использует запрос в качестве ключевого контекста при создании запроса на вытягивание. Чем более четко и хорошо ограничен запрос, назначенный агенту, тем лучше результаты вы получите. Идеальная проблема включает в себя:

  • Четкое описание проблемы, необходимой для решения или необходимой работы.
  • Полные критерии принятия решений о том, как выглядит хорошее решение (например, должны быть модульные тесты?).
  • Подсказки или указатели на изменения файлов.

Настройка взаимодействия с дополнительным контекстом

Агент кодирования Copilot использует запрос, комментарии и код репозитория в качестве контекста при создании предлагаемых изменений. Чтобы повысить производительность Copilot, рассмотрите возможность реализации пользовательских инструкций Copilot, чтобы помочь агенту лучше понять проект и как создавать, тестировать и проверять его изменения. Дополнительные сведения см. в разделе "Добавление пользовательских инструкций в репозиторий" в Рекомендации по использованию Copilot для работы над задачами.

Дополнительные сведения о других настройках для Агент кодирования Copilotсм. в следующем разделе:

Использование Агент кодирования Copilot в качестве средства, а не замены

Хотя Агент кодирования Copilot может быть мощным инструментом для создания кода и документации, важно использовать его как инструмент, а не замену человеческого программирования. Вы всегда должны проверять и проверять содержимое, созданное агентом, чтобы убедиться, что он соответствует вашим требованиям и свободен от ошибок или проблем безопасности перед слиянием.

Использование безопасных методов написания кода и проверки кода

Хотя Агент кодирования Copilot может генерировать синтаксически правильный код, он не всегда может быть безопасным. Рекомендуется всегда следовать рекомендациям по безопасному кодированию, таким как предотвращение жестко закодированных паролей или уязвимостей внедрения SQL, а также соблюдение рекомендаций по проверке кода для решения ограничений агента. Вы всегда должны принимать те же меры предосторожности, что и любой код, который вы пишете, который использует материал, который вы не исходили независимо, включая меры предосторожности, чтобы обеспечить его пригодность. К ним относятся строгое тестирование, сканирование IP-адресов и проверка уязвимостей системы безопасности.

Предоставление отзыва

Если возникли проблемы или ограничения с Агент кодирования Copilot на GitHub.com, рекомендуется предоставить отзыв, щелкнув значок вниз под каждым ответом агента. Это может помочь разработчикам улучшить инструмент и устранить любые проблемы или ограничения. Кроме того, вы можете предоставить отзывы на форуме обсуждения сообщества.

Получайте актуальные новости

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

Меры безопасности для Агент кодирования Copilot

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

Предотвращение привилегированной эскалации

Агент кодирования Copilot будет реагировать только на взаимодействия (например, назначение агента или комментариев) от пользователей с доступом на запись репозитория.

Рабочие процессы GitHub Actions, активируемые в ответ на запросы на вытягивание, вызванные Агент кодирования Copilot, требуют утверждения от пользователя с доступом на запись репозитория перед выполнением.

Агент фильтрует скрытые символы, которые не отображаются на GitHub.com, что может позволить пользователям скрывать вредные инструкции в комментариях или содержимом тела. Это защищает от рисков, таких как тюрьма.

Ограничение разрешений Copilot

Copilot имеет доступ только к репозиторию, в котором он создает запрос на вытягивание, и не может получить доступ к другим репозиториям.

Его разрешения ограничены, позволяя ему отправлять код и читать другие ресурсы. Встроенные защиты означают, что Copilot может отправлять только в ветви с именами, начинающимися с copilot/. Это означает, что Copilot не может отправить ветвь по умолчанию (например, main).

Агент кодирования Copilot не имеет доступа к секретам или переменным репозитория Actions во время выполнения. В агент передаются только секреты и переменные, добавляемые в copilot среду.

Предотвращение кражи данных

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

Дополнительные сведения см. в разделе Customizing or disabling the firewall for Copilot coding agent.

Ограничения Агент кодирования Copilot

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

Ограниченная область

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

Потенциальные смещения

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

Угрозы безопасности

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

Неточный код

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

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

Примечание.

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

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