# Вайб-кодинг в Zoo Code: настройка через RouterAI (Claude, GPT, DeepSeek)

**Zoo Code** — расширение VS Code с автономными ИИ-агентами, которое продолжает разработку Roo Code после того, как команда Roo закрыла проект. В этой статье мы установим его из Marketplace, подключим **RouterAI** как OpenAI-совместимого провайдера, разберём режимы Code / Architect / Ask / Debug и оркестратор, настроим MCP и перенесём настройки из Roo Code. Всё это — без VPN и с оплатой в рублях.

## Что такое Zoo Code и зачем ему RouterAI

Zoo Code — форк Roo Code, который поддерживает команда бывших контрибьюторов Roo. В README репозитория прямо сказано: проект продолжает развитие после того, как команда Roo свернула активную работу над Roo Code. Расширение распространяется под лицензией Apache 2.0, ставится из VS Code Marketplace (идентификатор `ZooCodeOrganization.zoo-code`), текущая версия — 3.92.0.

Что даёт Zoo Code:

- **Режимы** — Code, Architect, Ask, Debug и собственные. Каждый режим — отдельная роль со своим набором инструментов и системным промптом: Architect не станет править код, Ask не получит доступ к записи файлов.
- **Оркестратор** (Boomerang Tasks) — режим, который разбивает большую задачу на подзадачи и раздаёт их другим режимам, каждая в изолированном контексте.
- **MCP** — подключение внешних инструментов и сервисов по Model Context Protocol.
- **Своя модель на каждый режим** — например, планирование на сильной модели, рутинные правки — на быстрой и дешёвой.

Сам Zoo Code модель не предоставляет: нужен ключ провайдера. Здесь и пригодится **RouterAI** — один ключ ко всем популярным моделям (Claude, GPT, DeepSeek, Gemini и другие) в формате OpenAI API. Расширение видит RouterAI как обычного OpenAI-совместимого провайдера, поэтому достаточно подставить Base URL.

## Требования

- VS Code (или совместимый редактор с поддержкой расширений Marketplace).
- Аккаунт RouterAI и созданный ключ `sk-...` из раздела «Ключи API».
- Модель, которая поддерживает **native tool calling** по схеме OpenAI. Zoo Code работает только с нативным вызовом инструментов — XML-фолбэка в нём нет, и модель без поддержки инструментов подключить не получится.

## Установка

1. Откройте панель **Extensions** (`Ctrl+Shift+X`, на macOS — `Cmd+Shift+X`).
2. Введите в поиске `Zoo Code`.
3. Найдите расширение **Zoo Code** от издателя `ZooCodeOrganization` и нажмите **Install**.
4. После установки в боковой панели появится иконка Zoo Code — нажмите на неё.

![Поиск расширения Zoo Code в VS Code Marketplace](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/2ee8027ef72055fd7646b8002e654d0e.png)

Первый запуск показывает экран **Welcome to Zoo Code** с кнопкой **Choose your provider** и ссылкой **Import Settings** внизу — она понадобится, если вы переходите с Roo Code.

## Подключение к RouterAI

В мастере первого запуска заполните четыре поля (номера соответствуют меткам на скриншоте):

1. **API Provider** — выберите `OpenAI Compatible` из списка провайдеров (в строке поиска достаточно набрать `OpenAI Compatible`).
2. **Base URL** — `https://routerai.ru/api/v1`.
3. **API Key** — ваш ключ RouterAI.
4. **Model** — идентификатор модели из каталога RouterAI, например `anthropic/claude-sonnet-5.5`. Начните вводить его в поле — Zoo Code подскажет совпадения; если нужной модели нет в списке подсказок, выберите вариант **Use custom**.

![Подключение Zoo Code к RouterAI: провайдер OpenAI Compatible, Base URL, API Key и Model](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/dc1c7f76cd0792e7011baf19d9ee26fe.png)

Нажмите **Finish** — откроется панель чата.

### Добавить остальные модели

Одну модель на все задачи держать невыгодно: архитектуру лучше доверить Claude Sonnet, а мелкие правки — быстрой Haiku или DeepSeek. Остальные модели добавляются в настройках:

1. Нажмите шестерёнку в шапке панели Zoo Code — откроются **Settings**.
2. Раздел **Providers** (иконка вилки). Здесь же лежит текущий профиль **Configuration Profile** — профили позволяют держать несколько наборов настроек и переключаться между ними.
3. Задайте тот же Base URL и API Key, поменяйте **Model** и, при желании, имя профиля.
4. Нажмите **Save**.

