User Guide (Русский)
Содержание
Заголовок раздела «Содержание»- Краткий обзор цен
- Сценарии использования
- Настройка провайдера
- Интеграция с CLI
- Развертывание
- Доступные модели
- Расширенные возможности
- Автоматическая маршрутизация (без настройки)
- Интеграция MCP и A2A
- Система навыков
- Система памяти
- Вебхуки
- Облачные агенты
- Программное управление
- Внутренний CLI
- Настольное приложение (Electron)
💰 Краткий обзор цен
Заголовок раздела «💰 Краткий обзор цен»| Уровень | Провайдер | Стоимость | Сброс квоты | Лучше всего подходит для |
|---|---|---|---|---|
| 💳 ПОДПИСКА | Claude Code (Pro) | $20/мес. | Каждые 5 ч + еженедельно | Тех, у кого уже есть подписка |
| Codex (Plus/Pro) | $20–200/мес. | Каждые 5 ч + еженедельно | Пользователей OpenAI | |
| GitHub Copilot | $10–19/мес. | Ежемесячно | Пользователей GitHub | |
| 🔑 API-КЛЮЧ | DeepSeek | Оплата по факту | Нет | Недорогих рассуждений |
| Groq | Оплата по факту | Нет | Сверхбыстрого инференса | |
| xAI (Grok) | Оплата по факту | Нет | Рассуждений с Grok 4 | |
| Mistral | Оплата по факту | Нет | Моделей, размещенных в ЕС | |
| Perplexity | Оплата по факту | Нет | Расширения возможностей поиском | |
| Together AI | Оплата по факту | Нет | Моделей с открытым исходным кодом | |
| Fireworks AI | Оплата по факту | Нет | Быстрой генерации изображений FLUX | |
| Cerebras | Оплата по факту | Нет | Скорости на уровне целой пластины | |
| Cohere | Оплата по факту | Нет | RAG с Command R+ | |
| NVIDIA NIM | Оплата по факту | Нет | Корпоративных моделей | |
| Baidu Qianfan | Оплата по факту | Нет | Моделей ERNIE | |
| 💰 НЕДОРОГО | GLM-4.7 | $0.6/1M | Ежедневно в 10:00 | Бюджетного резервного варианта |
| MiniMax M2.1 | $0.2/1M | Скользящий период 5 часов | Самого дешевого варианта | |
| Kimi K2 | Фиксированно $9/мес. | 10M токенов/мес. | Предсказуемых расходов | |
| 🆓 БЕСПЛАТНО | Qoder | $0 | Действуют лимиты провайдера | Требуется проверить текущий каталог |
| Kiro | $0 | ~50 кредитов/мес. | Бесплатного доступа к Claude |
🎯 Сценарии использования
Заголовок раздела «🎯 Сценарии использования»Сценарий 1: «У меня есть подписка Claude Pro»
Заголовок раздела «Сценарий 1: «У меня есть подписка Claude Pro»»Проблема: квота сгорает неиспользованной, а при интенсивной разработке срабатывают ограничения частоты запросов
Комбинация: "maximize-claude" 1. cc/claude-opus-4-7 (использовать подписку полностью) 2. glm/glm-4.7 (недорогой резерв при исчерпании квоты) 3. if/qwen3.8-max-preview (бесплатный аварийный резерв)
Стоимость в месяц: $20 (подписка) + ~$5 (резерв) = итого $25вместо $20 + постоянных ограничений = разочарованиеСценарий 2: «Я не хочу ничего платить»
Заголовок раздела «Сценарий 2: «Я не хочу ничего платить»»Проблема: нет возможности оплачивать подписки, но нужен надежный ИИ для программирования
Комбинация: "zero-cost" 1. if/kimi-k2.7-code (указан бесплатный доступ; могут действовать ограничения частоты запросов) 2. kr/qwen3-coder-next (бесплатный резерв Kiro)
Стоимость в месяц: $0Качество: проверьте модель, ограничения, конфиденциальность и SLA применительно к вашей рабочей нагрузкеСценарий 3: «Мне нужно программировать круглосуточно и без перерывов»
Заголовок раздела «Сценарий 3: «Мне нужно программировать круглосуточно и без перерывов»»Проблема: жесткие сроки, простои недопустимы
Комбинация: "always-on" 1. cc/claude-opus-4-7 (лучшее качество) 2. cx/gpt-5.5 (вторая подписка) 3. glm/glm-4.7 (недорогой вариант, ежедневный сброс) 4. minimax/MiniMax-M2.1 (самый дешевый вариант, сброс каждые 5 ч) 5. if/deepseek-v4-flash (указан бесплатный доступ; могут действовать ограничения частоты запросов)
Результат: 5 уровней резервирования повышают отказоустойчивость; доступность вышестоящих сервисов не гарантируетсяСтоимость в месяц: $20–200 (подписки) + $10–20 (резерв)Сценарий 4: «Мне нужен БЕСПЛАТНЫЙ ИИ в OpenClaw»
Заголовок раздела «Сценарий 4: «Мне нужен БЕСПЛАТНЫЙ ИИ в OpenClaw»»Проблема: нужен полностью бесплатный ИИ-помощник в приложениях для обмена сообщениями
Комбинация: "openclaw-free" 1. if/qwen3.8-max-preview (указан бесплатный доступ; могут действовать ограничения частоты запросов) 2. if/deepseek-v4-flash (указан бесплатный доступ; могут действовать ограничения частоты запросов) 3. if/kimi-k2.7-code (указан бесплатный доступ; могут действовать ограничения частоты запросов)
Стоимость в месяц: $0Доступ через: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...📖 Настройка провайдеров
Заголовок раздела «📖 Настройка провайдеров»Чтобы массово добавить подключения с API-ключами из файла CSV или JSON, используйте Панель управления → Провайдеры → Импорт из файла. Столбцы являются позиционными (provider,name,apiKey,baseUrl,priority); provider должен уже существовать как управляемый провайдер или совместимый узел. См. Импорт провайдеров из файла CSV или JSON.
🔐 Провайдеры по подписке
Заголовок раздела «🔐 Провайдеры по подписке»Claude Code (Pro/Max)
Заголовок раздела «Claude Code (Pro/Max)»Панель управления → Провайдеры → Подключить Claude Code→ Вход через OAuth → Автоматическое обновление токена→ Отслеживание 5-часовой и недельной квот
Модели: cc/claude-opus-4-7 cc/claude-sonnet-4-6 cc/claude-haiku-4-5-20251001Совет: Используйте Opus для сложных задач, а Sonnet — для высокой скорости. OmniRoute отслеживает квоту отдельно для каждой модели!
Маршруты, совместимые с Claude и Claude Code, сохраняют уровень усилий мышления max для моделей Opus и Sonnet. Модели Haiku не поддерживают уровень усилий max, поэтому перед отправкой запроса вышестоящему провайдеру OmniRoute понижает его до высокого бюджета мышления.
OpenAI Codex (Plus/Pro)
Заголовок раздела «OpenAI Codex (Plus/Pro)»Панель управления → Провайдеры → Подключить Codex→ Вход через OAuth (порт 1455)→ Сброс каждые 5 часов и еженедельно
Модели: cx/gpt-5.5 cx/gpt-5.4 cx/gpt-5.3-codex cx/gpt-5.3-codex-sparkGitHub Copilot
Заголовок раздела «GitHub Copilot»Панель управления → Провайдеры → Подключить GitHub→ OAuth через GitHub→ Ежемесячный сброс (1-го числа месяца)
Модели: gh/gpt-5.5 gh/gpt-5.4 gh/claude-sonnet-4.6 gh/claude-opus-4.7 gh/gemini-3.1-pro-preview💰 Недорогие провайдеры
Заголовок раздела «💰 Недорогие провайдеры»GLM-4.7 (ежедневный сброс, $0.6/1M)
Заголовок раздела «GLM-4.7 (ежедневный сброс, $0.6/1M)»- Зарегистрируйтесь: Zhipu AI
- Получите API-ключ в Coding Plan
- Панель управления → Добавить API-ключ: Провайдер:
glm, API-ключ:your-key
Использование: glm/glm-4.7 — Совет: Coding Plan предоставляет квоту в 3 раза больше по цене в 7 раз ниже! Ежедневный сброс в 10:00.
MiniMax M2.1 (сброс каждые 5 ч, $0.20/1M)
Заголовок раздела «MiniMax M2.1 (сброс каждые 5 ч, $0.20/1M)»- Зарегистрируйтесь: MiniMax
- Получите API-ключ → Панель управления → Добавить API-ключ
Использование: minimax/MiniMax-M2.1 — Совет: Самый дешёвый вариант для длинного контекста (1M токенов)!
Kimi K2 (фиксированная плата $9/месяц)
Заголовок раздела «Kimi K2 (фиксированная плата $9/месяц)»- Оформите подписку: Moonshot AI
- Получите API-ключ → Панель управления → Добавить API-ключ
Использование: kimi/kimi-k2.5 — Совет: Фиксированные $9/месяц за 10M токенов = эффективная стоимость $0.90/1M!
Baidu Qianfan / ERNIE
Заголовок раздела «Baidu Qianfan / ERNIE»- Зарегистрируйтесь: Baidu AI Cloud Qianfan
- Создайте API-ключ Qianfan → Панель управления → Добавить API-ключ: Провайдер:
qianfan
Использование: qianfan/ernie-5.1, qianfan/ernie-x1.1 или другой идентификатор модели Qianfan, совместимой с OpenAI.
🆓 БЕСПЛАТНЫЕ провайдеры
Заголовок раздела «🆓 БЕСПЛАТНЫЕ провайдеры»На странице каждого бесплатного провайдера, не требующего аутентификации, рядом с параметром Аутентификация не требуется расположен переключатель.
Если его выключить, провайдер будет отключён и удалён из настроенного и компактного представлений списка провайдеров, а его модели будут удалены из /v1/models.
Qoder (9 БЕСПЛАТНЫХ моделей)
Заголовок раздела «Qoder (9 БЕСПЛАТНЫХ моделей)»Панель управления → Подключить Qoder → Вход через OAuth → Доступ регулируется текущими ограничениями провайдера
Модели: if/qwen3.8-max-preview, if/qwen3.7-max, if/qwen3.7-plus, if/kimi-k3, if/kimi-k2.7-code, if/glm-5.2, if/deepseek-v4-pro, if/deepseek-v4-flash, if/minimax-m3Kiro (Claude БЕСПЛАТНО)
Заголовок раздела «Kiro (Claude БЕСПЛАТНО)»Панель управления → Подключить Kiro → AWS Builder ID или Google/GitHub → ~50 кредитов в месяц
Модели: kr/claude-sonnet-4.5, kr/claude-haiku-4.5🎨 Комбо
Заголовок раздела «🎨 Комбо»Вы можете менять порядок карточек комбо непосредственно в разделе Панель управления → Комбо, перетаскивая каждую карточку за маркер. Порядок сохраняется в SQLite и восстанавливается после перезагрузки.
Пример 1: максимум от подписки → дешёвый резервный вариант
Заголовок раздела «Пример 1: максимум от подписки → дешёвый резервный вариант»Панель управления → Комбо → Создать
Название: premium-codingМодели: 1. cc/claude-opus-4-7 (Основная по подписке) 2. glm/glm-4.7 (Дешёвый резервный вариант, $0.6/1M) 3. minimax/MiniMax-M2.7 (Самый дешёвый запасной вариант, $0.3/1M)
Использование в CLI: premium-codingПример 2: только бесплатные модели (нулевая стоимость)
Заголовок раздела «Пример 2: только бесплатные модели (нулевая стоимость)»Название: free-comboМодели: 1. if/kimi-k2.7-code (указан бесплатный доступ; могут действовать ограничения провайдера) 2. kr/qwen3-coder-next (бесплатный резервный вариант Kiro)
Стоимость: сейчас указана как $0; условия и доступность могут измениться🔧 Интеграция с CLI
Заголовок раздела «🔧 Интеграция с CLI»Cursor IDE
Заголовок раздела «Cursor IDE»Использование Cursor в качестве клиента OmniRoute (маршрутизация чата Cursor через OmniRoute):
Настройки → Модели → Дополнительно: Базовый URL OpenAI API: http://localhost:20128/v1 Ключ OpenAI API: [из панели управления omniroute] Модель: cc/claude-opus-4-7Использование OmniRoute с Cursor в качестве провайдера (OmniRoute обращается к Cursor как к вышестоящему сервису): рекомендуется
Панель управления → Провайдеры → Cursor → Войти через Cursor. Для Docker см.
docs/providers/CURSOR-DOCKER.md.
Claude Code
Заголовок раздела «Claude Code»Отредактируйте ~/.claude/settings.json:
{ "env": { "ANTHROPIC_BASE_URL": "http://localhost:20128", "ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key" }}Здесь используйте корневую конечную точку, совместимую с Claude. Не добавляйте /v1 к ANTHROPIC_BASE_URL.
Codex CLI
Заголовок раздела «Codex CLI»export OPENAI_BASE_URL="http://localhost:20128"export OPENAI_API_KEY="your-omniroute-api-key"codex "your prompt"OpenClaw
Заголовок раздела «OpenClaw»Отредактируйте ~/.openclaw/openclaw.json:
{ "agents": { "defaults": { "model": { "primary": "omniroute/if/kimi-k2.7-code" } } }, "models": { "providers": { "omniroute": { "baseUrl": "http://localhost:20128/v1", "apiKey": "your-omniroute-api-key", "api": "openai-completions", "models": [{ "id": "if/kimi-k2.7-code", "name": "Kimi K2.7 Code" }] } } }}Или используйте панель управления: Инструменты CLI → OpenClaw → Автоматическая настройка
Cline / Continue / RooCode
Заголовок раздела «Cline / Continue / RooCode»Провайдер: совместимый с OpenAIБазовый URL: http://localhost:20128/v1Ключ API: [из панели управления]Модель: cc/claude-opus-4-7🚀 Развёртывание
Заголовок раздела «🚀 Развёртывание»Глобальная установка через npm (рекомендуется)
Заголовок раздела «Глобальная установка через npm (рекомендуется)»npm install -g omniroute
# Создайте каталог конфигурацииmkdir -p ~/.omniroute
# Создайте файл .env (см. .env.example)cp .env.example ~/.omniroute/.env
# Запустите серверomniroute# Или укажите пользовательский порт:omniroute --port 3000CLI автоматически загружает .env из ~/.omniroute/.env или ./.env.
Режим системного трея
Заголовок раздела «Режим системного трея»Запустите OmniRoute в системном трее:
omniroute serve --trayКоманда завершает работу после того, как сервер и значок в трее будут готовы.
Сервер продолжает работать без терминала.
Режим системного трея поддерживается в macOS, Windows и графических сеансах Linux. В этом режиме панель управления не открывается автоматически.
Используйте меню в трее для следующих действий:
- Открыть панель управления.
- Открыть
/dashboard/logs. - Изменить настройки автозапуска.
- Остановить OmniRoute.
Не сочетайте --tray со следующими параметрами:
--daemon--log--no-recovery
Эти режимы требуют разных способов управления процессом.
Включить запуск при следующем входе в систему:
omniroute autostart enableАвтозапуск использует режим системного трея в macOS, Windows и графических сеансах Linux. В Linux без графического интерфейса используется существующая пользовательская служба systemd.
Отключить запуск при входе в систему:
omniroute autostart disableУдаление
Заголовок раздела «Удаление»Если OmniRoute вам больше не нужен, мы предоставляем два быстрых скрипта для полного удаления:
| Команда | Действие |
|---|---|
npm run uninstall |
Удаляет системное приложение, но сохраняет вашу БД и конфигурации в ~/.omniroute. |
npm run uninstall:full |
Удаляет приложение И безвозвратно стирает все конфигурации, ключи и базы данных. |
Примечание: чтобы выполнить эти команды, перейдите в папку проекта OmniRoute (если вы его клонировали) и запустите их. Если пакет установлен глобально, можно просто выполнить
npm uninstall -g omniroute.
Развёртывание на VPS
Заголовок раздела «Развёртывание на VPS»git clone https://github.com/diegosouzapw/OmniRoute.gitcd OmniRoute && npm install && npm run build
export JWT_SECRET="your-secure-secret-change-this"export INITIAL_PASSWORD="your-password"export DATA_DIR="/var/lib/omniroute"export PORT="20128"export HOSTNAME="0.0.0.0"export NODE_ENV="production"export NEXT_PUBLIC_BASE_URL="http://localhost:20128"export API_KEY_SECRET="endpoint-proxy-api-key-secret"
npm run start# Или: pm2 start npm --name omniroute -- startРазвёртывание с PM2 (для малого объёма памяти)
Заголовок раздела «Развёртывание с PM2 (для малого объёма памяти)»Для серверов с ограниченным объёмом оперативной памяти используйте параметр ограничения памяти:
# С ограничением 512 МБ (по умолчанию)pm2 start npm --name omniroute -- start
# Или с пользовательским ограничением памятиOMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start
# Или с помощью ecosystem.config.jspm2 start ecosystem.config.jsСоздайте ecosystem.config.js:
module.exports = { apps: [ { name: "omniroute", script: "npm", args: "start", env: { NODE_ENV: "production", OMNIROUTE_MEMORY_MB: "512", JWT_SECRET: "your-secret", INITIAL_PASSWORD: "your-password", }, node_args: "--max-old-space-size=512", max_memory_restart: "300M", }, ],};# Соберите образ (по умолчанию = runner-cli с предустановленными codex/claude/droid)docker build -t omniroute:cli .
# Переносимый режим (рекомендуется)docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cliИнформацию о режиме с интеграцией с хост-системой и бинарными файлами CLI см. в разделе Docker основной документации.
Void Linux (xbps-src)
Заголовок раздела «Void Linux (xbps-src)»Пользователи Void Linux могут создавать и устанавливать нативные пакеты OmniRoute с помощью фреймворка кросс-компиляции xbps-src. Он автоматизирует создание автономной сборки Node.js вместе с необходимыми нативными привязками better-sqlite3.
Показать шаблон xbps-src
# Файл шаблона для 'omniroute'pkgname=omnirouteversion=3.8.0revision=1hostmakedepends="nodejs python3 make"depends="openssl"short_desc="Universal AI gateway with smart routing for multiple LLM providers"maintainer="zenobit <zenobit@disroot.org>"license="MIT"homepage="https://github.com/diegosouzapw/OmniRoute"distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz"checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245bsystem_accounts="_omniroute"omniroute_homedir="/var/lib/omniroute"export NODE_ENV=productionexport npm_config_engine_strict=falseexport npm_config_loglevel=errorexport npm_config_fund=falseexport npm_config_audit=false
do_build() { # Определяем целевую архитектуру процессора для node-gyp local _gyp_arch case "$XBPS_TARGET_MACHINE" in aarch64*) _gyp_arch=arm64 ;; armv7*|armv6*) _gyp_arch=arm ;; i686*) _gyp_arch=ia32 ;; *) _gyp_arch=x64 ;; esac
# 1) Устанавливаем все зависимости, пропуская скрипты NODE_ENV=development npm ci --ignore-scripts
# 2) Создаём автономный пакет Next.js npm run build
# 3) Копируем статические ресурсы в автономный пакет cp -r .next/static .next/standalone/.next/static [ -d public ] && cp -r public .next/standalone/public || true
# 4) Компилируем нативную привязку better-sqlite3 local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")
# 5) Помещаем скомпилированную привязку в автономный пакет local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release mkdir -p "$_bs3_release" cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"
# 6) Удаляем зависящие от архитектуры пакеты sharp rm -rf .next/standalone/node_modules/@img
# 7) Копируем зависимости среды выполнения pino, пропущенные статическим анализом Next.js: for _mod in pino-abstract-transport split2 process-warning; do cp -r "node_modules/$_mod" .next/standalone/node_modules/ done}
do_check() { npm run test:unit}
do_install() { vmkdir usr/lib/omniroute/.next vcopy .next/standalone/. usr/lib/omniroute/.next/standalone
# Предотвращаем удаление пустых каталогов маршрутизатора приложений Next.js обработчиком после установки for _d in \ .next/standalone/.next/server/app/dashboard \ .next/standalone/.next/server/app/dashboard/settings \ .next/standalone/.next/server/app/dashboard/providers; do touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" done
cat > "${WRKDIR}/omniroute" <<'EOF'#!/bin/shexport PORT="${PORT:-20128}"export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}"export APP_LOG_TO_FILE="${APP_LOG_TO_FILE:-false}"mkdir -p "${DATA_DIR}"exec node /usr/lib/omniroute/.next/standalone/server.js "$@"EOF vbin "${WRKDIR}/omniroute"}
post_install() { vlicense LICENSE}Переменные окружения
Заголовок раздела «Переменные окружения»| Переменная | Значение по умолчанию | Описание |
|---|---|---|
JWT_SECRET |
omniroute-default-secret-change-me |
Секрет для подписи JWT (измените в рабочей среде) |
INITIAL_PASSWORD |
CHANGEME |
Пароль для первого входа |
DATA_DIR |
~/.omniroute |
Каталог данных (база данных, сведения об использовании, журналы) |
PORT |
значение по умолчанию фреймворка | Порт сервиса (20128 в примерах) |
HOSTNAME |
значение по умолчанию фреймворка | Хост для привязки (по умолчанию Docker использует 0.0.0.0) |
NODE_ENV |
значение по умолчанию среды | Установите значение production для развертывания |
NEXT_PUBLIC_BASE_URL |
http://localhost:20128 |
Общедоступный базовый URL, предоставляемый панели управления и серверу (заменяет устаревшую переменную BASE_URL) |
NEXT_PUBLIC_CLOUD_URL |
https://omniroute.dev |
Базовый URL конечной точки облачной синхронизации (заменяет устаревшую переменную CLOUD_URL) |
API_KEY_SECRET |
endpoint-proxy-api-key-secret |
Секрет HMAC для создаваемых ключей API |
REQUIRE_API_KEY |
false |
Требовать ключ API Bearer для /v1/* |
ALLOW_API_KEY_REVEAL |
false |
Разрешить аутентифицированным пользователям панели управления просматривать полные значения сохранённых ключей API по запросу |
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES |
70 |
Интервал серверного обновления кэшированных данных о лимитах провайдера; кнопки обновления в интерфейсе по-прежнему запускают синхронизацию вручную |
DISABLE_SQLITE_AUTO_BACKUP |
false |
Отключить автоматическое создание снимков SQLite перед записью, импортом или восстановлением; резервное копирование вручную останется доступным |
APP_LOG_TO_FILE |
true |
Включает запись журналов приложения и аудита на диск |
AUTH_COOKIE_SECURE |
false |
Принудительно использовать атрибут Secure для файла cookie аутентификации (за обратным прокси-сервером HTTPS) |
CLOUDFLARED_BIN |
не задано | Использовать существующий бинарный файл cloudflared вместо управляемой загрузки |
CLOUDFLARED_PROTOCOL |
http2 |
Транспорт для управляемых быстрых туннелей (http2, quic или auto) |
OMNIROUTE_MEMORY_MB |
512 |
Ограничение размера кучи Node.js в МБ |
PROMPT_CACHE_MAX_SIZE |
50 |
Максимальное количество записей в кэше промптов |
SEMANTIC_CACHE_MAX_SIZE |
100 |
Максимальное количество записей в семантическом кэше |
Полный список переменных среды см. в файле README.
📊 Доступные модели
Заголовок раздела «📊 Доступные модели»Просмотреть все доступные модели
Приведённый ниже список сформирован на основе
open-sse/config/providerRegistry.tsдля v3.8.0. Облачные каталоги (Gemini, OpenRouter и т. д.) синхронизируются динамически — чтобы просмотреть полный актуальный каталог, откройте Панель управления → Провайдеры → [провайдер] → Доступные модели или вызовитеGET /api/models/catalog.Если встроенный список провайдера устарел, используйте Импортировать из /models на этой странице (или включите Автосинхронизацию), чтобы загрузить актуальный каталог из исходного сервиса. Это было проверено в v3.8.50 для LLM7.io (
gemini-3.1-flash-lite) и UncloseAI (solidrust/Hermes-3-Llama-3.1-8B-AWQ); во время того же цикла тестирования анонимный доступ к Pollinations по-прежнему был ограничен на стороне исходного сервиса.
Claude Code (cc/) — OAuth для Pro/Max: cc/claude-opus-4-8, cc/claude-opus-4-7, cc/claude-opus-4-6, cc/claude-opus-4-5-20251101, cc/claude-sonnet-4-6, cc/claude-sonnet-4-5-20250929, cc/claude-haiku-4-5-20251001
Codex (cx/) — OAuth для Plus/Pro: cx/gpt-5.5 (+ уровни интенсивности рассуждений: gpt-5.5-xhigh, gpt-5.5-high, gpt-5.5-medium, gpt-5.5-low), cx/gpt-5.4, cx/gpt-5.4-mini, cx/gpt-5.3-codex, cx/gpt-5.3-codex-spark
GitHub Copilot (gh/) — OAuth: gh/gpt-5.5, gh/gpt-5.4, gh/gpt-5.4-mini, gh/gpt-5-mini, gh/gpt-5.3-codex, gh/claude-opus-4.7, gh/claude-opus-4.6, gh/claude-opus-4-5-20251101, gh/claude-sonnet-4.6, gh/claude-sonnet-4.5, gh/claude-haiku-4.5, gh/gemini-3.1-pro-preview, gh/gemini-3-flash-preview, gh/oswe-vscode-prime
Kiro (kr/) — БЕСПЛАТНЫЙ OAuth: используйте актуальный каталог, показанный в разделе Панель управления → Провайдеры → Kiro → Доступные модели. Доступность зависит от учётной записи и тарифного плана.
Qoder (if/) — БЕСПЛАТНЫЙ OAuth: if/qwen3.8-max-preview, if/qwen3.7-max, if/qwen3.7-plus, if/kimi-k3, if/kimi-k2.7-code, if/glm-5.2, if/deepseek-v4-pro, if/deepseek-v4-flash, if/minimax-m3
GLM (glm/, glm-cn/, zai/, glmt/) — $0.2–0.6/1M: glm/glm-5.1, glm/glm-5, glm/glm-5-turbo, glm/glm-4.7, glm/glm-4.7-flash, glm/glm-4.6, glm/glm-4.6v, glm/glm-4.5, glm/glm-4.5v, glm/glm-4.5-air
MiniMax (minimax/, minimax-cn/) — $0.2/1M: minimax/MiniMax-M2.7, minimax/MiniMax-M2.7-highspeed, minimax/MiniMax-M2.5, minimax/MiniMax-M2.5-highspeed
Kimi (kimi/, kimi-coding/, kimi-coding-apikey/) — фиксированная плата $9/мес. или оплата по мере использования: kimi/kimi-k2.6, kimi/kimi-k2.5
DeepSeek (ds/) — ключ API: ds/deepseek-v4-pro, ds/deepseek-v4-flash
Groq (groq/) — сверхвысокая скорость: groq/llama-3.3-70b-versatile, groq/meta-llama/llama-4-maverick-17b-128e-instruct, groq/qwen/qwen3-32b, groq/openai/gpt-oss-120b
xAI (xai/) — нативные модели Grok: xai/grok-4.3, xai/grok-4.20-multi-agent-0309, xai/grok-4.20-0309-reasoning, xai/grok-4.20-0309-non-reasoning
Mistral (mistral/) — размещение в ЕС: mistral/mistral-large-latest, mistral/mistral-medium-3-5, mistral/mistral-small-latest, mistral/devstral-latest, mistral/codestral-latest
Perplexity (pplx/) — с расширением за счёт поиска: pplx/sonar-deep-research, pplx/sonar-reasoning-pro, pplx/sonar-pro, pplx/sonar
Together AI (together/) — открытый исходный код: together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free (бесплатно), together/meta-llama/Llama-Vision-Free, together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free, together/deepseek-ai/DeepSeek-R1, together/Qwen/Qwen3-235B-A22B, together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8
Fireworks AI (fireworks/) — быстрый инференс: fireworks/accounts/fireworks/models/kimi-k2p6, fireworks/accounts/fireworks/models/minimax-m2p7, fireworks/accounts/fireworks/models/qwen3p6-plus, fireworks/accounts/fireworks/models/glm-5p1, fireworks/accounts/fireworks/models/deepseek-v4-pro
Cerebras (cerebras/) — масштабирование на уровне пластины: cerebras/zai-glm-4.7, cerebras/gpt-oss-120b
Cohere (cohere/) — ориентация на RAG: cohere/command-a-reasoning-08-2025, cohere/command-a-vision-07-2025, cohere/command-a-03-2025, cohere/command-r-08-2024
NVIDIA NIM (nvidia/) — корпоративное использование: nvidia/z-ai/glm-5.1, nvidia/minimaxai/minimax-m2.7, nvidia/google/gemma-4-31b-it, nvidia/mistralai/mistral-small-4-119b-2603, nvidia/mistralai/mistral-large-3-675b-instruct-2512, nvidia/qwen/qwen3.5-397b-a17b, nvidia/deepseek-ai/deepseek-v4-pro, nvidia/openai/gpt-oss-120b, nvidia/nvidia/nemotron-3-super-120b-a12b
Baidu Qianfan (qianfan/) — ERNIE: qianfan/ernie-5.1, qianfan/ernie-5.0-thinking-latest, qianfan/ernie-x1.1
Ollama Cloud (ollama-cloud/): ollama-cloud/deepseek-v4-pro, ollama-cloud/deepseek-v4-flash, ollama-cloud/kimi-k2.6, ollama-cloud/glm-5.1, ollama-cloud/minimax-m2.7, ollama-cloud/gemma4:31b, ollama-cloud/qwen3.5:397b
Gemini (Google Cloud gemini/): синхронизируется в реальном времени с Google отдельно для каждого ключа API — статического списка нет. Подключите ключ в разделе Панель управления → Провайдеры, затем используйте Доступные модели, чтобы импортировать текущий каталог (например, gemini/gemini-3-pro, gemini/gemini-3-flash).
Другие совместимые провайдеры (избранные): cohere, databricks, snowflake, together, vertex, alibaba, alibaba-cn, bedrock (через aws-bedrock), azure-ai, openrouter (сквозной каталог), siliconflow, hyperbolic, huggingface, featherless-ai, cloudflare-ai, scaleway, deepinfra, vercel-ai-gateway, bazaarlink, friendliai, nous-research, reka, volcengine, ai21, gigachat. Каждый из них поддерживает собственный список моделей в providerRegistry.ts и может автоматически синхронизироваться, если провайдер предоставляет конечную точку /models.
Примечание об идентификаторах моделей: OmniRoute использует нативные идентификаторы провайдеров (claude-opus-4-8, gpt-5.5, glm-5.1, MiniMax-M2.7, kimi-k2.5, grok-4.20-0309-reasoning). Некоторые идентификаторы содержат версии с точками, поскольку именно такой формат ожидает исходный API. Если модель не указана выше, выполните omniroute models --search <term> или обратитесь к GET /api/models/catalog, чтобы проверить доступность.
🧩 Расширенные возможности
Заголовок раздела «🧩 Расширенные возможности»Пользовательские модели
Заголовок раздела «Пользовательские модели»Добавляйте любой идентификатор модели к любому провайдеру, не дожидаясь обновления приложения:
# Через APIcurl -X POST http://localhost:20128/api/provider-models \ -H "Content-Type: application/json" \ -d '{"provider": "openai", "modelId": "gpt-5.2", "modelName": "GPT-5.2"}'
# Список: curl http://localhost:20128/api/provider-models?provider=openai# Удаление: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2"Или используйте панель управления: Провайдеры → [Провайдер] → Пользовательские модели.
Примечания:
- Провайдеры OpenRouter и совместимые с OpenAI/Anthropic управляются только через раздел Доступные модели. Добавление вручную, импорт и автоматическая синхронизация используют один и тот же список доступных моделей, поэтому для этих провайдеров нет отдельного раздела «Пользовательские модели».
- Раздел Пользовательские модели предназначен для провайдеров, которые не предоставляют управляемый импорт доступных моделей.
Объединение узлов OmniRoute в цепочку
Заголовок раздела «Объединение узлов OmniRoute в цепочку»Другой шлюз OmniRoute можно добавить в качестве пользовательского провайдера, совместимого с OpenAI. Используйте базовый URL /v1 другого узла и выделенный API-ключ с минимальными привилегиями, выпущенный этим узлом.
Для двусторонних или многоступенчатых цепочек включите на каждом шлюзе опциональную защиту от циклов:
# gateway-aOMNIROUTE_INSTANCE_ID=gateway-aOMNIROUTE_PEER_URLS=http://gateway-b:20128/v1OMNIROUTE_PEER_MAX_HOPS=4# gateway-bOMNIROUTE_INSTANCE_ID=gateway-bOMNIROUTE_PEER_URLS=http://gateway-a:20128/v1OMNIROUTE_PEER_MAX_HOPS=4Заголовок X-OmniRoute-Peer-Trace добавляется только к запросам, отправляемым на URL узла, явно внесённый в список разрешённых. Шлюз отклоняет запрос с повторяющимся идентификатором экземпляра или исчерпанным лимитом переходов, возвращая HTTP 508 Loop Detected; обычные вышестоящие провайдеры не получают метаданные узлов.
Объединение узлов в цепочку не является репликацией базы данных или аварийным переключением между хостами. Каждый шлюз хранит независимые состояния SQLite, кэши, счётчики частоты запросов и сеансы. Для обеспечения доступности в режиме «активный/резервный» или «активный/активный» используйте обратный прокси с проверкой работоспособности либо аварийное переключение на стороне клиента. Никогда не подключайте одну базу данных SQLite к нескольким запущенным экземплярам OmniRoute.
Выделенные маршруты провайдеров
Заголовок раздела «Выделенные маршруты провайдеров»Направляйте запросы непосредственно определённому провайдеру с проверкой модели:
POST http://localhost:20128/v1/providers/openai/chat/completionsPOST http://localhost:20128/v1/providers/openai/embeddingsPOST http://localhost:20128/v1/providers/fireworks/images/generationsЕсли префикс провайдера отсутствует, он добавляется автоматически. При несовпадении модели возвращается 400.
Настройка сетевого прокси
Заголовок раздела «Настройка сетевого прокси»# Настройка глобального проксиcurl -X PUT http://localhost:20128/api/settings/proxy \ -d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'
# Прокси для отдельного провайдераcurl -X PUT http://localhost:20128/api/settings/proxy \ -d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'
# Проверка проксиcurl -X POST http://localhost:20128/api/settings/proxy/test \ -d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}'Приоритет: Для ключа → Для комбинации → Для провайдера → Глобальный → Окружение.
API каталога моделей
Заголовок раздела «API каталога моделей»curl http://localhost:20128/api/models/catalogВозвращает модели, сгруппированные по провайдерам и типам (chat, embedding, image).
Облачная синхронизация
Заголовок раздела «Облачная синхронизация»- Синхронизация провайдеров, комбинаций и настроек между устройствами
- Автоматическая фоновая синхронизация с тайм-аутом и быстрым завершением при сбое
- В рабочей среде предпочтительно использовать серверные
NEXT_PUBLIC_BASE_URL/NEXT_PUBLIC_CLOUD_URL
Быстрый туннель Cloudflare
Заголовок раздела «Быстрый туннель Cloudflare»- Доступен в разделе Панель управления → Конечные точки для Docker и других самостоятельно развёрнутых сред
- Создаёт временный URL
https://*.trycloudflare.com, который перенаправляет запросы на текущую конечную точку/v1, совместимую с OpenAI - При первом включении
cloudflaredустанавливается только при необходимости; при последующих запусках повторно используется тот же управляемый бинарный файл - Быстрые туннели не восстанавливаются автоматически после перезапуска OmniRoute или контейнера; при необходимости повторно включите их в панели управления
- URL туннелей являются временными и меняются при каждой остановке и запуске туннеля
- Управляемые быстрые туннели по умолчанию используют транспорт HTTP/2, чтобы избежать многочисленных предупреждений QUIC о буфере UDP в контейнерах с ограниченными ресурсами
- Установите
CLOUDFLARED_PROTOCOL=quicилиauto, если хотите переопределить выбранный управляемый транспорт - Установите
CLOUDFLARED_BIN, если предпочитаете использовать предварительно установленный бинарный файлcloudflaredвместо управляемой загрузки - Панели Cloudflare Quick Tunnel, Tailscale Funnel и ngrok Tunnel можно показывать или скрывать в разделе Настройки → Внешний вид. Скрытие панели не останавливает работающий туннель.
Интеллектуальные функции шлюза LLM (этап 9)
Заголовок раздела «Интеллектуальные функции шлюза LLM (этап 9)»- Семантический кэш — автоматически кэширует непотоковые ответы при
temperature=0(обход с помощьюX-OmniRoute-No-Cache: true) - Идемпотентность запросов — устраняет дублирование запросов в пределах 5 с с помощью заголовка
Idempotency-KeyилиX-Request-Id - Отслеживание прогресса — опциональные события SSE
event: progress, включаемые заголовкомX-OmniRoute-Progress: true
Песочница переводчика
Заголовок раздела «Песочница переводчика»Доступна через Панель управления → Переводчик. Выполняйте отладку и визуализируйте, как OmniRoute преобразует API-запросы между провайдерами.
| Режим | Назначение |
|---|---|
| Песочница | Выберите исходный и целевой форматы, вставьте запрос и мгновенно просмотрите преобразованный результат |
| Тестер чата | Отправляйте сообщения чата через прокси в реальном времени и изучайте полный цикл запроса и ответа |
| Испытательный стенд | Запускайте пакетные тесты для нескольких сочетаний форматов, чтобы проверить корректность преобразования |
| Мониторинг в реальном времени | Наблюдайте за преобразованиями в реальном времени по мере прохождения запросов через прокси |
Варианты использования:
- Определение причин сбоя конкретного сочетания клиента и провайдера
- Проверка правильности преобразования тегов рассуждений, вызовов инструментов и системных промптов
- Сравнение различий форматов OpenAI, Claude, Gemini и Responses API
Стратегии маршрутизации
Заголовок раздела «Стратегии маршрутизации»Настройте в разделе Панель управления → Настройки → Маршрутизация. На панели управления доступны шесть наиболее часто используемых стратегий; комбинации и автоматический маршрутизатор поддерживают внутри более широкий набор.
Стратегии, доступные на панели управления (маршрутизация на уровне учётной записи):
| Стратегия | Описание |
|---|---|
| Последовательное заполнение | Использует учётные записи в порядке приоритета — основная учётная запись обрабатывает все запросы, пока доступна |
| Циклическая балансировка | Поочерёдно перебирает все учётные записи с настраиваемым лимитом закрепления (по умолчанию: 3 вызова на учётную запись) |
| P2C (выбор из двух) | Выбирает 2 случайные учётные записи и направляет запрос более исправной — балансирует нагрузку с учётом состояния |
| Случайный выбор | Случайным образом выбирает учётную запись для каждого запроса с помощью перемешивания Фишера — Йетса |
| Наименее используемая | Направляет запрос учётной записи с самой старой временной меткой lastUsedAt, равномерно распределяя трафик |
| Оптимизация стоимости | Направляет запрос учётной записи с наименьшим значением приоритета, выбирая провайдеров с минимальной стоимостью |
Расширенные стратегии комбинаций и автоматической маршрутизации (настраиваются для каждой комбинации или с помощью префиксов auto/* — см. AUTO-COMBO.md):
priority— строгий порядок без циклического перебораweighted— пропорциональное распределение трафика на основе весов для каждой моделиfill-first— использует первую модель до достижения лимитовround-robin/strict-random/randomp2c(выбор из двух)least-usedиcost-optimizedauto— выбор на основе оценки среди всех кандидатовlkgp(последний заведомо исправный провайдер) — закрепляет последний успешно использованный провайдер, а затем применяет резервные правилаcontext-optimized— выбирает модель с наибольшим свободным контекстным окномcontext-relay— объединяет модели с большим контекстом в цепочку для последующих запросов
Внешний заголовок закреплённого сеанса
Заголовок раздела «Внешний заголовок закреплённого сеанса»Для внешней привязки к сеансу (например, для агентов Claude Code/Codex за обратными прокси-серверами) отправьте:
X-Session-Id: your-session-keyOmniRoute также принимает x_session_id и возвращает фактически используемый ключ сеанса в X-OmniRoute-Session-Id.
Если вы используете Nginx и отправляете заголовки с символами подчёркивания, включите:
underscores_in_headers on;Подстановочные псевдонимы моделей
Заголовок раздела «Подстановочные псевдонимы моделей»Создайте шаблоны с подстановочными знаками для переназначения имён моделей:
Шаблон: claude-sonnet-* → Цель: cc/claude-sonnet-4-6Шаблон: gpt-* → Цель: gh/gpt-5.3-codexПодстановочные шаблоны поддерживают * (любые символы) и ? (один символ).
Цепочки резервного переключения
Заголовок раздела «Цепочки резервного переключения»Определите глобальные цепочки резервного переключения, применяемые ко всем запросам:
Цепочка: production-fallback 1. cc/claude-opus-4-7 2. gh/gpt-5.3-codex 3. glm/glm-4.7Отказоустойчивость и автоматические выключатели
Заголовок раздела «Отказоустойчивость и автоматические выключатели»Настройте в разделе Панель управления → Настройки → Отказоустойчивость.
OmniRoute обеспечивает отказоустойчивость на уровне провайдера с помощью пяти компонентов:
-
Очередь и регулирование темпа запросов — управление потоком запросов на системном уровне:
- Запросов в минуту (RPM) — максимальное количество запросов в минуту для каждой учётной записи
- Минимальное время между запросами — минимальный интервал между запросами в миллисекундах
- Максимум одновременных запросов — максимальное количество одновременных запросов для каждой учётной записи
-
Пауза подключения — конфигурация для каждого типа аутентификации, применяемая к отдельному подключению после ошибок, допускающих повторную попытку:
- Базовая пауза — стандартный период ожидания после ошибок вышестоящего сервиса, допускающих повторную попытку
- Использовать указания вышестоящего сервиса по повторным попыткам — учитывает официальные значения
Retry-Afterили указания о времени сброса, если они предоставлены - Максимум шагов отсрочки — максимальный уровень экспоненциальной задержки при повторяющихся ошибках
-
Автоматический выключатель провайдера — отслеживает сквозные сбои провайдера, помечает провайдера как работающего с ухудшением при достижении настроенного порога предупреждения и размыкает цепь при достижении настроенного порога ошибок:
- Порог ухудшения — количество последовательных сбоев провайдера до перехода в состояние
DEGRADED - Порог ошибок — количество последовательных сбоев провайдера до перехода в состояние
OPEN - Время до сброса — период времени до следующей проверки провайдера
- CLOSED (исправен) — запросы обрабатываются в обычном режиме
- DEGRADED — запросы продолжают обрабатываться, а повышенное число ошибок отслеживается
- OPEN — провайдер временно заблокирован после повторяющихся сбоев
- HALF_OPEN — проверяется, восстановился ли провайдер
Ограничения частоты
429, относящиеся к конкретному подключению, обрабатываются механизмом Пауза подключения и не учитываются автоматическим выключателем провайдера.Состояние автоматического выключателя провайдера во время выполнения отображается только в разделе Панель управления → Состояние.
- Порог ухудшения — количество последовательных сбоев провайдера до перехода в состояние
-
Ожидание окончания паузы — если все подходящие подключения уже находятся в состоянии ожидания, OmniRoute может дождаться окончания ближайшей паузы и автоматически повторить тот же клиентский запрос.
-
Автоматическое определение ограничений частоты — когда вышестоящие провайдеры возвращают явные интервалы ожидания, эти указания переопределяют локальную паузу подключения, если соответствующая настройка включена.
Совет: Используйте страницу Состояние, чтобы проверять и сбрасывать активные автоматические выключатели провайдеров после сбоя. Страница «Отказоустойчивость» изменяет только конфигурацию.
Экспорт и импорт базы данных
Заголовок раздела «Экспорт и импорт базы данных»Управляйте резервными копиями базы данных в разделе Панель управления → Настройки → Система и хранилище.
| Действие | Описание |
|---|---|
| Экспорт базы данных | Скачивает текущую базу данных SQLite в виде файла .sqlite |
| Экспорт всего (.tar.gz) | Скачивает полный архив резервной копии, включающий базу данных, настройки, комбинации, подключения к провайдерам (без учётных данных) и метаданные ключей API |
| Импорт базы данных | Загружает файл .sqlite, заменяя текущую базу данных. Перед импортом автоматически создаётся резервная копия, если не задано DISABLE_SQLITE_AUTO_BACKUP=true |
# API: экспорт базы данныхcurl -o backup.sqlite http://localhost:20128/api/db-backups/export
# API: экспорт всего (полный архив)curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll
# API: импорт базы данныхcurl -X POST http://localhost:20128/api/db-backups/import \ -F "file=@backup.sqlite"Проверка при импорте: Импортируемый файл проверяется на целостность (проверка с помощью SQLite pragma), наличие обязательных таблиц (provider_connections, provider_nodes, combos, api_keys) и размер (не более 100 МБ).
Варианты использования:
- Перенос OmniRoute между компьютерами
- Создание внешних резервных копий для аварийного восстановления
- Обмен конфигурациями между участниками команды (экспортировать всё → передать архив)
Панель настроек
Заголовок раздела «Панель настроек»Для удобной навигации страница настроек разделена на 7 вкладок:
| Вкладка | Содержимое |
|---|---|
| Общие | Инструменты системного хранилища, поведение по умолчанию, видимость туннелей конечных точек |
| Оформление | Управление темой (светлая/тёмная/системная), видимость боковой панели, переключатели панелей карточек туннелей Cloudflare/Tailscale/ngrok |
| ИИ | Бюджет рассуждений (сквозная передача / автоматическое удаление / пользовательский / адаптивный — см. THINKING_BUDGET.md), глобальный системный промпт, статистика кэша промптов |
| Безопасность | Настройки входа/пароля, управление доступом по IP-адресам, API-аутентификация для /models, блокировка провайдеров, защита от внедрения промптов |
| Маршрутизация | Глобальная стратегия маршрутизации (последовательное заполнение / циклическая / P2C / случайная / наименее используемый / оптимизированная по стоимости), псевдонимы моделей с подстановочными знаками, цепочки резервирования, значения комбинаций по умолчанию |
| Отказоустойчивость | Очередь запросов, период ожидания подключения, конфигурация автоматического выключателя провайдера и поведение ожидания завершения периода недоступности |
| Дополнительно | Глобальная конфигурация прокси (HTTP/SOCKS5), переопределения прокси для отдельных провайдеров |
В разделе «Общие» больше не дублируются доступные только для чтения сведения о журналировании и кэше. Настройки срока хранения и
оптимизации базы данных сохраняются через /api/settings/database; для ручной очистки кэша используется
DELETE /api/cache. Ограничения количества строк в журналах запросов и прокси управляются переменными
CALL_LOGS_TABLE_MAX_ROWS и PROXY_LOGS_TABLE_MAX_ROWS.
Управление затратами и бюджетом
Заголовок раздела «Управление затратами и бюджетом»Доступно через Панель управления → Затраты.
| Вкладка | Назначение |
|---|---|
| Бюджет | Установка лимитов расходов для каждого ключа API с дневными/недельными/месячными бюджетами и отслеживанием в реальном времени |
| Тарифы | Просмотр и редактирование тарифов моделей — стоимость за 1 тыс. входных/выходных токенов для каждого провайдера |
# API: установить бюджетcurl -X POST http://localhost:20128/api/usage/budget \ -H "Content-Type: application/json" \ -d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}'
# API: получить текущее состояние бюджетаcurl http://localhost:20128/api/usage/budgetУчёт затрат: Для каждого запроса регистрируется использование токенов и рассчитывается стоимость на основе таблицы тарифов. Разбивку по провайдерам, моделям и ключам API можно просмотреть в разделе Панель управления → Использование.
Транскрибация аудио
Заголовок раздела «Транскрибация аудио»OmniRoute поддерживает транскрибацию аудио через OpenAI-совместимую конечную точку:
POST /v1/audio/transcriptionsAuthorization: Bearer your-api-keyContent-Type: multipart/form-data
# Пример с curlcurl -X POST http://localhost:20128/v1/audio/transcriptions \ -H "Authorization: Bearer your-api-key" \ -F "file=@audio.mp3" \ -F "model=openai/whisper-1"deepgram/nova-3 — это собственный маршрут Deepgram, для которого требуется ключ API Deepgram.
Если настроен только OpenRouter, используйте openrouter/deepgram/nova-3.
Провайдеры преобразования речи в текст (транскрибации):
openai/(совместимые с whisper)groq/(Groq Whisper Turbo)deepgram/(семейство Nova)assemblyai/nvidia/(Parakeet, Canary)huggingface/(варианты whisper)qwen/
Провайдеры преобразования текста в речь (POST /v1/audio/speech):
openai/(tts-1, tts-1-hd)hyperbolic/deepgram/(Aura)nvidia/(Magpie TTS)elevenlabs/huggingface/inworld/cartesia/playht/kie/aws-polly/xiaomi-mimo/coqui/,tortoise/qwen/
Поддерживаемые аудиоформаты для транскрибации: mp3, wav, m4a, flac, ogg, webm. Выходные форматы TTS зависят от провайдера (mp3, wav, opus, pcm, mulaw).
Стратегии балансировки комбинаций
Заголовок раздела «Стратегии балансировки комбинаций»Настройте балансировку для каждой комбинации в разделе Панель управления → Комбинации → Создать/Изменить → Стратегия.
| Стратегия | Описание |
|---|---|
| Циклическая | Последовательно перебирает модели |
| Приоритетная | Всегда сначала пробует первую модель; переключается на резервную только при ошибке |
| Случайная | Для каждого запроса выбирает случайную модель из комбинации |
| Взвешенная | Распределяет запросы пропорционально весам, назначенным каждой модели |
| Наименее используемая | Направляет запрос модели с наименьшим числом недавних запросов (использует метрики комбинации) |
| Оптимизированная по стоимости | Направляет запрос самой дешёвой доступной модели (использует таблицу цен) |
Глобальные параметры комбинаций по умолчанию можно задать в разделе Панель управления → Настройки → Маршрутизация → Параметры комбинаций по умолчанию. По умолчанию тайм-ауты целевых моделей комбинации наследуют текущий тайм-аут запроса. Используйте параметр Тайм-аут целевой модели (секунды) в глобальных настройках комбинаций или настройках отдельной комбинации только тогда, когда более короткий лимит для каждой целевой модели должен ускорить переключение на резервную модель.
Оптимизации комбинаций с нулевой задержкой включаются явно. Оставьте параметр Оптимизации с нулевой задержкой отключённым, чтобы эти функции снижения задержки не запускали резервные целевые модели параллельно, не пропускали целевые модели на основе истории TTFT и не сжимали резервные запросы; включение этого параметра позволяет настроенному хеджированию, прогнозируемым пропускам на основе TTFT и упреждающему сжатию резервных запросов снижать хвостовую задержку за счёт точности маршрутизации и запросов.
Отключите Буфер токенов рассуждений, если вышестоящие провайдеры требуют строгого соблюдения ограничений
max_tokens / maxOutputTokens. Когда этот параметр включён, маршрутизация комбинаций добавляет резерв для моделей рассуждений
только для моделей с известным ограничением вывода и оставляет клиентский лимит токенов без изменений, если безопасное значение с буфером
превысило бы это ограничение. Если клиентский лимит уже превышает известное ограничение,
OmniRoute уменьшает его до этого ограничения перед отправкой запроса вышестоящему провайдеру.
Панель состояния
Заголовок раздела «Панель состояния»Доступна через Панель управления → Состояние. Обзор состояния системы в реальном времени с шестью карточками:
| Карточка | Что отображает |
|---|---|
| Состояние системы | Время работы, версию, использование памяти, каталог данных |
| Состояние провайдеров | Глобальное состояние автоматических выключателей провайдеров |
| Ограничения частоты | Активные периоды ожидания подключений для каждой учётной записи и оставшееся время |
| Активные блокировки | Активные блокировки для отдельных моделей и временные исключения |
| Кэш сигнатур | Статистику кэша дедупликации (активные ключи, долю попаданий) |
| Телеметрия задержки | Агрегированные задержки p50/p95/p99 для каждого провайдера |
Совет: Страница состояния автоматически обновляется каждые 10 секунд. Используйте карточку автоматического выключателя, чтобы определить, у каких провайдеров возникли проблемы.
🤖 Автоматическая маршрутизация (без настройки)
Заголовок раздела «🤖 Автоматическая маршрутизация (без настройки)»OmniRoute поставляется с автоматическим маршрутизатором на основе оценок, который выбирает лучшую модель для каждого запроса среди всех подключённых провайдеров — не нужно вручную поддерживать комбинации. Просто отправьте запрос с одним из префиксов auto/*, и OmniRoute динамически соберёт виртуальную комбинацию, оценивая кандидатов по задержке, стоимости, доле успешных запросов, соответствию контексту, пригодности модели для задачи, недавним сбоям, квоте и состоянию автоматического выключателя.
| Префикс | Критерий оптимизации |
|---|---|
auto |
Сбалансированный режим по умолчанию (задержка × стоимость × доля успешных запросов) |
auto/coding |
Задачи программирования: предпочтение Claude, GPT-5, GLM, Kimi, Qwen Coder и моделям DeepSeek для написания кода |
auto/cheap |
Минимальная стоимость за токен, допускается более высокая задержка |
auto/fast |
Минимальная задержка без учёта стоимости |
auto/offline |
Только локальные провайдеры (Ollama, vLLM, llama.cpp) — полезно для изолированных сред |
auto/smart |
Приоритет качества рассуждений (Opus, GPT-5 xhigh, R1, GLM 5.1 reasoning) |
auto/lkgp |
«Последний заведомо исправный провайдер» — закрепляет последний успешный провайдер, а затем использует правила резервного переключения |
Пример:
curl -X POST http://localhost:20128/v1/chat/completions \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "auto/coding", "messages": [{ "role": "user", "content": "Refactor this Python function" }], "stream": true }'Полное описание автоматического маршрутизатора приведено в AUTO-COMBO.md, включая настройку весов оценивания, добавление провайдеров в чёрный список и просмотр решений маршрутизации в разделе Панель управления → Автоматическая комбинация.
🔌 Интеграция с MCP и A2A
Заголовок раздела «🔌 Интеграция с MCP и A2A»OmniRoute одновременно является сервером MCP (Model Context Protocol) и сервером A2A (Agent-to-Agent JSON-RPC 2.0). Любая IDE или среда размещения агентов, совместимая с MCP, может напрямую вызывать инструменты OmniRoute — дополнительная обёртка не требуется.
Транспорты MCP
Заголовок раздела «Транспорты MCP»- SSE:
http://localhost:20128/api/mcp/sse - Потоковый HTTP:
http://localhost:20128/api/mcp/stream - stdio:
omniroute --mcp(для плагинов IDE, предпочитающих stdio)
Подключение Claude Desktop
Заголовок раздела «Подключение Claude Desktop»Отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или аналогичный файл в Windows/Linux:
{ "mcpServers": { "omniroute": { "command": "omniroute", "args": ["--mcp"] } }}Подключение Cursor / Continue / VS Code MCP
Заголовок раздела «Подключение Cursor / Continue / VS Code MCP»Используйте URL-адрес SSE http://localhost:20128/api/mcp/sse и API-ключ Bearer, созданный в разделе Панель управления → API-ключи.
Области доступа
Заголовок раздела «Области доступа»В настоящее время MCP определяет 32 именованные области доступа. Каждый ключ Bearer можно ограничить определёнными областями доступа — полный перечень областей и инструментов приведён в MCP-SERVER.md, а схема JSON-RPC — в A2A-SERVER.md.
🧠 Система навыков
Заголовок раздела «🧠 Система навыков»OmniRoute предоставляет расширяемый фреймворк навыков (src/lib/skills/), позволяющий агентам и конечной точке A2A запускать специализированные процедуры (например, code-review, summarize, extract-facts, web-research).
- Интерфейс каталога — Просматривайте и устанавливайте навыки через Панель управления → Навыки
- Области действия для отдельных ключей — Ограничивайте навыки, которые могут вызывать конкретные API-ключи
- Пользовательские навыки — Поместите TypeScript-файл в
src/lib/a2a/skills/, зарегистрируйте его, и он сразу станет доступен для вызова через A2A
Полная документация: SKILLS.md.
💾 Система памяти
Заголовок раздела «💾 Система памяти»OmniRoute обеспечивает постоянное хранение долговременной памяти диалогов с гибридным поиском:
- SQLite FTS5 для поиска по ключевым словам в предыдущих репликах
- Векторное хранилище Qdrant (необязательно) для семантического поиска
- Автоматическое извлечение фактов — сущности, предпочтения и решения обобщаются после каждого сеанса и сохраняются в таблице
memory_facts - Область видимости воспоминаний ограничивается API-ключом и сеансом
Управляйте воспоминаниями в разделе Панель управления → Память (поиск, редактирование, экспорт, удаление). HTTP-интерфейс (/api/memory/*) позволяет агентам программно добавлять и запрашивать факты — см. MEMORY.md.
🔔 Вебхуки
Заголовок раздела «🔔 Вебхуки»Подписывайтесь на события OmniRoute для мониторинга и автоматизации в реальном времени.
- Создайте вебхук в разделе Панель управления → Вебхуки, указав целевой URL и секретный ключ для HMAC-подписи
- Доступные события:
request.completed,request.failed,provider.unavailable,budget.exceeded,combo.switched,circuit_breaker.opened,circuit_breaker.closed - Каждая полезная нагрузка содержит
X-OmniRoute-Signature(HMAC-SHA256) для проверки - Повторные попытки: 3 попытки с экспоненциальной задержкой, после чего сообщение помещается в очередь необработанных сообщений
Полная схема приведена в WEBHOOKS.md.
☁️ Облачные агенты
Заголовок раздела «☁️ Облачные агенты»OmniRoute интегрируется с облачными агентами для разработки (OpenAI Codex Cloud, Devin, Jules, Antigravity), позволяя запускать длительные задачи из той же панели управления, которая используется для локальной маршрутизации.
- Создавайте задачи в разделе Панель управления → Облачные агенты или через
POST /api/v1/agents/tasks - Отслеживайте состояние, журналы и артефакты каждой задачи
- Используйте собственный API-ключ для каждого провайдера — учётные данные никогда не покидают экземпляр OmniRoute
Полная документация: CLOUD_AGENT.md.
🛠️ Программное управление
Заголовок раздела «🛠️ Программное управление»Вы можете управлять всеми ресурсами OmniRoute (провайдерами, комбинациями, ключами и настройками) через HTTP, используя Bearer-ключ с областью действия manage.
Создайте ключ в разделе Панель управления → API-ключи → Новый ключ → Область действия: manage, затем выполните:
# Получить список провайдеровcurl http://localhost:20128/api/providers \ -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"
# Добавить подключение к провайдеруcurl -X POST http://localhost:20128/api/providers \ -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \ -H "Content-Type: application/json" \ -d '{ "provider": "openai", "apiKey": "sk-...", "name": "main" }'
# Создать комбинациюcurl -X POST http://localhost:20128/api/combos \ -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "premium", "strategy": "priority", "models": [{ "model": "cc/claude-opus-4-7" }, { "model": "glm/glm-5.1" }] }'
# Получить список API-ключей или создать новыйcurl http://localhost:20128/api/keys -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"curl -X POST http://localhost:20128/api/keys -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \ -d '{ "name": "ci-bot", "scopes": ["chat"] }'Полный каталог конечных точек и схемы запросов/ответов см. в API_REFERENCE.md.
💻 Внутренний CLI
Заголовок раздела «💻 Внутренний CLI»OmniRoute поставляется с внутренним CLI (omniroute …) для настройки, диагностики и управления во время выполнения. Он отличается от страницы «Инструменты CLI» в панели управления, где настраиваются сторонние CLI (Claude Code, Cursor, Codex, Cline, …), чтобы они могли взаимодействовать с OmniRoute.
omniroute setup # Интерактивный мастер (пароль, провайдеры, комбинации)omniroute setup --non-interactive # Подходит для CIomniroute doctor # Диагностика состояния (каталог данных, БД, провайдеры, порты)omniroute providers available # Вывести список поддерживаемых провайдеровomniroute providers list # Вывести список настроенных подключенийomniroute providers test <id> # Проверить подключение к провайдеру в реальном времениomniroute combos list # Вывести список комбинацийomniroute combos switch <name> # Установить комбинацию по умолчаниюomniroute models # Вывести список доступных моделей (--json, --search)omniroute keys add | list | remove # Управлять ключами API из терминалаomniroute backup # Создать снимок конфигурации и БДomniroute restore [<timestamp>] # Восстановить данные из снимкаomniroute health # Подробное состояние (предохранители, кеш, память)omniroute quota # Использование квот провайдеровomniroute mcp status # Состояние сервера MCPomniroute a2a status # Состояние сервера A2Aomniroute tunnel list|create|stop # Туннели Cloudflare/Tailscale/ngrokomniroute reset-password # Сбросить пароль администратораomniroute --mcp # Запустить сервер MCP через stdioomniroute --port 3000 # Запустить сервер на пользовательском портуСовет: используйте omniroute doctor --json вместе со своим инструментом мониторинга, чтобы получать оповещения о неработоспособных подключениях к провайдерам.
🖥️ Настольное приложение (Electron)
Заголовок раздела «🖥️ Настольное приложение (Electron)»OmniRoute доступен в виде нативного настольного приложения для Windows, macOS и Linux.
Установка
Заголовок раздела «Установка»# Из каталога electron:cd electronnpm install
# Режим разработки (подключение к запущенному серверу разработки Next.js):npm run dev
# Рабочий режим (использует автономную сборку):npm startСборка установщиков
Заголовок раздела «Сборка установщиков»cd electronnpm run build # Текущая платформаnpm run build:win # Windows (.exe NSIS)npm run build:mac # macOS (.dmg universal)npm run build:linux # Linux (.AppImage)Результат → electron/dist-electron/
Ключевые возможности
Заголовок раздела «Ключевые возможности»| Возможность | Описание |
|---|---|
| Готовность сервера | Опрос сервера перед отображением окна (без пустого экрана) |
| Системный трей | Сворачивание в трей, изменение порта и выход через меню трея |
| Управление портом | Изменение порта сервера из трея (сервер перезапускается автоматически) |
| Политика безопасности содержимого | Строгая CSP через заголовки сеанса |
| Один экземпляр | Одновременно может работать только один экземпляр приложения |
| Автономный режим | Встроенный сервер Next.js работает без интернета |
Переменные среды
Заголовок раздела «Переменные среды»| Переменная | По умолчанию | Описание |
|---|---|---|
OMNIROUTE_PORT |
20128 |
Порт сервера |
OMNIROUTE_MEMORY_MB |
512 |
Ограничение кучи Node.js (64–16384 МБ) |
📖 Полная документация: electron/README.md
HagiCode
HagiCode — агентная среда разработки со структурированными процессами, параллельным выполнением несколькими агентами и интерфейсами Hero Dungeon.
Превращайте идеи в полезное ПО с более умным, быстрым и увлекательным агентным рабочим процессом.

- SmartСтруктурированные процессы превращают намерение в исполнимый путь от идеи до готового изменения.
- EfficientМультиагентные процессы параллельно продвигают исследование, реализацию и проверку.
- FunHero Dungeon делает длительную совместную разработку наглядной и увлекательной.