Агентная разработка в VS Code: Глубокая настройка RooCode для максимальной эффективности

Агентная разработка в VS Code: Глубокая настройка RooCode для максимальной эффективности

Недавно я экспериментировал с использованием Gemini для написания кода. Основным инструментом была веб-версия AI Studio. Такой подход позволял точно контролировать изменения, но был крайне медленным.

Гораздо эффективнее — анализировать diff изменений. Поэтому я перешёл к поиску более производительных решений: расширений для IDE и консольных инструментов.

Сравнение инструментов

  • Gemini CLI: высокая скорость, но чрезмерно расходует токены и лимиты запросов.
  • IDE-расширения с внешними провайдерами: незначительный прирост удобства по сравнению с консолью.
  • Open source инструменты с поддержкой асинхронных агентов: гибкость и работа с любыми провайдерами, но слабые расширения для IDE и нестабильное соединение с бэкендом.
  • RooCode: удобные настройки, предсказуемость результата, встроенные MCP-серверы, но синхронное выполнение задач (медленнее асинхронных аналогов).

Сейчас я использую три инструмента: VS Code + RooCode, QWEN Code и OpenCode.

Почему RooCode стал основным инструментом

RooCode — мой самый частый выбор. Он похож на OpenCode, но удобнее в настройке: изменить поведение можно быстро и на лету. Несмотря на более медленное последовательное выполнение задач, это даёт предсказуемость результата.

Что даёт эта статья

Статья поможет глубоко настроить RooCode с минимальным количеством итераций. Вы получите:

  • Пошаговое руководство по настройке всех компонентов
  • Готовые промпты для Модов
  • Структуру Скиллов для копирования
  • Понимание философии многоагентной системы

Будьте готовы: настройка описана не по порядку интерфейса, а по логике удобства — от базового к продвинутому.

Часть 1: Базовая настройка

Main Window | Главное окно

После авторизации отображается стандартный список чатов (пока пустой) и нижняя панель с элементами:

  1. Окно ввода сообщения: сообщения ставятся в очередь, если выполняются текущие задачи.
  2. Mode | Мод: режим работы, аналогичный агенту. Переключение происходит при следующем запросе — нужно остановить выполнение или отправить новое сообщение.
  3. AI-модель: смена применяется после завершения текущего запроса.
  4. Auto-Approve: разрешение на выполнение потенциально опасных действий (например, запуск команд в консоли).
  5. Indexing | Значок базы данных: активация индексации проекта. Позволяет RooCode сканировать файлы и каталоги, что повышает точность LLM.

Indexing | Индексация проекта

Требуется настроить подключение к провайдеру векторной обработки и указать соединение с векторной БД Qdrant для хранения графов. Это улучшает контекстное понимание кода и точность правок.

Auto-Approve | Разрешения на выполнение операций

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

Если разрешить выполнение консольных команд (Execute), появится список разрешённых и запрещённых команд. Его можно дополнять вручную или в процессе работы. При появлении новых команд RooCode будет запрашивать подтверждение — так список разрешений постепенно растёт.

Marketplace | Маркетплейс MCP-серверов и Модов

Через кнопку в главном меню можно установить преднастроенные MCP-серверы и Моды. Установленные серверы отображаются в отдельной вкладке.

Важно: MCP-сервер для git всегда настраивается внутри проекта, чтобы не смешивать репозитории. Поэтому на скриншотах он может отсутствовать.

Предустановленных Модов много, но я использую только один.

Notifications | Уведомления

Рекомендую включить уведомления и настроить громкость. RooCode оповестит о:

  • Необходимости подтвердить команду
  • Прерванных операциях (при подозрении на циклические действия)
  • Полном завершении всех задач

Prompts | Встроенные промпты

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

Все промпты стоит внимательно прочитать и адаптировать под себя. В моём случае промпт "Enhance" был полностью переписан и будет дорабатываться в будущем.

Enhance Prompt | Промпт по улучшению запроса пользователя

UI | Полезные функции интерфейса

Следующие настройки UI оказались особенно полезными:

  • Разворачивать размышления моделей: помогает выявлять логические ошибки на раннем этапе.
  • Отправка сообщений по Ctrl+Enter (или Shift+Enter): предотвращает случайную отправку незавершённых сообщений при быстрой печати.

Experimental | Экспериментальные функции

Из экспериментальных функций я включаю:

  • Background editing: убирает мелькание окон при правках, позволяя параллельно работать с кодом.
  • Выполнение команд через слэш: удобно для вызова Модов и Скиллов.

Часть 2: Скиллы

Я разделил Скиллы на три категории:

  1. Использование MCP-серверов (префикс mcp-): повышают успешность выполнения задач, минимизируя использование консоли.
  2. Использование консоли (префикс cli-): базовые команды с понятным синтаксисом.
  3. Пользовательские Скиллы (префикс usr-): пояснения для решения конкретных задач в определённых режимах.

