← AI-native IDEs: Cursor, Copilot, and the new editor workflow
04 / 07 · 45 min

Copilot and agent mode in VS Code

GitHub Copilot in VS Code: inline suggestions and Next Edit Suggestions, chat in Ask and Edit modes, autonomous agent mode with tools, and instruction files.

Lesson content is currently available in Russian.

What you will learn

  • →Управлять inline-подсказками Copilot и включать Next Edit Suggestions.
  • →Выбирать между Ask, Edit и Agent в Copilot Chat под тип задачи.
  • →Настраивать copilot-instructions.md и файлы *.instructions.md с applyTo.

Inline-подсказки и Next Edit Suggestions

База Copilot в VS Code — те же ghost text подсказки: серый текст по мере набора, Tab — принять, Esc — скрыть. Дополнительные клавиши: Alt+] и Alt+[ листают альтернативные варианты подсказки, Cmd+→ (Ctrl+→) принимает подсказку по слову — удобно, когда начало предложения верное, а хвост нет. Подсказки приходят из контекста: открытые вкладки соседних файлов заметно улучшают качество, поэтому держите открытыми файлы, связанные с текущей задачей.

Отдельного внимания заслуживает Next Edit Suggestions (NES) — ответ Copilot на прыжки Cursor Tab. Включается настройкой github.copilot.nextEditSuggestions.enabled. После вашей правки NES предсказывает следующее связанное изменение — в том числе в другом месте файла: стрелка на полях (gutter) показывает, куда предлагается перейти, Tab переносит к месту правки, следующий Tab принимает её. Переименование, смена сигнатуры, исправление опечатки в паттерне — NES проводит по цепочке связанных правок так же, как Tab в Cursor.

Гигиена та же, что и в прошлых уроках: каждое предложение прочитывается до принятия, а на файлах, где подсказки мешают (конфиги с секретами, прозаические документы), inline-подсказки можно точечно отключить по языку в настройках. Если вы работали в Cursor — переучиваться почти не придётся: ментальная модель первой передачи совпадает, различаются клавиши и названия настроек.

Copilot Chat: Ask и Edit

Панель Copilot Chat открывается по Ctrl+Alt+I (⌃⌘I на macOS); инлайн-чат прямо в редакторе — Cmd+I (Ctrl+I). В панели есть переключатель режимов: Ask, Edit и Agent — это те же передачи, что мы разбирали в первом уроке, встроенные в один интерфейс.

Ask отвечает на вопросы и предлагает код блоками, ничего не меняя в файлах, — режим для разбора незнакомого кода, планов и сравнения вариантов. Контекст добавляется явно: #-переменные (#file — конкретный файл, #selection — выделение) и участники вроде @workspace, который умеет отвечать на вопросы по всей кодовой базе: «@workspace где обрабатывается загрузка аватара?».

Edit — середина между разговором и автономией: вы собираете рабочий набор файлов (working set), описываете изменение, и Copilot применяет правки сразу в нескольких файлах набора, показывая их как дифф с постраничным принятием. В отличие от Agent, Edit не решает сам, какие файлы трогать, — границы задаёте вы. Это делает его предсказуемым инструментом для изменений, охватывающих известные вам 2–4 файла: переименовать проп через компонент и его использования, синхронно поправить тип и схему валидации.

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

Agent mode: автономные правки с инструментами

Agent mode выбирается в том же переключателе режимов чата. Отличие от Edit принципиальное: агент сам определяет, какие файлы читать и править, запускает терминальные команды, следит за их выводом, чинит ошибки компиляции и тестов и итерирует до завершения задачи. Это полный аналог Cursor Agent внутри VS Code: цикл план → правка → проверка → коррекция.

Безопасность построена на подтверждениях: перед запуском терминальной команды или обращением к инструменту агент просит вашего одобрения. Не превращайте это в рефлекторное «Continue»: строка rm -rf или git push --force в предложенной команде — именно то, что должно останавливать руку. Правки агента можно откатить средствами чата (Undo), но, как и в Cursor, лучшая страховка — чистое git-дерево до запуска.

Возможности агента расширяются инструментами: встроенные (поиск по workspace, терминал, чтение вывода задач) плюс внешние через MCP-серверы — базы данных, браузер, трекеры задач. Подключённый MCP-сервер превращает агента из редактора кода в исполнителя сквозных сценариев: «возьми упавший тест из CI, найди причину, почини».

Когда какой режим: Ask — понять; Edit — правка в известных файлах с полным контролем границ; Agent — многофайловая задача с проверкой, где границы заранее не известны. Заметьте: это в точности решётка выбора передачи из первого урока — меняются только названия кнопок.

Файлы инструкций для Copilot

Аналог rules-файлов у Copilot — файлы инструкций. Основной — .github/copilot-instructions.md: markdown с конвенциями проекта, который автоматически добавляется в контекст чата для всего workspace. Работает во всех режимах: Ask, Edit, Agent.

Для выборочного подключения существуют файлы *.instructions.md (обычно в .github/instructions/) с frontmatter-полем applyTo — glob-шаблоном, определяющим, к каким файлам применяются инструкции:

---
applyTo: "src/components/**/*.tsx"
---

- Компоненты — функциональные, с типизированными пропсами.
- Стили — только токены темы, сырые hex-значения запрещены.
- Каждый новый компонент экспортируется через index.ts своей папки.

Это прямой аналог Auto Attached правил Cursor: инструкции про компоненты включаются, только когда правятся компоненты. Точечность экономит контекст и повышает точность.

Советы по содержимому те же, что в прошлом уроке: короткие самодостаточные утверждения, конкретика вместо эссе, примеры «плохо/хорошо». Файлы инструкций лежат в git и ревьюятся как код — это командный актив, а не личная настройка. Если команда параллельно использует Cursor и Copilot, держите канон в AGENTS.md, а copilot-instructions.md и .cursor/rules — тонкими адаптерами со ссылкой на него: два независимых свода правил неизбежно разъедутся.

Проверка работоспособности: в ответах чата раскрывается список использованных ссылок (references) — там видно, подхватились ли ваши файлы инструкций в конкретном запросе.

Practice

Copilot-сетап рабочего проекта

В VS Code: включите Next Edit Suggestions и пройдите цепочку правок после переименования; выполните одну многофайловую правку в режиме Edit с working set; одну задачу — в agent mode с подтверждением команд. Затем создайте .github/copilot-instructions.md и один *.instructions.md с applyTo и проверьте по references, что они подхватываются.

Deliverable

Скриншоты цепочки NES и references с файлом инструкций, дифф правки из agent mode и оба файла инструкций в PR.

Checkpoint

Сравните на своём опыте режимы Edit и Agent в VS Code: чем различаются границы полномочий, где вы контролировали набор файлов, а где — только результат, и какой режим вы бы выбрали для правки в трёх известных файлах?

  • ✓ Названо ключевое различие: в Edit границы задаёт working set, в Agent файлы выбирает агент.
  • ✓ Для правки в известных файлах обоснованно выбран Edit как более предсказуемый.
  • ✓ Упомянуты подтверждения команд и ревью диффа как обязательные шаги agent mode.

Check yourself

Какими клавишами листаются альтернативные inline-подсказки Copilot?

01Какими клавишами листаются альтернативные inline-подсказки Copilot?

Что делает Next Edit Suggestions?

02Что делает Next Edit Suggestions?

Чем режим Edit отличается от Agent в Copilot Chat?

03Чем режим Edit отличается от Agent в Copilot Chat?

Где живут инструкции, применяемые ко всему workspace?

04Где живут инструкции, применяемые ко всему workspace?

Что задаёт поле applyTo в файле *.instructions.md?

05Что задаёт поле applyTo в файле *.instructions.md?

Sources

Copilot and agent mode in VS Code · AI-native IDEs: Cursor, Copilot, and the new editor workflow · VORCL