![Настройки провайдера Zoo Code: Base URL, API Key и Model в разделе Providers](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/bd9ae431520dfdd6de6a12a45f542ecc.png)

Под полем **Model** Zoo Code показывает, что он знает о модели: длину контекста, поддержку изображений и кэширования, цены. Для нестандартных моделей эти параметры задаются вручную — **Context Window Size**, **Max Output Tokens**, **Image Support**. Значения берите из каталога RouterAI, а не угадывайте: слишком маленькое окно контекста обрежет задачу, слишком большое приведёт к ошибкам провайдера.

## Режимы: Code, Architect, Ask, Debug и Orchestrator

Режим переключается селектором слева под полем ввода, слэш-командой в начале сообщения (`/code`, `/architect`, `/ask`, `/debug`, `/orchestrator`) или сочетанием `Ctrl+.`, которое циклически перебирает режимы.

| Режим | Что делает | Доступ к инструментам |
| --- | --- | --- |
| 💻 **Code** | Основной режим: правки файлов, запуск команд, реализация фич | Полный: чтение, редактирование, терминал, MCP |
| 🏗️ **Architect** | Планирование: структура проекта, спецификации, миграции | Чтение, MCP и правка только markdown-файлов |
| ❓ **Ask** | Объяснения и вопросы по кодовой базе | Только чтение и MCP |
| 🪲 **Debug** | Поиск причин ошибок: логи, изоляция проблемы | Полный |
| 🪃 **Orchestrator** | Декомпозиция задачи и делегирование подзадач другим режимам | Управляющий режим, работает через подзадачи |

Каждый режим запоминает свою модель: переключили режим — Zoo Code сам подставит ту, что вы назначили ему в **Settings → Modes**. Это и есть основной способ экономить: Architect на Claude Sonnet 5.5, Code на `anthropic/claude-haiku-5.5` или `deepseek/deepseek-v4-flash`, а сложные правки — обратно на Sonnet.

### Оркестратор (Boomerang Tasks)

В режиме Orchestrator вы описываете большую задачу, а Zoo Code разбивает её на подзадачи и запускает каждую в отдельном режиме — например, сначала Architect проектирует, затем Code реализует, затем Debug проверяет. Ключевой момент: каждая подзадача работает в изолированном контексте и не наследует родительский. В родитель возвращается только итоговое резюме, поэтому основной контекст не забивается диффами и логами. По умолчанию создание и завершение каждой подзадачи нужно подтверждать вручную.

## MCP: внешние инструменты

MCP-серверы в Zoo Code настраиваются на двух уровнях: глобально в файле `mcp_settings.json` и на уровне проекта в `.roo/mcp.json` (путь остался от Roo Code). Если имя сервера есть в обоих файлах, приоритет у проектного. Открыть оба файла можно из панели MCP: иконка MCP в верхней навигации → прокрутить вниз → **Edit Global MCP** или **Edit Project MCP**.

![Панель MCP Servers в настройках Zoo Code: включение MCP и кнопки Edit Global MCP, Edit Project MCP, Refresh MCP Servers](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/38ca0865fd055dcf7f5ee2055d75793f.png)

Формат конфигурации стандартный:

```json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/project"],
      "alwaysAllow": ["read_file"],
      "disabled": false
    }
  }
}
```

Поддерживаются три транспорта: **STDIO** для локальных процессов, **Streamable HTTP** (рекомендуется для новых удалённых серверов) и **SSE** для старых.

## Перенос настроек из Roo Code

Если вы уже работали в Roo Code, перенос делается в два шага — экспорт и импорт одного и того же файла:

1. Откройте настройки Roo Code и нажмите **Export**. В диалоге сохранения выберите папку и сохраните файл.
2. В Zoo Code нажмите **Import Settings** (кнопка на экране приветствия, а также команда `Zoo Code: Import Settings` в палитре команд) и выберите этот файл.

Zoo Code импортирует файл и сольёт настройки с текущими. Учтите: в экспорте могут лежать API-ключи, поэтому файл не стоит хранить в репозитории или пересылать.

## Выбор модели

Zoo Code требует поддержки native tool calling, поэтому для агентных режимов берите модели с инструментами. Ориентир по задачам:

