Обмен опытом использования режима Github Copilot Agent
Categories:
В этой статье подводятся итоги использования режима GitHub Copilot Agent и делятся практическим опытом.

Предварительная настройка
- Используйте VSCode Insider;
- Установите плагин GitHub Copilot (предварительная версия);
- Выберите модель Claude 3.7 Sonnet (предварительная версия), которая отлично справляется с написанием кода, в то время как другие модели обладают преимуществами в скорости, многомодальности (например, распознавании изображений) и способности к рассуждению;
- Выберите режим работы Agent.

Процедура операции
- Откройте вкладку «Copilot Edits»;
- Добавьте вложения, такие как «Codebase», «Get Errors», «Terminal Last Commands» и т.д.;
- Добавьте файлы «Working Set», по умолчанию включает в себя текущий открытый файл, также можно вручную выбрать другие файлы (например, «Open Editors»);
- Добавьте «Instructions», введите подсказки, на которые Copilot Agent должен обратить особое внимание;
- Нажмите кнопку «Send», начните диалог и наблюдайте за поведением Agent.
Другие пояснения
- VSCode может генерировать подсказки Error или Warning с помощью функции lint, предоставляемой языковым плагином, Agent может автоматически исправлять код на основе этих подсказок.
- По мере углубления диалога, изменения кода, генерируемые Agent, могут отклоняться от ожидаемых. Рекомендуется, чтобы каждая сессия фокусировалась на одной четкой теме, избегая слишком длинных диалогов; после достижения краткосрочной цели завершите текущую сессию и начните новую задачу.
- В «Working Set» есть опция «Add Files» с вариантом «Related Files», которая может рекомендовать связанные файлы.
- Обратите внимание на контроль количества строк в одном файле кода, чтобы избежать быстрого расхода токенов.
- Рекомендуется сначала генерировать базовый код, затем писать тестовые случаи, что позволяет Agent отлаживать и самопроверяться на основе результатов тестов.
- Чтобы ограничить объем изменений, можно добавить следующие настройки в settings.json, изменяя только файлы в указанной директории, для справки:
"github.copilot.chat.codeGeneration.instructions": [
{
"text": "Изменяйте только файлы в директории ./script/, не изменяйте файлы в других директориях."
},
{
"text": "Если количество строк в целевом файле кода превышает 1000, рекомендуется поместить новые функции в новый файл и вызывать их через ссылки; если внесенные изменения приводят к чрезмерной длине файла, можно временно не строго соблюдать это правило."
}
],
"github.copilot.chat.testGeneration.instructions": [
{
"text": "Генерируйте тестовые случаи в существующих файлах модульных тестов."
},
{
"text": "После изменения кода обязательно запускайте тестовые случаи для проверки."
}
],
Часто задаваемые вопросы
Не получается желаемый бизнес-код при вводе требований
Необходимо разбить большую задачу на более мелкие задачи, обрабатывая только одну небольшую задачу за сессию. Это связано с тем, что большое количество контекста может привести к рассеиванию внимания у больших моделей.
Количество контекста, подаваемого в одиночный диалог, необходимо подбирать самостоятельно, слишком много или слишком мало может привести к непониманию требований.
Модель DeepSeek решила проблему рассеяния внимания, но для ее использования требуется API Deepseek в cursor. Неизвестно, насколько эффективен этот подход.
Проблема медленного ответа
Необходимо понимать механизм расхода токенов, входные токены дешевы и требуют меньше времени, в то время как выходные токены значительно дороже и явно медленнее.
Если файл кода очень большой, а на самом деле нужно изменить только три строки кода, из-за большого объема контекста и большого количества вывода может быстро расходоваться токены и медленно реагировать.
Поэтому необходимо учитывать контроль размера файлов, не писать слишком большие файлы и слишком большие функции. Своевременно разделяйте большие файлы и большие функции, вызывайте их через ссылки.
Проблема понимания бизнеса
Понимание проблемы может зависеть от комментариев в коде и тестовых файлов. Добавление достаточного количества комментариев и тестовых случаев в код может помочь Copilot Agent лучше понять бизнес.
Бизнес-код, генерируемый самим Agent, содержит достаточное количество комментариев. Проверка этих комментариев позволяет быстро определить, правильно ли Agent понял требования.
Генерация большого количества кода требует длительной отладки
Можно рассмотреть возможность генерации тестовых случаев после создания базового кода определенной функции, а затем корректировки бизнес-логики. Таким образом, Agent может самостоятельно проводить отладку и самопроверку.
Agent спросит, разрешаете ли вы запустить команду тестирования. После запуска он самостоятельно прочитает вывод терминала, чтобы определить, правильный ли код. Если нет, он внесет изменения на основе сообщений об ошибках. Цикл повторяется до тех пор, пока тест не пройдет.
То есть нужно больше понимать бизнес, ручное написание требуется не так часто. Если код тестового случая и код бизнес-логики не верны, Agent не может написать правильный тест на основе бизнеса, а также не может написать правильный код бизнеса на основе теста. Только в таких случаях может возникнуть длительная отладка.
Заключение
Понимание механизма расхода токенов в больших моделях, входной контекст дешев, а выходной код дорог. Неизмененные части кода в файле, возможно, также считаются выводом, что подтверждается тем, что много ненужного кода также медленно выводится.
Поэтому следует стремиться контролировать размер одного файла, можно ощутить разницу в скорости отклика Agent при обработке больших и маленьких файлов, эта разница очень заметна.