Перейти к содержимому
OmniRoute source

User Guide (Русский)


Уровень Провайдер Стоимость Сброс квоты Лучше всего подходит для
💳 ПОДПИСКА 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

Проблема: квота сгорает неиспользованной, а при интенсивной разработке срабатывают ограничения частоты запросов

Комбинация: "maximize-claude"
1. cc/claude-opus-4-7 (использовать подписку полностью)
2. glm/glm-4.7 (недорогой резерв при исчерпании квоты)
3. if/qwen3.8-max-preview (бесплатный аварийный резерв)
Стоимость в месяц: $20 (подписка) + ~$5 (резерв) = итого $25
вместо $20 + постоянных ограничений = разочарование

Проблема: нет возможности оплачивать подписки, но нужен надежный ИИ для программирования

Комбинация: "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
→ Вход через 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 понижает его до высокого бюджета мышления.

Окно терминала
Панель управления → Провайдеры → Подключить Codex
→ Вход через OAuth (порт 1455)
→ Сброс каждые 5 часов и еженедельно
Модели:
cx/gpt-5.5
cx/gpt-5.4
cx/gpt-5.3-codex
cx/gpt-5.3-codex-spark
Окно терминала
Панель управления → Провайдеры → Подключить 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
  1. Зарегистрируйтесь: Zhipu AI
  2. Получите API-ключ в Coding Plan
  3. Панель управления → Добавить API-ключ: Провайдер: glm, API-ключ: your-key

Использование: glm/glm-4.7 — Совет: Coding Plan предоставляет квоту в 3 раза больше по цене в 7 раз ниже! Ежедневный сброс в 10:00.

  1. Зарегистрируйтесь: MiniMax
  2. Получите API-ключ → Панель управления → Добавить API-ключ

Использование: minimax/MiniMax-M2.1 — Совет: Самый дешёвый вариант для длинного контекста (1M токенов)!

  1. Оформите подписку: Moonshot AI
  2. Получите API-ключ → Панель управления → Добавить API-ключ

Использование: kimi/kimi-k2.5 — Совет: Фиксированные $9/месяц за 10M токенов = эффективная стоимость $0.90/1M!

  1. Зарегистрируйтесь: Baidu AI Cloud Qianfan
  2. Создайте API-ключ Qianfan → Панель управления → Добавить API-ключ: Провайдер: qianfan

Использование: qianfan/ernie-5.1, qianfan/ernie-x1.1 или другой идентификатор модели Qianfan, совместимой с OpenAI.

На странице каждого бесплатного провайдера, не требующего аутентификации, рядом с параметром Аутентификация не требуется расположен переключатель. Если его выключить, провайдер будет отключён и удалён из настроенного и компактного представлений списка провайдеров, а его модели будут удалены из /v1/models.

Окно терминала
Панель управления → Подключить 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-m3
Окно терминала
Панель управления → Подключить 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; условия и доступность могут измениться

Использование 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/settings.json:

{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:20128",
"ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key"
}
}

Здесь используйте корневую конечную точку, совместимую с Claude. Не добавляйте /v1 к ANTHROPIC_BASE_URL.

Окно терминала
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"

Отредактируйте ~/.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 → Автоматическая настройка

Провайдер: совместимый с 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 3000

CLI автоматически загружает .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.

Окно терминала
git clone https://github.com/diegosouzapw/OmniRoute.git
cd 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.js
pm2 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 могут создавать и устанавливать нативные пакеты OmniRoute с помощью фреймворка кросс-компиляции xbps-src. Он автоматизирует создание автономной сборки Node.js вместе с необходимыми нативными привязками better-sqlite3.

Показать шаблон xbps-src
Окно терминала
# Файл шаблона для 'omniroute'
pkgname=omniroute
version=3.8.0
revision=1
hostmakedepends="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=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b
system_accounts="_omniroute"
omniroute_homedir="/var/lib/omniroute"
export NODE_ENV=production
export npm_config_engine_strict=false
export npm_config_loglevel=error
export npm_config_fund=false
export 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/sh
export 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 &lt;term&gt; или обратитесь к GET /api/models/catalog, чтобы проверить доступность.


Добавляйте любой идентификатор модели к любому провайдеру, не дожидаясь обновления приложения:

Окно терминала
# Через API
curl -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 можно добавить в качестве пользовательского провайдера, совместимого с OpenAI. Используйте базовый URL /v1 другого узла и выделенный API-ключ с минимальными привилегиями, выпущенный этим узлом.