| Модель (id в RouterAI) | Для чего |
| --- | --- |
| `anthropic/claude-sonnet-5.5` | Основная рабочая модель: сложные правки, рефакторинг, режимы Code и Architect |
| `anthropic/claude-haiku-5.5` | Быстрая и дешёвая: рутинные правки, Ask, черновики тестов |
| `openai/gpt-5.5` | Второе мнение на архитектуре, задачи, где GPT сильнее |
| `deepseek/deepseek-v4-flash` | Массовые однотипные изменения, длинные файлы — экономит бюджет |
| `google/gemini-3.1-pro-preview` | Большой контекст, разбор крупных репозиториев |

Актуальный список и цены — в [каталоге моделей RouterAI](/models). Идентификаторы меняются: если модель перестала отвечать, сверьтесь с каталогом.

## Проверка подключения

Самый быстрый способ — попросить что-то простое, что не требует правок:

1. Переключитесь в режим **Ask**.
2. Напишите: `Сколько файлов в этом проекте и что делает invoices.js?`
3. Агент должен прочитать файлы и ответить по существу.

Если ответ пришёл — связка работает.

Так выглядит рабочая задача в режиме **Code** на демо-проекте Invoices: модель через RouterAI прочитала файлы, добавила функцию `overdueInvoices()` и показывает дифф перед сохранением.

![Живая сессия Zoo Code в режиме Code на демо-проекте Invoices: модель через RouterAI добавляет overdueInvoices() в invoices.js, дифф изменений и кнопки Save/Deny](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/8d80366c6e036bb50987471bf943d547.png)

При подключении из России VPN не нужен: запросы идут на `https://routerai.ru/api/v1`. Расход токенов и стоимость запросов видны в [статистике RouterAI](/settings/activity).

## Решение проблем

**`401 Unauthorized` или `OpenAI completion error: 401`.** Ключ не сохранён или сохранён не полностью. Откройте **Settings → Providers**, вставьте ключ в поле **API Key** ещё раз и нажмите **Save** — без сохранения профиля ключ в запрос не попадёт.

**`401` в браузерном VS Code (openvscode-server, code-server).** В веб-версии редактора Zoo Code (проверено на 3.92.0) может не сохранять ключ, введённый в поле **API Key**: профиль сохраняется, а запросы всё равно получают 401. Рабочий обход — автоимпорт настроек. Создайте файл, например `~/zoo-settings.json`:

```json
{
  "providerProfiles": {
    "currentApiConfigName": "routerai",
    "apiConfigs": {
      "routerai": {
        "apiProvider": "openai",
        "openAiBaseUrl": "https://routerai.ru/api/v1",
        "openAiApiKey": "sk-xxxxxxxxxxxxxxxx",
        "openAiModelId": "anthropic/claude-sonnet-5.5"
      }
    }
  },
  "globalSettings": {}
}
```

и укажите путь к нему в `settings.json` редактора: `"zoo-code.autoImportSettingsPath": "~/zoo-settings.json"`. При следующем запуске расширение импортирует профиль (в логе Zoo Code появится `[AutoImport] Successfully imported settings`). Файл содержит ключ — не кладите его в репозиторий.

**`404` или `model not found`.** В поле **Model** указан несуществующий id. Скопируйте идентификатор из [каталога](/models) целиком, с префиксом провайдера: `anthropic/claude-sonnet-5.5`, а не `claude-sonnet-5.5`.

**Агент не вызывает инструменты, отвечает текстом.** Модель не поддерживает native tool calling либо провайдер реализует схему частично. Возьмите модель из таблицы выше — Zoo Code не умеет работать через XML-фолбэк.

**Ошибка про лимит контекста.** В настройках модели задано **Context Window Size** больше, чем поддерживает модель, или наоборот — меньше реального. Выставьте значение из каталога RouterAI.

**`API Streaming Failed`.** Обычно следствие двух предыдущих причин — неверного ключа или модели. Проверьте их, затем нажмите **Retry**.

## Что дальше

- [Каталог моделей RouterAI](/models) — сравнить цены и контекст перед выбором.
- [Вайб-кодинг в VS Code: Roo Code + RouterAI](/pages/vibe-coding-vscode-roo-code) — откуда вырос Zoo Code и чем отличается.
- [Вайб-кодинг в VS Code: Continue + RouterAI](/pages/vibe-coding-vscode-continue) — альтернатива с автодополнением и inline-правками.
- [Глоссарий: единый API для нейросетей](/pages/edinyy-api-dlya-neyrosetey-unified-api) — почему один Base URL заменяет десяток интеграций.

Удачного вайб-кодинга!