Ресурсы: множество Скиллов доступно в открытых библиотеках: https://claudemarketplaces.com/skills и https://geminicli.com/extensions

Пример состава Скилла

Путь: ~/.roo/skills/mcp-time/SKILL.md

Набор Скиллов для RooCode

Глобальные Скиллы хранятся в ~/.roo/skills, проектные — в <project_dir>/.roo/skills. Мои системные Скиллы выложены на GitHub.

Часть 3: Моды (Агенты)

RooCode поддерживает встроенные Моды, которые можно расширять через Маркетплейс или создавать самостоятельно. Каждый Мод привязан к конкретной LLM — это одна из ключевых особенностей (вторая — агентское поведение, позволяющее Модам переключаться между собой).

Встроенный набор Модов

  • Orchestrator (Оркестратор): управляет всеми другими Модами, отвечает на любые вопросы.
  • Project Research (Ищейка): ищет участки кода (кастомный Мод из Маркетплейса).
  • Architect (Архитектор): проектирует архитектуру, пишет и модифицирует код, решает проблемы.
  • Code (Кодер): вносит правки по инструкциям.
  • Debug (Дебаггер): ищет решения при ошибках реализации.

Оркестратор планирует все задачи, но не может выполнять код или обращаться к файлам. Это заставляет его делегировать задачи другим Модам, что оптимизирует использование LLM.

Примечание: было бы удобно запускать несколько оркестраторов в разных ветках, но пока доступен только один. Зато проще контролировать качество выполнения.

Modes | Меню Модов

Здесь настраивается привязка моделей к Модам и системные промпты. Исходные формулировки мне не подошли — я переписал их в несколько итераций, наблюдая за поведением. Вероятно, буду корректировать и дальше.

Таблица температур для Модов

  • Orchestrator: 0.8 — творческое планирование задач.
  • Project Research: 0.3 — минимальные отклонения, точный поиск.
  • Architect: 0.8 — архитектурное мышление и креативность.
  • Code: 0.3 — точное следование инструкциям.
  • Debug: 0.8 — творческий поиск решений.

Orchestrator | Оркестратор

Оркестратор — главный агент. Он должен полностью понять задачу пользователя и направить её нужному исполнителю, пока проблема не будет решена. Для этого нужна умная, но не обязательно самая новая модель. Температура 0.8 обеспечивает творческое осмысление.

Ask | Советник

Советник отвечает на любые вопросы. Требуется умеренная креативность (температура 0.5). Я использую новые, но дорогие модели, чтобы задействовать актуальные знания.

Project Research | Ищейка

Ищейка должен точно находить нужные участки кода. Температура 0.3 минимизирует отклонения. Он не пишет код и не предлагает решений — это не входит в его задачу.

Architect | Архитектор

Архитектор — ключевой исполнитель. Использует самую умную модель и работает с температурой 0.8. От его решений зависит успех всей задачи.

Code | Кодер

Кодер — лёгкая модель, строго следующая инструкциям. Температура 0.3. При проблемах он не зацикливается, а передаёт задачу Дебаггеру.

Debug | Дебаггер

Дебаггер ищет решения, если Кодер не справился. Требуется умная модель и температура 0.8 — возможно, задача была выполнена слишком буквально.

Часть 4: Провайдеры и интеграция

После настройки Модов важно правильно выбрать провайдеров. Использование одной модели для всех Модов лишает гибкости и оптимизации. Тогда проще было бы использовать один Мод с длинным промптом-воркфлоу.

RooCode поддерживает большинство провайдеров, включая локальные модели (например, через API LM Studio). Детали настройки аналогичны другим инструментам — углубляться не буду.

Итоги и рекомендации

Выводы от использования RooCode

RooCode — удобный инструмент агентской разработки для тех, кто ценит синхронное выполнение и предсказуемость. Однако у него есть потенциал для развития.

Цикл итеративной настройки

Процесс настройки можно представить как цикл:

  1. Настройка поведения расширения без привязки к моделям.
  2. Определение разрешённых и запрещённых инструментов (MCP, консоль).
  3. Создание Скиллов для точного выполнения задач.
  4. Создание Модов с уникальным поведением.
  5. Оптимизация моделей по стоимости и качеству.
  6. Повторная настройка предыдущих этапов при необходимости.

Предостережения

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

При создании промптов чётко определяйте границы ответственности каждого Мода. LLM склонны выполнять всё, что просят, даже если это не в их зоне. Настройка промптов — самый трудоёмкий этап, поэтому я привожу свои примеры как ориентир.

Учтите: мои промпты и Скиллы отражают личные предпочтения, которые могут не подойти вам. Адаптируйте под свой рабочий процесс.

Спасибо за внимание!

Читать оригинал