Skip to main content

Ответственное использование облачного агента GitHub Copilot на GitHub.com

Научитесь использовать Copilot облачный агентGitHub.com его ответственно, понимая его цели, возможности и ограничения.

О том Copilot облачный агент (ранее Copilot coding agent) , что дальше GitHub.com

          Copilot облачный агент является автономным и асинхронным агентом для разработки программного обеспечения, интегрированным в GitHub. Агент может взять задачу из выпуска или из Копилот Чат, исследовать репозиторий, создать план реализации и внести изменения в код на ветке. Вы можете просмотреть разницу, повторить работу с агентом и создать pull-запрос, когда будете готовы.

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

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

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

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

Примечание.

Глубокое исследование, планирование и итерация изменений кода перед созданием pull request доступны только с Copilot облачный агент помощью on GitHub.com. Облачный агент интеграции (такие как Azure Boards, JIRA, Linear, Slack или Teams) поддерживают только создание pull запроса напрямую.

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

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

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

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

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

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

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

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

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

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

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

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

Сценарии использования Copilot облачный агент

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

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

Улучшение производительности для Copilot облачный агент

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

Для получения дополнительной информации об ограничениях см. раздел Ограничения Copilot облачный агент (ниже).

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

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

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

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

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

Для информации о других настройках для Copilot облачный агент, см.:

  •         [AUTOTITLE](/copilot/customizing-copilot/customizing-the-development-environment-for-copilot-coding-agent)
    
  •         [AUTOTITLE](/copilot/customizing-copilot/customizing-or-disabling-the-firewall-for-copilot-coding-agent)
    
  •         [AUTOTITLE](/copilot/using-github-copilot/coding-agent/extending-copilot-coding-agent-with-mcp)
    

Используйте Copilot облачный агент как инструмент, а не как замену

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

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

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

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

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

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

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

Меры безопасности для Copilot облачный агент

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

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

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

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

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

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

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

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

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

Обеспечение прослеживаемости

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

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

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

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

Дополнительные сведения см. в разделе Настройка или отключение межсетевого экрана для облачного агента GitHub Copilot.

Предотвращение уязвимостей безопасности в сгенерированном коде

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

  •         **
            CodeQL
            **: будет запускаться для выявления потенциальных уязвимостей и ошибок.
    
  •         **
            Secret scanning
            **: будет просканировать известные типы секретов, чтобы убедиться, что секреты не появляются в ответе.
    
  •         **Анализ зависимостей**: зависимости, на которые ссылается новый код, будут проверены на наличие известных уязвимостей в GitHub Advisory Database.
    

Ограничения Copilot облачный агент

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

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

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

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

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

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

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

Неточный код

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

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

Общедоступный код

          Copilot облачный агент может генерировать код, который совпадает или близок к общедоступному коду, даже если политика «Предложения, соответствующие публичному коду» установлена на «Блокировать». См [. раздел AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-plan/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-suggestions-matching-public-code).

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

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

Внешние интеграции с облачным агентом Copilot

          Copilot облачный агент может получать информацию и контекст из внешних приложений, таких как Microsoft Teams, Linear, Slack и Jira. Когда вы упоминаете внешнее приложение на этих платформах или назначаете задачу облачному агенту через связанный рабочий процесс, он может получить доступ к соответствующему контексту, например, истории разговоров в потоках, где это упоминается, или к деталям и временным рамкам активности. Это позволяет облачному агенту лучше понимать ваши потребности в разработке и предоставлять более релевантную помощь. Эти интеграции позволяют командам совместно работать над кодом, назначать задачи и отслеживать ход выполнения непосредственно в существующих рабочих процессах, не переключаясь между инструментами. Убедитесь, что ваша команда понимает, какая информация передается в общем доступе, и настройте интеграции в соответствии с политиками конфиденциальности и обработки данных вашей организации.

Для получения дополнительной информации о внешних интеграциях с Copilot облачный агент, см.: * Интеграция облачного агента Copilot с Teams * Интеграция облачного агента Copilot с линейным * Интеграция облачного агента Copilot со Slack