Continue (IDE и cn CLI) на genmux: config.yaml и инструменты
5 мин чтенияАвтор genmux API Team
Continue — опенсорсный ассистент, который живёт в VS Code и JetBrains, а с появлением cn CLI — ещё и в терминале и скриптах. Настраивается он одним YAML-файлом, и этот файл — вся интеграция с genmux: провайдер openai, направленный на https://api.genmux.tech/v1. В посте — конфиг, что делает каждое поле, и как запустить ту же настройку без IDE из скрипта.
config.yaml
Положите это в ~/.continue/config.yaml (глобально) или в config.yaml, который передаёте CLI:
name: genmux
version: 0.0.1
schema: v1
models:
- name: DeepSeek V4 Flash
provider: openai
model: deepseek-v4-flash
apiBase: https://api.genmux.tech/v1
apiKey: nb_live_...
roles: [chat, edit, apply]
capabilities: [tool_use]По полям:
provider: openai— адаптер OpenAI в Continue. Отдельного провайдера genmux нет, и он не нужен: чат-эндпоинт говорит на диалекте OpenAI, включая стриминг и вызовы инструментов.apiBase— базовый URL genmux вместе с/v1. Continue дописывает/chat/completions.apiKey— ваш ключ. Если конфиг общий, вместо значения можно сослаться на переменную окружения (apiKey: ${{ secrets.GENMUX_API_KEY }}в синтаксисе Continue).model— любой из семи id с поддержкой инструментов:deepseek-v4-flash,deepseek-v4-pro,deepseek-v3,qwen3-max,qwen3-7-max,doubao-seed-2-pro,doubao-seed-2-code.roles— какие задачи выполняет эта модель (следующий раздел).capabilities: [tool_use]— самая важная строка. Continue не знает id genmux и не может сам выяснить, поддерживает ли модель инструменты; без этой строки режим Agent откатывается к чату без инструментов. С ней Continue отправляет массивtoolsи читаетtool_callsв ответ.
Добавьте вторую запись для тяжёлой модели и переключайтесь между ними из выбора моделей:
- name: DeepSeek V4 Pro
provider: openai
model: deepseek-v4-pro
apiBase: https://api.genmux.tech/v1
apiKey: nb_live_...
roles: [chat, edit]
capabilities: [tool_use]Роли: chat, edit, apply
Continue направляет разные задачи разным моделям, и roles — то место, где вы говорите, кто за что отвечает:
| Роль | Для чего Continue её использует | Рекомендация |
|---|---|---|
chat | Диалог в боковой панели и режим Agent, включая инструменты | deepseek-v4-flash по умолчанию, deepseek-v4-pro для сложных задач |
edit | Инлайн-правка выделения (Cmd/Ctrl+I) — точечное переписывание фрагмента кода | Любая из V4; Flash достаточно быстр, чтобы ощущаться инлайн |
apply | Перенос блока кода из чата в файл со слиянием | deepseek-v4-flash — много коротких вызовов, пусть будут дешёвыми |
autocomplete | Подсказки по мере набора (fill-in-the-middle) | Намеренно не указана |
autocomplete отсутствует в примере не случайно. Автодополнение Continue использует промпты fill-in-the-middle против эндпоинта в стиле completions, которого у genmux нет — только chat completions. Не назначайте чат-модель на эту роль: она будет выдавать ответы в форме чата там, где вы ждали строку кода.
Про apply одна заметка. Continue может применить блок простым текстовым слиянием или попросить модель; на модели с контекстом 1M вроде V4 Flash путь через модель надёжен, а вызовы крошечные. Цены за 1М токенов для двух моделей: Flash $0.198 вход / $0.594 выход, Pro $0.594 / $1.782.
Режим Agent и как выглядят вызовы инструментов
В режиме Agent Continue отправляет встроенные инструменты — чтение файла, запись, команда в терминале, поиск, а также MCP-инструменты, которые вы добавили, — в массиве tools. genmux эмулирует вызов функций для семи моделей выше (шлюз вендора отбрасывает tools, поэтому определения вписываются в системный промпт, а ответ разбирается обратно); Continue получает стандартные tool_calls OpenAI, показывает карточку подтверждения, выполняет инструмент и отправляет role: tool назад. Две вещи из этой эмуляции видны в редакторе:
- Определения считаются как токены промпта, примерно 40 на инструмент плюс схема. Набор Continue небольшой — несколько сотен токенов; каждый MCP-сервер сверху приносит свои.
tool_choice: required— подсказка, которую модель может проигнорировать. Continue используетauto, и в нашем тесте агентских задач из 20 задач V4 Pro сделал все ожидаемые вызовы (20/20), Flash — 19/20; подробности в посте про эмуляцию вызова функций.
Если хочется, чтобы ассистент ещё и генерировал картинки прямо из редактора, добавьте MCP-сервер genmux в mcpServers того же файла: он отдаёт generate_image и estimate_cost как инструменты, которые чат-модель может вызывать.
Без IDE: cn -p --auto
CLI — тот же движок без редактора:
npm i -g @continuedev/cli
cn --config ./config.yaml # interactive TUI in the current repo
cn --config ./config.yaml -p --auto "add unit tests for pkg/parse and make them pass"-p (print) выполняет один промпт и выходит; --auto подтверждает вызовы инструментов без вопросов — то, что нужно скрипту или шагу CI. Этой связкой мы проверяем каждый релиз: временный репозиторий, этот конфиг, cn -p --auto "create hello.txt containing hi", проверка файла. Перед каждым тегом это проходит на deepseek-v4-flash и qwen3-max против продакшена.
Несколько практических моментов для скриптов:
- Если конфиг лежит в репозитории, передавайте ключ через окружение, а не в файле.
--autoвыполняет всё, что попросит модель, включая команды оболочки. Запускайте в контейнере или во временной копии — как любого агента с инструментом терминала.- Каждый запуск
cn— это несколько чат-запросов, каждый из которых — задание genmux;GET /v1/generations?capability=text.chatперечисляет их со стоимостью каждого — это более чистая бухгалтерия, чем разбор вывода CLI.
С чего начать
Один config.yaml с provider: openai, apiBase: https://api.genmux.tech/v1 и capabilities: [tool_use] даёт Continue — и в IDE, и в терминале — DeepSeek V4 и Qwen3 через один ключ genmux. Краткая версия для каждого клиента — на странице про агентов, а у остальных агентов свои посты — OpenCode, aider, Cline и Roo Code, — а справочник по чат-эндпоинту в документации.