Недавно я экспериментировал с использованием 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 | Главное окно
После авторизации отображается стандартный список чатов (пока пустой) и нижняя панель с элементами:
- Окно ввода сообщения: сообщения ставятся в очередь, если выполняются текущие задачи.
- Mode | Мод: режим работы, аналогичный агенту. Переключение происходит при следующем запросе — нужно остановить выполнение или отправить новое сообщение.
- AI-модель: смена применяется после завершения текущего запроса.
- Auto-Approve: разрешение на выполнение потенциально опасных действий (например, запуск команд в консоли).
- 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: Скиллы
Я разделил Скиллы на три категории:
- Использование MCP-серверов (префикс mcp-): повышают успешность выполнения задач, минимизируя использование консоли.
- Использование консоли (префикс cli-): базовые команды с понятным синтаксисом.
- Пользовательские Скиллы (префикс 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 — удобный инструмент агентской разработки для тех, кто ценит синхронное выполнение и предсказуемость. Однако у него есть потенциал для развития.
Цикл итеративной настройки
Процесс настройки можно представить как цикл:
- Настройка поведения расширения без привязки к моделям.
- Определение разрешённых и запрещённых инструментов (MCP, консоль).
- Создание Скиллов для точного выполнения задач.
- Создание Модов с уникальным поведением.
- Оптимизация моделей по стоимости и качеству.
- Повторная настройка предыдущих этапов при необходимости.
Предостережения
Эта инструкция — не исчерпывающий мануал. Расширение быстро развивается, и некоторые настройки могут устареть за дни.
При создании промптов чётко определяйте границы ответственности каждого Мода. LLM склонны выполнять всё, что просят, даже если это не в их зоне. Настройка промптов — самый трудоёмкий этап, поэтому я привожу свои примеры как ориентир.
Учтите: мои промпты и Скиллы отражают личные предпочтения, которые могут не подойти вам. Адаптируйте под свой рабочий процесс.
Спасибо за внимание!