Для двусторонних или многоступенчатых цепочек включите на каждом шлюзе опциональную защиту от циклов:

Окно терминала
# gateway-a
OMNIROUTE_INSTANCE_ID=gateway-a
OMNIROUTE_PEER_URLS=http://gateway-b:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4
Окно терминала
# gateway-b
OMNIROUTE_INSTANCE_ID=gateway-b
OMNIROUTE_PEER_URLS=http://gateway-a:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4

Заголовок X-OmniRoute-Peer-Trace добавляется только к запросам, отправляемым на URL узла, явно внесённый в список разрешённых. Шлюз отклоняет запрос с повторяющимся идентификатором экземпляра или исчерпанным лимитом переходов, возвращая HTTP 508 Loop Detected; обычные вышестоящие провайдеры не получают метаданные узлов.

Объединение узлов в цепочку не является репликацией базы данных или аварийным переключением между хостами. Каждый шлюз хранит независимые состояния SQLite, кэши, счётчики частоты запросов и сеансы. Для обеспечения доступности в режиме «активный/резервный» или «активный/активный» используйте обратный прокси с проверкой работоспособности либо аварийное переключение на стороне клиента. Никогда не подключайте одну базу данных SQLite к нескольким запущенным экземплярам OmniRoute.

Направляйте запросы непосредственно определённому провайдеру с проверкой модели:

Окно терминала
POST http://localhost:20128/v1/providers/openai/chat/completions
POST http://localhost:20128/v1/providers/openai/embeddings
POST 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"}}'

Приоритет: Для ключа → Для комбинации → Для провайдера → Глобальный → Окружение.

Окно терминала
curl http://localhost:20128/api/models/catalog

Возвращает модели, сгруппированные по провайдерам и типам (chat, embedding, image).

  • Синхронизация провайдеров, комбинаций и настроек между устройствами
  • Автоматическая фоновая синхронизация с тайм-аутом и быстрым завершением при сбое
  • В рабочей среде предпочтительно использовать серверные NEXT_PUBLIC_BASE_URL/NEXT_PUBLIC_CLOUD_URL
  • Доступен в разделе Панель управления → Конечные точки для 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 можно показывать или скрывать в разделе Настройки → Внешний вид. Скрытие панели не останавливает работающий туннель.
  • Семантический кэш — автоматически кэширует непотоковые ответы при 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 / random
  • p2c (выбор из двух)
  • least-used и cost-optimized
  • auto — выбор на основе оценки среди всех кандидатов
  • lkgp (последний заведомо исправный провайдер) — закрепляет последний успешно использованный провайдер, а затем применяет резервные правила
  • context-optimized — выбирает модель с наибольшим свободным контекстным окном
  • context-relay — объединяет модели с большим контекстом в цепочку для последующих запросов

Для внешней привязки к сеансу (например, для агентов Claude Code/Codex за обратными прокси-серверами) отправьте:

X-Session-Id: your-session-key

OmniRoute также принимает 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 обеспечивает отказоустойчивость на уровне провайдера с помощью пяти компонентов:

  1. Очередь и регулирование темпа запросов — управление потоком запросов на системном уровне:

    • Запросов в минуту (RPM) — максимальное количество запросов в минуту для каждой учётной записи
    • Минимальное время между запросами — минимальный интервал между запросами в миллисекундах
    • Максимум одновременных запросов — максимальное количество одновременных запросов для каждой учётной записи
  2. Пауза подключения — конфигурация для каждого типа аутентификации, применяемая к отдельному подключению после ошибок, допускающих повторную попытку:

    • Базовая пауза — стандартный период ожидания после ошибок вышестоящего сервиса, допускающих повторную попытку
    • Использовать указания вышестоящего сервиса по повторным попыткам — учитывает официальные значения Retry-After или указания о времени сброса, если они предоставлены
    • Максимум шагов отсрочки — максимальный уровень экспоненциальной задержки при повторяющихся ошибках
  3. Автоматический выключатель провайдера — отслеживает сквозные сбои провайдера, помечает провайдера как работающего с ухудшением при достижении настроенного порога предупреждения и размыкает цепь при достижении настроенного порога ошибок:

    • Порог ухудшения — количество последовательных сбоев провайдера до перехода в состояние DEGRADED
    • Порог ошибок — количество последовательных сбоев провайдера до перехода в состояние OPEN
    • Время до сброса — период времени до следующей проверки провайдера
    • CLOSED (исправен) — запросы обрабатываются в обычном режиме
    • DEGRADED — запросы продолжают обрабатываться, а повышенное число ошибок отслеживается
    • OPEN — провайдер временно заблокирован после повторяющихся сбоев
    • HALF_OPEN — проверяется, восстановился ли провайдер

    Ограничения частоты 429, относящиеся к конкретному подключению, обрабатываются механизмом Пауза подключения и не учитываются автоматическим выключателем провайдера.

    Состояние автоматического выключателя провайдера во время выполнения отображается только в разделе Панель управления → Состояние.

  4. Ожидание окончания паузы — если все подходящие подключения уже находятся в состоянии ожидания, OmniRoute может дождаться окончания ближайшей паузы и автоматически повторить тот же клиентский запрос.

  5. Автоматическое определение ограничений частоты — когда вышестоящие провайдеры возвращают явные интервалы ожидания, эти указания переопределяют локальную паузу подключения, если соответствующая настройка включена.

