Ответственное использование агента GitHub Copilot Cloud на GitHub.com
Узнайте, как использовать Copilot Cloud Agent на GitHub.com ответственно, понимая свои цели, возможности и ограничения.
К концу этого урока вы сможете:
- Сведения о назначении, возможностях и ограничениях облачного агента Copilot на GitHub.com.
- Применяйте методики ответственного использования: определение задач, обеспечение безопасности среды и проверка результатов.
- Распознайте меры безопасности, риски и способы устранения рисков и места для повышения производительности.
Сведения о облачном агенте Copilot на GitHub.com
Copilot Cloud Agent — это автономный и асинхронный агент разработки программного обеспечения, интегрированный в GitHub. Агент может взять задачу из рабочего списка или из Copilot Chat, создать ветку, изучить кодовую базу, разработать план реализации и черновик кода, предоставляя вам возможность решить, следует ли и когда открывать pull request.
Copilot Cloud Agent может создавать специализированные изменения на основе описания и конфигурации, включая задачи, такие как исправления ошибок, реализация добавочных новых функций, прототипов, документации и обслуживания базы кода. Если вы решите создать pull request, агент может выполнить итерацию с вами на основе ваших отзывов и проверок.
Работая над задачей, агент имеет доступ к собственной эфемерной среде разработки, где он может вносить изменения в код, запускать автоматические тесты и выполнять линтеры. Агент был оценен на различных языках программирования с английским языком в качестве основного поддерживаемого языка.
Как работает агент (полный цикл)
Обработка запросов
Задача, предоставленная Copilot через issue, комментарий к пулл-реквесту или сообщение в Copilot Chat, объединяется с другими соответствующими контекстными сведениями для формирования подсказки. Входные данные могут принимать форму обычного естественного языка, фрагментов кода или изображений.
Анализ языковой модели
Затем запрос передается через большую языковую модель, которая анализирует входные данные, чтобы помочь агенту размышлять над задачей и задействовать необходимые инструменты.
Создание ответов
Языковая модель создает ответ на основе его анализа запроса. Этот ответ может принимать форму предложений естественного языка и предложений кода.
Форматирование выходных данных
После завершения первого запуска агент обновит описание пулл-реквеста с внесенными изменениями. Агент может включать дополнительные сведения о ресурсах, к ним не удалось получить доступ и предоставить предложения по действиям по устранению.
Вы можете предоставить отзыв агенту, комментируя pull request или явно указав агенту (@copilot). Затем агент повторит отправку обратной связи в языковую модель для дальнейшего анализа. Как только агент завершит изменения на основе ваших отзывов, он ответит на ваш комментарий с обновлёнными изменениями.
Copilot предназначен для предоставления наиболее подходящего решения для решения задач. Однако он может не всегда предоставлять ответ, который вы ищете. Вы несете ответственность за обзор и валидацию ответов, созданных Copilot, чтобы убедиться, что они точны и подходят. Кроме того, в ходе разработки продуктов GitHub использует метод red teaming (проверку безопасности), чтобы лучше понять и улучшить безопасность агента.
Агент Copilot Cloud: варианты использования
- Обслуживание базы кода: Исправления для повышения безопасности, обновления зависимостей и целевой рефакторинг.
- Документация. Обновление и создание новой документации.
- Разработка функций: внедрение постепенных запросов на функции.
- Улучшение охвата тестов: разработка дополнительных наборов тестов для управления качеством.
- Создание прототипов новых проектов: Разработка с чистого листа новых концепций.
Повышение производительности агента Copilot Cloud
Чтобы повысить производительность и устранить ограничения, используйте следующие меры:
Чётко определите границы задач, предоставив следующие данные:
- Четкое описание проблемы, необходимой для решения или необходимой работы.
- Полные критерии принятия решений о том, как выглядит хорошее решение (например, должны быть модульные тесты?).
- Подсказки или указатели на то, какие файлы нужно изменить.
Настройте ваш опыт с дополнительным контекстом
Copilot Cloud Agent использует запрос, комментарии и код репозитория в качестве контекста при создании предлагаемых изменений. Улучшение результатов путем добавления пользовательских инструкций Copilot , чтобы агент понимал, как создавать, тестировать и проверять изменения.
Другие полезные настройки:
- Настройка среды разработки для агента GitHub Copilot Cloud
- Настройка или отключение брандмауэра для облачного агента GitHub Copilot
- Расширение GitHub Copilot Cloud Agent с помощью протокола контекста модели (MCP)
Использование Copilot Cloud Agent в качестве средства, а не замены
Всегда просматривайте и проверяйте содержимое, созданное агентом, чтобы убедиться, что он соответствует вашим требованиям и свободен от ошибок или проблем безопасности перед слиянием.
Использование безопасных методов написания кода и проверки кода
Хотя агент Copilot Cloud Agent может генерировать синтаксически правильный код, он не всегда может быть безопасным. Продолжайте следовать рекомендациям по безопасному кодированию (избегайте жестко закодированных секретов, предотвращайте уязвимости внедрения) и применяйте строгие проверки, сканирование IP-адресов и проверки уязвимостей.
Предоставление отзывов
Если вы столкнулись с проблемами или ограничениями, используйте значок с пальцем вниз под ответом от агента или вы можете поделиться отзывами на форуме сообщества.
Будьте в курсе
Облачный агент Copilot развивается. Отслеживайте новые риски безопасности и рекомендации по мере их появления.
Меры безопасности для агента Copilot Cloud
Предотвращение эскалации привилегий
- Copilot Cloud Agent будет реагировать только на взаимодействия от пользователей, имеющих доступ на запись.
- Перед выполнением рабочих процессов действий, инициируемых PR агента, требуется утверждение от пользователя с доступом на запись.
- Скрытые символы (не отображенные на GitHub.com) отфильтровываются для снижения рисков инъекционных атак на запросы.
Ограничение разрешений Copilot
- Агент обращается лишь к репозиторию, к которому у него есть доступ; он не может получить доступ к другим репозиториям.
- Push-уведомления ограничены ветвями с именами, начиная с copilot/ (а не вашей ветви по умолчанию).
- Агент не имеет доступа к секретам или переменным действий организации или репозитория во время выполнения. Только секреты и переменные, добавленные в среду copilot, передаются агенту.
Предотвращение кражи данных
Брандмауэр включен по умолчанию для предотвращения случайного или вредоносного кражи кода или конфиденциальных данных. См. сведения о настройке или отключении брандмауэра для облачного агента GitHub Copilot.
Ограничения облачного агента Copilot
В зависимости от базы кода и входных данных производительность может отличаться. Имейте в виду следующие ограничения:
- Ограниченная область и качество: LLM может не обрабатывать определенные структуры кода или неясные языки; качество зависит от охвата языка.
- Потенциальная предвзятость: Обучающие данные и извлеченный контекст могут включать предвзятости; агент может отдавать предпочтение определенным языкам или стилям.
- Риски безопасности: Созданный код основан на контексте репозитория и может предоставлять конфиденциальные сведения, если они не проверены; Требуется тщательная проверка.
- Неточный код: Код может казаться правильным, но быть семантически или синтаксически неверен или не соответствует намерению. Проверьте соответствие, шаблоны и стиль.
- Общедоступный код: Агент может создавать совпадения или почти совпадения с общедоступным кодом, даже если задан параметр Block; Ссылки могут не предоставляться.
- Юридический или регуляторный: Обеспечьте соответствие применимым обязательствам; избегайте запрещённых видов использования в соответствии с условиями обслуживания и кодексами поведения.