Совет: Используйте страницу Состояние, чтобы проверять и сбрасывать активные автоматические выключатели провайдеров после сбоя. Страница «Отказоустойчивость» изменяет только конфигурацию.


Управляйте резервными копиями базы данных в разделе Панель управления → Настройки → Система и хранилище.

Действие Описание
Экспорт базы данных Скачивает текущую базу данных 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/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
# Пример с curl
curl -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, включая настройку весов оценивания, добавление провайдеров в чёрный список и просмотр решений маршрутизации в разделе Панель управления → Автоматическая комбинация.


OmniRoute одновременно является сервером MCP (Model Context Protocol) и сервером A2A (Agent-to-Agent JSON-RPC 2.0). Любая IDE или среда размещения агентов, совместимая с MCP, может напрямую вызывать инструменты OmniRoute — дополнительная обёртка не требуется.

  • SSE: http://localhost:20128/api/mcp/sse
  • Потоковый HTTP: http://localhost:20128/api/mcp/stream
  • stdio: omniroute --mcp (для плагинов IDE, предпочитающих stdio)

Отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или аналогичный файл в Windows/Linux:

{
"mcpServers": {
"omniroute": {
"command": "omniroute",
"args": ["--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.


OmniRoute поставляется с внутренним CLI (omniroute …) для настройки, диагностики и управления во время выполнения. Он отличается от страницы «Инструменты CLI» в панели управления, где настраиваются сторонние CLI (Claude Code, Cursor, Codex, Cline, …), чтобы они могли взаимодействовать с OmniRoute.

Окно терминала
omniroute setup # Интерактивный мастер (пароль, провайдеры, комбинации)
omniroute setup --non-interactive # Подходит для CI
omniroute doctor # Диагностика состояния (каталог данных, БД, провайдеры, порты)
omniroute providers available # Вывести список поддерживаемых провайдеров
omniroute providers list # Вывести список настроенных подключений
omniroute providers test &lt;id&gt; # Проверить подключение к провайдеру в реальном времени
omniroute combos list # Вывести список комбинаций
omniroute combos switch &lt;name&gt; # Установить комбинацию по умолчанию
omniroute models # Вывести список доступных моделей (--json, --search)
omniroute keys add | list | remove # Управлять ключами API из терминала
omniroute backup # Создать снимок конфигурации и БД
omniroute restore [&lt;timestamp&gt;] # Восстановить данные из снимка
omniroute health # Подробное состояние (предохранители, кеш, память)
omniroute quota # Использование квот провайдеров
omniroute mcp status # Состояние сервера MCP
omniroute a2a status # Состояние сервера A2A
omniroute tunnel list|create|stop # Туннели Cloudflare/Tailscale/ngrok
omniroute reset-password # Сбросить пароль администратора
omniroute --mcp # Запустить сервер MCP через stdio
omniroute --port 3000 # Запустить сервер на пользовательском порту

Совет: используйте omniroute doctor --json вместе со своим инструментом мониторинга, чтобы получать оповещения о неработоспособных подключениях к провайдерам.


OmniRoute доступен в виде нативного настольного приложения для Windows, macOS и Linux.

Окно терминала
# Из каталога electron:
cd electron
npm install
# Режим разработки (подключение к запущенному серверу разработки Next.js):
npm run dev
# Рабочий режим (использует автономную сборку):
npm start
Окно терминала
cd electron
npm 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


Исходный код OmniRoute (a58000c7685f)

HagiCode

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

Превращайте идеи в полезное ПО с более умным, быстрым и увлекательным агентным рабочим процессом.

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