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

Environment Variables Reference (Русский)


Их необходимо задать перед первым запуском. Без них приложение либо откажется запускаться, либо будет работать с небезопасными значениями по умолчанию.

Переменная Обязательность Значение по умолчанию Исходный файл Описание
JWT_SECRET Да (нет) src/lib/auth Подписывает/проверяет все файлы cookie сеансов панели управления (JWT). Создайте с помощью openssl rand -base64 48.
API_KEY_SECRET Да (нет) src/lib/db/apiKeys.ts Ключ шифрования AES для хранящихся в SQLite значений ключей API. Создайте с помощью openssl rand -hex 32.
INITIAL_PASSWORD Да CHANGEME Скрипт начальной настройки Задаёт начальный пароль администратора панели управления (совпадает со значением по умолчанию в .env.example — он намеренно оставлен явно небезопасным, чтобы его обязательно изменили). Измените перед первым использованием. После входа измените его через «Панель управления → Настройки → Безопасность».
OMNIROUTE_WS_BRIDGE_SECRET Да (в продакшене) (не задано) src/app/api/internal/codex-responses-ws/route.ts Общий секрет внутреннего WebSocket-моста Codex Responses. Аутентифицирует запросы моста между WS-ретранслятором Electron/браузера и OmniRoute. ⚠️ ОБЯЗАТЕЛЕН в продакшене — если он не задан, все запросы к WS-мосту отклоняются. Создайте с помощью openssl rand -base64 32.
OMNIROUTE_SW_BUILD_ID Нет (git SHA) next.config.mjs, scripts/build/assembleStandalone.mjs Явный идентификатор сборки для сброса кеша service worker оболочки PWA (#11779); используется первым в цепочке разрешения.
SOURCE_VERSION Нет (не задано) next.config.mjs, scripts/build/assembleStandalone.mjs Второе значение в цепочке — задаётся сборщиками PaaS (например, в стиле Heroku) как развёрнутый коммит.
NEXT_PUBLIC_SW_BUILD_ID Нет (производное значение) src/shared/components/PwaRegister.tsx Публичное значение времени сборки, которое клиент использует для регистрации /sw.js?v=…; формируется из двух указанных выше значений, а затем из git SHA.
OMNIROUTE_PEER_STAMP_TOKEN Нет (автоматически) (автоматически при каждом запуске) src/server/authz/policies/management.ts Секрет отдельного процесса, подтверждающий, что доверенная метка IP-адреса узла поступила от собственного HTTP-сервера OmniRoute (scripts/dev/peer-stamp.mjs). Промежуточное ПО авторизации доверяет локальности запроса (ограничению маршрутов LOCAL_ONLY адресами loopback/LAN), только если метка содержит этот токен. Автоматически создаётся при каждом запуске — оставьте незаданным; фиксируйте его только в многопроцессных конфигурациях, которым необходимо совместно использовать эту метку.
Окно терминала
# Создать все четыре секрета одновременно:
echo "JWT_SECRET=$(openssl rand -base64 48)"
echo "API_KEY_SECRET=$(openssl rand -hex 32)"
echo "INITIAL_PASSWORD=$(openssl rand -base64 16)"
echo "OMNIROUTE_WS_BRIDGE_SECRET=$(openssl rand -base64 32)"

[!CAUTION] Никогда не добавляйте файлы .env с реальными секретами в систему контроля версий. .gitignore уже исключает .env, но проверьте это перед отправкой изменений.


OmniRoute использует SQLite (через better-sqlite3) для постоянного хранения всех данных. Эти переменные управляют расположением данных, шифрованием и жизненным циклом.

Переменная По умолчанию Исходный файл Описание
DATA_DIR ~/.omniroute/ src/lib/db/core.ts Корневой каталог для базы данных SQLite, резервных копий и файлов данных. Переопределите его для томов Docker или пользовательских путей.
OMNIROUTE_ALLOW_DEFAULT_DATA_DIR (не задано) src/lib/dataPaths.ts Аварийный обход защиты DATA_DIR для тестов и eval (#10428). Тесты и eval/print-вызовы Node (-e/--eval/-p/--print, включая формы --eval=/--print=) без DATA_DIR перенаправляются во временный одноразовый каталог, чтобы они не могли открыть настоящую базу данных оператора; задайте значение 1, чтобы снова использовать настоящий каталог.
OMNIROUTE_BUILD_SHA (не задано) src/lib/monitoring/buildSha.ts Git SHA запущенного артефакта. Записывается командой npm run build:release; может внедряться в контейнеры, поставляемые без файла-маркера dist/BUILD_SHA. Отображается как system.buildSha в /api/monitoring/health.
OMNIROUTE_RELEASE_REF origin/main scripts/build/buildProvenance.ts Ссылка, по которой проверка происхождения упаковываемого артефакта сверяет SHA сборки (#10427).
OMNIROUTE_ALLOW_CANARY_BUILD (не задано) scripts/build/buildProvenance.ts Задайте значение 1, чтобы разрешить упаковку сборки, SHA которой не относится к релизной ветке, зарегистрировав её как намеренную канареечную сборку вместо завершения проверки с ошибкой (#10427).
OMNIROUTE_SMOKE_API_KEY (не задано) scripts/ops/deploy-canary.mjs API-ключ для smoke-проверки канареечного развёртывания, отправляемый как Authorization: Bearer в /v1/chat/completions. Используется только скриптом развёртывания (#10429), но не сервером. Не связан с переменными OMNIROUTE_SMOKE_* опционального CLI-инструмента smoke-тестирования (RUN_CLI_SMOKE=1, OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS в tests/integration/upstream-cli-smoke.int.test.ts) — см. Интеграции CLI → Реальный набор smoke-проверок.
OMNIROUTE_BUILDING (не задано) src/lib/buildPhase.ts Сигнал фазы сборки (#10060): задаётся равным 1 скриптом scripts/build/build-next-isolated.mjs и наследуется каждым запущенным процессом сборки, чтобы слой БД возвращал заглушку без операций вместо загрузки нативного дополнения better-sqlite3 (из-за которого процесс аварийно завершается при выходе). Никогда не задаётся для работающего сервера.
OMNIROUTE_SKIP_NATIVE_DEP_CHECK 0 scripts/check/check-native-deps.mjs Задайте значение 1, чтобы пропустить предварительную проверку необязательных нативных зависимостей для нестандартных встроенных деревьев. Это не позволит выполнить сборку при отсутствии зависимости; используйте только в том случае, если нативные зависимости предоставляются внешним способом.
OMNIROUTE_DATA_DIR (не задано) open-sse/executors/promptql/threadSticky.ts Резервный псевдоним для DATA_DIR, проверяемый только в том случае, если DATA_DIR не задана. Используется для определения расположения дискового кеша закреплённых за потоком сеансов исполнителя PromptQL (<dir>/promptql-thread-sessions.json); если ни одна из переменных не задана, кеш хранится только в памяти (и не сохраняется между перезапусками).
OMNIROUTE_PLUGINS_DIR (не задано) src/lib/plugins/scanner.ts Каталог, считываемый сканером плагинов среды выполнения, а также корневой каталог, в который менеджер плагинов выполняет установку, с переопределением стандартного значения, вычисляемого на основе домашнего каталога (#11827). В Docker/K8s укажите дерево плагинов, подключённое через bind mount, вместо изменения HOME только для переноса пути сканирования (HOME также управляет любым другим поведением, связанным с домашним каталогом). Если переменная не задана, используется ~/.omniroute/plugins либо /tmp/.omniroute/plugins, когда процесс вообще не экспортирует домашний каталог, — эта переменная устраняет возникающее в таком случае незаметное необнаружение плагинов. Разрешённый каталог однократно записывается в журнал при запуске как scanner.dir_resolved вместе с входным значением, которое было выбрано. Только для серверной части: плагины команд CLI продолжают использовать собственную переменную OMNIROUTE_PLUGIN_PATH (раздел 9).
STORAGE_ENCRYPTION_KEY (пусто = отключено) src/lib/db/encryption.ts Ключ AES для полного шифрования базы данных SQLite при хранении. Создайте с помощью openssl rand -hex 32.
STORAGE_ENCRYPTION_KEY_VERSION v1 scripts/build/bootstrap-env.mjs, electron/main.js Метка версии ключа шифрования. Увеличивайте при ротации ключей, чтобы обеспечить расшифровку старых резервных копий.
DISABLE_SQLITE_AUTO_BACKUP false src/lib/db/backup.ts Если задано значение true, регулярное резервное копирование файлов SQLite и их резервное копирование перед записью пропускается (сохранение/очистка цен models.dev, запись настроек). Резервное копирование вручную и перед восстановлением продолжает выполняться. Это не отключает обязательный надежный снимок безопасности средства выполнения миграций или защиту от массовой миграции для существующей постоянной БД. Резервное копирование, не выполняемое вручную, ограничено частотой не более одного раза в 60 минут. Регулярное автоматическое резервное копирование можно независимо отключить в панели управления в разделе Настройки → Хранилище.
OMNIROUTE_CRYPT_KEY (не задано) src/lib/db/encryption.ts Устаревший псевдоним для STORAGE_ENCRYPTION_KEY. Используется в качестве резервного варианта, если основная переменная отсутствует.
OMNIROUTE_API_KEY_BASE64 (не задано) src/lib/db/encryption.ts Устаревший псевдоним (значение в кодировке Base64), используемый в качестве резервного варианта. Перед использованием декодируется автоматически.
OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS (не задано) src/lib/db/core.ts Переопределяет интервал периодической проверки работоспособности SQLite (мс). Если значение не задано, параметры по умолчанию определяются на основе NODE_ENV.
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS (удалено) src/lib/db/walMaintenance.ts Удалено. Периодический вызов wal_checkpoint(TRUNCATE) в работающей системе может сделать недействительным общее отображение wal-index и вызвать аварийное завершение процесса с SIGBUS (#13973), поэтому планировщик больше не существует. Переменная не действует: положительное значение приводит к однократной записи предупреждения об устаревании в журнал, а при значении 0 или отсутствии значения никаких сообщений не выводится. WAL обслуживается с помощью контрольных точек PASSIVE (см. ниже) и усекается контрольной точкой при завершении работы.
OMNIROUTE_WAL_PASSIVE_INTERVAL_MS 300000 (5 мин) src/lib/db/walMaintenance.ts Переопределяет интервал частого выполнения wal_checkpoint(PASSIVE) (мс). Позволяет поддерживать небольшой объем ожидающих кадров WAL, чтобы контрольные точки обрабатывались быстро, а размер файла WAL оставался ограниченным между усечениями при завершении работы. Значение 0 отключает эту функцию.
OMNIROUTE_WAL_GUARD_MAX_MB 256 src/lib/db/walMaintenance.ts Если при выполнении PASSIVE размер файла WAL превышает это значение, запускается wal_checkpoint(RESTART), чтобы WAL начал работу заново без перезаписи отображаемого wal-index. Контрольные точки с усечением в работающей системе удалены (см. строку OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS).
OMNIROUTE_PRESSURE_SELF_RESTART false open-sse/utils/resourcePressure.ts Установите значение 1/true/yes/on, чтобы завершить процесс после сохранения критической нехватки ресурсов в течение OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS. Это позволит супервизору (systemd Restart=always, политика перезапуска Docker) запустить чистый процесс вместо бесконечной выдачи ответов 503.
OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS 120000 (2 мин) open-sse/utils/resourcePressure.ts Время, в течение которого должна сохраняться критическая нехватка ресурсов, прежде чем сработает завершение процесса для самостоятельного перезапуска.
OMNIROUTE_SQLJS_WASM_PATH (автоопределение) src/lib/db/adapters/sqljsAdapter.ts Явный путь (абсолютный или относительно cwd) к sql-wasm.wasm при использовании резервного WASM-адаптера sql.js. Если значение не задано, путь определяется автоматически по зависимостям пакета и возможным вариантам расположения.
OMNIROUTE_BATCH_RETENTION_DAYS 30 src/lib/db/cleanup.ts Количество дней, в течение которых контрольные точки завершенного (completed/failed/cancelled/expired) задания Batch API, связанные входные/выходные файлы и файлы ошибок, а также соответствующая строка сохраняются перед удалением в ходе автоматической очистки. Действует только после включения BATCH_AND_FILE_AUTO_CLEANUP_ENABLED; соответствует периоду хранения результатов Batch API в OpenAI. Не влияет на запускаемый оператором маршрут DELETE /api/v1/batches/delete-completed, который по замыслу всегда работает безусловно (без фильтра по возрасту).
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED false src/lib/db/cleanup.ts Если задано значение true, автоматическая очистка удаляет завершенные задания Batch API (и их контрольные точки) по истечении OMNIROUTE_BATCH_RETENTION_DAYS, а также очищает BLOB-содержимое загруженных файлов после наступления их собственного срока expires_at. По умолчанию отключено: все существующие установки сохраняют эти данные точно так же, как и раньше, пока оператор явно не включит функцию. Также является флагом функции, редактируемым в панели управления — см. docs/reference/FEATURE_FLAGS.md → «Среда выполнения».
OMNIROUTE_SKIP_DB_HEALTHCHECK 0 src/lib/db/core.ts, src/lib/db/healthCheck.ts Установите значение 1, чтобы полностью пропустить проверку работоспособности БД при запуске. Полезно для кратковременных задач и интеграционных тестов.
OMNIROUTE_FORCE_DB_HEALTHCHECK 0 src/lib/db/core.ts Установите значение 1, чтобы принудительно включить цикл проверки работоспособности БД, даже если обычно он пропускается (например, для кратковременных задач).
OMNIROUTE_SKIP_POSTINSTALL 0 scripts/postinstall.mjs Установите значение 1, чтобы пропустить предварительный прогрев нативной среды выполнения во время npm install. Полезно при установке в CI-средах и средах без графического интерфейса, где sqlite уже собран.
OMNIROUTE_MIGRATIONS_DIR (автоопределение) src/lib/db/migrationRunner.ts Переопределяет каталог, сканируемый средством запуска миграций. Полезно при поставке миграций в составе пользовательских сборок.
OMNIROUTE_EXTRA_MIGRATIONS_DIRS (не задано) src/lib/db/migrationRunner/extraDirs.ts Дополнительные каталоги миграций в виде записей namespace=dir, разделённых системным разделителем путей (например, ee=/opt/app/enterprise/db/migrations). Найденные там файлы регистрируются как <namespace>-<number>, поэтому дистрибутив с собственными миграциями никогда не конфликтует с числовыми позициями исходного проекта. Некорректная запись, недопустимое пространство имён или отсутствующий каталог приводят к ошибке при запуске вместо молчаливого пропуска схемы.
OMNIROUTE_MAX_PENDING_MIGRATIONS 50 src/lib/db/migrationRunner.ts Порог безопасности для большого количества ожидающих миграций (#3416). Запуск прерывается, если для существующей БД ожидается больше указанного количества миграций (защита от очищенной таблицы отслеживания). Увеличьте значение, чтобы восстановить более старую резервную копию; установите 0, чтобы отключить проверку.
OMNIROUTE_INSTALL_UPGRADE_WORKDIR (<repo>/.install-upgrade) scripts/check/check-install-upgrade.mjs Рабочий каталог для контрольного этапа выпуска check:install-upgrade. Для него требуется около 12 ГБ (два дерева установки примерно по 3 ГБ плюс tar-архив), поэтому его нельзя запускать на небольшом tmpfs — на собственном раннере /tmp представляет собой размещённый в ОЗУ tmpfs размером 12 ГБ, и контрольный этап исчерпал его, из-за чего пакет был усечён.
OMNIROUTE_SPEND_FLUSH_INTERVAL_MS (значение по умолчанию в коде) src/lib/spend/batchWriter.ts Интервал сброса (мс) для пакетной записи расходов/затрат. Меньшие значения сокращают объединение операций записи; большие значения снижают конкуренцию за доступ к БД.
OMNIROUTE_SPEND_MAX_BUFFER_SIZE (значение по умолчанию в коде) src/lib/spend/batchWriter.ts Максимальное количество буферизованных записей о расходах перед принудительным сбросом. Увеличьте для развёртываний с высоким QPS; уменьшите, если ограничение потребления памяти важнее.
OMNIROUTE_PROXY_FETCH_DEBUG (не задано) open-sse/utils/proxyFetch.ts Установите значение "true", чтобы выводить отладочные журналы [ProxyFetch] в маршруте ретрансляции Vercel. По умолчанию отключено во избежание утечки сведений о маршрутизации.
PROXY_LOG_INCLUDE_IPS false src/lib/proxyLogger.ts Установите значение "true" или "1", чтобы включить IP-адреса клиента/исходящего подключения и префикс учётной записи в подробную строку журнала процесса [ProxyEgress]. По умолчанию отключено, чтобы журнал процесса не раскрывал IP-адреса или префикс учётной записи.
OMNIROUTE_DEBUG (не задано) bin/cli/commands/quota.mjs Установите значение 1, чтобы команды квот CLI выводили в stderr диагностические данные о времени выполнения каждого запроса ([omniroute] GET <path> completed in Nms).
OMNIROUTE_HEALTHCHECK_PATH (авто) scripts/dev/healthcheck.mjs Явный путь, проверяемый средством проверки работоспособности контейнера. Если значение не задано, проверяемый путь определяется на основе OMNIROUTE_BASE_PATH; задание значения снова включает использование углублённой конечной точки мониторинга.
OMNIROUTE_DEBUG_COMPLETION (не задано) bin/cli/commands/completion.mjs Установите любое непустое значение, чтобы выводить диагностические данные [omniroute completion] из путей кэша автодополнения оболочки CLI (чтение/обновление/запись). По умолчанию отключено — сбои этих кэшей обрабатываются без вывода сообщений, поэтому отсутствие или повреждение кэша никогда не нарушает автодополнение по Tab.
BATCH_RETRY_DURATION_MS 86400000 (24 ч) open-sse/services/batchProcessor.ts Максимальный период повторных попыток для отдельных элементов пакета (мс). Элементы, превысившие эту продолжительность, помечаются как неуспешные.
BATCH_BACKOFF_BASE_MS 5000 open-sse/services/batchProcessor.ts Базовая задержка (мс) для экспоненциальной выдержки при повторных попытках обработки элементов пакета.
BATCH_BACKOFF_MAX_MS 3600000 (1 ч) open-sse/services/batchProcessor.ts Максимальная задержка (мс) для экспоненциальной выдержки между повторными попытками обработки элементов пакета.
BATCH_MAX_CONCURRENT 1 open-sse/services/batchProcessor.ts Максимальное количество пакетов, обрабатываемых одновременно. Увеличьте для повышения пропускной способности; оставляйте низким, чтобы избежать лавинообразного превышения ограничений частоты запросов.

[!IMPORTANT] Перед изменением существующей постоянной базы данных средство запуска миграций публикует полный адресуемый по содержимому снимок в DATA_DIR/db_backups/. Для публикации требуется файловая система, поддерживающая жёсткие ссылки в пределах одной файловой системы без перезаписи, а также надёжную синхронизацию файлов. На POSIX-системах также требуется синхронизация каталогов; в Windows Node может отклонять дескрипторы каталогов, поэтому OmniRoute сбрасывает опубликованный файл на диск и выполняет синхронизацию записи каталога по мере возможности. Если подключённый DATA_DIR не может предоставить эти гарантии, запуск безопасно прерывается до применения миграции. Переместите DATA_DIR на том, поддерживающий эти примитивы; не используйте DISABLE_SQLITE_AUTO_BACKUP для обхода мер безопасности миграции.

Сценарий Конфигурация
Локальная разработка Оставьте все значения по умолчанию. БД находится в ~/.omniroute/omniroute.db.
Docker DATA_DIR=/data + подключите том в /data.
Шифрование при хранении Задайте STORAGE_ENCRYPTION_KEY + обязательно храните резервные копии ключа! Потеря ключа = потеря данных.
CI/Тестирование DATA_DIR=/tmp/omniroute-test — временное хранилище, шифрование не требуется.

Переменная Значение по умолчанию Исходный файл Описание
PORT 20128 src/lib/runtime/ports.ts Основной порт как для пользовательского интерфейса панели управления, так и для конечных точек API (режим одного порта).
OMNIROUTE_BASE_PATH (пусто = корень) next.config.mjs, scripts/docker/ensure-docker-base-path.mjs Подпуть URL для размещения OmniRoute за обратным прокси-сервером (задаёт basePath в Next.js; перенаправления аутентификации учитывают basePath). Например, /omniroute. В Docker значение встраивается во время docker build (ARG OMNIROUTE_BASE_PATH); для предварительно собранных корневых образов другое значение времени выполнения можно применить один раз при запуске контейнера до загрузки Next.js. Укажите в NEXT_PUBLIC_BASE_URL публичный источник, включающий тот же подпуть.
NEXT_PUBLIC_OMNIROUTE_BASE_PATH (пусто = корень) src/shared/hooks/useDisplayBaseUrl.ts Доступная браузеру копия OMNIROUTE_BASE_PATH, встраиваемая во время сборки, чтобы в панели управления адрес конечной точки отображался как https://host/omniroute/v1, а не https://host/v1. Если значение не задано, используется OMNIROUTE_BASE_PATH. После изменения выполните повторную сборку (basePath в Next задаётся во время сборки).
DASHBOARD_ALLOW_EMBED (не задано = встраивание во фрейм всегда запрещено) next.config.mjs, scripts/build/dashboardEmbed.mjs Явное разрешение на встраивание HTML-страниц в iframe. Если значение не задано, все маршруты отправляются с frame-ancestors 'none' + X-Frame-Options: DENY. Установите значение vscode, чтобы страницы (панель управления, вход, документация, целевая страница) обслуживались с frame-ancestors 'self' vscode-webview: и без X-Frame-Options, благодаря чему VS Code Simple Browser сможет их отображать (режим dashboardOpen: "editor" в OmniCopilot). Поверхность API (/api, /v1, /v1beta, /a2a, /healthz, псевдонимы корневого уровня) в любом случае сохраняет строгие заголовки. Распознаётся только vscode — значения 1/true не включают эту возможность. Настройка выполняется во время сборки: после изменения выполните повторную сборку (docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode для образов; установка переменной в предварительно собранной инсталляции не действует).
API_PORT (не задано) src/lib/runtime/ports.ts Если задано, прокси-API /v1/* обслуживается через этот отдельный порт.
API_HOST 0.0.0.0 src/lib/runtime/ports.ts Адрес привязки для порта API.
DASHBOARD_PORT (не задано) src/lib/runtime/ports.ts Если задано, пользовательский интерфейс панели управления обслуживается через этот отдельный порт.
OMNI_MAX_CONCURRENT_CONNECTIONS 0 (отключено) src/sse/utils/backpressure.ts Ограничивает количество одновременно обрабатываемых подключений чата; запросы сверх лимита получают ответ 503 с Retry-After. Положительное целое число включает это ограничение; отсутствие значения или 0 отключает его.
OMNIROUTE_INSTANCE_ID (не задано) src/shared/resilience/peerRouting.ts Стабильный уникальный идентификатор этого шлюза при объединении экземпляров OmniRoute в цепочку. Включает проверку входящих запросов на наличие циклов между узлами. Допустимые символы: буквы, цифры, ., _, : и -; максимальная длина — 64 символа.
OMNIROUTE_PEER_URLS (не задано) src/shared/resilience/peerRouting.ts, open-sse/executors/base.ts Разделённые запятыми базовые URL-адреса OmniRoute, которые могут получать X-OmniRoute-Peer-Trace. Метаданные узлов передаются только явно внесённым в список разрешённых вышестоящим URL-адресам; все остальные провайдеры остаются без изменений.
OMNIROUTE_PEER_MAX_HOPS 4 src/shared/resilience/peerRouting.ts Максимальное количество ранее посещённых экземпляров OmniRoute, допустимое в цепочечном запросе (1–32). Повторное посещение экземпляров или исчерпание лимита приводит к ответу HTTP 508 Loop Detected.
PROD_DASHBOARD_PORT 20130 docker-compose.prod.yml Порт хоста, публикуемый для панели управления в режиме промышленной эксплуатации Docker.
PROD_API_PORT 20131 docker-compose.prod.yml Порт хоста, публикуемый для API в режиме промышленной эксплуатации Docker.
OMNIROUTE_PORT (не задано) src/lib/runtime/ports.ts Имеет приоритет над PORT при запуске внутри Electron или других оболочек.
LIVE_WS_PORT 20129 src/server/ws/liveServer.ts Порт сервера мониторинга в реальном времени через WebSocket.
LIVE_WS_HOST 127.0.0.1 src/server/ws/liveServer.ts Адрес привязки сервера WebSocket реального времени. Установите значение 0.0.0.0, чтобы открыть доступ из локальной сети (также настройте LIVE_WS_ALLOWED_ORIGINS).
LIVE_WS_ALLOWED_ORIGINS (не задано) src/server/ws/liveServer.ts Разделённые запятыми дополнительные источники, которым разрешено устанавливать соединение WebSocket реального времени. Источники панели управления на loopback-интерфейсе уже разрешены по умолчанию.
LIVE_WS_ALLOWED_HOSTS (не задано) src/server/ws/liveServerAllowList.ts Разделённые запятыми дополнительные имена хостов, разрешённые для источников WebSocket реального времени. В отличие от LIVE_WS_ALLOWED_ORIGINS (полные URL-адреса источников), сопоставляется только часть с именем хоста — это удобно для конфигураций LAN/Tailscale.
NEXT_PUBLIC_LIVE_WS_PUBLIC_URL (не задано) src/hooks/useLiveDashboard.ts Публичный URL-адрес WebSocket для панели мониторинга в реальном времени (на стороне браузера). Задайте его, если перед WS-сервером используется обратный прокси-сервер или Cloudflare Tunnel (например, wss://ws.my-ai.com/live-ws); браузер будет подключаться к нему вместо ws://hostname:20132. Часть с путём также используется как путь обновления соединения до WebSocket (по умолчанию: /live-ws).
OMNIROUTE_ENABLE_LIVE_WS true src/server/ws/liveServer.ts и scripts/start-ws-server.mjs Установите значение 0 или false, чтобы отключить сервер WebSocket реального времени (по умолчанию включён и привязан к loopback-интерфейсу). Переключатель для CI/тестовой среды, отключающий отдельный вспомогательный скрипт WebSocket-сервера.
RELAY_IP_PER_MINUTE 30 src/app/api/v1/relay/chat/completions/route.ts Ограничение частоты ретрансляции для каждой пары (токен, IP), в запросах в минуту. Хранится в памяти отдельно для каждого экземпляра. Значение 0 или отрицательное отключает ограничение по IP (ограничение БД для каждого токена продолжает действовать).
NODE_ENV production Ядро Next.js Управляет детализацией журналирования, кэшированием, раскрытием сведений об ошибках и оптимизациями Next.js.
OMNIROUTE_USE_TURBOPACK 1 (Turbopack — значение по умолчанию в коде) package.json / Next.js 16 Turbopack — сборщик по умолчанию для npm run dev и npm run build (сборки в 2–3 раза быстрее согласно тестам производительности). Установите значение 0, чтобы вернуться к webpack в Windows, при возникновении несовместимости нативных привязок или сборщика, либо на компьютерах с ограниченным объёмом ОЗУ — известно, что производственные сборки Turbopack в этой линейке версий Next.js (16.2.x) на больших графах модулей достигают гораздо более высокого пикового потребления памяти, чем webpack (исправление вытеснения из памяти Turbopack в Next 16.3 ещё не является стабильным); при использовании резервного варианта с webpack пиковое потребление значительно ниже. См. #6409.
OMNIROUTE_SKIP_DB_HEALTHCHECK (не задано) src/lib/db/core.ts / src/lib/db/healthCheck.ts Установите значение 1, чтобы пропустить проверку целостности SQLite при запуске. Полезно для ускорения запуска при больших базах данных.
NOTIFY_SOCKET (не задано) systemd (протокол sd_notify) Устанавливается systemd, когда процесс выполняется в сервисном юните с интеграцией sd_notify; OmniRoute считывает её (см. OMNIROUTE_DISABLE_SD_NOTIFY) для отправки уведомлений READY/WATCHDOG. Никогда не задаётся пользователем.
OMNIROUTE_DISABLE_SD_NOTIFY (не задано) scripts/dev/systemd-notify.mjs Установите значение 1, чтобы отключить systemd sd_notify (Type=notify / WatchdogSec=), даже при запуске в юните systemd. Вне systemd средство уведомлений в любом случае ничего не делает.
CREDENTIAL_HEALTH_CHECK_INTERVAL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/scheduler.ts Интервал (мс) для фонового планировщика проверки работоспособности учётных данных. Минимум: 10000 (10 с).
CREDENTIAL_HEALTH_CACHE_TTL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/cache.ts TTL (мс) для кэшированного состояния работоспособности учётных данных.
OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK false src/lib/credentialHealth/scheduler.ts Установите значение 1 или true, чтобы отключить фоновую периодическую проверку подключений к провайдерам. Поисковые провайдеры (SEARCH_VALIDATOR_CONFIGS в src/lib/providers/validation/searchProviders.ts, например tavily-search) всегда исключаются из обхода — их «проверка» представляет собой реальный тарифицируемый запрос к вышестоящему сервису, поэтому их работоспособность никогда не проверяется по таймеру (#9970).
HOST 0.0.0.0 scripts/dev/run-next.mjs Адрес привязки для сервера разработки/запуска Next.js. Если задан, переопределяет значение по умолчанию 0.0.0.0.
HOSTNAME 127.0.0.1 scripts/dev/run-next-playwright.mjs Адрес привязки, используемый средством запуска Playwright при запуске Next.js. По умолчанию используется 127.0.0.1 для герметичных тестов. Не используйте для omniroute serve — вместо этого используйте OMNIROUTE_SERVER_HOST (оболочки POSIX автоматически задают HOSTNAME равным имени компьютера; .env не может переопределить её).
OMNIROUTE_SERVER_HOST 0.0.0.0 bin/cli/commands/serve.mjs Адрес привязки для omniroute serve. Позволяет избежать конфликта с переменной оболочки POSIX HOSTNAME (bash/zsh всегда задают её равной имени компьютера). Если значение не задано, используется 0.0.0.0. (#6194)
┌────────────────────────────── Один порт (по умолчанию) ────────────────────┐
│ PORT=20128 │
│ → Панель: http://localhost:20128 │
│ → API: http://localhost:20128/v1/chat/completions │
└─────────────────────────────────────────────────────────────────────────────┘
┌────────────────────────────── Раздельные порты ─────────────────────────────┐
│ DASHBOARD_PORT=20128 │
│ API_PORT=20129 │
│ API_HOST=0.0.0.0 │
│ → Панель: http://localhost:20128 │
│ → API: http://0.0.0.0:20129/v1/chat/completions │
│ Сценарий: доступ к API из LAN, при этом панель доступна лишь с localhost. │
└─────────────────────────────────────────────────────────────────────────────┘
┌────────────────────────────── Docker в продакшене ─────────────────────────┐
│ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 │
│ → Сопоставляет порты контейнера с портами хоста в docker-compose.prod.yml. │
└─────────────────────────────────────────────────────────────────────────────┘

Переменная Значение по умолчанию Исходный файл Описание
MACHINE_ID_SALT endpoint-proxy-salt src/lib/auth Соль, объединяемая с аппаратными идентификаторами для создания цифрового отпечатка машины. Для изоляции задавайте отдельное значение для каждого развертывания.
OMNIROUTE_CLI_SALT (не задано = случайная соль для каждой установки, сохраняемая в <DATA_DIR>/cli-token-salt.json) src/lib/machineToken.ts Соль HMAC для формирования локального токена аутентификации CLI. Установка этого значения приводит к ротации всех токенов CLI на машине и всегда имеет приоритет над сохраненной солью. См. docs/security/CLI_TOKEN.md.
AUTH_COOKIE_SECURE false src/lib/auth Устанавливает флаг Secure для cookie-файлов сеанса. При работе через HTTPS значение обязательно должно быть true.
REQUIRE_API_KEY false Промежуточное ПО API Если задано значение true, все прокси-запросы /v1/* должны содержать действительный ключ API. Этот флаг не ограничивает доступ к GET /v1/models: для него вместо этого применяется политика входа в Панель управления (requireAuthForModels), поэтому ответ 401 от /v1/models НЕ означает, что инференс защищен. См. docs/security/INFERENCE_AUTH_POSTURE.md (#13695).
ALLOW_API_KEY_REVEAL false src/shared/constants/featureFlagDefinitions.ts Позволяет отображать полные значения ключей API в интерфейсе Панели управления. Настраивается с помощью флагов функций Панели управления; представляет угрозу безопасности в экземплярах с общим доступом.
NO_LOG_API_KEY_IDS (пусто) src/lib/compliance/index.ts Разделенные запятыми идентификаторы ключей API, для которых журналирование запросов отключено (соответствие GDPR).
DEFAULT_RATE_LIMIT_PER_DAY (не задано = без ограничений) src/shared/utils/apiKeyPolicy.ts Резервный дневной бюджет запросов, применяемый к ключам API, у которых столбец rate_limits имеет значение null. Не задано или пусто: неявное ограничение отсутствует (#2289, #11017). 0 означает то же самое (без ограничений). Положительное целое число N включает ограничения N/день, 5N/неделю и 20N/месяц. Для некорректных непустых значений используются прежние интервалы: 1000/день, 5000/неделю и 20000/месяц.
MAX_BODY_SIZE_BYTES 10485760 (10 МБ) src/shared/middleware/bodySizeGuard.ts Максимально допустимый размер тела запроса. Полезные нагрузки, превышающие этот предел, отклоняются.
OMNIROUTE_CHAT_LARGE_BODY_BYTES 262144 (256 КБ) src/shared/middleware/chatBodyAdmission.ts Фактические тела запросов, размер которых не меньше этого порогового значения, перед разбором JSON получают атомарную локальную для процесса квоту допуска для ресурсоемких запросов (путь BYTE, включая POST /v1/responses). Используется тот же механизм пропуска при достаточном запасе ресурсов из #10437, что и для структурно сложных запросов; при этом по-прежнему действует ограничение OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, чтобы проблема #7849 не повторилась.
OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES 52428800 (50 МБ) src/shared/middleware/chatBodyAdmission.ts Жёсткий лимит для маршрутов чата, применяемый к количеству байтов, прочитанных в ходе ограниченного приёма данных, включая запросы с отсутствующим, недопустимым или недостоверным Content-Length; при превышении возвращается 413.
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (не задано — нет ограничения по количеству запросов) src/shared/middleware/chatBodyAdmission.ts #503-fanout: это устаревшее ограничение по КОЛИЧЕСТВУ запросов теперь применяется только в том случае, если задано явно. Если значение не задано (по умолчанию), допуск тяжеловесных запросов чата вместо этого регулируется OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES — автоматически вычисляемым БАЙТОВЫМ бюджетом, размер которого определяется фактическим пределом памяти процесса в рамках одного процесса (одной кучи V8). Два перекрывающихся запроса /v1/responses объёмом около 750 тыс. токенов аварийно завершают кучи размером около 12 ГиБ (#7849) — это предупреждение о бюджете памяти, а не жёсткий продуктовый максимум в 2 запроса. Исправный процесс (куча ниже коэффициента сброса нагрузки) МОЖЕТ принимать больше одновременных длительных запросов /v1/responses через OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM. Десятки длительных SSE-клиентов (40–50) ограничиваются кучей + OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, а не «максимумом в 2». Бездумное увеличение этого значения с целью «использовать ресурсы хоста» вновь приводит к #7849. Умножайте количество куч, используя N независимых DATA_DIR (#11024); никогда не используйте replicas>1 для одного файла SQLite.
OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES (вычисляется автоматически) src/shared/middleware/admissionBudget.ts #503-fanout: переопределение автоматически вычисляемого байтового бюджета приёма данных (25% от меньшего из ограничений памяти V8/cgroup, делённые на коэффициент 8-кратного временного увеличения). Вычисленные и явно заданные значения ограничиваются диапазоном 8 МиБ–2 ГиБ. Если тело превышает действующий бюджет, запрос немедленно завершается с ошибкой 413 body_exceeds_budget; конкуренция между телами, каждое из которых по отдельности может быть обработано, по-прежнему приводит к допускающей повторную попытку ошибке 503. 40–50 одновременных длительных SSE-клиентов ограничиваются этим бюджетом + кучей, а не жёстким «максимумом в 2». Перед настройкой проверьте chatAdmission.maxInflightBytes / budgetSource / pressureSeverity по адресу /api/monitoring/health.
OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO 0.75 src/shared/middleware/chatBodyAdmission.ts Коэффициент сброса нагрузки при давлении на кучу (heapUsed / heap_size_limit) для допуска тяжеловесных запросов категорий BYTE и STRUCTURE (#10183, #10268, #10437). Одновременный тяжеловесный запрос сверх OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT отклоняется с допускающей повторную попытку ошибкой 503, только если использование кучи ТАКЖЕ достигает или превышает этот коэффициент; при нормальном состоянии кучи он допускается за счёт резерва для исправного состояния.
OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (по умолчанию 1) src/shared/middleware/chatBodyAdmission.ts Ограниченная дополнительная ёмкость для быстрого пути при нормальном состоянии кучи (#10437) как для STRUCTURE, так и для BYTE (admitChatRequest, включая тела ≥ OMNIROUTE_CHAT_LARGE_BODY_BYTES). Без этого ограничения каждый запрос при высокой нагрузке, но нормальном состоянии кучи обходил механизм допуска без какого-либо верхнего предела. Когда через путь нормального состояния кучи активируется указанное количество одновременных разрешений, последующие запросы при высокой нагрузке переходят к ТОМУ ЖЕ пути ограниченного ожидания/сброса нагрузки, который используется при реальном давлении на кучу. Значение 0 полностью отключает обход.
OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT 200 src/shared/middleware/chatBodyAdmission.ts Количество сообщений, при котором запрос чата классифицируется как тяжеловесный, даже если размер его тела ниже байтового порога.
OMNIROUTE_CHAT_HEAVY_TOOL_COUNT 64 src/shared/middleware/chatBodyAdmission.ts Количество инструментов, при котором запрос чата классифицируется как тяжеловесный, даже если размер его тела ниже байтового порога.
OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS 32000 src/shared/middleware/chatBodyAdmission.ts Консервативная оценка количества токенов по размеру строк, при которой запрос классифицируется как тяжеловесный; это приблизительная оценка стоимости допуска, а не токенизация для выставления счетов провайдером.
OMNIROUTE_CHAT_HARD_MAX_MESSAGES 0 (отключено) src/shared/middleware/chatBodyAdmission.ts Необязательное, явно включаемое ограничение истории чата. По умолчанию отключено: количество сообщений является политикой развёртывания, а не универсальным свойством запроса, и такое ограничение отклоняет диалоги с окончательной ошибкой 413 до того, как конвейер сжатия сможет сделать их пригодными для обработки. Рост кучи ограничивается OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT и сбросом нагрузки при давлении на кучу. Задайте положительное значение в развёртываниях с ограниченной памятью, которым необходим жёсткий предел; при его превышении возвращается структурированная ошибка 413, требующая сжатия.
OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES 67108864 (64 МБ) open-sse/handlers/chatCore/nonStreamingResponseBody.ts Жёсткий лимит для непотокового ответа вышестоящего сервиса, полностью буферизуемого в памяти. При его превышении чтение ответа вышестоящего сервиса отменяется, а запрос быстро завершается с ошибкой вместо неограниченного роста строки вплоть до исчерпания кучи.
OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES 768 open-sse/handlers/chatCore/responseHeaders.ts Максимальный объём заголовков ответа вышестоящего сервера, передаваемых по сети, в байтах. При превышении лимита заголовки с более низким приоритетом (например, пользовательские x-codex-*, x-oai-request-id) отбрасываются, чтобы не выходить за типичные ограничения обратных прокси на размер заголовков. Установите более высокое значение, чтобы передавать больше метаданных вышестоящего сервера ценой увеличения размера заголовков ответа.
CORS_ORIGIN (не задано) src/server/cors/origins.ts Устаревший список разрешённых источников CORS, поддерживающий один источник. Для новых развёртываний рекомендуется использовать CORS_ALLOWED_ORIGINS. CORS предназначен только для браузерных API-клиентов, выполняющих межсайтовые запросы; аутентифицированные операции записи в панели управления вместо этого используют запросы из того же источника и привязанную к сеансу защиту от CSRF.
CORS_ALLOWED_ORIGINS (не задано) src/server/cors/origins.ts Разделённый запятыми список разрешённых источников CORS. Подстановочный знак не отправляется, если только явно не настроено CORS_ALLOW_ALL=true.
CORS_ALLOW_ALL false src/server/cors/origins.ts Предназначенный только для разработки аварийный механизм, позволяющий возвращать любой браузерный заголовок Origin. Не включайте его в общих или производственных развёртываниях.
OUTBOUND_SSRF_GUARD_ENABLED true src/shared/network/outboundUrlGuard.ts Блокирует обращения к поставщикам, нацеленные на частные, loopback- или link-local-диапазоны IP-адресов. Отключайте только в изолированных тестовых средах.
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS false src/shared/network/outboundUrlGuard.ts Разрешает URL-адреса поставщиков, указывающие на частные или локальные сети (localhost, 192.168.x.x, 10.x.x.x и т. д.). НЕОБХОДИМО для самостоятельно размещаемых поставщиков (LM Studio, Ollama, vLLM, Llamafile, Triton, SearXNG). При значении false панель управления отклоняет проверку локальных URL-адресов.
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS true src/shared/network/outboundUrlGuard.ts Разрешает добавление и проверку поставщиков по локальным или частным адресам (127.0.0.1, localhost, LAN, частные диапазоны) — применяется только к пути проверки поставщика. Значение по умолчанию — true (приоритет локальной среды); установите false, чтобы применять строгую блокировку всех адресов, кроме общедоступных. Конечные точки облачных метаданных (169.254.169.254, metadata.google.internal) остаются заблокированными независимо от настройки. (#5066)
AUDIO_REMOTE_PROVIDER_NODES false src/app/api/v1/_shared/audioProviderNodes.ts Позволяет маршрутам /v1/audio/* (транскрипция, речь, перевод) использовать совместимый с OpenAI узел поставщика, размещённый вне localhost. По умолчанию отключено — маршрутизация аудио на удалённый хост изменяет идентификатор исходящего подключения и должна быть явным решением оператора. Loopback-узлы и узлы в частных сетях (localhost, 127.0.0.1, 172.16-31.x) разрешены всегда и не зависят от этой настройки. (#3963)
RERANK_REMOTE_PROVIDER_NODES false src/app/api/v1/_shared/rerankProviderNodes.ts Позволяет POST /v1/rerank (а также loopback-этапу повторного ранжирования механизма памяти) использовать совместимый с OpenAI узел поставщика, размещённый вне localhost, — компьютер в LAN или пир Tailscale, на котором запущен TEI, Infinity, vLLM и т. д. По умолчанию отключено — маршрутизация на удалённый хост изменяет идентификатор исходящего подключения и должна быть явным решением оператора. Loopback-узлы (localhost, 127.0.0.1, 172.16-31.x) разрешены всегда и не зависят от этой настройки. Удалённые узлы также должны соответствовать политике исходящих URL-адресов поставщиков (OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS / OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS); маршрутизация на хосты облачных метаданных никогда не выполняется.
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Когда OIDC включён, отключает вход по паролю, чтобы пользователи могли проходить аутентификацию только через единый вход OIDC. Также поддерживается краткий псевдоним OIDC_DISABLE_PASSWORD_LOGIN; флаг функции панели управления с тем же ключом имеет приоритет. (#10889)
OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Краткий псевдоним OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN (#10889).
Окно терминала
# Минимальные требования безопасности для производственной среды:
AUTH_COOKIE_SECURE=true # Требуется HTTPS
REQUIRE_API_KEY=true # Аутентифицировать все обращения к прокси
ALLOW_API_KEY_REVEAL=false # Никогда не раскрывать ключи в интерфейсе
CORS_ALLOWED_ORIGINS=https://your.domain.com
MAX_BODY_SIZE_BYTES=5242880 # Ограничение 5 МБ

5. Очистка входных данных и защита персональных данных

Заголовок раздела «5. Очистка входных данных и защита персональных данных»

OmniRoute обеспечивает двухуровневую защиту: сканирование запросов на наличие инъекций и удаление персональных данных из ответов.

⚠️ Ограничения: Эти защитные механизмы используют эвристическое обнаружение по принципу максимальных усилий и не являются полноценным межсетевым экраном для защиты от промпт-инъекций или DLP-системой для персональных данных. Они могут давать ложноположительные результаты (помечая безопасные промпты с персонажами или ролевыми играми) и ложноотрицательные результаты (литспик, пробелы, шаблоны не на английском языке). Сами по себе они недостаточны для обеспечения соответствия нормативным требованиям. Настройте режимы и протестируйте их на своём трафике, прежде чем полагаться на них.

На стороне запроса: защита от промпт-инъекций

Заголовок раздела «На стороне запроса: защита от промпт-инъекций»
Переменная Значение по умолчанию Исходный файл Описание
INPUT_SANITIZER_ENABLED true src/middleware/promptInjectionGuard.ts Включает сканирование входящих сообщений на наличие шаблонов промпт-инъекций.
INPUT_SANITIZER_MODE warn src/middleware/promptInjectionGuard.ts Политика обработки инъекций: warn = только записывать в журнал, block = отклонять запрос с кодом 400. Устаревший режим redact не удаляет текст инъекции; для очистки персональных данных в запросе используйте PII_REDACTION_ENABLED.
INJECTION_GUARD_MODE (не задано) src/middleware/promptInjectionGuard.ts Устаревший псевдоним для INPUT_SANITIZER_MODE — поведение идентично.
INPUT_SANITIZER_BLOCK_THRESHOLD high src/shared/utils/injectionSeverity.ts Минимальный уровень серьёзности, при котором MODE=block отклоняет запрос: high (по умолчанию), medium или low. Шаблоны уровня medium по умолчанию только отслеживаются, если порог не снижен.
INJECTION_GUARD_BLOCK_THRESHOLD (не задано) src/shared/utils/injectionSeverity.ts Устаревший псевдоним для INPUT_SANITIZER_BLOCK_THRESHOLD — поведение идентично.
PII_REDACTION_ENABLED false src/lib/guardrails/piiMasker.ts Если установлено значение true, персональные данные во входящих запросах редактируются независимо от режима обработки инъекций.
CREDENTIAL_REDACTION_ENABLED false src/lib/guardrails/credentialMasker.ts Редактирует известные шаблоны API-ключей и секретных токенов в данных запросов и ответов. Включается явно; работает аналогично PII_REDACTION_ENABLED.

На стороне ответа: очистка персональных данных

Заголовок раздела «На стороне ответа: очистка персональных данных»
Переменная Значение по умолчанию Исходный файл Описание
PII_RESPONSE_SANITIZATION false src/lib/piiSanitizer.ts Сканирует ответы LLM на наличие утечек персональных данных перед их возвратом клиенту.
PII_RESPONSE_SANITIZATION_MODE redact src/lib/piiSanitizer.ts redact = маскировать персональные данные, warn = только записывать в журнал, block = полностью удалять ответ.

Очистка контекста токенизированных маршрутов VS Code

Заголовок раздела «Очистка контекста токенизированных маршрутов VS Code»
Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_VSCODE_SANITIZE_CONTEXT 1 src/app/api/v1/vscode/contextSanitizer.ts Удаляет неявный контекст активного редактора (editorContext, activeEditor, currentFile, selection, openTabs…) из запросов /v1/vscode/[token]/* и редактирует содержимое явно прикреплённых конфиденциальных файлов. Безопасный режим используется по умолчанию; чтобы отключить его, установите значение 0.
Сценарий Конфигурация
Соответствие корпоративным требованиям INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=block, PII_REDACTION_ENABLED=true, PII_RESPONSE_SANITIZATION=true (инъекции блокируются, а персональные данные в запросах и ответах редактируются; режимы независимы)
Только мониторинг INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=warn — события записываются в журнал, но запросы никогда не блокируются
Личное использование Оставьте всё отключённым — никаких дополнительных накладных расходов

Переменная Значение по умолчанию Исходный файл Описание
TOOL_POLICY_MODE disabled src/lib/toolPolicy.ts Управляет доступом LLM к вызову инструментов/функций. allowlist = только перечисленные инструменты, denylist = все, кроме перечисленных, disabled = без ограничений.
OMNIROUTE_PAYLOAD_RULES_PATH ./config/payloadRules.json open-sse/services/payloadRules.ts Путь к JSON-файлу правил изменения полезной нагрузки (настройки вышестоящего сервиса для конкретной модели/протокола).
OMNIROUTE_PAYLOAD_RULES_RELOAD_MS 5000 open-sse/services/payloadRules.ts Интервал перезагрузки (мс) файла правил полезной нагрузки без остановки сервиса. Минимум — 1000.
OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS false open-sse/services/model.ts Опциональная настройка: направлять идентификаторы моделей вида claude-* без префикса от клиентов Claude Code через OAuth-аккаунт Claude Code вместо требования префикса провайдера. Явные префиксы провайдера по-прежнему имеют приоритет. Также настраивается с помощью переключателя на странице провайдера Claude в панели управления.
COMBO_CONCURRENCY_PER_MODEL 3 open-sse/services/comboConfig.ts Ограничение параллелизма для каждой модели в комбинациях с циклическим распределением (#9100). Семафор комбинаций с циклическим распределением был жёстко ограничен тремя параллельными запросами на модель без возможности переопределения, из-за чего трафик с более высоким уровнем параллелизма обрабатывался последовательно сверх этого ограничения. Проверяется условие >= 1, максимальное значение ограничено <= 32.
DISABLE_CONTEXT_WINDOW_CHECKS false open-sse/handlers/chatCore.ts Опасная опциональная настройка, отключающая локальную проверку OmniRoute размера контекстного окна / максимального количества входных токенов для прямых запросов к одной модели. Вышестоящие провайдеры по-прежнему применяют свои фактические ограничения; сжатие запроса и собственный лимит выходных токенов модели остаются активными. Фактический порядок приоритета: переопределение в БД Feature Flags > переменная окружения > значение по умолчанию; перезапуск не требуется.
OMNIROUTE_SELF_HOSTED_PROVIDERS (не задано) open-sse/services/selfHostedEntry.ts Встроенный YAML-документ providers: (RIC-738, D4). Если задан (с блоком strategy: или без него), /v1/chat/completions перенаправляется в унифицированную самоуправляемую точку входа, совместимую с OpenAI, вместо облачного конвейера. Если не задано (по умолчанию), маршрут напрямую передаётся существующему облачному конвейеру. См. docs/routing/SELF_HOSTED_OPENAI_ENTRY.md.
OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE (не задано) open-sse/services/selfHostedEntry.ts Путь к YAML-файлу, содержащему тот же документ providers:, что и OMNIROUTE_SELF_HOSTED_PROVIDERS, для развёртываний, в которых файл предпочтительнее встроенной переменной окружения. Любой из этих вариантов активирует самоуправляемую точку входа.
OMNIROUTE_SELF_HOSTED_API_KEY (не задано — открытый маршрут) open-sse/services/selfHostedEntry.ts Необязательный общий API-ключ для унифицированной самоуправляемой точки входа (заготовка D5, зарезервированная для системы квот для каждого ключа). Если он задан, запросы должны включать Authorization: Bearer &lt;key&gt;. Если не задан, маршрут открыт, что соответствует существующему шаблону локального самоуправляемого провайдера (развёртывание в loopback-интерфейсе/доверенной сети).
OMNIROUTE_SELF_HOSTED_STRATEGY (не задано) open-sse/services/routingStrategies.ts Встроенный YAML-документ strategy: для механизма детерминированной маршрутизации (M2/RIC-740, D3): чёрный/белый список, предохранитель с периодом восстановления, приоритет по стоимости, учёт задержки, цепочка резервных вариантов. Переопределяет для каждого ключа встроенный блок strategy:, вложенный в OMNIROUTE_SELF_HOSTED_PROVIDERS. См. docs/routing/DETERMINISTIC_ROUTING.md.
OMNIROUTE_SELF_HOSTED_STRATEGY_FILE (не задано) open-sse/services/routingStrategies.ts Путь к YAML-файлу, содержащему тот же документ strategy:, что и OMNIROUTE_SELF_HOSTED_STRATEGY, для развёртываний, в которых файл предпочтительнее встроенной переменной окружения.
OMNIROUTE_DISABLE_CONVERSATION_TRACKING (не задано) open-sse/services/conversationTracker.ts Установите значение 1, чтобы прекратить сбор истории разговоров. resolveConversationId() возвращает неотслеживаемый результат до чтения SQLite или анализа истории сообщений; это также распространяется на идентификаторы сеансов, предоставленные клиентом. Обработка сеансов маршрутизации остаётся без изменений, а существующие записи не удаляются. Предназначено для развёртываний, в которых не используется представление разговоров на панели управления и требуется остановить рост таблицы ходов.

Переменная Значение по умолчанию Исходный файл Описание
BASE_URL http://localhost:20128 src/lib/cloudSync.ts Серверный URL-адрес, по которому внутренние задания синхронизации вызывают /api/sync/cloud. Оставляйте здесь адрес обратной петли или контейнера, даже если приложение доступно через публичный прокси-сервер.
CLOUD_URL (пусто) src/lib/cloudSync.ts URL-адрес конечной точки облачного ретранслятора (премиум-функция).
CLOUD_SYNC_TIMEOUT_MS 12000 src/lib/cloudSync.ts Тайм-аут HTTP-запросов облачной синхронизации.
OMNIROUTE_BUILD_PROFILE full Конфигурация сборки Webpack Профиль времени сборки (задайте значение minimal, чтобы физически исключить привилегированные модули из пакета).
OMNIROUTE_STANDALONE_DIR выходной каталог автономной сборки .build/ scripts/build/colocate-standalone.mjs Переопределение времени сборки для выходного каталога автономной сборки, используемого на этапе совместного размещения после сборки. Не является параметром среды выполнения.
OMNIROUTE_CLOUD_SYNC_SECRET (пусто) src/lib/cloudSync.ts Общий секрет, используемый для проверки подписи HMAC-SHA256 ответов Cloud Sync.
OMNIROUTE_CLOUD_SYNC_SECRETS false src/lib/cloudSync.ts Установите значение true, чтобы разрешить конечной точке Cloud Sync перезаписывать локальные учётные данные. Значение по умолчанию — false.
OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE false src/lib/cloudSync.ts Установите значение true, чтобы отклонять неподписанный ответ Cloud Sync, если локальный секрет не настроен (#13679). Присутствующая подпись проверяется всегда — и всегда отклоняется, если OMNIROUTE_CLOUD_SYNC_SECRET не задан, — независимо от этого флага. В v3.9 значение по умолчанию изменится на обязательную проверку.
OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP false src/app/api/providers/zed/import/route.ts Установите значение true, чтобы вернуться к одноступенчатому поведению «импортировать всё» из v3.8.5 без подтверждения пользователя.
NEXT_PUBLIC_BASE_URL http://localhost:20128 OAuth, панель управления, синхронизация Публичный URL-адрес для OAuth redirect_uri, ссылок панели управления и создаваемых публичных URL-адресов. Укажите здесь стабильный публичный URL-адрес, если обратные вызовы OAuth или создаваемые ссылки для браузера должны использовать канонический хост обратного прокси-сервера.
NEXT_PUBLIC_CLOUD_URL (пусто) Клиентская часть Клиентская копия CLOUD_URL.
NEXT_PUBLIC_APP_URL (не задано) src/shared/services/cloudSyncScheduler.ts Устаревший резервный вариант для NEXT_PUBLIC_BASE_URL.
NEXT_PUBLIC_PORT (не задано — используется PORT) src/shared/hooks/useDisplayBaseUrl.ts Резервный порт на стороне клиента для отображаемых URL, когда источник неизвестен (SSR/тесты); считывается перед PORT.
OMNIROUTE_PUBLIC_BASE_URL (не задано) Средство определения публичного источника, URL изображений Имеющий наивысший приоритет доступный браузеру источник OmniRoute, используемый для создания публичных URL и проверки источника браузера вне панели управления. Задайте его, если OpenWebUI или другой ретранслятор обращается к OmniRoute по внутреннему URL, но браузер пользователя должен получать созданные медиафайлы через локальную сеть, туннель или публичный источник. Не добавляйте /v1.
OMNIROUTE_PROVIDER_MANIFEST_URL (не задано) open-sse/config/providerPluginManifestUrl.ts Абсолютный URL манифеста плагина провайдера, предоставляемый клиентам sidecar. Если значение не задано, OmniRoute формирует /api/v1/provider-plugin-manifest на основе источника запроса или HOST/PORT.
OMNIROUTE_PUBLIC_PROTOCOL http open-sse/config/providerPluginManifestUrl.ts Протокол, используемый при формировании URL манифеста плагина провайдера на основе HOST/PORT без источника запроса. Установите значение https, если используется публичный прокси-сервер с завершением TLS и явное значение OMNIROUTE_PROVIDER_MANIFEST_URL не задано.
OMNIROUTE_TRUST_PROXY (не задано) src/server/origin/publicOrigin.ts Необязательный режим доверия к переадресованным заголовкам публичного источника. Не задано = не доверять Forwarded / X-Forwarded-* при принятии решений безопасности. true / loopback разрешает доверять переадресованным хосту/протоколу только от loopback-прокси с токеном. private / lan также разрешает доверять прокси-узлам в частной локальной сети. В рабочей среде предпочтительно явно задавать NEXT_PUBLIC_BASE_URL.
KIE_CALLBACK_URL (не задано) open-sse/utils/kieTask.ts Публичный URL обратного вызова для асинхронных заданий kie.ai. Переопределение с наивысшим приоритетом, применяемое перед OMNIROUTE_KIE_CALLBACK_URL и OMNIROUTE_PUBLIC_URL.
OMNIROUTE_KIE_CALLBACK_URL (не задано) open-sse/utils/kieTask.ts Альтернативное название KIE_CALLBACK_URL. Используется как резервное, если основная переменная не задана.
OMNIROUTE_PUBLIC_URL (не задано) open-sse/utils/kieTask.ts Публичный источник, используемый для формирования URL асинхронных обратных вызовов. Резервный вариант с наименьшим приоритетом для обратных вызовов kie.ai; также используется как универсальный публичный URL для других ретрансляторов.
OMNIROUTE_CROF_USAGE_URL https://crof.ai/usage_api/ open-sse/services/usage.ts Конечная точка получения квоты CrofAI, используемая страницей «Использование». Переопределите для ретрансляторов / тестовых фикстур.
OMNIROUTE_OPENCODE_QUOTA_URL https://opencode.ai/zen/go/v1/usage open-sse/services/opencodeQuotaFetcher.ts Официальная конечная точка использования OpenCode Go с аутентификацией по ключу API, используемая страницей «Использование». Переопределите для ретрансляторов / тестовых фикстур.
OPENCODE_SYNTHESIZE_CLI_HEADERS true open-sse/executors/opencode.ts Формирует заголовки идентификации OpenCode CLI (User-Agent, x-opencode-client/project, UUID запроса/сеанса) в отправляемых opencode-go/zen запросах, если клиент их не передал, чтобы Cloudflare принимал исходящий трафик с VPS (#6210/#5997). Включено по умолчанию начиная с #10571; для отключения используйте false/0/no/off.
OPENCODE_USER_AGENT opencode/1.18.31 open-sse/utils/opencodeHeaders.ts Значение User-Agent по умолчанию, используемое, когда включён OPENCODE_SYNTHESIZE_CLI_HEADERS и переопределение <PROVIDER>_USER_AGENT для конкретного провайдера не задано. Применяется только к исполнителям opencode. Если исходный сервер блокирует запрос без ключа, настроенное значение, не содержащее opencode/<version >= 1.17>, заменяется этим значением по умолчанию, а запрос не отклоняется.
OPENCODE_CLIENT desktop open-sse/executors/opencode.ts Значение синтезированного заголовка x-opencode-client, когда включён OPENCODE_SYNTHESIZE_CLI_HEADERS.
OPENCODE_PROJECT global open-sse/executors/opencode.ts Значение синтезированного заголовка x-opencode-project, когда включён OPENCODE_SYNTHESIZE_CLI_HEADERS.
OPENCODE_FREE_TIER_REQUEST_CONTRACT (не задано) open-sse/executors/opencodeFreeTierContract.ts Установите значение off, чтобы прекратить корректировку тела запросов OpenCode без ключа (флага потоковой передачи и списка инструментов). Заголовки по-прежнему применяются. Значение считывается для каждого запроса, поэтому изменение вступает в силу немедленно.
OPENCODE_FREE_TIER_PLACEHOLDER_TOOLS (не задано) open-sse/executors/opencodeFreeTierContract.ts Разделённые запятыми имена инструментов, объявляемых в запросе OpenCode без ключа, если в нём нет инструментов и для этой модели ещё ничего не наблюдалось. Пустое значение приводит к использованию одного фиктивного инструмента, который модели предписывается не вызывать. Не более 32 записей, [A-Za-z_][A-Za-z0-9_-]{0,63}; недопустимые записи игнорируются.
OMNIROUTE_OLLAMA_CLOUD_USAGE_URL https://ollama.com/settings open-sse/services/usage.ts URL настроек Ollama Cloud, используемый для получения данных о квоте. Переопределите для ретрансляторов / тестовых фикстур.
OLLAMA_USAGE_COOKIE (не задано) open-sse/services/usage.ts Cookie Ollama Cloud __Secure-session, используемый для получения данных о квоте со страницы настроек. Конфиденциальные данные; если настроено несколько учётных записей, предпочтительно использовать поле для конкретного подключения на панели управления.
OLLAMA_CLOUD_USAGE_COOKIE (не задано) open-sse/services/usage.ts Альтернативная переменная окружения для cookie Ollama Cloud __Secure-session. Конфиденциальные данные; если настроено несколько учётных записей, предпочтительно использовать поле для конкретного подключения на панели управления.
OMNIROUTE_OLLAMA_USAGE_COOKIE (не задано) open-sse/services/usage.ts Альтернативная переменная окружения для cookie Ollama Cloud __Secure-session, используемая перед более короткими псевдонимами. Конфиденциальные данные; если настроено несколько учётных записей, предпочтительно использовать поле для конкретного подключения на панели управления.
OMNIROUTE_CODEWHISPERER_BASE_URL https://codewhisperer.us-east-1.amazonaws.com open-sse/services/usage.ts Конечная точка ограничений использования CodeWhisperer (AWS Kiro). Переопределите для ретрансляторов / тестовых фикстур.

[!IMPORTANT] При развёртывании за обратным прокси-сервером (nginx, Caddy) задайте для NEXT_PUBLIC_BASE_URL стабильный публичный URL (например, https://omniroute.example.com), если обратные вызовы OAuth или генерируемые публичные ссылки должны использовать это имя хоста. Без этого обратные вызовы OAuth могут завершаться ошибкой, поскольку redirect_uri не будет совпадать, а сгенерированные публичные ссылки могут указывать на внутренний источник контейнера.

Оставьте BASE_URL в качестве внутреннего URL обратной петли/контейнера для межсерверных задач. Не используйте браузерный Origin или публичное имя хоста для внутренних самозапросов, содержащих учётные данные.

Для аутентифицированных операций записи из панели управления статический публичный базовый URL не требуется: панель управления отправляет небезопасные запросы в пределах одного источника с CSRF-токеном, привязанным к сеансу. OmniRoute по-прежнему централизованно проверяет публичный источник для браузерных интеграций вне панели управления: сначала доверенными считаются явно заданные переменные окружения публичного URL; необработанные заголовки Forwarded / X-Forwarded-* игнорируются, если только не включена переменная OMNIROUTE_TRUST_PROXY и непосредственный прокси-узел не помечен токеном как доверенный. Не используйте настройки CORS для исправления запросов панели управления в пределах одного источника; CORS предназначен только для браузерных клиентов, работающих из других источников.


Направляйте вызовы к вышестоящим поставщикам LLM через прокси HTTP или SOCKS5 для управления исходящим трафиком, геомаршрутизации или маскировки IP-адреса.

Переменная Значение по умолчанию Исходный файл Описание
ENABLE_SOCKS5_PROXY true open-sse/executors Включает прокси-агент SOCKS5 для вышестоящих вызовов. Чтобы отказаться от его использования, задайте false.
NEXT_PUBLIC_ENABLE_SOCKS5_PROXY true На стороне клиента Информирует клиентскую часть о доступности SOCKS5.
PROXY_SKIP_RECENTLY_FAILED false src/shared/utils/featureFlags.ts Опциональный флаг функции (см. FEATURE_FLAGS.md; переопределение из БД панели управления имеет приоритет). Пулы прокси и ротация для отдельных аккаунтов временно прекращают повторно назначать прокси, который только что завершился ошибкой (отклонённая проверка TCP или ответ 429 при работе через него); этот период удваивается при каждом повторе вплоть до предельного значения. Значение true (или 1, yes) включает эту функцию.
HTTP_PROXY (не задано) Стандарт Node.js HTTP-прокси для вышестоящих вызовов.
HTTPS_PROXY (не задано) Стандарт Node.js HTTPS-прокси для вышестоящих вызовов.
ALL_PROXY (не задано) Стандарт Node.js Универсальный прокси (поддерживает socks5://).
OMNIROUTE_PROXY_ECHO_URL (не задано) src/lib/proxyEchoTarget.ts Закрепляет целевой URL для определения внешнего IP-адреса, используемый при проверке исходящего прокси-трафика. Если переменная не задана, проверка сначала обращается к api64.ipify.org, а затем к api4.ipify.org, чтобы туннели только с IPv4 не считались неработающими (#9694).
NO_PROXY (не задано) Стандарт Node.js Разделённые запятыми имена хостов/IP-адреса, для которых прокси следует обходить.
OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS 32 open-sse/utils/proxyDispatcher.ts Максимальное количество одновременных сокетов для каждого кэшированного диспетчера HTTP/SOCKS-прокси. Долгоживущим потокам SSE, таким как Codex /v1/responses, требуется более одного соединения, когда несколько запросов используют один и тот же прокси на уровне аккаунта. Значения выше 256 ограничиваются этим пределом.
SOCKS_HANDSHAKE_TIMEOUT_MS 10000 open-sse/utils/socksConnectorWithFamily.ts Тайм-аут установления соединения (рукопожатия) SOCKS5 в мс. Увеличьте его, если один хост резидентного шлюза испытывает высокую параллельную нагрузку (например, 100 одновременных запросов): в перегруженном пуле реальное рукопожатие может длиться более 10 с, даже если прокси доступен, что в противном случае приводит к ложной ошибке [Proxy Fast-Fail] Proxy unreachable. Максимальное значение — 120000.
PROXY_FAIL_OPEN false src/sse/handlers/chatHelpers.ts Если задано false (по умолчанию), запрос, назначенный прокси которого не удаётся разрешить, отклоняется (fail-closed) вместо переключения на прямое соединение — это предотвращает утечки реального IP-адреса. Задайте true, чтобы восстановить прежний резервный режим DIRECT.
ENABLE_TLS_FINGERPRINT false open-sse/executors Подмена TLS-отпечатка с помощью wreq-js (имитирует Chrome 124). Позволяет обходить блокировки JA3/JA4.
TLS_FINGERPRINT_PROVIDERS (не задано) open-sse/utils/proxyFetch.ts Разделённый запятыми список разрешённых провайдеров для новой маршрутизации TLS через прокси (open-sse/utils/proxyFetch.ts). Если значение не задано, прямое TLS-подключение сохраняет прежнее поведение; только указанные провайдеры используют мост с отпечатком Chrome 124.
OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS false open-sse/services/claudeTurnstileSolver.ts Разрешить браузерному контексту Claude Turnstile Playwright игнорировать ошибки сертификатов HTTPS.
Сценарий Конфигурация
SOCKS5 через SSH-туннель ALL_PROXY=socks5://127.0.0.1:7890, ENABLE_SOCKS5_PROXY=true
Корпоративный HTTP-прокси HTTP_PROXY=http://proxy.corp.com:3128, HTTPS_PROXY=http://proxy.corp.com:3128, NO_PROXY=localhost,internal.corp.com
Защита от снятия отпечатка ENABLE_TLS_FINGERPRINT=true — требуется wreq-js (входит в комплект)
Контролируемый исходящий трафик / без прямого доступа Оставьте PROXY_FAIL_OPEN=false (по умолчанию). Если прокси недоступен, запросы завершаются с ошибкой вместо утечки через прямое подключение.
Устаревший режим / разработка — разрешить прямое резервное подключение PROXY_FAIL_OPEN=true. Восстанавливает поведение до усиления защиты: если не удаётся определить прокси, используется прямое подключение.

Примечание (обход проверки NVIDIA — #3226): Конечная точка проверки API-ключа NVIDIA зависает при маршрутизации через глобальный прокси или модифицированный TLS-вызов fetch (диспетчер undici → 504). src/lib/providers/validation.ts::directHttpsRequest() намеренно обходит модификацию прокси для этого единственного вызова проверки с помощью safeOutboundFetch({ bypassProxyPatch: true }). Это документированное и ограниченное исключение — оно не влияет на исходящий трафик чата или статистики использования. Область действия обхода закреплена тестом tests/unit/proxy-bypass-scope-guard-3226.test.ts.


9. Интеграция инструментов командной строки

Заголовок раздела «9. Интеграция инструментов командной строки»

Управляет тем, как OmniRoute обнаруживает и запускает вспомогательные процессы командной строки (Claude Code, Codex и т. д.).

Переменная Значение по умолчанию Исходный файл Описание
CLI_MODE auto src/shared/services/cliRuntime.ts auto = искать в системной переменной PATH; manual = использовать только явно указанные пути.
CLI_EXTRA_PATHS (не задано) src/shared/services/cliRuntime.ts Дополнительные записи PATH для поиска исполняемых файлов CLI (разделённые двоеточиями).
CLI_CONFIG_HOME (не задано) src/shared/services/cliRuntime.ts Переопределяет домашний каталог для чтения конфигураций CLI (~/.claude, ~/.codex). Путь должен быть абсолютным и находиться внутри домашнего каталога процесса — либо, в контейнере, быть путём, подключённым через bind mount (именно так работает /host-home). Во всех остальных случаях используется домашний каталог.
CLI_ALLOW_CONFIG_WRITES true src/shared/services/cliRuntime.ts Разрешает OmniRoute записывать файлы конфигурации CLI (обновление токена, данные сеанса). Установите значение false, чтобы каждая попытка записи конфигурации CLI завершалась явной ошибкой «запись отключена».
CLI_CLAUDE_BIN claude src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу Claude CLI.
CLI_CODEX_BIN codex src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу Codex CLI.
CLI_DROID_BIN droid src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу Droid CLI.
CLI_OPENCLAW_BIN openclaw src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу OpenClaw CLI.
CLI_CURSOR_BIN agent, затем cursor src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу агента Cursor. Если он не указан, при обнаружении сначала используется agent, а при неудаче — cursor.
CLI_CLINE_BIN cline src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу Cline CLI.
CLI_5DIVE_BIN 5dive src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу 5dive CLI.
CLI_5DIVE_STATE_DIR /var/lib/5dive src/shared/services/cliRuntime.ts Системный каталог состояния 5dive (принадлежащие пользователю root профили аутентификации); соответствует собственному значению STATE_DIR по умолчанию в 5dive.
CLI_CONTINUE_BIN cn src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу Continue CLI.
CLI_QODER_BIN qodercli src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу Qoder CLI.
CLI_QWEN_BIN qwen src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу Qwen Code CLI.
CLI_AIDER_BIN aider src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу Aider CLI.
CLI_GOOSE_BIN goose src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу Goose CLI.
CLI_GEMINI_BIN gemini src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу Google Gemini CLI — используется только для серверного обнаружения и проверок работоспособности; omniroute run gemini находит исполняемый файл gemini через системную переменную PATH.
CLI_KILO_BIN kilocode src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу Kilo Code CLI.
CLI_OPENCODE_BIN opencode src/shared/services/cliRuntime.ts Пользовательский путь к исполняемому файлу OpenCode CLI.
CLI_HERMES_BIN hermes src/shared/services/cliRuntime.ts Пользовательский путь к бинарному файлу Hermes. Общий для обеих записей каталога (hermes и hermes-agent).
CLI_FORGE_BIN forge src/shared/services/cliRuntime.ts Пользовательский путь к бинарному файлу ForgeCode CLI.
CLI_JCODE_BIN jcode src/shared/services/cliRuntime.ts Пользовательский путь к бинарному файлу jcode CLI.
CLI_DEEPSEEK_TUI_BIN deepseek-tui src/shared/services/cliRuntime.ts Пользовательский путь к бинарному файлу DeepSeek TUI.
CLI_CODEWHALE_BIN codewhale src/shared/services/cliRuntime.ts Пользовательский путь к бинарному файлу CodeWhale CLI.
CLI_SMELT_BIN smelt src/shared/services/cliRuntime.ts Пользовательский путь к бинарному файлу Smelt CLI.
CLI_PI_BIN pi src/shared/services/cliRuntime.ts Пользовательский путь к бинарному файлу Pi (pi-coding-agent).
CLI_CRUSH_BIN crush src/shared/services/cliRuntime.ts Пользовательский путь к бинарному файлу Crush CLI.
CLI_OMP_BIN omp src/shared/services/cliRuntime.ts Пользовательский путь к бинарному файлу агента Oh My Pi (omp).
CLI_LETTA_BIN letta src/shared/services/cliRuntime.ts Пользовательский путь к бинарному файлу Letta CLI.
CLI_PRIME_AGENT_BIN prime-agent src/shared/services/cliRuntime.ts Пользовательский путь к бинарному файлу Prime Agent (Prime Intellect).
CLI_WINDSURF_BIN (нет) src/shared/services/cliRuntime.ts Пользовательский путь к бинарному файлу Windsurf. Windsurf поставляется без команды по умолчанию — обнаружение бинарного файла остаётся отключённым, пока не задано это значение.
CLI_DEVIN_BIN devin open-sse/executors/devin-cli.ts Пользовательский путь к бинарному файлу Devin CLI (v3.8.0). Используется исполнителем Windsurf/Devin.
DEVIN_DESKTOP_VERSION 3.6.27 open-sse/executors/devin-desktop.ts Значение ide_version для Devin Desktop. Переопределения должны иметь формат x.y.z; при недопустимых значениях используется проверенное значение по умолчанию.
DEVIN_DESKTOP_EXTENSION_VERSION 1.48.2 open-sse/executors/devin-desktop.ts Версия встроенного расширения Codeium/языкового сервера (extension_version), отличная от ide_version Desktop. Переопределения должны иметь формат x.y.z; при недопустимых значениях используется встроенное значение по умолчанию.
CLI_DEVIN_AGENTIC_BIN devin open-sse/executors/devin-cli-agentic.ts Переопределение Devin CLI только для агентного моста. Исполнитель принимает только локальный вышестоящий ACP-процесс через stdio.
DEVIN_AGENTIC_HOME (обязательно) open-sse/executors/devin-cli-agentic.ts Абсолютный путь к изолированному домашнему каталогу агентного подпроцесса Devin; допустимые пути моста — /home/bridge и локальные для задачи пути .sandbox (в Windows — C:\...\.sandbox\...).
DEVIN_AGENTIC_ACP_TIMEOUT_MS 120000 open-sse/executors/devin-cli-agentic.ts Максимальная продолжительность одного хода Devin ACP, после которой мост завершает дочерний процесс и возвращает явное сообщение о тайм-ауте.
DEVIN_BRIDGE_MODEL devin-cli-agentic/swe-1-7 docker/devin-bridge/compose.yml Основной псевдоним модели Claude Code для изолированного моста. Рабочая тестовая среда заменяет пример моделью, возвращаемой текущей учётной записью Devin.
DEVIN_BRIDGE_SONNET_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Псевдоним изолированного моста, используемый, когда Claude Code запрашивает модель Sonnet по умолчанию.
DEVIN_BRIDGE_OPUS_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Псевдоним изолированного моста, используемый, когда Claude Code запрашивает модель Opus по умолчанию.
DEVIN_BRIDGE_HAIKU_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Псевдоним изолированного моста, используемый, когда Claude Code запрашивает модель Haiku по умолчанию.
DEVIN_BRIDGE_SUBAGENT_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Псевдоним изолированного моста, используемый для субагентов Claude Code.
DEVIN_SEAT_API_URL https://server.codeium.com open-sse/services/usage/devinCli.ts Необязательное переопределение API управления лицензиями Codeium, используемого для квоты Devin CLI (GetUserStatus).
AUGGIE_BIN auggie open-sse/executors/auggie.ts Переопределение абсолютного пути к исполняемому файлу Augment (Auggie) CLI, используемому локальным провайдером auggie. Если не задано, используется CLI_AUGGIE_BIN, а затем выполняется поиск в PATH.
CLI_AUGGIE_BIN auggie open-sse/executors/auggie.ts Альтернативное переопределение пути к исполняемому файлу Augment (Auggie) CLI (проверяется после AUGGIE_BIN).
ZCODE_BIN zcode open-sse/executors/zcode.ts Исполняемый файл, используемый stdio-клиентом локального провайдера zcode. Если не задан, используется zcode из PATH.
ZCODE_ARGS — open-sse/executors/zcode.ts JSON-массив (≤16 строк) дополнительных аргументов, передаваемых исполняемому файлу zcode при запуске через cliTools.
ZCODE_CWD process.cwd() open-sse/executors/zcode.ts Рабочий каталог подпроцесса сервера приложений ZCode.
ZCODE_PROVIDER_ID builtin:zai-coding-plan open-sse/executors/zcode.ts Переопределение идентификатора провайдера, отправляемого серверу приложений.
ZCODE_SERVER_RUNTIME_ROOT ~/.zcode/server open-sse/executors/zcode.ts Корневой каталог среды выполнения сервера приложений ZCode (в котором находятся встроенные node и zcode-server.cjs).
ZCODE_SERVER_NODE &lt;runtimeRoot&gt;/node open-sse/executors/zcode.ts Исполняемый файл Node, используемый для запуска сервера приложений ZCode.
ZCODE_SERVER_ENTRY &lt;runtimeRoot&gt;/zcode-server.cjs open-sse/executors/zcode.ts Входной скрипт сервера приложений, используемый для запуска сервера ZCode.
ZCODE_STARTUP_TIMEOUT_MS 10000 open-sse/executors/zcode.ts Тайм-аут запуска (мс), после которого запуск сервера приложений ZCode считается неудачным.
ZCODE_RPC_TIMEOUT_MS 30000 open-sse/executors/zcode.ts Тайм-аут RPC для каждого запроса (мс) к серверу приложений ZCode.
ZCODE_TURN_TIMEOUT_MS 120000 open-sse/executors/zcode.ts Максимальная длительность (мс) одного цикла ZCode, после которой супервизор прерывает его по тайм-ауту.
ZCODE_POLL_INTERVAL_MS 250 open-sse/executors/zcode.ts Интервал опроса (мс) для проверки завершения цикла ZCode.
HERMES_HOME ~/.hermes src/lib/cli-helper/config-generator/hermesHome.ts Домашний каталог Hermes Agent, в котором OmniRoute читает и записывает конфигурацию Hermes CLI. Соответствует переменной среды, задаваемой установщиком Hermes PowerShell в Windows (%LOCALAPPDATA%\hermes).

Автоматическая синхронизация профилей CLI

Заголовок раздела «Автоматическая синхронизация профилей CLI»

Эти флаги функций включаются явно и по умолчанию отключены. Их также можно переключать на панели управления CLI Code.

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES false src/shared/constants/featureFlagDefinitions.ts После синхронизации моделей провайдера автоматически перезаписывает файлы профилей ~/.codex/*.config.toml из актуального каталога. Требуется CLI_ALLOW_CONFIG_WRITES; активная конфигурация Codex или конфигурация Codex по умолчанию, данные аутентификации, настройки Codex-lb и выбор провайдера никогда не изменяются.
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES false src/shared/constants/featureFlagDefinitions.ts После синхронизации моделей провайдера автоматически перезаписывает файлы профилей Claude Code ~/.claude/profiles/&lt;name&gt;/settings.json из актуального каталога. Требуется CLI_ALLOW_CONFIG_WRITES; активная конфигурация Claude или конфигурация Claude по умолчанию, данные аутентификации и выбор провайдера никогда не изменяются.
Окно терминала
# Подключите исполняемые файлы хоста к контейнеру и укажите OmniRoute их расположение:
CLI_EXTRA_PATHS=/host-cli/bin
CLI_CONFIG_HOME=/host-home
CLI_ALLOW_CONFIG_WRITES=true
CLI_CLAUDE_BIN=/host-cli/bin/claude

CLI_CONFIG_HOME действует только тогда, когда путь действительно смонтирован с хоста через bind mount — используйте его вместе с монтированием наподобие ~/.codex:/host-home/.codex:rw (см. профиль host в docker-compose.yml). Путь, который не находится ни в домашнем каталоге пользователя контейнера, ни в bind mount, игнорируется, поскольку записанные туда данные будут потеряны при пересоздании контейнера.

Образ запускается от имени USER node, поэтому несмонтированный /root не является допустимым переопределением.

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_CONTAINER (авто) src/shared/utils/containerEnv.ts Принудительно включить (1/true) или отключить (0/false) обнаружение контейнера. Требуется только в средах выполнения, которые не распознаются автоматически.
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE false src/shared/services/cliRuntime.ts Разрешить запись конфигурации CLI-инструмента в несмонтированный путь контейнера. Эквивалент для CLI — --allow-container-write.

Вспомогательные средства двоичного файла CLI (omniroute)

Заголовок раздела «Вспомогательные средства двоичного файла CLI (omniroute)»

Эти переменные настраивают поведение самого двоичного файла CLI omniroute (а не описанное выше обнаружение sidecar-контейнера).

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_LANG (системное) bin/cli/i18n.mjs Принудительно задать язык вывода CLI. Локаль BCP-47 (например, en, pt-BR). Переопределяет системные переменные среды локали (LC_ALL, LC_MESSAGES).
OMNIROUTE_SHOW_LOG (не задано) bin/cli/runtime/processSupervisor.mjs Установите 1, чтобы перенаправлять stdout/stderr сервера в терминал в контролируемом режиме. Эквивалентно флагу --log команды omniroute serve.
OMNIROUTE_CLI_TOKEN (не задано) bin/cli/api.mjs Токен машинной аутентификации, передаваемый в заголовке x-omniroute-cli-token. Автоматически создаётся в задаче 8.12.
OMNIROUTE_HTTP_TIMEOUT_MS 30000 bin/cli/api.mjs Тайм-аут HTTP для каждой попытки (мс) при запросах CLI → сервер.
OMNIROUTE_READY_TIMEOUT_MS 60000 bin/cli/utils/pid.mjs Максимальное время (мс), в течение которого CLI ожидает ответа от конечной точки проверки работоспособности сервера, прежде чем вывести предупреждение о тайм-ауте. Полезно при медленном холодном запуске (например, в Windows). Также можно задать с помощью --ready-timeout.
OMNIROUTE_VERBOSE 0 bin/cli/api.mjs Установите 1, чтобы во время выполнения команд CLI выводить в stderr диагностические сведения о повторных попытках и задержках между ними.
OMNIROUTE_PLUGIN_PATH (не задано) bin/cli/plugins.mjs Пользовательский каталог для обнаружения плагинов CLI (пакетов omniroute-cmd-*). Если не задан, по умолчанию используется ~/.omniroute/plugins/. Только для CLI — эта переменная никогда не передаётся серверному сканеру плагинов, путь для которого задаётся через OMNIROUTE_PLUGINS_DIR (раздел 2).

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_BASE_URL автоопределение open-sse/mcp-server/server.ts Явный URL-адрес, по которому инструменты MCP/A2A обращаются к OmniRoute. Переопределяет автоопределение localhost.
OMNIROUTE_API_KEY (не задано) Модули MCP/A2A API-ключ для вызовов внутреннего инструмента MCP и навыков A2A.
OMNIROUTE_API_KEY_ID (не задано) open-sse/mcp-server/audit.ts Идентификатор ключа для атрибуции записей журнала аудита MCP.
ROUTER_API_KEY (не задано) Устаревшее Устаревший псевдоним для OMNIROUTE_API_KEY.
OMNIROUTE_A2A_HISTORY_RETENTION_DAYS 30 src/lib/a2a/taskManager.ts Количество дней, в течение которых история задач A2A хранится в локальной базе данных до удаления записи при ежедневной очистке. Если значение не задано, не является числом или <= 0, используется 30.
OMNIROUTE_A2A_MEMORY_HITS 1 src/lib/a2a/taskExecution.ts Аварийный выключатель функции наблюдаемости обращений к памяти A2A. Установите 0, чтобы полностью пропустить поиск по памяти для задачи; любое другое значение (включая незаданное) оставляет функцию включённой.
OMNIROUTE_ISSUE_AGENT_ENABLED false src/app/api/issue-agent/runs/route.ts Включает локальную автономную конечную точку записанной сортировки Issue Agent. Оставляйте отключённой, если локальные процессы записанной сортировки не запускаются явно.
OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS (не задано) src/lib/issueAgent/execution.ts Время ожидания (мс) одного запуска записанной сортировки Issue Agent. Ограничивается внутренним максимумом; если значение не задано или недопустимо, используется встроенное значение по умолчанию.
OMNIROUTE_CONTEXT (активный контекст) bin/cli/program.mjs, bin/cli/api.mjs Контекст/профиль удалённого режима CLI для команд omniroute; переопределяет активный контекст в локальном хранилище контекстов. Эквивалентно --context &lt;name&gt;.
OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED 0 bin/cli/contexts.mjs Отключает необязательный бэкенд системной связки ключей keytar для учётных данных контекста CLI. Когда параметр включён, учётные данные остаются в config.json с режимом 0600, а CLI однократно выводит предупреждение о переходе на резервный механизм; предназначено для намеренного использования без графического интерфейса или в контейнере.
OMNIROUTE_MCP_ENFORCE_SCOPES false open-sse/mcp-server/server.ts Обеспечивает контроль доступа к вызовам инструментов MCP на основе областей доступа.
OMNIROUTE_MCP_SCOPES (все) open-sse/mcp-server/server.ts Области доступа, разделённые запятыми: admin, combos, health, models, routing, budget, metrics, pricing, memory, skills.
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS false open-sse/mcp-server/descriptionCompressor.ts Сжимает описания инструментов MCP перед сериализацией манифеста. Значения для включения: 1, true, on.
OMNIROUTE_MCP_DESCRIPTION_COMPRESSION rtk open-sse/mcp-server/descriptionCompressor.ts Алгоритм/профиль сжатия. Значения для отключения: 0, false, off.
OMNIROUTE_MCP_FETCH_TIMEOUT_MS 10000 open-sse/mcp-server/fetchTimeout.ts Лимит времени (мс) до прерывания внутренних управляющих запросов MCP-сервера (состояние, отказоустойчивость, комбинации, квота, использование).
OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS 60000 open-sse/mcp-server/fetchTimeout.ts Лимит времени ожидания (мс) для переходов MCP, ожидающих ответа от провайдера (route_request, web_search, web_fetch).
OMNIROUTE_CORPUS_CACHE_SIZE 5 src/lib/localCorpus/configured.ts Максимальное количество экземпляров индекса локального корпуса, кэшируемых в памяти (LRU, по одному на каждый проиндексированный корневой каталог). Минимальное значение ограничено 1.
MODEL_SYNC_INTERVAL_HOURS 24 src/shared/services/modelSyncScheduler.ts Интервал синхронизации каталога моделей в часах.
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES 70 src/lib/usage/providerLimits.ts Интервал опроса ограничений частоты запросов и квот провайдера.
PROVIDER_LIMITS_SYNC_SPACING_MS 1500 src/lib/usage/providerLimits.ts Интервал (мс) между последовательными запросами квот OAuth при массовой синхронизации; OAuth-подключения опрашиваются по одному, чтобы избежать всплеска нагрузки на вышестоящий сервис. Значение 0 отключает интервал (запросы выполняются параллельно).
OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS 250 open-sse/services/quotaFetchThrottle.ts Минимальный интервал (мс) между последовательными запросами квот к вышестоящему сервису на пути предварительной проверки/мониторинга для каждого запроса; распределяет параллельные сетевые вызовы во времени, чтобы множество учётных записей с одного IP-адреса не создавали всплеск нагрузки на вышестоящий сервис. Используется в механизмах получения квот Codex (/wham/usage), DeepSeek, Bailian (в обоих местах получения), OpenCode и Crof (#6009, #6911). Общий путь диспетчеризации usage.ts::getUsageForProvider (github/glm/minimax/nanogpt/xai/etc.) пока не охвачен — отслеживается отдельно. Попадания в кэш не затрагиваются. 0 отключает функцию; значение ограничено диапазоном 0..5000.
PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS 5000 src/lib/usage/providerLimits.ts Задержка (мс) перед обновлением лимитов провайдера после фактического использования, чтобы API квот вышестоящего сервиса успел зарегистрировать потребление.
OMNIROUTE_LOGIN_BROWSER_PATH автоопределение open-sse/services/adobeFireflyBrowserLogin.ts Абсолютный путь к системному исполняемому файлу Chrome или Edge, используемому для интерактивного входа в Adobe Firefly и фонового продления сеанса.
ADOBE_FIREFLY_BROWSER_REFRESH включено open-sse/services/adobeFireflySession.ts Поддерживает актуальность IMS и состояния браузерных рисков с помощью сеансов Chrome CDP, привязанных к учётной записи. Установите значение 0, чтобы отключить продление через браузер.
ADOBE_FIREFLY_SESSION_DISK включено open-sse/services/adobeFireflySession.ts Сохраняет восстановленные сеансы Adobe в DATA_DIR между перезапусками процесса. Установите значение 0, чтобы хранить сеансы только в памяти.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Минимальный интервал в миллисекундах между отправками запросов на генерацию Adobe Firefly; 0 отключает интервал.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Дополнительный период бездействия в миллисекундах после каждой третьей успешной отправки запроса Adobe.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyClient.ts Базовая задержка повторной попытки в миллисекундах после временных ответов Adobe 408; применяется вместе с интервалом между отправками в рамках не более пяти попыток.
OMNIROUTE_DISABLE_BACKGROUND_SERVICES false src/instrumentation-node.ts Отключает все фоновые службы (синхронизацию, ценообразование, обновление моделей). Полезно для CI/тестирования.
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS (не задано) src/lib/config/runtimeSettings.ts Принудительно включает фоновые задачи при обнаружении автоматизированного тестирования. Установите 1, чтобы переопределить тестовую эвристику.
OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS 600000 src/lib/jobs/budgetResetJob.ts Периодичность проверки сброса бюджета (мс). Минимальное значение — 10000.
OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS 60000 src/lib/quota/connectionRecovery.ts Интервал упреждающего восстановления подключений после периода ожидания (мс): повторно проверяет подключения, у которых истёк временный срок rate_limited_until, вне горячего пути обработки запросов. Минимум — 5000.
OMNIROUTE_DISABLE_CONNECTION_RECOVERY false src/lib/quota/connectionRecovery.ts Отключает планировщик упреждающего восстановления подключений после периода ожидания (ленивое восстановление в getProviderCredentials продолжает действовать).
OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS 1800000 src/lib/jobs/reasoningCacheCleanupJob.ts Интервал очистки кеша рассуждений (мс). Минимум — 60000.
OMNIROUTE_REASONING_MIN_BUDGET не задано (отключено) open-sse/services/reasoningTokenBuffer.ts Необязательный нижний предел бюджета вывода для моделей с рассуждениями: заданное вызывающей стороной значение max_tokens в диапазоне [256, floor) повышается до нижнего предела (с ограничением по максимальному объёму вывода модели). Не задано = клиентские бюджеты никогда не увеличиваются (#9507).
OMNIROUTE_LOG_EXPORT_CRON 0 * * * * src/lib/jobs/logExportJob.ts Cron-выражение (UTC) для задания экспорта журналов вызовов, которое обрабатывает каждое включённое место назначения экспорта журналов.
OMNIROUTE_CONFIG_HOT_RELOAD_MS 5000 src/lib/config/hotReload.ts Интервал опроса (мс) для горячей перезагрузки конфигурации. Значение меньше 1000 отклоняется.
OMNIROUTE_DISABLE_REDIS_AUTH_CACHE (включено) src/lib/db/apiKeys.ts Установите 1, чтобы обойти кеш аутентификации API-ключей на базе Redis (принудительно выполняются чтения из БД).
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS 0 open-sse/services/compression/engines/rtk/filterLoader.ts Доверять управляемым пользователями правилам фильтрации проектов RTK без строгих проверок подписей.
OMNIROUTE_LITE_MAX_TOOL_LENGTH 2000 open-sse/services/compression/lite.ts Ограничение количества символов для упреждающего усечения результатов инструментов Lite, когда lite.maxToolLength не задано. Диапазон: 256–1000000. Настройка панели управления имеет приоритет над этой переменной окружения.
OMNI_COMPRESSION_WORKERS 2 open-sse/services/compression/compressionWorkerPool.ts Максимальное количество одновременно работающих синхронных обработчиков RTK/Caveman; избыточные задания ожидают в порядке FIFO.
OMNI_COMPRESSION_WORKER_TIMEOUT_MS 120000 open-sse/services/compression/compressionWorkerPool.ts Тайм-аут каждого задания в миллисекундах. Обработчики, превысившие тайм-аут, завершаются, а запрос при ошибке остаётся без изменений.
OMNI_COMPRESSION_WORKER_IDLE_MS 60000 open-sse/services/compression/compressionWorkerPool.ts Время простоя в миллисекундах, по истечении которого неиспользуемый обработчик сжатия завершается.
COMPRESSION_PIPELINE_BREAKER_ENABLED false open-sse/services/compression/pipelineEngineBreaker.ts Главный переключатель автоматического выключателя для каждого движка составного конвейера T02. Включается явно (по умолчанию отключён) — когда он включён, движок, неоднократно вызывающий исключения в разных запросах, пропускается (отказ без последствий) на время ожидания; отключён = побайтово идентичное прежнее поведение.
COMPRESSION_PIPELINE_BREAKER_THRESHOLD 3 open-sse/services/compression/pipelineEngineBreaker.ts Количество последовательных сбоев в разных запросах, после которого автоматический выключатель движка размыкается.
COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS 30000 open-sse/services/compression/pipelineEngineBreaker.ts Время в миллисекундах, в течение которого разомкнутый движок пропускается до пробного запуска в полуоткрытом состоянии.
COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR 2 open-sse/services/compression/engines/ccr/index.ts Нарастание обратной связи по извлечениям T08/H8 CCR: каждое предыдущее извлечение сохранённого блока линейно повышает его эффективное значение minChars (часто извлекаемое содержимое сжимается меньше; >=3 извлечений = никогда не сжимается). 1 отключает нарастание (только двоичный пропуск при достижении порога).
COMPRESSION_CCR_DURABLE_STORE true open-sse/services/compression/engines/ccr/index.ts Постоянное хранилище блоков CCR (#9061). Дополняет хранилище в памяти базой SQLite, чтобы блок сохранялся после вытеснения из LRU, истечения TTL, перезапуска или выполнения запроса получения другим экземпляром. Установите false, чтобы хранить блоки только в памяти. Блоки размером более 512 КБ и облачные среды выполнения в любом случае используют только память.
COMPRESSION_PREFIX_FREEZE_ENABLED false open-sse/services/compression/prefixFreeze.ts Главный переключатель заморозки префиксов T08/H5 на основе наблюдаемого использования. Включается явно (по умолчанию отключён) — если включён, системная подсказка, наблюдавшаяся >= порогового числа раз, считается стабильным кэшируемым префиксом и не подвергается сжатию даже для провайдеров, не распознанных статической эвристикой кэширования (заморозка только сохраняет, но никогда не изменяет).
COMPRESSION_PREFIX_FREEZE_THRESHOLD 3 open-sse/services/compression/prefixFreeze.ts Количество наблюдений системной подсказки, после которого она считается замороженным стабильным префиксом.
OMNIROUTE_BOOTSTRAPPED false src/app/(dashboard)/dashboard/page.tsx Устанавливается в true скриптом начальной настройки после её завершения. Управляет видимостью мастера настройки.
OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE 0 open-sse/executors/antigravity.ts Аварийный переключатель: разрешает телу запроса переопределять поле проекта Antigravity.
ANTIGRAVITY_CREDITS off open-sse/services/antigravityCredits.ts Политика использования кредитов Google One AI: off — никогда не добавлять кредиты, retry — добавить один раз после соответствующей ошибки квоты 429, а always — добавить при первом запросе.
ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS 0 open-sse/translator/request/openai-to-gemini.ts Разрешает транслятору запросов Antigravity пропускать строгую проверку подписи CLI-запроса, когда вышестоящий сервис отклоняет настоящие подписи (режим отладки или устаревшего CLI). Ненулевое значение включает обход проверки.
AGY_TOKEN_FILE ~/.gemini/antigravity-cli/antigravity-oauth-token src/app/api/providers/agy-auth/apply-local/route.ts Переопределяет путь к файлу токена Antigravity CLI (agy) для автоматического обнаружения и импорта локального входа.
Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_SERVER автоопределение src/lib/oauth/config/index.ts URL сервера для моста аутентификации CLI↔OmniRoute.
OMNIROUTE_TOKEN (не задано) src/lib/oauth/config/index.ts Токен аутентификации для моста CLI.
OMNIROUTE_USER_ID cli src/lib/oauth/config/index.ts Идентификатор пользователя для сеансов моста CLI.
SERVER_URL (не задано) src/lib/oauth/config/index.ts Устаревший псевдоним для OMNIROUTE_SERVER.
CLI_TOKEN (не задано) src/lib/oauth/config/index.ts Устаревший псевдоним для OMNIROUTE_TOKEN.
CLI_USER_ID (не задано) src/lib/oauth/config/index.ts Устаревший псевдоним для OMNIROUTE_USER_ID.

Встроенные учетные данные для разработки на localhost. Для удаленного развертывания зарегистрируйте свои собственные приложения в консоли разработчика каждого провайдера.

Переменная Провайдер Примечания
CLAUDE_OAUTH_CLIENT_ID Claude Code (Anthropic) Публичный клиент — секрет не требуется.
CLAUDE_CODE_REDIRECT_URI Claude Code Переопределение redirect URI. По умолчанию: https://platform.claude.com/oauth/code/callback
CODEX_OAUTH_CLIENT_ID Codex / OpenAI Публичный клиент.
GEMINI_OAUTH_CLIENT_ID Gemini (Google) Требуется соответствующий _SECRET.
GEMINI_OAUTH_CLIENT_SECRET Gemini (Google) —
KIMI_CODING_OAUTH_CLIENT_ID Kimi Coding (Moonshot) Публичный клиент.
MUSE_CODE_OAUTH_CLIENT_ID Muse Code (Meta) Необязательное переопределение публичного client id для Muse CLI device-flow. Оставьте пустым, чтобы использовать встроенный публичный клиент.
ANTIGRAVITY_OAUTH_CLIENT_ID Antigravity (Google) Требуется соответствующий _SECRET.
ANTIGRAVITY_OAUTH_CLIENT_SECRET Antigravity (Google) —
GITHUB_OAUTH_CLIENT_ID GitHub Copilot Публичный клиент.
GHE_COPILOT_OAUTH_CLIENT_ID GHE Copilot Необязательное переопределение OAuth client id для GitHub Enterprise Copilot. Если не задано, используется значение по умолчанию из GITHUB_OAUTH_CLIENT_ID.
COPILOT_INTEGRATION_ID GitHub Copilot Необязательное переопределение ID интеграции клиента GitHub Copilot, отправляемого в заголовках Copilot-Integration-Id и Editor-Plugin-Version. По умолчанию: copilot-developer-cli.
WINDSURF_API_KEY Windsurf / Devin (v3.8) Резервный API-ключ, используемый open-sse/executors/devin-cli.ts, когда учетные данные для конкретного соединения недоступны. Необязательно.
CLI_DEVIN_BIN Devin CLI (v3.8) Пользовательский путь к бинарному файлу Devin CLI (devin). Разрешается через open-sse/executors/devin-cli.ts.
GITLAB_DUO_OAUTH_CLIENT_ID GitLab Duo (v3.8) OAuth client ID для GitLab Duo. Зарегистрируйте приложение на https://gitlab.com/-/profile/applications с redirect URI <NEXT_PUBLIC_BASE_URL>/callback и областями доступа api, read_user, openid, profile, email. Резервный вариант: GITLAB_OAUTH_CLIENT_ID.
GITLAB_DUO_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) OAuth client secret для GitLab Duo. Необязательно — поток PKCE не требует секрета. Резервный вариант: GITLAB_OAUTH_CLIENT_SECRET.
GITLAB_DUO_BASE_URL GitLab Duo (v3.8) Переопределение базового URL GitLab (для self-hosted GitLab). По умолчанию: https://gitlab.com. Резервный вариант: GITLAB_BASE_URL.
GITLAB_BASE_URL GitLab Duo (v3.8) Устаревший запасной вариант для GITLAB_DUO_BASE_URL. Используется, когда вариант _DUO_ не установлен.
GITLAB_OAUTH_CLIENT_ID GitLab Duo (v3.8) Устаревший запасной вариант для GITLAB_DUO_OAUTH_CLIENT_ID, используемый src/lib/oauth/constants/oauth.ts.
GITLAB_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) Устаревший запасной вариант для GITLAB_DUO_OAUTH_CLIENT_SECRET, используемый src/lib/oauth/constants/oauth.ts.
QODER_OAUTH_CLIENT_SECRET Qoder —
QODER_OAUTH_AUTHORIZE_URL Qoder Установите, чтобы включить Qoder OAuth.
QODER_OAUTH_TOKEN_URL Qoder —
QODER_OAUTH_USERINFO_URL Qoder —
QODER_OAUTH_CLIENT_ID Qoder —
QODER_PERSONAL_ACCESS_TOKEN Qoder Прямой запасной ключ API (обходит OAuth).
QODER_CLI_WORKSPACE Qoder ID рабочего пространства для Qoder CLI.
OMNIROUTE_QODER_WORKSPACE Qoder Псевдоним для QODER_CLI_WORKSPACE.
QODER_CLI_CONFIG_DIR Qoder Переопределяет каталог конфигурации Qoder CLI (изолированная сессия PAT, избегает перезаписи входа через браузер).
BLACKBOX_WEB_VALIDATED_TOKEN Blackbox Web Токен tk для фронтенда, отправляемый как validated на /api/chat. Требуется, когда Blackbox принудительно применяет сопоставление токенов; в противном случае OmniRoute использует случайный UUID. См. проблему #2252.
VISION_BRIDGE_BASE_URL Защитный барьер Vision Bridge Базовый URL, совместимый с OpenAI, для вызовов vision-bridge, не относящихся к Anthropic. По умолчанию используется устаревшая переменная среды URL OpenAI или api.openai.com. Указывает на самозацикливание OmniRoute /v1 или любую конечную точку, совместимую с OpenAI (Gemini OpenAI-compat, OpenRouter). Проблема #2232. Когда URL является собственным /v1 OmniRoute, подзапрос описания отправляет x-omniroute-admission-bypass: internal и аутентифицируется с разрешенными учетными данными самозацикливания (сентинел sk_omniroute в локальном режиме или OMNIROUTE_API_KEY / ROUTER_API_KEY — #1350), чтобы развертывания с REQUIRE_API_KEY=true работали.
VISION_BRIDGE_API_KEY Защитный барьер Vision Bridge Ключ API для указанного выше URL. Переопределяет переменные среды OpenAI / Google для каждого провайдера для вызовов vision-bridge, не относящихся к Anthropic. Модели Anthropic сохраняют свой выделенный путь ключа Anthropic. Проблема #2232.
OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS Защитный барьер Vision Bridge Как долго кэшируется результат маршрутизации “нет подходящего кандидата”, в мс (по умолчанию 30000). Неверные или отрицательные значения возвращаются к значению по умолчанию; 0 отключает отрицательный кэш. Источник: src/lib/guardrails/visionBridgeRouter.ts.

[!WARNING]

  1. Перейдите в Google Cloud Console → Credentials
  2. Создайте Client ID OAuth 2.0 (тип: “Веб-приложение”)
  3. Добавьте URL вашего сервера как Authorized redirect URI
  4. Замените значения учетных данных в .env.

Переопределяет заголовок User-Agent, отправляемый каждому вышестоящему провайдеру. Значение динамически определяется во время выполнения базовым классом исполнителя:

process.env[`${PROVIDER_ID}_USER_AGENT`]

Источник: open-sse/executors/base.ts → buildHeaders()

| Переменная | Значение по умолчанию | Когда обновлять | | –––––––––––––––– | ——————————————— | ———————————————————————————————— | —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— | | CLAUDE_USER_AGENT | claude-cli/2.1.258 (external, cli) | Когда Anthropic выпускает новую версию CLI | | CLAUDE_DISABLE_TOOL_NAME_CLOAK | false | executors/base.ts + executors/cliproxyapi.ts | Установите значение 1/true, чтобы передавать Anthropic имена инструментов сторонней среды без изменений по обоим путям, ведущим к Anthropic (нативный OAuth и CLIProxyAPI). По умолчанию исполнитель детерминированно назначает псевдонимы именам инструментов, не относящихся к Claude Code (используя каноническое сопоставление Claude Code, если оно существует, иначе PascalCase), и восстанавливает их в ответе с помощью _toolNameMap, чтобы среды с инструментами в snake_case не отклонялись как идентифицированные сторонние клиенты. Только для отладки. | | CODEX_USER_AGENT | codex-cli/0.155.0 (Windows 10.0.26200; x64) | Когда OpenAI обновляет Codex CLI | | CODEX_CLIENT_VERSION | 0.155.0 | Переопределяет версию клиента Codex независимо от полной строки UA | | CLAUDE_CODE_CLIENT_VERSION | 2.1.258 | Переопределяет заявленную версию Claude Code независимо от CLAUDE_USER_AGENT. Anthropic ограничивает доступ к некоторым моделям на основе этого значения (#12417). | | GITHUB_COPILOT_CLI_VERSION | 1.0.81-6 | Переопределяет заявленную версию Copilot CLI независимо от GITHUB_USER_AGENT | | GITHUB_USER_AGENT | GitHubCopilotChat/0.54.0 | Когда обновляется GitHub Copilot Chat | | ANTIGRAVITY_USER_AGENT | antigravity/2.0.1 darwin/arm64 | Когда обновляется Antigravity IDE | | KIRO_USER_AGENT | AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 | Когда обновляется Kiro IDE | | KIRO_OAUTH_CLIENT_ID | kiro-cli | Переопределяет clientId (публичный идентификатор) для социального потока Kiro с кодом устройства | | KIRO_VERIFY_FULL_CRC | false | Опционально: полная проверка CRC каждого кадра в потоке событий Kiro (для отладки поврежденных потоков) | | QODER_USER_AGENT | Qoder-Cli | Когда обновляется Qoder CLI | | CURSOR_USER_AGENT | Cursor/3.3 | Когда обновляется Cursor |

[!TIP] Переопределение User-Agent можно добавить для любого провайдера, используя шаблон {PROVIDER_ID}_USER_AGENT. Исполнитель динамически формирует имя переменной среды.


Когда эта функция включена, OmniRoute изменяет порядок HTTP-заголовков и полей тела JSON, чтобы они в точности соответствовали сигнатуре официальных инструментов CLI. Это снижает риск пометки учетной записи, сохраняя при этом ваш прокси-IP.

Источник: open-sse/config/cliFingerprints.ts, open-sse/executors/base.ts

Переменная Активация Эффект
CLI_COMPAT_CODEX =1 Имитирует сигнатуру запросов Codex CLI
CLI_COMPAT_CLAUDE =1 Имитирует сигнатуру запросов Claude Code
CLI_COMPAT_GITHUB =1 Имитирует сигнатуру запросов GitHub Copilot
CLI_COMPAT_ANTIGRAVITY =1 Имитирует сигнатуру запросов Antigravity
CLI_COMPAT_CURSOR =1 Имитирует сигнатуру запросов Cursor
CLI_COMPAT_KIMI_CODING =1 Имитирует сигнатуру запросов Kimi Coding
CLI_COMPAT_KILOCODE =1 Имитирует сигнатуру запросов Kilo Code
CLI_COMPAT_CLINE =1 Имитирует сигнатуру запросов Cline
Переменная Активация Эффект
CLI_COMPAT_ALL =1 Включает совместимость отпечатков сразу для всех провайдеров.

Переопределение идентификационных данных Kimi Coding CLI

Заголовок раздела «Переопределение идентификационных данных Kimi Coding CLI»
Переменная Значение по умолчанию Исходный файл Описание
KIMI_CLI_VERSION 1.36.0 src/lib/oauth/providers/kimi-coding.ts Переопределяет версию Kimi CLI, отправляемую при вызовах OAuth/API.
KIMI_CODING_DEVICE_ID (полученное значение) src/lib/oauth/providers/kimi-coding.ts Переопределяет полученный идентификатор устройства Kimi в заголовках клиента.

[!NOTE] Эта функция работает совместно с переопределениями User-Agent (§12). Система отпечатков управляет порядком заголовков и полей тела, а переопределения User-Agent — конкретной строкой UA. Обе функции можно включать независимо друг от друга.


Ключи API для провайдеров, использующих прямую аутентификацию. Предпочтительный способ настройки: Панель управления → Провайдеры → Добавить ключ API.

Настройка с помощью переменных окружения является альтернативным вариантом для развертываний Docker или сред без графического интерфейса.

Распознаваемый шаблон: {PROVIDER_ID}_API_KEY

Переменная Провайдер
DEEPSEEK_API_KEY DeepSeek
NVIDIA_API_KEY NVIDIA NIM
JINA_AI_API_KEY Jina AI (Foundation API + резервный Reader)
JINA_API_KEY Jina AI (псевдоним для JINA_AI_API_KEY)
GEMINI_API_KEY Gemini (Google AI Studio), эмбеддинги + резервный чат
GOOGLE_API_KEY Gemini (псевдоним для GEMINI_API_KEY)

[!NOTE] Статические записи ${PROVIDER}_API_KEY для Groq, xAI, Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius и Qianfan были удалены в v3.8.0, поскольку среда выполнения больше их не считывает — эти провайдеры используют исключительно панель управления / data/provider-credentials.json / зашифрованную БД. Путь миграции описан в разделе Аудит: удаленные / неиспользуемые переменные в конце этого документа.

[!TIP] Ключи, заданные через панель управления, хранятся в SQLite в зашифрованном виде и имеют приоритет над переменными окружения.

Jina: эмбеддинги jina-ai/…, операции переранжирования, классификации и сегментации, а также jina-search не используют для выставления счетов ключ окружения кластера, если существует подключение jina-ai (или общее подключение jina-reader) из панели управления — getProviderCredentials сначала заполняет уже доступные данные. JINA_AI_API_KEY / JINA_API_KEY используются только при отсутствии подходящего ключа из панели управления. В журналах вызовов резервный ключ из окружения отмечается как connection_id=env:JINA_AI_API_KEY. Карточка Reader (jina-reader, r.jina.ai) никогда не обслуживает /v1/embeddings или /v1/rerank.

Gemini: gemini/gemini-embedding-2 (псевдоним google/gemini-embedding-2) в первую очередь использует подключение gemini из панели управления. GEMINI_API_KEY / GOOGLE_API_KEY используются только при отсутствии подходящего ключа из панели управления. В журналах вызовов резервный ключ из окружения отмечается как connection_id=env:GEMINI_API_KEY. Нативный мультимодальный трафик использует x-goog-api-key для :embedContent / :batchEmbedContents — N элементов OpenAI input преобразуются в N векторов.


Все значения указаны в миллисекундах. Централизованное разрешение выполняется в src/shared/utils/runtimeTimeouts.ts.

REQUEST_TIMEOUT_MS (глобальное переопределение)
├─→ FETCH_TIMEOUT_MS (вызовы внешних провайдеров, по умолчанию: 600000)
│ ├─→ FETCH_HEADERS_TIMEOUT_MS (наследуется от FETCH_TIMEOUT_MS)
│ ├─→ FETCH_BODY_TIMEOUT_MS (наследуется от FETCH_TIMEOUT_MS)
│ ├─→ TLS_CLIENT_TIMEOUT_MS (наследуется от FETCH_TIMEOUT_MS)
│ │ └── TLS_FIRST_BYTE_WATCHDOG_MS (независимый, по умолчанию: 10000)
│ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (независимый, по умолчанию: 15000)
│ ├── FETCH_CONNECT_TIMEOUT_MS (независимый, по умолчанию: 30000)
│ └── FETCH_KEEPALIVE_TIMEOUT_MS (независимый, по умолчанию: 4000)
├─→ STREAM_IDLE_TIMEOUT_MS (наследуется от REQUEST_TIMEOUT_MS, по умолчанию: 600000)
├─→ STREAM_ACTIVE_TIMEOUT_MS (независимый, по умолчанию: 1260000; 0 отключает)
├─→ STREAM_READINESS_TIMEOUT_MS (наследуется от REQUEST_TIMEOUT_MS, по умолчанию: 80000)
├─→ STREAM_READINESS_MAX_TIMEOUT_MS (ограничивает адаптивное продление ожидания готовности, по умолчанию: 180000)
└─→ API_BRIDGE_PROXY_TIMEOUT_MS (наследуется от REQUEST_TIMEOUT_MS, по умолчанию: 30000)
├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (производный, по умолчанию: 300000)
├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (по умолчанию: 60000)
├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (по умолчанию: 5000)
└── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (по умолчанию: 0 = отключено)
Переменная Значение по умолчанию Описание
REQUEST_TIMEOUT_MS (не задано) Глобальное сокращение — переопределяет значения по умолчанию для FETCH_TIMEOUT_MS и STREAM_IDLE_TIMEOUT_MS.
FETCH_TIMEOUT_MS 600000 Общий тайм-аут HTTP-запроса для вызовов вышестоящего провайдера.
STREAM_IDLE_TIMEOUT_MS 600000 Максимальное время отсутствия необработанных байтов от вышестоящего сервера до прерывания. Модели с расширенным рассуждением редко приостанавливаются более чем на 90 с.
STREAM_ACTIVE_TIMEOUT_MS 1260000 Максимальная общая продолжительность активного SSE-потока; не сбрасывается при получении байтов от вышестоящего сервера и не зависит от REQUEST_TIMEOUT_MS. Рассчитывается на основе наибольшего значения timeoutMs для каждой модели в реестре (1200000, Codex) с добавлением запаса 60000, поэтому модель, которой разрешено использовать весь свой временной бюджет, никогда не будет остановлена посреди ответа. Установите значение 0, чтобы отключить.
OMNIROUTE_SSE_COMMENTS (отключено) Определяет, может ли OmniRoute отправлять строки комментариев SSE : (например, сигнал активности : keepalive и завершающие метаданные x-omniroute-*). По умолчанию отключено (#10524), поскольку строгие OpenAI-совместимые клиенты вызывают JSON.parse для каждой строки SSE и аварийно завершаются при получении комментариев :; это не влияет на сигналы активности data:. Установите on/true/1/yes, чтобы снова включить. Используется в open-sse/utils/sseHeartbeat.ts.
STREAM_READINESS_TIMEOUT_MS 80000 Время ожидания первого SSE-события, не являющегося ping. Если задано значение REQUEST_TIMEOUT_MS, наследует его.
STREAM_READINESS_MAX_TIMEOUT_MS 180000 Максимальное адаптивное окно ожидания готовности первого события для крупных потоковых запросов, запросов с интенсивным использованием инструментов или высоким уровнем рассуждений.
OMNIROUTE_AGENT_GOAL_POLICY_ENABLED true Аварийный выключатель для эвристики /goal. Установите false/0/off, чтобы полностью отключить обнаружение — тайм-ауты готовности и восстановление потока никогда не увеличиваются на основании тела или заголовков запроса, что предотвращает управляемое клиентом увеличение тайм-аутов.
OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS 600000 Максимальное окно ожидания готовности первого события для обнаруженных запусков агента /goal или запросов, принудительно помеченных с помощью x-omniroute-agent-goal.
OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY true Автоматически включает раннее восстановление потока для обнаруженных запусков агента /goal. Установите false/0/off, чтобы отключить включение, специфичное для цели. Этот параметр может только ДОБАВЛЯТЬ восстановление поверх заданного оператором значения по умолчанию — он никогда не переопределяет явное отключение через STREAM_RECOVERY_ENABLED или настройки БД.
OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS true Удаляет нестандартные SSE-события codex.* (например, codex.rate_limits), из-за которых responses.stream() в OpenAI SDK завершается с ошибкой 502. По умолчанию ВКЛЮЧЕНО (#11014). Установите 0/false/no/off, чтобы пересылать их.
OMNIROUTE_CODEX_APPSERVER_WS (не задано) Опциональный транспорт Codex app-server. Конечная точка WebSocket (ws:///wss://) локального вспомогательного процесса codex app-server. Если задана вместе с токеном, запросы Codex направляются вспомогательному процессу по JSON-RPC вместо HTTP Responses API. Также можно задать для отдельного подключения через providerSpecificData.codexAppServerUrl. Используется в open-sse/executors/codex/appServerConfig.ts.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN (не задано) Встроенный токен возможностей или bearer-токен, передаваемый app-server. Переопределение для отдельного подключения: providerSpecificData.codexAppServerToken.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE (не задано) Путь к файлу, содержащему токен возможностей app-server (из codex app-server --ws-token-file). Используется, если OMNIROUTE_CODEX_APPSERVER_WS_TOKEN не задан. Переопределение для отдельного подключения: providerSpecificData.codexAppServerTokenFile.
OMNIROUTE_CODEX_APPSERVER_CWD /tmp Рабочий каталог, в котором выполняется итерация app-server. Переопределение для отдельного подключения: providerSpecificData.codexAppServerCwd.
OMNIROUTE_CODEX_APPSERVER_APPROVAL (не задано) Политика подтверждения, передаваемая итерации app-server (например, never, on-request). Переопределение для отдельного подключения: providerSpecificData.codexAppServerApprovalPolicy.
OMNIROUTE_CODEX_APPSERVER_SANDBOX (не задано) Политика песочницы, передаваемая итерации app-server (например, read-only, workspace-write, danger-full-access). Если значение не задано, исполнитель по умолчанию использует workspace-write (усиленная безопасность; ранее использовалось danger-full-access). Переопределение для отдельного подключения: providerSpecificData.codexAppServerSandbox.
OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE false Автоматически подтверждает собственные запросы app-server на одобрение (выполнение команд, операций с файлами или разрешениями на хосте). По умолчанию отключено — запросы автоматически отклоняются; вызовы инструментов среды выполнения не затрагиваются (они передаются через отдельный сквозной канал item/tool/call). Допустимые значения: true/1/yes. Переопределение для отдельного подключения: providerSpecificData.codexAppServerAutoApprove.
FETCH_HEADERS_TIMEOUT_MS = FETCH_TIMEOUT_MS Время ожидания получения заголовков ответа.
OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS 30000 (30 с) Максимальное время ожидания начала ответа (мс) для каждой прямой попытки без прокси. При тайм-ауте выполняется одна повторная попытка через новый сокет; установите 0, чтобы отключить ограничение и сохранить прежнее поведение.
OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS 600000 (10 мин) Верхний предел (мс) для ПОВТОРНОЙ попытки через новый сокет после указанного выше тайм-аута начала ответа при попытке через сокет из пула (#13703). Применяется только в том случае, если вызывающая сторона уже установила собственный сигнал крайнего срока (каскад разрешённых параметров подключения/модели/провайдера/FETCH_TIMEOUT_MS); этот сигнал является фактическим ограничением и в предусмотренном сценарии срабатывает первым, поэтому данное значение служит щедрой страховочной границей, а не фиксированным пределом — без него повторная попытка использовала то же короткое окно OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS, что и попытка через сокет из пула, из-за чего исправные модели рассуждений с медленным TTFB получали ошибку 504. Значение никогда не может быть ниже указанного выше фиксированного минимума; если вызывающая сторона вообще не передаёт сигнал крайнего срока, для повторной попытки фиксированный минимум остаётся без изменений.
FETCH_BODY_TIMEOUT_MS = FETCH_TIMEOUT_MS Время на получение полного тела ответа.
FETCH_CONNECT_TIMEOUT_MS 30000 Тайм-аут установления TCP-соединения.
FETCH_KEEPALIVE_TIMEOUT_MS 4000 Тайм-аут простоя сокета keep-alive.
TLS_CLIENT_TIMEOUT_MS = FETCH_TIMEOUT_MS Тайм-аут прокси отпечатков TLS (wreq-js).
TLS_FIRST_BYTE_WATCHDOG_MS 10000 Ограничивает время до получения первого байта именно тела ответа в транспорте отпечатков TLS wreq-js; один только TLS_CLIENT_TIMEOUT_MS не может обнаружить зависшее тело, поскольку завершается сразу после получения заголовков (#12656). При тайм-ауте чтение через wreq отменяется и выполняется переход на прямой/прокси-диспетчер; 0 отключает сторожевой таймер.
RESPONSES_FIRST_BYTE_TIMEOUT_MS 15000 Только для исполнителя OpenCode и только при включённом флаге функции OPENCODE_RESPONSES_STALL_ROTATION (по умолчанию отключён): ограничивает ожидание первого байта тела потокового ответа Responses после получения его заголовков (#13484). Поток Responses открывается событием response.created, поэтому отсутствие данных по истечении этого интервала считается зависанием: учётная запись временно блокируется, а запрос один раз перенаправляется на следующую учётную запись; при повторном зависании происходит немедленный отказ. 0 отключает защиту даже при включённом флаге.
OPENCODE_PARK_AND_RESUME false Только для исполнителя OpenCode: приостановить запрос с отправкой сигналов активности после повторяющихся временных ошибок 429 (или при наличии свежего маркера нагрузки на пул), а затем повторно выполнить один ограниченный этап максимум через 3 последовательные учётные записи вместо веерной отправки по всему пулу (#13924). По умолчанию отключено: каждая ошибка 429 приводит к переходу на следующую учётную запись точно так же, как и раньше.
OPENCODE_POOL_STRAIN_MARKER_PATH (не задано) Только для исполнителя OpenCode: переопределяет путь к маркеру нагрузки на пул, считываемому перед приостановкой ({since, reason, ttl_s}; по умолчанию /tmp/opencode-pool-strain.json, #13924). При наличии свежего маркера запрос приостанавливается без повторного подсчёта; если маркер отсутствует или устарел, используется счётчик всплесков.
API_BRIDGE_PROXY_TIMEOUT_MS 30000 Тайм-аут перехода через прокси для запросов моста /v1.
FIRECRAWL_BASE_URL https://api.firecrawl.dev Направляет исполнитель веб-запросов Firecrawl на самостоятельно размещённый экземпляр (вне облака ключ API необязателен).
FIRECRAWL_TIMEOUT_MS 30000 Тайм-аут каждого запроса для исполнителя веб-запросов Firecrawl.
API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS 300000 Общий тайм-аут серверного запроса для моста.
API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS 60000 Время на отправку заголовков ответа через мост.
API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS 5000 Тайм-аут простоя keep-alive для моста.
API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS 0 Тайм-аут необработанного сокета (0 = отключён).
SHUTDOWN_TIMEOUT_MS 30000 Период корректного завершения работы после SIGTERM/SIGINT перед принудительным выходом.
OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS 120000 Резервное значение, используемое src/shared/utils/fetchTimeout.ts, когда FETCH_TIMEOUT_MS не задана.
OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS 8000 Тайм-аут (мс) для предустановок validationRead и modelsProbe в src/shared/network/safeOutboundFetch.ts. Увеличьте его для медленных конечных точек (Cerebras, Cloudflare AI, Groq), чтобы предотвратить постоянные переключения между состояниями active/error на панели мониторинга. Для недопустимых (<1000) или нечисловых значений используется резервное значение 8000 мс.
OMNIROUTE_RELAY_FETCH_TIMEOUT_MS 25000 Тайм-аут запроса через ретранслятор в open-sse/utils/proxyFetch.ts (#9158). Зависший ретранслятор должен завершиться с ошибкой до истечения тайм-аута клиента/агента (~30 с), чтобы вызывающая сторона получила ошибку ретранслятора, а не общую ошибку тайм-аута вышестоящего сервиса. Ограничен значением 29000, чтобы всегда срабатывать первым.
OMNIROUTE_RETRY_BACKOFF_MS 10 Общая задержка перед повторной попыткой для путей с одной повторной попыткой при прямом подключении, через ретранслятор или прокси в open-sse/utils/proxyFetch.ts (#9158). 0 = повторить немедленно.
OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS 60000 Тайм-аут нативного запроса wreq-js (claudeTlsClient.ts).
OMNIROUTE_CLAUDE_TLS_GRACE_MS 10000 Дополнительный период для абсолютного жёсткого предельного срока JS, добавляемый к нативному тайм-ауту.
OMNIROUTE_PPLX_TLS_TIMEOUT_MS 30000 Тайм-аут нативного запроса wreq-js (perplexityTlsClient.ts).
OMNIROUTE_PPLX_TLS_GRACE_MS 10000 Дополнительный период для абсолютного жёсткого предельного срока JS, добавляемый к нативному тайм-ауту.
OMNIROUTE_PPLX_SEARCH_HINT 0 (выкл.) Добавляет фразу «У вас есть встроенный веб-поиск. Отвечайте на вопросы напрямую, используя результаты поиска.» в системное сообщение вызывающей стороны (perplexity-web/protocol.ts). По умолчанию отключено — Perplexity всё равно выполняет поиск, а эта фраза просачивается в ответы в виде метакомментария для клиентов программирования. Укажите 1/true/yes/on, чтобы восстановить это поведение.
OMNIROUTE_GROK_TLS_TIMEOUT_MS 60000 Тайм-аут нативного запроса wreq-js (grokTlsClient.ts).
OMNIROUTE_GROK_TLS_GRACE_MS 10000 Дополнительный период для абсолютного жёсткого предельного срока JS, добавляемый к нативному тайм-ауту.
OMNIROUTE_NOTION_TLS_TIMEOUT_MS 30000 Тайм-аут нативного запроса wreq-js (notionTlsClient.ts); notion-web увеличивает его для каждого запроса до 180000 при длительной генерации.
OMNIROUTE_NOTION_TLS_GRACE_MS 10000 Дополнительный период для абсолютного жёсткого предельного срока JS, добавляемый к нативному тайм-ауту.
OMNIROUTE_BROWSER_POOL on Общий пул браузеров Playwright для чата на основе веб-cookie с использованием браузера (browserPool.ts); укажите off, чтобы отключить.
OBSCURA_BIN auto-detect Путь к исполняемому файлу obscura, используемому в качестве основного движка пулом браузеров и исполнителем Cloudflare Playground (open-sse/services/obscura.ts); если значение не задано, путь автоматически определяется из системной переменной PATH.
OBSCURA_CDP_ENDPOINT (не задано) Указывает на уже запущенный экземпляр Obscura (http://host:port) вместо запуска нового; модуль не управляет этим процессом (open-sse/services/obscura.ts).
OBSCURA_PORT случайный свободный порт Явный порт для запускаемого obscura serve; если значение не задано, свободный порт выбирается автоматически (open-sse/services/obscura.ts).
WEB_COOKIE_USE_BROWSER 0 Переводит запрос чата на основе веб-cookie на путь с использованием браузера (browserBackedChat.ts); укажите 1, чтобы включить.
KIMI_WEB_BASE_URL https://www.kimi.ai Базовый URL для исполнителя Kimi Web (международный Connect-RPC kimi.ai) (kimi-web.ts); переопределяйте только для зеркальных/прокси-конечных точек.
KIMI_WEB_CHAT_URL <KIMI_WEB_BASE_URL>/apiv2/kimi.gateway.chat.v1.ChatService/Chat Полная конечная точка чата для исполнителя Kimi Web (kimi-web.ts).
OMNIROUTE_LOGIN_BROWSER_PATH (определяется автоматически) Путь к системному исполняемому файлу Chrome/Edge для интерактивного входа в Adobe Firefly через браузер (adobeFireflyBrowserLogin.ts); переопределяет автоматическое определение для каждой ОС.
OMNIROUTE_STANDALONE_DIR .build/ — автономный вывод Переопределение на этапе сборки каталога автономного вывода, используемого на этапе совместного размещения после сборки (scripts/build/colocate-standalone.mjs); относится к инструментам сборки, а не к среде выполнения.

Попытки обращения к целевым ресурсам комбинации наследуют вычисленный тайм-аут запроса к вышестоящему сервису (FETCH_TIMEOUT_MS или REQUEST_TIMEOUT_MS, если он задаёт значение по умолчанию для fetch). Задавайте targetTimeoutMs в комбинации, значениях комбинации по умолчанию или переопределении провайдера только для ускорения перехода к резервному варианту; значения выше текущего тайм-аута вышестоящего сервиса ограничиваются этим тайм-аутом.

comboTimeoutMs — это отдельный общий временной бюджет комбинации по настенным часам для всех резервных целевых ресурсов. Оставьте его незаданным или равным 0, чтобы сохранить неограниченный перебор (при этом по-прежнему действует жёстко заданное 10-минутное ограничение на зависание в comboPredicates.ts). Положительное значение заменяет эту защитную меру для комбинации. Задавайте comboTimeoutMs больше, чем targetTimeoutMs, чтобы после медленного первого целевого ресурса оставалось время для перехода к резервному варианту.

Пороговые значения автоматического выключателя

Заголовок раздела «Пороговые значения автоматического выключателя»

Настройка автоматического выключателя на уровне провайдера. Значения по умолчанию соответствуют масштабированным значениям, используемым начиная с v3.6 для более чем 500 подключений.

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD 8 open-sse/config/constants.ts Порог последовательных сбоев для OAuth-провайдеров, после которого срабатывает автоматический выключатель.
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS 60000 open-sse/config/constants.ts Период сброса (мс) автоматического выключателя OAuth-провайдера.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD 12 open-sse/config/constants.ts Порог последовательных сбоев для провайдеров, использующих API-ключи.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS 30000 open-sse/config/constants.ts Период сброса (мс) автоматического выключателя провайдера, использующего API-ключ.
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD 2 open-sse/config/constants.ts Порог последовательных сбоев для локальных провайдеров (Ollama, LM Studio, …).
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS 15000 open-sse/config/constants.ts Период сброса (мс) автоматического выключателя локального провайдера.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD 10 open-sse/config/constants.ts Автоматический выключатель уровня провайдера: количество сбоев в пределах временного окна, после которого весь OAuth-провайдер переходит в режим ожидания.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS 900000 open-sse/config/constants.ts Автоматический выключатель уровня провайдера: скользящее временное окно подсчёта сбоев (мс) для OAuth-провайдеров.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS 300000 open-sse/config/constants.ts Автоматический выключатель уровня провайдера: период ожидания (мс) после достижения порога OAuth-провайдером.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD 5 open-sse/config/constants.ts OAuth-провайдер переходит в состояние DEGRADED после такого количества сбоев.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER 8 open-sse/config/constants.ts Максимальный множитель увеличения resetTimeout для OAuth-провайдера.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT 2 open-sse/config/constants.ts Для OAuth-провайдера задержка увеличивается после такого количества циклов в открытом состоянии.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD 15 open-sse/config/constants.ts Автоматический выключатель уровня провайдера: количество сбоев в пределах временного окна, после которого весь провайдер с API-ключом переходит в режим ожидания.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS 1800000 open-sse/config/constants.ts Автоматический выключатель уровня провайдера: скользящее временное окно подсчёта сбоев (мс) для провайдеров с API-ключами.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS 600000 open-sse/config/constants.ts Автоматический выключатель уровня провайдера: период ожидания (мс) после достижения порога провайдером с API-ключом.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD 7 open-sse/config/constants.ts Провайдер с API-ключом переходит в состояние DEGRADED после такого количества сбоев.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER 4 open-sse/config/constants.ts Максимальный множитель увеличения resetTimeout для провайдера с API-ключом.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT 3 open-sse/config/constants.ts Для провайдера с API-ключом задержка увеличивается после такого количества циклов в открытом состоянии.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD 2 open-sse/config/constants.ts Автоматический выключатель уровня провайдера: количество сбоев, после которого весь локальный провайдер переходит в режим ожидания.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS 300000 open-sse/config/constants.ts Автоматический выключатель уровня провайдера: скользящее временное окно подсчёта сбоев (мс) для локальных провайдеров.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS 60000 open-sse/config/constants.ts Автоматический выключатель уровня провайдера: период ожидания (мс) после достижения порога локальным провайдером.
PIN_DROP_BACKOFF_LEVEL 2 open-sse/services/combo.ts Глубина экспоненциальной задержки, при которой провайдер закрепления в кэше контекста считается длительно неработоспособным, а закрепление удаляется для переключения при отказе.
PIN_DROP_GRACE_MS 20000 open-sse/services/combo.ts Период защиты от частых переключений (мс), в течение которого кратковременные переходные периоды ожидания допускаются без удаления закрепления в кэше контекста.
Сценарий Конфигурация
Длительная генерация кода REQUEST_TIMEOUT_MS=900000 (15 мин)
Ограничение общего времени жизни потока STREAM_ACTIVE_TIMEOUT_MS=1260000 (21 мин)
Быстрый отказ для производственного API API_BRIDGE_PROXY_TIMEOUT_MS=10000
Модели с расширенным рассуждением STREAM_IDLE_TIMEOUT_MS=300000 (5 мин между фрагментами)

Система логирования выполняет запись как в stdout, так и в ротируемые файлы журналов. Вся конфигурация считывается из src/lib/logEnv.ts.

Переменная Значение по умолчанию Описание
APP_LOG_LEVEL info Минимальный уровень логирования: debug, info, warn, error.
APP_LOG_FORMAT text Формат вывода: text (удобочитаемый) или json (структурированный).
APP_LOG_TO_FILE true Записывать журналы в файл наряду с stdout.
APP_LOG_FILE_PATH logs/application/app.log Путь к файлу журнала (относительно корня проекта или DATA_DIR).
APP_LOG_MAX_FILE_SIZE 50M Максимальный размер файла перед ротацией. Допустимые значения: 50M, 1G, 512K или количество байтов.
APP_LOG_RETENTION_DAYS 7 Количество дней хранения ротированных файлов журнала приложения.
APP_LOG_MAX_FILES 20 Максимальное количество резервных копий ротированных файлов журнала.
CALL_LOG_RETENTION_DAYS 7 Количество дней хранения записей журнала запросов/вызовов в базе данных.
CALL_LOG_MAX_ENTRIES 10000 Максимальное количество записей журнала вызовов в буфере в памяти.
CALL_LOGS_TABLE_MAX_ROWS 100000 Максимальное количество строк в таблице SQLite call_logs перед очисткой.
ENABLE_REQUEST_LOGS (не задано) Принудительно включить или отключить подробное логирование запросов, переопределяя настройку панели управления.
MAX_PENDING_REQUEST_AGE_MS 3600000 (1 час) Максимальный возраст потерянных записей журнала активных запросов перед очисткой из памяти.
CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS false Сохранять фрагменты потока в артефактах конвейера, когда call_log_pipeline_enabled=true. Включается явно (true) — по умолчанию отключено для экономии места на диске.
CALL_LOG_PIPELINE_MAX_SIZE_KB 512 Максимальный размер артефакта журнала вызовов конвейера в КБ, когда call_log_pipeline_enabled=true.
PROXY_LOGS_TABLE_MAX_ROWS 100000 Максимальное количество строк в таблице SQLite proxy_logs перед очисткой.
PROXY_LOG_INCLUDE_IPS false Включать IP-адреса клиента/исходящего подключения и префиксы учётных записей в консольные журналы [ProxyEgress]. Записи журнала прокси-сервера в панели управления и базе данных сохраняют полные сведения.
APP_LOG_ROTATION_CHECK_INTERVAL_MS 60000 (1 мин) Частота повторной проверки размера активного файла журнала модулем src/lib/logRotation.ts.
CHAT_LOG_TEXT_LIMIT 65536 Максимальная длина строки, сохраняемой в артефактах журнала чата (по умолчанию 64 КБ).
CHAT_LOG_ARRAY_TAIL_ITEMS 128 Количество элементов массива, сохраняемых с конца при усечении полезной нагрузки журнала чата.
CHAT_LOG_MAX_DEPTH 6 Максимальная глубина вложенности, после которой полезная нагрузка журнала чата усекается.
CHAT_LOG_MAX_OBJECT_KEYS 80 Максимальное количество ключей объекта, сохраняемых в полезной нагрузке журнала чата (0 = без ограничений).
CHAT_LOG_MAX_BODY_KB 1024 Размер всего тела запроса/ответа (КБ), после превышения которого полная копия заменяется краткой сводкой. Увеличьте это значение, если в длительных агентных диалогах на панели управления вместо реальных сообщений отображается заполнитель.
CHAT_DEBUG_FILE false Если установлено значение true, serializeArtifactForStorage не выполняет усечение на основе размера. Только для отладки.

Переменная Значение по умолчанию Описание
OMNIROUTE_MEMORY_MB авто (без контейнера); 1024 в образе Docker Рекомендуемый предел кучи V8 (МБ) для Docker/автономного запуска. Если не задан, динамически вычисляется (~35% системной ОЗУ с ограничением диапазоном [512, 4096]); 512 используется как минимальное значение только тогда, когда не удаётся определить общий объём памяти. В run-standalone.mjs (Docker CMD) явное значение добавляется как --max-old-space-size и имеет приоритет над конфликтующим флагом кучи NODE_OPTIONS (V8 использует последний флаг). omniroute serve по-прежнему отдаёт предпочтение существующему флагу кучи NODE_OPTIONS (#5238). Не задавайте разные значения в обоих местах — процесс записывает в журнал предупреждение с обоими значениями и указанием победившего. Официальный образ Docker всегда задаёт 1024, поэтому калибровка в нём не выполняется. Для /v1/responses агента программирования требуется 8192–12288 плюс резерв для cgroup — см. Руководство по Docker — ОЗУ среды выполнения.
PROMPT_CACHE_MAX_SIZE 50 Максимальное количество кэшированных записей системных промптов.
PROMPT_CACHE_MAX_BYTES 2097152 (2 МБ) Максимальный общий размер кэша промптов.
PROMPT_CACHE_TTL_MS 300000 (5 мин) TTL записи кэша промптов.
SEMANTIC_CACHE_MAX_SIZE 100 Максимальное количество кэшированных ответов с temperature=0.
SEMANTIC_CACHE_MAX_BYTES 4194304 (4 МБ) Максимальный общий размер семантического кэша.
SEMANTIC_CACHE_TTL_MS 1800000 (30 мин) TTL записи семантического кэша.
OMNIROUTE_CORPUS_CACHE_SIZE 5 Количество корней локальных корпусов, для которых одновременно поддерживается активный индекс в памяти (src/lib/localCorpus/configured.ts). LRU: при достижении предела индекс наименее недавно использованного корня удаляется и перестраивается при следующем запросе к нему. Минимальное значение ограничено 1; при нечисловом значении используется значение по умолчанию.
STREAM_HISTORY_MAX 50 Максимальное количество последних событий потока в буфере просмотра в реальном времени на панели мониторинга.
CONTEXT_LENGTH_DEFAULT 128000 Глобальная резервная максимальная длина контекста для моделей без явной конфигурации.
USAGE_TOKEN_BUFFER 100 Дополнительный резерв токенов при отслеживании квот использования.
Переменная Значение по умолчанию Описание
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS не задано Доверять проектному файлу .rtk/filters.json без хеша .rtk/trust.json. Используйте только в контролируемой локальной среде разработки.

Нагрузка на цикл событий со стороны памяти, навыков и обновления токенов (#10349)

Заголовок раздела «Нагрузка на цикл событий со стороны памяти, навыков и обновления токенов (#10349)»

OmniRoute — это единый процесс Node. Извлечение и поиск данных в памяти, внедрение навыков и обновление токенов провайдера выполняются в том же цикле событий, что и GET /healthz и панель мониторинга. Они не выполняются в рабочем потоке.

Работа Код По умолчанию Управление оператором
Извлечение / поиск в памяти src/lib/memory/ memoryEnabled в панели управления (по умолчанию включено) Отключите Настройки → Память. Отдельного аварийного выключателя через переменную окружения, помимо отключения функции в настройках, нет.
Внедрение навыков src/lib/skills/injection.ts skillsEnabled в панели управления (по умолчанию включено) Отключите Настройки → Память/Навыки (skillsEnabled). Приведённые ниже параметры песочницы лишь ограничивают выполнение после того, как внедрение уже включено.
Обновление токенов src/sse/services/tokenRefresh.ts Включено для подключённых OAuth-/веб-провайдеров Отключите провайдера или позвольте токенам оставаться действительными; в настоящее время переменной окружения TOKEN_REFRESH=0 нет.

Если /healthz медленно отвечает на машине без нагрузки, сначала отключите память и навыки, а затем проверьте нагрузку от каталога/сжатия (#10303, #9685). Эти функции уступают управление в точках await, но всё равно конкурируют за единственный поток.

Параметры слоя эмбеддингов, векторного хранилища и переранжирования для подсистемы постоянной памяти (src/lib/memory/).

Переменная По умолчанию Описание
MEMORY_EMBEDDING_CACHE_TTL_MS 300000 (5 мин) TTL кэша эмбеддингов в памяти (для каждой сигнатуры источника/модели/размерности).
MEMORY_EMBEDDING_CACHE_MAX 1000 Максимальное количество LRU-записей, сохраняемых в кэше эмбеддингов.
MEMORY_TRANSFORMERS_MODEL Xenova/all-MiniLM-L6-v2 Идентификатор репозитория HF для опционального локального конвейера MiniLM на базе @huggingface/transformers (~23 МБ int8, ~400 МБ ОЗУ).
MEMORY_STATIC_MODEL minishlab/potion-base-8M Идентификатор репозитория HF для статического эмбеддера potion/Model2Vec на основе таблицы поиска. Загружается в каталог кэша по требованию.
MEMORY_STATIC_CACHE_DIR <DATA_DIR>/embeddings Каталог для кэширования файлов статической модели potion. Если значение не задано, по умолчанию используется каталог внутри DATA_DIR.
HF_HUB_ENDPOINT https://huggingface.co Переопределяет базовый URL Hugging Face Hub, используемый staticPotion.ts (например, адрес зеркала для изолированных сред).
MEMORY_VEC_TOP_K 20 Значение top-K по умолчанию, используемое полным перебором при векторном поиске sqlite-vec внутри src/lib/memory/vectorStore.ts.
MEMORY_RRF_K 60 Константа k Reciprocal Rank Fusion для гибридного поиска FTS5 + векторного поиска (рецепт sqlite-vec).
VECTOR_STORE_DISABLE_VEC false Механизм для тестирования/диагностики в getVectorStore() (src/lib/memory/vectorStore.ts): при значении true принудительно устанавливает векторное хранилище в null (имитирует облачную/WASM-среду без sqlite-vec), в результате чего поиск по памяти ограничивается поиском по ключевым словам FTS5. В рабочей среде не задавайте.
NOTION_API_KEY (не задано) API-ключ для бэкенда Notion (используется предустановкой известного бэкенда genericBackend.ts).
NOTION_API_URL https://api.notion.com/v1 Базовый URL API Notion (можно переопределить для самостоятельно размещённых альтернатив Notion).
OBSIDIAN_API_KEY (не задано) API-ключ для бэкенда Obsidian Vault (используется предустановкой известного бэкенда genericBackend.ts).
OBSIDIAN_API_URL http://localhost:27123 Базовый URL API Obsidian Vault (можно переопределить для удалённого хранилища).
MEMORY_TYPED_DECAY_ENABLED false Главный переключатель типизированного затухания памяти TV6. Включается явно (по умолчанию отключено) — очистка удаляет затухшие воспоминания. Когда функция отключена, access_count/last_accessed_at служат исключительно телеметрией и ничего не удаляется.
MEMORY_TYPED_DECAY_EPISODIC_DAYS 30 TTL (в днях), по истечении которого неиспользуемое воспоминание типа episodic затухает. Значение 0 также делает эпизодические воспоминания невосприимчивыми. Долговечные типы (factual/procedural/semantic) всегда невосприимчивы. Отсчёт затухания начинается заново от last_accessed_at.
MEMORY_TYPED_DECAY_ACCESS_IMMUNITY 3 Воспоминание, внедрённое не менее указанного количества раз (>=), становится невосприимчивым к затуханию независимо от типа. Значение 0 отключает невосприимчивость на основе обращений.
MEMORY_TYPED_DECAY_SWEEP_INTERVAL 0 (отключено) Интервал (в секундах) необязательной периодической очистки затухших воспоминаний в src/lib/memory/typedDecay.ts. 0/не задано = периодическая очистка не выполняется. Требуется двойное явное включение: также необходимо задать MEMORY_TYPED_DECAY_ENABLED=true.
OMNIROUTE_STRICT_SYSTEM_PROVIDERS (не задано) Разделённые запятыми идентификаторы провайдеров (без учёта регистра), которые принимают сообщение system только с индексом 0 (src/lib/memory/injection.ts). Для них безопасная для кэша вставка памяти в середину массива небезопасна в многоходовых диалогах, поэтому память объединяется с ведущим системным сообщением или добавляется перед ним. По умолчанию содержит только xiaomi-mimo/mimo; расширьте список для самостоятельно размещённых OpenAI-совместимых конечных точек (например, Qwen3.5+/3.6), шаблон чата которых требует единственного ведущего системного сообщения.

128 предназначено только для панели управления. Агенты программирования при таком объёме кучи завершаются с FATAL ERROR во время длительных запросов /v1/responses. Не используйте этот пример в качестве шлюза Claude/Codex/Grok.

Окно терминала
OMNIROUTE_MEMORY_MB=128
PROMPT_CACHE_MAX_SIZE=20
PROMPT_CACHE_MAX_BYTES=524288 # 512 КБ
SEMANTIC_CACHE_MAX_SIZE=25
SEMANTIC_CACHE_MAX_BYTES=1048576 # 1 МБ
STREAM_HISTORY_MAX=10

Автоматическая синхронизация данных о ценах моделей из внешних источников.

Переменная По умолчанию Исходный файл Описание
PRICING_SYNC_ENABLED false src/lib/pricingSync.ts Периодическая синхронизация цен, включаемая по желанию.
PRICING_SYNC_INTERVAL 86400 (24 ч) src/lib/pricingSync.ts Интервал синхронизации в секундах.
PRICING_SYNC_SOURCES litellm src/lib/pricingSync.ts Источники данных, разделённые запятыми.

Переменная По умолчанию Исходный файл Описание
ARENA_ELO_SYNC_ENABLED true src/shared/constants/featureFlagDefinitions.ts Периодическая синхронизация ELO из рейтинга Arena AI; настраивается через флаги функций панели управления или отключается значением false.
MODELS_CATALOG_PREFIX_MODE dual src/shared/constants/featureFlagDefinitions.ts, src/app/api/v1/models/catalog.ts Форма префикса, используемая для идентификаторов моделей в GET /v1/models. dual публикует для каждой модели как короткий префикс-псевдоним, так и канонический префикс провайдера (для обратной совместимости — каталог увеличивается примерно вдвое); alias возвращает один идентификатор на модель; canonical возвращает только полный префикс идентификатора провайдера (для провайдеров, у которых псевдоним уже является каноническим идентификатором, сохраняется единственная запись). Клиенты могут переопределить это для отдельного запроса с помощью ?prefix=alias. См. API_REFERENCE.
ARENA_ELO_SYNC_INTERVAL 86400 (24 ч) src/lib/arenaEloSync.ts Интервал синхронизации в секундах.

Провайдер PromptQL Playground (неофициальный/экспериментальный)

Заголовок раздела «Провайдер PromptQL Playground (неофициальный/экспериментальный)»

Восстановленный методом обратной разработки мост сеансов GraphQL для prompt.ql.app (src/shared/constants/providers/web-cookie.ts). Все параметры необязательны — значения по умолчанию указывают на общедоступные конечные точки Playground; переопределяйте их только для самостоятельно размещённого или альтернативного развёртывания PromptQL.

Переменная По умолчанию Исходный файл Описание
PROMPTQL_GRAPHQL_ENDPOINT https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql open-sse/executors/promptql.ts Конечная точка GraphQL для операций с чатами и сеансами.
PROMPTQL_CREDITS_ENDPOINT https://data.pro.ql.app/v1/graphql open-sse/executors/promptql.ts, open-sse/services/usage/promptql.ts Конечная точка GraphQL для запроса баланса и использования кредитов.
PROMPTQL_TOKEN_REFRESH_URL https://auth.pro.ql.app/ddn/project/token open-sse/executors/promptql.ts Конечная точка для обновления токена по мере возможности.
PROMPTQL_POLL_TIMEOUT_MS 180000 open-sse/executors/promptql.ts Максимальное время (мс) опроса thread_events до истечения времени ожидания.

Веб-провайдер HyperAgent (неофициальный/экспериментальный)

Заголовок раздела «Веб-провайдер HyperAgent (неофициальный/экспериментальный)»

Реконструированный мост сеанса для hyperagent.com (src/shared/constants/providers/web-cookie.ts). Необязательно — по умолчанию используется общедоступная конечная точка для биллинга/использования; переопределяйте её только для самостоятельно размещённого или альтернативного развёртывания HyperAgent.

Переменная Значение по умолчанию Исходный файл Описание
HYPERAGENT_USAGE_URL https://hyperagent.com/api/settings/billing/usage open-sse/services/usage/hyperagent.ts Конечная точка, используемая для получения блоков кредитов биллинга/использования.

Получение личного баланса в USD и данных об использовании Kilo Pass для провайдера Kilo Code. Необязательно — по умолчанию используется общедоступный API Kilo; переопределяйте его только для ретранслятора или тестовой фикстуры. Для аутентификации используется существующий токен доступа OAuth подключения.

Переменная Значение по умолчанию Исходный файл Описание
KILO_API_URL https://api.kilo.ai open-sse/services/usage/kilocode.ts Базовый URL, используемый для получения личного баланса Kilo Code и данных об использовании Kilo Pass.

Веб-провайдер Adobe Firefly (неофициальный/экспериментальный)

Заголовок раздела «Веб-провайдер Adobe Firefly (неофициальный/экспериментальный)»

Обновление сеанса через браузер для веб-провайдера Adobe Firefly (open-sse/services/adobeFireflyBrowserLogin.ts, open-sse/services/adobeFireflySession.ts, open-sse/services/adobeFireflyClient.ts). Необязательно — все значения по умолчанию настроены для обычной настольной установки.

Удалено в #9255. Прежняя среда выполнения Chrome с подключением через CDP (adobeFireflyChromeRuntime.ts) была заменена службой входа через браузер Playwright, и соответствующие параметры больше не существуют. Переменные ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART, а также ADOBE_FIREFLY_LOGIN_WAIT_MS и ADOBE_FIREFLY_FORTER_WAIT_MS нигде не считываются в кодовой базе — их установка не имеет эффекта.

Переменная Значение по умолчанию Исходный файл Описание
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Установите 1, чтобы использовать действительно безголовый режим Chrome (генерация в нём заведомо не работает; только для отладки).
ADOBE_FIREFLY_BROWSER_REFRESH 1 open-sse/services/adobeFireflySession.ts Включение/отключение упреждающего прогрева браузера. 0 отключает упреждающий прогрев (восстановление после ошибки 408 в середине пакета по-прежнему применяется).
ADOBE_FIREFLY_SESSION_DISK 1 open-sse/services/adobeFireflySession.ts Установите 0, чтобы отключить сохранение сеанса Adobe Firefly на диск.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS (не задано) open-sse/services/adobeFireflySession.ts Минимальный интервал (мс), принудительно выдерживаемый между последовательными отправками и переопределяющий встроенное значение по умолчанию.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS (не задано) open-sse/services/adobeFireflySession.ts Дополнительный интервал (мс), добавляемый после успешной пакетной операции и переопределяющий встроенное значение по умолчанию.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS (не задано) open-sse/services/adobeFireflyClient.ts Базовая задержка (мс) перед отправкой запроса на генерацию, переопределяющая встроенное значение по умолчанию.

Переменная Значение по умолчанию Исходный файл Описание
MODELS_DEV_SYNC_ENABLED (не задано) src/lib/modelsDevSync.ts Принудительное переопределение синхронизации цен models.dev. Если значение не задано, учитывается параметр «Настройки > ИИ» (modelsDevSyncEnabled). 0/false/off/no имеет приоритет над БД и отключает как периодическую синхронизацию, так и сканирование SQL/JSON в getModelsDevPricing() (для восстановления, когда панель управления зависла в том же цикле событий). 1/true/on/yes принудительно включает синхронизацию. При сохранении/очистке цен по-прежнему вызывается backupDbFile("pre-write"), который ничего не делает при действующем 60-минутном ограничении частоты или при заданной переменной DISABLE_SQLITE_AUTO_BACKUP.
MODELS_DEV_SYNC_INTERVAL 86400 (24 ч) src/lib/modelsDevSync.ts Интервал синхронизации каталога моделей во время разработки в секундах.
CONTEXT_WINDOW_RECONCILE_INTERVAL 86400 (24 ч) src/lib/contextWindowResolver.ts Интервал (в секундах) для самокорректирующегося согласователя контекстного окна (5004): если заявленные провайдером окна, обнаруженные через /models, отличаются от каталога, они фиксируются как переопределения auto:discovery. Установите значение 0, чтобы отключить эту функцию. Повторно используются уже синхронизированные данные (без новых запросов); переопределения manual никогда не перезаписываются.

Переменная Значение по умолчанию Исходный файл Описание
OPENROUTER_CATALOG_TTL_MS 86400000 (24 ч) src/lib/catalog/openrouterCatalog.ts Время жизни кэша каталога моделей OpenRouter.
MODEL_CATALOG_INCLUDE_NAMES true src/shared/constants/featureFlagDefinitions.ts Включает удобные для отображения поля name в ответы /v1/models. Отключите для клиентов, ожидающих только идентификаторы.
CATALOG_BUILD_TIMEOUT_MS 8000 (8 с) src/app/api/v1/models/catalogCache.ts Максимальное время ожидания объединённого перестроения каталога GET /v1/models при холодном запуске (#12627). При тайм-ауте возвращается последний успешный ответ 200, если он существует.
OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS 2592000000 (30 дней) src/lib/db/models/activeSyncedCatalog.ts Возраст, после которого синхронизированный список моделей подключения перестаёт считаться достоверным для маршрутизации и используется резервный переход к реестру (#12849). Строки без временной метки считаются устаревшими.
NANOBANANA_POLL_TIMEOUT_MS 120000 open-sse/handlers/imageGeneration.ts Максимальное время ожидания заданий генерации изображений NanoBanana.
NANOBANANA_POLL_INTERVAL_MS 2500 open-sse/handlers/imageGeneration.ts Частота опроса состояния заданий NanoBanana.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyUpscale.ts Базовая задержка экспоненциальной отсрочки при повторной попытке отправки запроса на масштабирование в Adobe Firefly.
AWS_REGION (не задано) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Регион, используемый для формирования конечных точек AWS Bedrock (Kiro, аудио).
AWS_DEFAULT_REGION (не задано) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Резервное значение, когда AWS_REGION не задана.
CLOUDFLARE_ACCOUNT_ID (не задано) open-sse/executors/cloudflare-ai.ts Идентификатор учётной записи Cloudflare Workers AI.
CLOUDFLARE_PLAYGROUND_CHROME_PATH (не задано) open-sse/executors/cloudflare-playground.ts Полный путь к исполняемому файлу настольной версии Chrome для исполнителя Cloudflare AI Playground, используемый, когда проверка цифрового отпечатка браузера в безголовом режиме блокирует Chromium из комплекта Playwright.
CLOUDFLARE_API_BASE https://api.cloudflare.com/client/v4 src/app/api/settings/proxy/cloudflare-deploy/route.ts Переопределяет базовый URL REST API Cloudflare, используемый средством развёртывания ретранслятора Workers для пула прокси (#4640 / 9router#1360).
NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx Имя проекта Worker по умолчанию, предлагаемое в модальном окне «Deploy Relay» пула прокси.
NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Установите значение false, чтобы скрыть вариант ретранслятора Cloudflare Workers на вкладке Proxy Pool.
CLOUDFLARED_BIN автоопределение src/lib/cloudflaredTunnel.ts Пользовательский путь к исполняемому файлу cloudflared.
CLOUDFLARED_PROTOCOL http2 src/lib/cloudflaredTunnel.ts Транспортный протокол туннеля: http2 (по умолчанию), quic или auto.
CLOUDFLARED_CONFIG (не задано) src/lib/cloudflaredTunnel.ts Путь к локально управляемому файлу config.yml cloudflared (с tunnel:, credentials-file:, ingress:). Если задан, OmniRoute запускает tunnel --config &lt;path&gt; run (именованный туннель) вместо временного быстрого туннеля.
CLOUDFLARED_HOSTNAME (из ingress конфигурации) src/lib/cloudflaredTunnel.ts Переопределение общедоступного имени хоста именованного туннеля (например, ai.example.com), указываемого как publicUrl/apiUrl. Если значение не задано, оно считывается из первого имени хоста ingress в конфигурации.
DENO_DEPLOY_API_BASE https://api.deno.com/v2 src/app/api/settings/proxy/deno-deploy/route.ts Переопределяет базовый URL REST API Deno Deploy, используемый средством развертывания ретранслятора пула прокси (#4643 / 9router#1437).
NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT omniroute-deno-relay src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx Имя приложения Deno Deploy по умолчанию, предлагаемое в модальном окне «Deploy Relay» пула прокси.
NEXT_PUBLIC_DENO_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Установите значение false, чтобы скрыть вариант ретранслятора Deno Deploy на вкладке пула прокси.
SEARCH_CACHE_TTL_MS 300000 (5 мин) open-sse/services/searchCache.ts TTL кэша ответов поисковых API (Perplexity, Brave и т. д.).
ENABLE_CC_COMPATIBLE_PROVIDER false src/shared/utils/featureFlags.ts Показывает экспериментальный интерфейс CC-совместимого провайдера для ретрансляторов, предназначенных только для Claude Code.
NINEROUTER_HOST 127.0.0.1 open-sse/executors/ninerouter.ts Переопределяет хост, на котором прослушивает встроенный экземпляр 9router.
NINEROUTER_PORT 20130 open-sse/executors/ninerouter.ts Переопределяет порт, на котором прослушивает встроенный экземпляр 9router.
EMBED_WS_PROXY_HOST 127.0.0.1 src/lib/services/embedWsProxy.ts Хост привязки WebSocket-прокси встроенной службы (по умолчанию — только loopback-интерфейс).
EMBED_WS_PROXY_PORT 20131 src/lib/services/embedWsProxy.ts Порт сервера WebSocket-прокси встроенной службы.
CLIPROXYAPI_HOST 127.0.0.1 open-sse/executors/cliproxyapi.ts Хост моста CLIProxyAPI (устаревшая интеграция).
CLIPROXYAPI_PORT 5544 open-sse/executors/cliproxyapi.ts Порт моста CLIProxyAPI.
CLIPROXYAPI_API_KEY (пусто) open-sse/handlers/chatCore/cliproxyapiCredentials.ts Резервный ключ уровня данных, используемый при отсутствии настройки cliproxyapi_api_key.
CLIPROXYAPI_MANAGEMENT_KEY (пусто) src/lib/services/cliproxyAccountHealth.ts Ключ управления для чтения состояния учетных записей из внешнего управляемого экземпляра CLIProxyAPI.
CLIPROXYAPI_CONFIG_DIR ~/.cli-proxy-api src/lib/versionManager/processManager.ts Каталог конфигурации CLIProxyAPI.
CLIPROXY_BIND_HOST 127.0.0.1 docker-compose.yml Интерфейс хоста, на котором docker-compose публикует контейнер-компаньон cliproxyapi (#12578). Его том данных содержит учетные данные OAuth/API провайдера, а закрепленный образ не поддерживает переопределение api-keys уровня данных через переменные окружения (только через подключенный config.yaml), поэтому значение 0.0.0.0 открывает всей локальной сети доступ к службе, содержащей учетные данные.
MUX_SERVICE_PORT 8322 src/lib/services/bootstrap.ts Переопределяет порт, на котором прослушивает встроенный демон оркестрации агентов Mux (coder/mux) (всегда 127.0.0.1).
OPENWA_SERVICE_PORT 8323 src/lib/services/bootstrap.ts Переопределяет порт, на котором прослушивает встроенный демон open-wa (автоматизация WhatsApp Web) (всегда 127.0.0.1).
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Хост привязки/подключения встроенной службы Dario (по умолчанию — только loopback-интерфейс).
DARIO_PORT 3456 open-sse/executors/dario.ts Порт встроенной службы Dario.
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Хост привязки/подключения встроенной службы Dario (по умолчанию — только loopback-интерфейс).
DARIO_PORT 3456 open-sse/executors/dario.ts Порт встроенного сервиса Dario.
LOCAL_HOSTNAMES (пусто) open-sse/config/providerRegistry.ts Дополнительные имена хостов, разделённые запятыми, которые считаются «локальными» (имена сервисов Docker и т. д.).

ENABLE_CC_COMPATIBLE_PROVIDER предназначена только для сторонних ретрансляторов, которые принимают исключительно клиенты Claude Code. OmniRoute переписывает запросы, чтобы такие ретрансляторы могли их принимать. Если вы хотите использовать только Claude Code CLI или не уверены, что это за ретрансляторы, оставьте эту настройку отключённой и вместо этого добавьте обычного Anthropic-совместимого провайдера.


Переменная Значение по умолчанию Исходный файл Описание
PROXY_FAST_FAIL_TIMEOUT_MS 2000 src/lib/proxyHealth.ts Тайм-аут быстрой проверки состояния.
PROXY_LATENCY_WINDOW_HOURS 3 src/lib/db/proxies.ts Временное окно (в часах) для расчёта средней задержки прокси-кандидатов при использовании стратегии пула, оптимизированной по задержке.
PROXY_HEALTH_CACHE_TTL_MS 30000 src/lib/proxyHealth.ts TTL кэша результатов проверки состояния.
PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS 2000 src/lib/proxyHealth.ts TTL кэша для неудачных проверок состояния прокси. Это значение должно быть меньше PROXY_HEALTH_CACHE_TTL_MS, чтобы при высокой параллельной нагрузке быстро повторять попытки после временных тайм-аутов прокси, не отключая механизм быстрого отказа для действительно неработающих прокси.
PROXY_HEALTH_ENABLED true src/lib/proxyHealth/scheduler.ts Установите значение false, чтобы отключить фоновый планировщик проверки состояния прокси, который периодически проверяет зарегистрированные прокси.
PROXY_HEALTH_INTERVAL_MS 600000 src/lib/proxyHealth/scheduler.ts Интервал цикла фонового планировщика проверки состояния в мс (минимум 60000).
PROXY_HEALTH_RECOVERY_INTERVAL_MS 600000 src/lib/proxyHealth/scheduler.ts Интервал фоновой проверки восстановления в мс: определяет, как часто ранее неработоспособные прокси проверяются повторно, чтобы восстановившийся прокси снова вернулся в ротацию без перезапуска. При значениях ниже 60000 используется значение по умолчанию.
PROXY_HEALTH_TEST_URL https://httpbin.org/ip src/lib/proxyHealth/probeTarget.ts Целевой адрес для проверки доступности, используемый планировщиком и эндпоинтом /api/settings/proxies/auto-test. Укажите внутренний или самостоятельно размещённый URL, чтобы не использовать общедоступный адрес по умолчанию.
PROXY_HEALTH_TEST_CONCURRENCY 10 src/lib/proxyHealth/probeTarget.ts Количество проверок, запускаемых одновременно в одном пакете; параметр используется совместно планировщиком и эндпоинтом /api/settings/proxies/auto-test. Округляется вниз до целого числа, ограничивается минимумом 1 и максимумом 50.
PROXY_HEALTH_TEST_STAGGER_MS 100 src/lib/proxyHealth/probeTarget.ts Задержка в мс между запуском двух проверок внутри пакета. Без неё весь пакет отправляется одновременно, и общий исходящий IP-адрес может привести к срабатыванию ограничения частоты запросов на целевом сервере. Установите 0, чтобы отключить интервалы; максимальное значение — 5000.
PROXY_HEALTH_USE_PROVIDER_TARGET true src/lib/proxyHealth/providerProbeTarget.ts Установите "false", чтобы прекратить проверку реального хоста провайдера, назначенного прокси (GET /models, без ключа API), и вместо этого всегда использовать PROXY_HEALTH_TEST_URL.
PROXY_HEALTH_AUTO_DEACTIVATE false src/lib/proxyHealth/statusPolicy.ts Если установлено false (по умолчанию), автоматические проверки доступности (планировщик и кнопка «Test All» эндпоинта /api/settings/proxies/auto-test) выполняются только для чтения и никогда не изменяют статус прокси — только оператор переводит его в активное или неактивное состояние, поэтому нестабильная проверка не может вывести назначенный прокси из работы (#6246). Установите true, чтобы восстановить прежнее поведение с проверкой и изменением статуса.
FLUSH_EMPTY_RETRY_ENABLED false src/shared/utils/featureFlags.ts Флаг функции, включаемой явно (см. FEATURE_FLAGS.md; переопределение из БД панели управления имеет приоритет). Значение true (или 1, yes) повторяет пустые переведённые потоковые ответы через обычный путь учётных данных (до STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX повторных попыток) вместо возврата пустого ответа 200 или ответа 502 с пустым содержимым.
PROXY_POOL_EGRESS_OBSERVATION false src/shared/utils/featureFlags.ts Флаг функции, включаемой явно (см. FEATURE_FLAGS.md; переопределение из БД панели управления имеет приоритет). Значение true (или 1, yes) отображает в панели управления под пулом прокси доступные только для чтения данные об исходящем трафике пула (уникальные исходящие IP-адреса, соединения и максимальное количество соединений через один IP-адрес за последние 24 ч согласно журналу прокси). Никогда не используется для маршрутизации.
PROXY_AUTO_REMOVE false src/lib/proxyHealth/scheduler.ts Установите true, чтобы планировщик автоматически удалял прокси после нескольких последовательных сбоев.
PROXY_AUTO_REMOVE_AFTER 3 src/lib/proxyHealth/scheduler.ts Количество последовательных сбоев, после которого планировщик автоматически удаляет прокси (если PROXY_AUTO_REMOVE=true).
PROXY_AUTO_DISABLE false src/lib/proxyHealth/scheduler.ts Установите true, чтобы планировщик после нескольких последовательных сбоев программно отключал прокси (статус dead, без удаления) вместо его удаления. Неразрушающая альтернатива PROXY_AUTO_REMOVE: прокси немедленно исключается из пула и ротации (фильтр активного статуса, используемый при определении пула области, уже исключает его) и автоматически активируется снова, как только начинает успешно проходить проверки. Использует тот же порог PROXY_AUTO_REMOVE_AFTER. Если оба флага имеют значение true, приоритет имеет PROXY_AUTO_REMOVE.
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK false src/shared/constants/featureFlagDefinitions.ts Разрешить потокам OAuth и проверки провайдера обходить закреплённый прокси и подключаться напрямую, если предварительные проверки доступности прокси завершаются неудачно. Фактический порядок приоритета: переопределение в БД флагов функций > переменная окружения > значение по умолчанию.
RATE_LIMIT_MAX_WAIT_MS 30000 (30 с) src/lib/resilience/settings.ts Бюджет ожидания в очереди по умолчанию: как долго запрос может ожидать слот провайдера и находиться в очереди, прежде чем будет отклонён, так и не достигнув вышестоящего сервиса. Таймер сбрасывается, как только задание начинает выполняться, — выполнение отдельно ограничивается параметром RATE_LIMIT_EXECUTION_MAX_WAIT_MS. Переменная окружения задаёт только значение по умолчанию: сохранённый параметр resilienceSettings.requestQueue.maxWaitMs, а затем параметр rateLimitOverrides.maxWaitMs для отдельного подключения имеют над ним приоритет.
RATE_LIMIT_EXECUTION_MAX_WAIT_MS 600000 (10 мин) open-sse/services/rateLimitManager.ts Максимальное время, в течение которого допущенный запрос может выполняться до истечения срока резервирования лимита частоты запросов; оно не зависит от бюджета ожидания в очереди, поэтому медленное начало получения данных на шлюзах без инкрементальной передачи не приводит к тайм-ауту (#12027).
RATE_LIMIT_MAX_QUEUE_DEPTH 0 (отключено) open-sse/services/rateLimitManager.ts Ограничение допуска в очередь: если в очереди уже находится указанное количество запросов, запрос отклоняется с ошибкой 429 queue_full. 0 = без ограничений (по умолчанию).
RATE_LIMIT_AUTO_ENABLE (не задано) open-sse/services/rateLimitManager.ts Принудительно включить или отключить защитный механизм автоматического включения ограничения частоты запросов независимо от сохранённой настройки Dashboard. Принимает true/1/on для принудительного включения и false/0/off для принудительного отключения.
PROVIDER_COOLDOWN_ENABLED (не задано → выкл.) open-sse/services/providerCooldownTracker.ts Опциональное глобальное отслеживание периода ожидания для провайдеров/подключений между запросами. По умолчанию ВЫКЛЮЧЕНО (частично дублирует механизмы Connection Cooldown / Provider Circuit Breaker). Для включения принимает true/1/on.
PROVIDER_COOLDOWN_MIN_MS 5000 open-sse/services/providerCooldownTracker.ts Минимальный период ожидания (мс) перед повторной попыткой использования провайдера/подключения после сбоя. Экспоненциально увеличивается при последовательных сбоях. Используется только при включённой переменной PROVIDER_COOLDOWN_ENABLED.
PROVIDER_COOLDOWN_MAX_MS 300000 (5 мин) open-sse/services/providerCooldownTracker.ts Максимальный период ожидания (мс), после которого повторная попытка использования провайдера/подключения выполняется в любом случае. Используется только при включённой переменной PROVIDER_COOLDOWN_ENABLED.
STREAM_RECOVERY_ENABLED (не задано → выкл.) src/lib/resilience/settings.ts (начальное значение) → open-sse/services/streamRecovery.ts (логика) Назначение: прозрачное восстановление усечённых восходящих потоков (порт из free-claude-code). Удерживает начальное окно SSE до STREAM_RECOVERY.HOLDBACK_MS (750 мс), чтобы при обрыве до фиксации — то есть до того, как хотя бы один байт достигнет клиента, — незаметно повторно открыть поток и выполнить запрос. Когда включать: при нестабильных восходящих сервисах, которые часто обрывают поток без передачи данных в самом начале; оставьте ВЫКЛЮЧЕННЫМ, если не можете допустить увеличения времени до первого токена до 750 мс для каждого потока. Для включения принимает true/1/on. Задаёт начальное значение сохраняемого параметра Resilience; после настройки параметр в Dashboard имеет приоритет.
STREAM_RECOVERY_MIDSTREAM_ENABLED (не задано → выкл.) src/lib/resilience/settings.ts (начальное значение) → open-sse/services/streamRecovery.ts (логика) Назначение: продолжение с середины потока (Fase 4.4) — после усечения после фиксации (байты уже достигли клиента) повторно отправляет запрос, используя частичный текст как предварительно заполненный ответ ассистента, и дополняет недостающий суффикс. Только для OpenAI-совместимых потоков с обычным текстом; никогда не срабатывает во время выполнения вызова инструмента. Когда включать: для длинных генераций, которые обрываются на середине ответа, если допустимо, что восстановленная оставшаяся часть поступит одним пакетом, а не токен за токеном. Не зависит от STREAM_RECOVERY_ENABLED (другой профиль риска). Для включения принимает true/1/on.
STREAM_THROUGHPUT_WATCHDOG_ENABLED (не задано → выкл.) src/lib/resilience/settings.ts → open-sse/services/throughputWatchdog.ts Опциональный сторожевой механизм полезной выходной пропускной способности активного потока. Обнаруживает потоки, которые продолжают отправлять фрагменты, но остаются ниже настроенной скорости вывода ассистента; сигналы активности, события использования, пустые дельты, а также фазы работы инструментов и рассуждений не считаются прогрессом. Работает отдельно от тайм-аутов простоя и жёстких предельных сроков.
STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS 30000 src/lib/resilience/settings/normalize.ts Льготный период перед оценкой пропускной способности, ограниченный диапазоном 0–600000 мс.
STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS 30000 src/lib/resilience/settings/normalize.ts Скользящее окно полезного вывода, ограниченное диапазоном 1000–600000 мс; перед прерыванием необходимо одно полное окно.
STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND 4 src/lib/resilience/settings/normalize.ts Минимальная скорость вывода ассистента в байтах UTF-8 (консервативная замена подсчёта токенов), ограниченная диапазоном 1–1000000.
STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES 1 src/lib/resilience/settings/normalize.ts Минимальный ненулевой объём полезного вывода, считающийся измеримым, ограниченный диапазоном 1–1000000 байт.
HEALTHCHECK_STAGGER_MS 3000 src/lib/tokenHealthCheck.ts Интервал задержки (мс) между проверками состояния токенов провайдеров при запуске.
HEALTHCHECK_JITTER_MIN_MS 500 src/lib/tokenHealthCheck.ts Минимальная случайная задержка (мс), добавляемая к HEALTHCHECK_STAGGER_MS между проверками состояния токенов провайдера для предотвращения всплесков нагрузки (Issue #1220).
HEALTHCHECK_JITTER_MAX_MS 5000 src/lib/tokenHealthCheck.ts Максимальная случайная задержка (мс), добавляемая к HEALTHCHECK_STAGGER_MS между проверками состояния токенов провайдера для предотвращения всплесков нагрузки (Issue #1220).
HEALTHCHECK_BATCH_SIZE 20 src/lib/tokenHealthCheck.ts Размер пакета параллельных проверок при начальном проходе проверки состояния токенов; большие значения позволяют проверять больше подключений параллельно, а меньшие снижают пиковую нагрузку (Issue #7875, регрессия #7719).
REQUEST_RETRY 2 src/sse/services/cooldownAwareRetry.ts Количество автоматических повторных попыток при ответах о периоде ожидания, относящихся к модели, перед возвратом ошибки клиенту.
MAX_RETRY_INTERVAL_SEC 30 src/sse/services/cooldownAwareRetry.ts Максимальный интервал задержки (в секундах) между повторными попытками после периода ожидания. Ограничивается этим значением независимо от вышестоящего Retry-After.
HEADROOM_URL http://localhost:8787 src/lib/headroom/detect.ts URL прокси-сервера Headroom для экономии токенов. Жизненный цикл панели управления (api/headroom/*) по умолчанию запускает локальный CLI headroom-ai на loopback-интерфейсе; переопределяйте это значение только для подключения к внешнему sidecar-прокси Docker.

Константы настройки восстановления потока

Заголовок раздела «Константы настройки восстановления потока»

Поведение буферизации при восстановлении настраивается жестко заданными константами в open-sse/config/constants.ts (STREAM_RECOVERY), приведенными здесь для справки — для их изменения требуется редактирование кода, а не переменная окружения:

  • STREAM_RECOVERY.HOLDBACK_MS = 750 — время удержания начального окна SSE, позволяющее повторить попытку при раннем обрыве до того, как клиенту будет отправлен хотя бы один байт.
  • STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536 — жесткое ограничение размера удерживаемого окна; фиксация (сброс буфера + сквозная передача) выполняется сразу после накопления указанного количества байтов независимо от таймера.
  • STREAM_RECOVERY.EARLY_RETRY_MAX = 4 — максимальное количество прозрачных повторных открытий вышестоящего потока, пока удерживаемые данные еще не зафиксированы.

Ограничение частоты запросов для каждого провайдера на основе скользящего окна (без переменной окружения): перенесенный из FCC резервный механизм ограничения частоты запросов для каждого провайдера присутствует в коде (open-sse/services/providerDefaultRateLimit.ts, подключен через open-sse/services/rateLimitManager.ts), но поставляется с пустой картой по умолчанию и в настоящее время не имеет переменной окружения для оператора — он включается только через тестовый хук / редактирование кода. Он намеренно не указан в таблице выше. Ограничитель ретрансляции для каждой пары (token, IP), у которого есть параметр настройки, — это RELAY_IP_PER_MINUTE (§3 «Сеть и порты»).


[!CAUTION] Эти переменные создают подробный вывод и могут раскрыть конфиденциальные данные. Никогда не включайте их в рабочей среде.

Переменная Значение по умолчанию Исходный файл Описание
CURSOR_DEBUG (не задано) open-sse/executors/cursor.ts Установите 1, чтобы включить подробные журналы исполнителя Cursor (декодированные фрагменты SSE и т. д.).
CURSOR_STREAM_DEBUG (не задано) open-sse/executors/cursor.ts Обратно совместимый псевдоним для CURSOR_DEBUG.
CURSOR_DUMP_FILE (не задано) open-sse/executors/cursor.ts Необязательный путь к файлу, в который записываются необработанные декодированные фрагменты Cursor при CURSOR_DEBUG=1.
CURSOR_STREAM_TIMEOUT_MS 300000 open-sse/executors/cursor.ts Тайм-аут бездействия потока (мс) для исполнителя Cursor.
CURSOR_KV_GRACE_MS 2000 open-sse/executors/cursor.ts Льготный интервал (мс) после мягкого терминатора composer kv_after_text, если в буфере остаются байты — позволяет завершающему вызову инструмента exec_mcp успеть закончить свой кадр.
CURSOR_TOOL_DIRECTIVE включено (!== "0") open-sse/executors/cursor.ts Директива фиксации инструмента, благодаря которой composer-2.5 надежно выполняет вызовы инструментов. Установите 0, чтобы отключить.
OMNIROUTE_SYSTEM_INSTRUCTION_APPEND (не задано) open-sse/translator/request/claude-to-openai.ts, open-sse/translator/response/openai-to-claude.ts Заданный оператором текст системной подсказки, добавляемый к системному сообщению ПОСЛЕ преобразования (внедрение после преобразования) и передаваемый в codex/Responses и по путям /v1/messages. Также используется как префикс директивы, удаляемый из повторенных блоков системной преамбулы. Оставьте незаданным, чтобы отключить.
OMNIROUTE_STRIP_SYSTEM_PREAMBLE 0 (выключено) open-sse/translator/response/openai-to-claude.ts, open-sse/utils/directivePreambleStripper.ts Установите 1, чтобы удалять повторенные блоки преамбулы системной подсказки из начала потока openai→claude. По умолчанию выключено — эвристики рассчитаны на английский прозаический текст и изменяют содержимое ответа, поэтому ответ, который правомерно начинается с такого раздела, потеряет его.
CURSOR_IMAGE_FETCH_TIMEOUT_MS 15000 open-sse/utils/cursorImages.ts Тайм-аут получения каждого изображения (мс) для удаленного визуального ввода image_url.
CURSOR_STATE_DB_PATH (определяется автоматически) open-sse/utils/cursorVersionDetector.ts Переопределяет путь поиска базы данных состояния Cursor IDE, используемой для определения версии IDE.
CURSOR_AGENT_CLI_VERSION (определять / зафиксировать) open-sse/utils/cursorAgentCliVersion.ts Идентификатор сборки Agent CLI (YYYY.MM.DD-&lt;hash&gt;) для x-cursor-client-version: cli-… при Agent Run.
CURSOR_AGENT_BIN (не задано) open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Путь к исполняемому файлу Cursor Agent, используемому для генерации изображений. Если не задан, обработчик использует providerSpecificData.agentBin, а затем PATH.
CURSOR_IMG_TIMEOUT_MS 210000 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Лимит астрономического времени на одно изображение (мс) для заданий Cursor Agent по генерации изображений.
CURSOR_IMG_MAX_CONCURRENT 2 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Ограничение параллельного выполнения заданий Cursor по генерации изображений для общей учетной записи.
CURSOR_IMG_MODEL запрос / auto open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Переопределяет параметр Cursor CLI --model для заданий по генерации изображений.
UC_IMAGE_POLL_INTERVAL_MS 2000 open-sse/handlers/imageGeneration/providers/ucImage.ts Интервал опроса результата генерации изображений UC (uncensored.com) (мс).
UC_IMAGE_POLL_TIMEOUT_MS 60000 open-sse/handlers/imageGeneration/providers/ucImage.ts Лимит астрономического времени на опрос результата генерации изображений UC (мс).
UC_VIDEO_POLL_INTERVAL_MS 3000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Интервал опроса результата генерации видео UC (uncensored.com) (мс).
UC_VIDEO_POLL_TIMEOUT_MS 300000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Лимит астрономического времени на опрос результата генерации видео UC (мс).
CURSOR_DATA_DIR (определяется автоматически) open-sse/utils/cursorAgentCliVersion.ts Переопределяет каталог данных Cursor Agent CLI (…/versions/&lt;id&gt;); это та же переменная, которую использует официальный агент.
CURSOR_TOKEN (не задано) scripts/ad-hoc/cursor-tap.cjs Токен носителя Cursor, напрямую используемый инструментами разработчика.
OMNIROUTE_LOG_REQUEST_SHAPE отключено (включается посредством "1") src/app/api/v1/chat/completions/route.ts Регистрирует маркеры типа и длины содержимого для больших полезных нагрузок чата, если установлено "1". По умолчанию выключено для уменьшения объема журналов.
DEBUG_RESPONSES_SSE_TO_JSON (не задано) open-sse/handlers/responseTranslator.ts Установите true, чтобы регистрировать подробности преобразования Responses API из SSE в JSON.
DEBUG_CLAUDE_NONSTREAM (не задано) open-sse/handlers/responseTranslator.ts Установите true, чтобы отображать пустые фрагменты textContent в пути преобразования ответов Claude (только для отладки).
NEXT_PUBLIC_OMNIROUTE_E2E_MODE (не задано) Инфраструктура E2E-тестирования Установите true, чтобы включить режим E2E-тестирования (упрощенная аутентификация, тестовые перехватчики).

Позволяет пользователям сообщать о проблемах непосредственно из панели управления.

Переменная Значение по умолчанию Исходный файл Описание
GITHUB_ISSUES_REPO (не задано) src/app/api/v1/issues/report/route.ts Репозиторий в формате owner/repo.
GITHUB_ISSUES_TOKEN (не задано) src/app/api/v1/issues/report/route.ts Персональный токен доступа GitHub с областью разрешений issues:write.
GITHUB_TOKEN (не задано) обработка проблем / вспомогательные средства облачного агента Универсальный токен доступа GitHub, используемый как резервный вариант для GITHUB_ISSUES_TOKEN, а также вспомогательными средствами облачного агента в src/lib/cloudAgent/*.

Рекомендации SRE по серверной части ретрансляции (поведение ts/bifrost/auto, размещение 9router относительно CLIProxyAPI и стратегия резервирования при высокой пропускной нагрузке) см. в документе Стратегия серверной части ретрансляции.

Окно терминала
JWT_SECRET=$(openssl rand -base64 48)
API_KEY_SECRET=$(openssl rand -hex 32)
INITIAL_PASSWORD=dev123
PORT=20128
NODE_ENV=development
Окно терминала
JWT_SECRET=<сгенерировано>
API_KEY_SECRET=<сгенерировано>
INITIAL_PASSWORD=<сгенерировано>
STORAGE_ENCRYPTION_KEY=<сгенерировано>
DATA_DIR=/data
PORT=20128
API_PORT=20129
NODE_ENV=production
AUTH_COOKIE_SECURE=true
REQUIRE_API_KEY=true
NEXT_PUBLIC_BASE_URL=https://omniroute.example.com
BASE_URL=http://localhost:20128
OMNIROUTE_MEMORY_MB=8192
CORS_ORIGIN=https://your-frontend.example.com
Окно терминала
JWT_SECRET=test-jwt-secret-for-ci
API_KEY_SECRET=test-api-key-secret-for-ci
INITIAL_PASSWORD=testpass
NODE_ENV=production
OMNIROUTE_DISABLE_BACKGROUND_SERVICES=true
APP_LOG_TO_FILE=false
Окно терминала
JWT_SECRET=<сгенерировано>
API_KEY_SECRET=<сгенерировано>
STORAGE_ENCRYPTION_KEY=<сгенерировано>
PORT=20128
AUTH_COOKIE_SECURE=true
REQUIRE_API_KEY=true
NEXT_PUBLIC_BASE_URL=https://omniroute.example.com
BASE_URL=http://127.0.0.1:20128
CORS_ORIGIN=https://omniroute.example.com
ENABLE_TLS_FINGERPRINT=true
CLI_COMPAT_ALL=1

Ограничения и параметры безопасности, применяемые при выполнении платформой Skills (src/lib/skills/) пользовательских автоматизаций в изолированной среде.

Переменная Значение по умолчанию Исходный файл Описание
SKILLS_SANDBOX_TIMEOUT_MS 10000 (10 с) src/lib/skills/builtins.ts Ограничение общего времени выполнения кода навыка в песочнице. Жёсткий предел; всё, что выполняется дольше, принудительно завершается.
SKILLS_EXECUTION_TIMEOUT_MS (используется SKILLS_SANDBOX_TIMEOUT_MS) src/lib/skills/ Тайм-аут высокоуровневой оркестрации навыка. Установите значение выше SKILLS_SANDBOX_TIMEOUT_MS, чтобы разрешить многоэтапные рабочие процессы.
SKILLS_MAX_FILE_BYTES 1048576 (1 МБ) src/lib/skills/builtins.ts Максимальное количество байтов, которое навык может прочитать из одного файла в песочнице.
SKILLS_MAX_HTTP_RESPONSE_BYTES 256000 (250 КБ) src/lib/skills/builtins.ts Максимальное количество байтов, получаемых из одного HTTP-ответа внутри навыка.
SKILLS_MAX_SANDBOX_OUTPUT_CHARS 100000 src/lib/skills/builtins.ts Жёсткое ограничение количества символов stdout/stderr, возвращаемых одним вызовом песочницы.
SKILLS_SANDBOX_NETWORK_ENABLED false src/lib/skills/builtins.ts Установите 1/true, чтобы разрешить исходящие сетевые подключения из песочницы. По умолчанию она изолирована в целях безопасности.
SKILLS_ALLOWED_SANDBOX_IMAGES (пусто) src/lib/skills/builtins.ts Разделённый запятыми список разрешённых образов контейнеров для выполнения в песочнице. Пустое значение разрешает только встроенный образ по умолчанию.
SKILLS_SANDBOX_DOCKER_IMAGE (встроенное значение по умолчанию) src/lib/skills/ Образ контейнера, используемый при запуске песочницы на основе Docker. Переопределите, чтобы закрепить собственный усиленный базовый образ.
SKILLS_SANDBOX_RUNTIME auto src/lib/skills/sandbox.ts, src/lib/skills/containerProvider.ts Среда выполнения контейнеров для песочницы навыков: auto | docker | apple | wsl | orbstack | podman. auto выбирает лучшую установленную среду выполнения для ОС хоста (Apple Container/OrbStack в macOS, WSL Container в Windows, Podman в Linux), при необходимости переключаясь на Docker.

[!CAUTION] Включение SKILLS_SANDBOX_NETWORK_ENABLED=true открывает путь для исходящего трафика из произвольного кода навыков. В общих развёртываниях используйте эту настройку совместно с OUTBOUND_SSRF_GUARD_ENABLED=true и строгой политикой CORS_ORIGIN/прокси.


25. Квоты провайдеров, туннели, резервные копии и прочие параметры среды выполнения

Заголовок раздела «25. Квоты провайдеров, туннели, резервные копии и прочие параметры среды выполнения»

Эндпоинты квот провайдеров, сетевые туннели (Tailscale, Ngrok, отладочный MITM-прокси), пул исходящих подключений 1Proxy, резервные копии баз данных и небольшие переопределения для отдельных функций, используемые уровнем исполнителя или скриптами.

Переменная Значение по умолчанию Исходный файл Описание
REDIS_URL redis://localhost:6379 src/shared/utils/rateLimiter.ts Строка подключения к Redis для серверной части ограничителя частоты запросов.
ALIBABA_CODING_PLAN_HOST (рабочий хост) open-sse/services/bailianQuotaFetcher.ts Переопределяет хост, используемый для получения квот тарифного плана Alibaba Bailian Coding Plan.
ALIBABA_CODING_PLAN_QUOTA_URL формируется на основе хоста open-sse/services/bailianQuotaFetcher.ts Переопределяет полный URL квот Alibaba Bailian.
QWEN_CLOUD_COOKIE (не задано) open-sse/services/qwenTokenPlanQuotaFetcher.ts Cookie сеанса консоли для шлюза квот персонального тарифного плана Token Plan в Qwen Cloud / Model Studio (ключ API для инференса не позволяет прочитать эти данные). Скопируйте весь заголовок запроса Cookie — он содержит login_qwencloud_ticket — из любого вызова api.json к cs-data.qwencloud.com на странице home.qwencloud.com › Billing › Subscription (F12 › Network). Содержит конфиденциальные данные и привязан к сеансу; предпочтительно использовать поле панели управления qwenCloudCookie для конкретного подключения.
QWEN_CLOUD_SEC_TOKEN (не задано) open-sse/services/qwenTokenPlanQuotaFetcher.ts Переопределение sec_token вручную для консольного шлюза Token Plan. Содержит конфиденциальные данные; если значение не задано, модуль получения данных извлекает его из HTML-кода панели управления с помощью cookie.
QWEN_TOKEN_PLAN_HOST https://cs-data.qwencloud.com open-sse/services/qwenTokenPlanQuotaFetcher.ts Переопределение хоста шлюза для модуля получения квот персонального тарифного плана Token Plan (например, bailian-singapore-cs.alibabacloud.com для консоли Model Studio).
QWEN_TOKEN_PLAN_DASHBOARD_URL https://home.qwencloud.com/ open-sse/services/qwenTokenPlanQuotaFetcher.ts URL панели управления, используемый для извлечения sec_token из HTML-кода после входа в систему.
ALIBABA_FREE_TIER_VISION_FE_PATH /costing-balance/free-quota-image-video open-sse/services/alibabaFreeTierQuotaFetcher.ts Переопределение пути интерфейса консоли для получения квоты бесплатного уровня Alibaba Model Studio на обработку изображений и мультимедиа.
ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH /costing-balance/free-quota-multimodal open-sse/services/alibabaFreeTierQuotaFetcher.ts Переопределение пути фронтенда консоли для получения бесплатной квоты Alibaba Model Studio на мультимодальные модели.
ALIBABA_FREE_TIER_AUDIO_FE_PATH /costing-balance/free-quota-audio open-sse/services/alibabaFreeTierQuotaFetcher.ts Переопределение пути фронтенда консоли для получения бесплатной квоты Alibaba Model Studio на аудиомодели.
ALIBABA_FREE_TIER_ALLOWLIST_PATH (не задано) open-sse/services/alibabaFreeTierAllowlist.ts Необязательный путь к локальному JSON-файлу, переопределяющему встроенный список разрешённых текстовых моделей бесплатного уровня Alibaba. Если файл отсутствует, используется $DATA_DIR/alibaba-free-tier-allowlist.json, а затем config/alibaba-free-tier-allowlist.json.
CONTEXT_RESERVE_TOKENS 1024 open-sse/services/contextManager.ts Количество токенов, зарезервированных для выходных данных при вычислении бюджета промпта.
CONTEXT_KEEP_LATEST_IMAGES 2 open-sse/services/contextManager.ts Количество новейших встроенных изображений, которые следует сохранить при удалении более старых для соблюдения размера контекстного окна (#8560).
MODEL_ALIAS_COMPAT_ENABLED включено open-sse/services/model.ts Включает или отключает устаревший слой совместимости псевдонимов моделей, используемый старыми клиентами.
OMNIROUTE_EMERGENCY_FALLBACK включено open-sse/services/emergencyFallback.ts Установите значение false (или 0), чтобы отключить аварийный резервный механизм при исчерпании бюджета, который перенаправляет неудачные запросы на бесплатную модель nvidia/openai/gpt-oss-120b. Фактический приоритет: переопределение в БД Feature Flags > переменная окружения > значение по умолчанию; если они недоступны, сервис использует исходное значение переменной окружения.
COMMAND_CODE_CALLBACK_PORT (не задано) src/app/api/providers/command-code/auth/shared.ts Локальный порт, используемый для обратных вызовов в стиле OAuth от вспомогательной утилиты Command Code CLI.
COMMAND_CODE_VERSION 0.33.2 open-sse/executors/commandCode.ts Значение, отправляемое вышестоящему сервису Command Code в заголовке x-command-code-version. Переопределите его, чтобы повысить версию CLI.
COMMANDCODE_API_URL https://api.commandcode.ai open-sse/services/usage/command-code.ts Базовый URL вышестоящего сервиса использования/квот Command Code, применяемого телеметрией средства получения квот для смартфонов. Переопределите для самостоятельно размещённого или альтернативного API Command Code.
MITM_LOCAL_PORT 443 src/mitm/server.cjs Локальный порт привязки для отладочного MITM-прокси.
MITM_DISABLE_TLS_VERIFY 0 src/mitm/server.cjs Установите 1, чтобы отключить проверку TLS вышестоящего сервера (только для разработки).
MITM_IDLE_TIMEOUT_MS 60000 src/mitm/socketTimeouts.ts, src/mitm/server.cjs Тайм-аут бездействия сокета (мс) для проксируемых соединений; сокеты, бездействующие дольше указанного времени, закрываются во избежание утечки полуоткрытых туннелей.
BRIDGE_PORT 20129 bin/antigravity-bridge.mjs Порт, который прослушивает MITM-мост Antigravity.
ROUTER_URL http://127.0.0.1:20128/v1/antigravity bin/antigravity-bridge.mjs Конечная точка маршрутизатора, на которую мост перенаправляет трафик Antigravity.
CERT_DIR ~/.omniroute/mitm bin/antigravity-bridge.mjs Каталог, содержащий server.key/server.crt для TLS-прослушивателя моста; мост завершает работу, если хотя бы один из файлов отсутствует.
MITM_VERBOSE 1 src/mitm/server.cjs, src/mitm/_internal/bypass.cjs Уровень подробности журналирования решений о маршрутизации: 0 отключает журналирование, более высокие значения регистрируют больше решений об обходе и маршрутизации.
MITM_ROOT_CA_ENABLED false src/mitm/manager.ts Установите true, чтобы явно включить модель с корневым центром сертификации и отдельными конечными сертификатами для каждого хоста (#6684). В новых установках она включается автоматически; установки с ранее доверенным устаревшим конечным сертификатом продолжают использовать устаревший сертификат с фиксированным SAN, если модель не была включена явно.
MITM_CERT_MODE legacy src/mitm/manager.ts, src/mitm/server.cjs Устанавливается менеджером MITM для запускаемого процесса прокси (root-ca | legacy) — отражает решение о миграции сертификатов; не предназначено для ручной настройки.
OMNIROUTE_NO_SUDO 0 src/mitm/systemCommands.ts Установите 1 (истинное значение), чтобы удалить начальный sudo из команд доверия сертификатам MITM — для развёртываний без root или с пространством имён пользователей, где оператор вручную устанавливает доверие к центру сертификации (например, через механизм дополнительных сертификатов ЦС Node).
SKIP_ANTIGRAVITY_DNS (не задано) src/mitm/dns/provision.ts Установите true, чтобы полностью пропустить добавление в /etc/hosts записей DNS для имён хостов прокси Antigravity — для контейнеров без доступа к sudo/root.
OMNIROUTE_SKIP_DNS_WRITE (не задано) src/mitm/dns/dnsConfig.ts Установите 1, чтобы при добавлении или удалении записей DNS не выполнять запись в файл hosts — для изолированных или доступных только для чтения тестовых сред.
OMNIROUTE_SKIP_SYSTEM_TRUST 0 src/mitm/cert/install.ts, src/mitm/tproxy/caTrust.ts Защитный параметр только для тестов/CI: установите 1, чтобы установка/удаление доверия к сертификату не выполняли никаких действий и набор тестов никогда не изменял системное хранилище доверенных сертификатов ОС. Устанавливается автоматически при настройке тестов и в рабочих процессах CI.
CHANGELOG_BASE_REF (автоматически) scripts/check/check-changelog-integrity.mjs Явное указание базовой ссылки для проверки, предотвращающей удаление данных из CHANGELOG (по умолчанию — базовая ветвь PR в CI или старшая release/v*).
FREE_PROXY_AUTO_SYNC_ENABLED false src/lib/freeProxyProviders/scheduler.ts Установите true, чтобы включить фоновый планировщик автоматической синхронизации пула бесплатных прокси. Требует явного включения; по умолчанию отключён.
FREE_PROXY_AUTO_SYNC_INTERVAL_MS 1800000 src/lib/freeProxyProviders/scheduler.ts Интервал автоматической синхронизации в миллисекундах (по умолчанию — 30 мин).
FREE_PROXY_1PROXY_ENABLED true src/lib/freeProxyProviders/oneproxy.ts Включает источник бесплатных прокси 1proxy. Установите false, чтобы отключить.
FREE_PROXY_1PROXY_API_URL (см. oneproxy.ts) src/lib/freeProxyProviders/oneproxy.ts Переопределение URL API 1proxy.
FREE_PROXY_1PROXY_MAX 500 src/lib/freeProxyProviders/oneproxy.ts Максимальное количество прокси, получаемых из 1proxy при каждой синхронизации.
FREE_PROXY_1PROXY_MIN_QUALITY 50 src/lib/freeProxyProviders/oneproxy.ts Минимальный порог оценки качества для импорта из 1proxy.
FREE_PROXY_PROXIFLY_ENABLED true src/lib/freeProxyProviders/proxifly.ts Включает источник бесплатных прокси Proxifly. Установите false, чтобы отключить.
FREE_PROXY_PROXIFLY_QUANTITY 100 src/lib/freeProxyProviders/proxifly.ts Количество прокси, получаемых при каждой синхронизации с Proxifly.
FREE_PROXY_PROXIFLY_ANONYMITY elite src/lib/freeProxyProviders/proxifly.ts Фильтр уровня анонимности для Proxifly (elite, anonymous, transparent).
FREE_PROXY_IPLOCATE_ENABLED false src/lib/freeProxyProviders/iplocate.ts Включает бесплатный источник прокси IPLocate. Требует явного включения.
FREE_PROXY_IPLOCATE_BASE_URL https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols src/lib/freeProxyProviders/iplocate.ts Переопределяет базовый URL списка прокси IPLocate.
FREE_PROXY_WEBSHARE_ENABLED true src/lib/freeProxyProviders/webshare.ts Включает источник пула прокси Webshare. Установите значение false, чтобы отключить; также необходимо задать FREE_PROXY_WEBSHARE_API_KEY.
FREE_PROXY_WEBSHARE_API_KEY (отсутствует) src/lib/freeProxyProviders/webshare.ts API-токен учётной записи Webshare (Authorization: Token &lt;key&gt;). Обязателен — без него провайдер остаётся отключённым.
FREE_PROXY_WEBSHARE_API_URL https://proxy.webshare.io/api/v2/proxy/list/ src/lib/freeProxyProviders/webshare.ts Переопределяет URL API списка прокси Webshare.
FREE_PROXY_WEBSHARE_MAX 500 src/lib/freeProxyProviders/webshare.ts Максимальное количество прокси, импортируемых при каждой синхронизации с Webshare.
NEXT_PUBLIC_VERCEL_RELAY_ENABLED true src/app/(dashboard)/…/ProxyPoolTab.tsx Показывает или скрывает кнопку развёртывания Vercel Relay на вкладке пула прокси.
VERCEL_API_BASE https://api.vercel.com src/app/api/settings/proxy/vercel-deploy/route.ts Переопределяет базовый URL API Vercel (для тестирования).
NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/…/VercelRelayModal.tsx Имя проекта по умолчанию, предварительно заполненное в модальном окне развёртывания Vercel Relay.
TAILSCALE_BIN (автоопределение) src/lib/tailscaleTunnel.ts Явный путь к исполняемому файлу tailscale.
TAILSCALED_BIN (автоопределение) src/lib/tailscaleTunnel.ts Явный путь к исполняемому файлу демона tailscaled.
TAILSCALE_AUTHKEY (не задано) src/lib/tailscaleTunnel.ts Предварительно выданный ключ аутентификации Tailscale для неинтерактивного запуска / запуска без графического интерфейса tailscale up (передаётся через --auth-key=). Если не задан, для входа используется интерактивный URL аутентификации в браузере.
NGROK_AUTHTOKEN (не задано) src/lib/ngrokTunnel.ts Аутентифицирует исходящие туннели ngrok.
DB_BACKUP_MAX_FILES 20 src/lib/db/backup.ts Максимальное количество файлов резервных копий SQLite, сохраняемых при ручной/плановой очистке резервных копий. Снимки миграции адресуются по содержимому и повторно используются для идентичного состояния БД; они не удаляются в пределах окна параллельной миграции. Переопределяет значение, сохранённое в разделе «Настройки» → «Срок хранения резервных копий базы данных».
DB_BACKUP_RETENTION_DAYS 0 src/lib/db/backup.ts Максимальный возраст (в днях) файлов, сохраняемых при ручной/плановой очистке резервных копий. 0 отключает удаление по возрасту. Снимки миграции не удаляются в пределах окна параллельной миграции. Переопределяет значение, сохранённое в разделе «Настройки» → «Срок хранения резервных копий базы данных».
OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS 30000 src/lib/jobs/backupScheduleJob.ts Интервал срабатывания (мс) серверного задания, которое обрабатывает backup-schedule.json. Он должен быть значительно меньше минутной точности cron; при значениях меньше 5000 или значениях, которые невозможно преобразовать в число, используется значение 30000.
CONTAINER_HOST docker scripts/check-permissions.sh Указание среды выполнения контейнеров для проверки разрешений в точке входа. Установите значение podman для любой топологии Podman. Поскольку контейнер не может определить, является ли движок локальным или доступ к нему осуществляется через Podman Machine, предупреждение остаётся нейтральным к топологии и содержит ссылку на contrib/podman/README.md.
QUOTA_STORE_DRIVER sqlite src/lib/quota/storeFactory.ts Серверная часть хранилища потребления общих квот: sqlite (по умолчанию) или redis.
QUOTA_STORE_REDIS_URL (не задано) src/lib/quota/storeFactory.ts Строка подключения к Redis, используемая при QUOTA_STORE_DRIVER=redis (например, redis://localhost:6379).
QUOTA_SATURATION_THRESHOLD 0.5 src/lib/quota/enforce.ts Коэффициент насыщения пула (0..1); при достижении или превышении этого значения пул переходит в строгий режим (без заимствования).
QUOTA_SOFT_DEPRIORITIZE_FACTOR 0.7 open-sse/services/combo.ts Множитель оценки (0..1), применяемый к целевому варианту, когда политика мягкой квоты снижает его приоритет.
STATUS_SOFT_DEPRIORITIZE_FACTOR 0.5 open-sse/services/combo/autoStrategy.ts Множитель оценки (0..1), применяемый к исчерпанному провайдеру (credits_exhausted/rate_limited) при оценке auto-combo, когда предварительное отсечение по квоте ОТКЛЮЧЕНО (#4540).
QUOTA_CONSUMPTION_RETENTION_DAYS 14 src/lib/db/quotaConsumption.ts Период хранения (в днях) сегментов quota_consumption до сборки мусора (gcQuotaConsumption).
QUOTA_PREFLIGHT_CUTOFF_ENABLED false src/lib/resilience/settings.ts Опциональная настройка (по умолчанию ОТКЛЮЧЕНА): включает жёсткое отсечение по квоте при автоматической маршрутизации, которое исключает кандидатов с низкой квотой до оценки.
OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL false open-sse/services/autoCombo/virtualFactory.ts Опциональная настройка (по умолчанию ОТКЛЮЧЕНА): если фильтр auto/&lt;category&gt;:&lt;tier&gt; не находит подключённых кандидатов, восстанавливает прежнее поведение с возвратом к полному (нефильтрованному) пулу вместо возврата пустого пула. При значении по умолчанию ОТКЛЮЧЕНО :free означает «только бесплатный тариф».
OMNIROUTE_CHAOS_MAX_PANEL 5 open-sse/services/autoCombo/virtualFactory.ts Ограничение размера панели (в диапазоне 1–10) для широковещательного варианта auto/*:chaos — один запрос разветвляется не более чем на указанное количество моделей от разных провайдеров.
OMNIROUTE_CHAOS_MIN_PANEL (по умолчанию движка) open-sse/services/autoCombo/virtualFactory.ts Настройка минимального размера панели, передаваемая обработчику широковещательного режима chaos; если значение не задано, используется значение по умолчанию движка.
OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS (по умолчанию движка) open-sse/services/autoCombo/virtualFactory.ts Жёсткий тайм-аут (мс) для всего разветвления панели chaos; если значение не задано, используется значение по умолчанию движка.
GROK_AUTH_PATH ~/.grok/auth.json open-sse/services/grokQuotaFetcher.ts Путь к файлу auth.json CLI Grok, используемому для получения недельной квоты grok-web; переопределяется для тестов или нестандартной установки CLI.
AGENTBRIDGE_UPSTREAM_CA_CERT (не задано) src/mitm/manager.ts Дополнительный сертификат центра сертификации (PEM), которому доверяют TLS-соединения AgentBridge с вышестоящими серверами.
INSPECTOR_BUFFER_SIZE 1000 src/mitm/inspector/buffer.ts Максимальное количество перехваченных запросов, хранящихся в кольцевом буфере Traffic Inspector.
INSPECTOR_MAX_BODY_KB 1024 src/mitm/inspector/buffer.ts Максимальный размер перехваченного тела запроса/ответа (КБ), после которого оно усекается.
INSPECTOR_HTTP_PROXY_PORT 8080 src/mitm/inspector/httpProxyServer.ts Локальный порт HTTP-прокси Traffic Inspector.
INSPECTOR_HTTP_PROXY_AUTOSTART false src/mitm/inspector/httpProxyServer.ts Автоматически запускать HTTP-прокси инспектора при загрузке.
INSPECTOR_TLS_INTERCEPT false src/lib/inspector/captureState.ts Включить перехват TLS (MITM) для перехватываемого HTTPS-трафика.
INSPECTOR_LLM_HOSTS_EXTRA (не задано) src/lib/inspector/captureState.ts Дополнительные имена хостов (через запятую), которые считаются конечными точками LLM для перехвата.
INSPECTOR_MASK_SECRETS true src/mitm/inspector/buffer.ts Маскировать секретные данные (заголовки авторизации / ключи API) в перехваченном трафике.
INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES 30 src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts Количество минут до автоматического возврата системных настроек прокси к исходным значениям защитным механизмом.
INSPECTOR_INTERNAL_INGEST_TOKEN (автоматически) src/app/api/tools/traffic-inspector/internal/ingest/route.ts Токен для аутентификации внутренней передачи перехваченных данных в инспектор.
PLAYGROUND_COMPARE_MAX_COLUMNS 4 src/app/(dashboard)/dashboard/playground/ Максимальное количество расположенных рядом столбцов в режиме сравнения Playground.
PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL (не задано) src/app/(dashboard)/dashboard/playground/ Модель по умолчанию для действия «улучшить промпт» в Playground (если значение не задано, используется активная модель).
BIFROST_ENABLED 1 src/app/api/v1/relay/chat/completions/bifrost/route.ts Главный аварийный выключатель для прокси-сайдкара Bifrost. Если задано значение 0, маршрут возвращает 503 с заголовком X-Bifrost-Killswitch, а оператор перенаправляется на путь TS. Используйте для отключения сайдкара без повторного развертывания (инцидент маршрутизатора первого уровня, ротация ключей).
BIFROST_BASE_URL (не задано) src/app/api/v1/relay/chat/completions/bifrost/route.ts Если значение задано, маршрут прокси-сайдкара Bifrost перенаправляет трафик /v1/chat/completions на этот шлюз Go вместо обработчика ретрансляции TS. Не задано → 503 с резервным переключением. Завершающий слеш удаляется.
BIFROST_PORT 8080 src/lib/services/bootstrap.ts Порт, к которому привязывается контролируемая встроенная служба Bifrost (127.0.0.1:&lt;port&gt;), когда OmniRoute управляет жизненным циклом сайдкара Bifrost. Значение по умолчанию — 8080.
BIFROST_API_KEY (не задано) src/app/api/v1/relay/chat/completions/bifrost/route.ts API-ключ для шлюза Bifrost (передается как Authorization: Bearer ...). Если значение не задано, маршрут ожидает, что запрос будет содержать действительный API-ключ OmniRoute; этот ключ предназначен только для аутентификации на стороне шлюза.
BIFROST_STREAMING_ENABLED true src/app/api/v1/relay/chat/completions/bifrost/route.ts Если задано значение true, маршрут сайдкара Bifrost передает ответы обратно через SSE посредством шлюза, а не через потоковый исполнитель TS. Задайте 0, чтобы принудительно получать через шлюз непотоковые ответы JSON.
BIFROST_TIMEOUT_MS 30000 src/app/api/v1/relay/chat/completions/bifrost/route.ts Тайм-аут для каждого запроса при проксировании на шлюз Bifrost (мс). При превышении времени ожидания маршрут возвращает путь ретрансляции TS через заголовок X-Bifrost-Fallback.
OMNIROUTE_BIFROST_KEY (не задано) src/app/api/v1/relay/chat/completions/bifrost/route.ts Псевдоним для BIFROST_API_KEY (используется скриптами, которые считывают переменные окружения через OMNIROUTE_*). Если заданы обе переменные, приоритет имеет BIFROST_API_KEY.
OMNIROUTE_RELAY_BACKEND ts / auto src/app/api/v1/relay/chat/completions/routingBackend.ts Бэкенд ретрансляции для /api/v1/relay/chat/completions: ts | bifrost | auto. ts = ретрансляция TypeScript (по умолчанию, если Bifrost не настроен); auto выбирает Bifrost, если задан BIFROST_BASE_URL и BIFROST_ENABLED ≠ 0, с автоматическим резервным переключением на TS, если сайдкар недоступен; bifrost принудительно использует Bifrost (строгий режим, без резервного переключения). Аутентификация, ограничение частоты запросов, защита от инъекций и список разрешений всегда сначала обрабатываются в маршруте Next. Ответы содержат X-Routing-Backend / X-Routing-Fallback / X-Routing-Fallback-Reason.
RELAY_ROUTING_BACKEND (не задано) src/app/api/v1/relay/chat/completions/routingBackend.ts Допустимый псевдоним для OMNIROUTE_RELAY_BACKEND (те же значения ts | bifrost | auto). Если заданы обе переменные, приоритет имеет OMNIROUTE_RELAY_BACKEND.
OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS 5000 src/app/api/v1/relay/chat/completions/bifrostCooldown.ts Период ожидания (мс) после сбоя перехода через сайдкар Bifrost в режиме auto, прежде чем реле повторит попытку обращения к сайдкару; пока длится период ожидания, запросы направляются непосредственно по пути TS, после чего проверка повторяется. 0 отключает этот период. Применяется только при OMNIROUTE_RELAY_BACKEND=auto.
OMNIROUTE_TLS_CERT (не задано) bin/cli/commands/serve.mjs Путь к TLS-сертификату PEM для запуска omniroute serve по HTTPS (эквивалент --tls-cert). Должен использоваться вместе с OMNIROUTE_TLS_KEY; после этого автономный сервер завершает TLS на том же слушателе (wss:// продолжает работать без изменений). Не задано → обычный HTTP. Если указан только сертификат или ключ либо путь недоступен для чтения, в журнал выводится предупреждение и продолжает использоваться HTTP.
OMNIROUTE_TLS_KEY (не задано) bin/cli/commands/serve.mjs Путь к закрытому ключу TLS в формате PEM для HTTPS в omniroute serve (эквивалент --tls-key). Должен использоваться вместе с OMNIROUTE_TLS_CERT. См. OMNIROUTE_TLS_CERT.
OMNIROUTE_LOCAL_ENDPOINTS_ENABLED 0 src/lib/security/localEndpoints.ts Главный переключатель маршрутов /api/local/*. Если переменная не задана или имеет значение 0, все маршруты /api/local/* в рабочей среде возвращают 503. В развёртываниях не на loopback-интерфейсе должна иметь значение 1, чтобы включить средство запуска Redis и аналогичные средства запуска локальных служб в один клик. Дополнительная мера защиты наряду с классификацией маршрутов в isLocalOnlyPath() (LOCAL_ONLY_API_PREFIXES в src/server/authz/routeGuard.ts).
OMNIROUTE_LOCAL_ENDPOINTS_TOKEN (не задано) src/lib/security/localEndpoints.ts Bearer-токен для клиентов /api/local/*, находящихся не на loopback-интерфейсе (например, настольного приложения). Если переменная задана, запросы с IP-адресов не на loopback-интерфейсе должны содержать Authorization: Bearer &lt;token&gt;. Обязателен, если OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1 в развёртываниях не на loopback-интерфейсе.
OMNIROUTE_REDIS_CONTAINER_NAME omniroute-redis bin/cli/commands/redis.mjs Имя контейнера для средства запуска Redis в один клик (omniroute redis up). Используется как CLI, так и графическим интерфейсом RedisLauncherPanel.
OMNIROUTE_REDIS_HOST_PORT 6379 bin/cli/commands/redis.mjs Порт хоста для средства запуска Redis в один клик. Измените его, если порт 6379 на хосте уже занят. Внутренний порт контейнера остаётся равным 6379.
OMNIROUTE_REDIS_BIND_HOST 127.0.0.1 bin/cli/commands/redis.mjs Интерфейс хоста, на котором средство запуска Redis в один клик публикует порт. Средство запуска запускает Redis БЕЗ пароля, поэтому привязка к 0.0.0.0 предоставляет каждому хосту в вашей локальной сети неаутентифицированный доступ к Redis — расширяйте область привязки, только если вы самостоятельно задали пароль для экземпляра.
REDIS_BIND_HOST 127.0.0.1 docker-compose.yml Интерфейс хоста, на котором docker-compose публикует порт сайдкара Redis (#9286). Redis в compose работает без requirepass; контейнеры приложения обращаются к нему через сеть compose (redis:6379) — опубликованный порт существует только для инструментов на стороне хоста. 0.0.0.0 открывает всей локальной сети неаутентифицированный доступ к Redis.
REDIS_PORT 6379 docker-compose.yml Порт хоста для сайдкара Redis в Docker Compose.
APP_BIND_HOST 127.0.0.1 docker-compose.yml, docker-compose.prod.yml Интерфейс хоста, на котором Docker Compose публикует собственные порты приложения для панели управления, API и live-WS (#12568). Поскольку REQUIRE_API_KEY=false по умолчанию задано в .env.example, адрес 0.0.0.0 открывает анонимный LLM-прокси /v1 для всей LAN/WAN — расширяйте доступ только после установки REQUIRE_API_KEY=true или если расположенный перед ним обратный прокси обеспечивает собственную аутентификацию.
QDRANT_BIND_HOST 127.0.0.1 docker-compose.yml Интерфейс хоста, на котором Docker Compose публикует сайдкар памяти Qdrant (#12578). Обоснование относительно доступа из LAN такое же, как для REDIS_BIND_HOST.
BIFROST_BIND_HOST 127.0.0.1 docker-compose.yml Интерфейс хоста, на котором Docker Compose публикует сайдкар маршрутизатора Bifrost (#12578). Обоснование относительно доступа из LAN такое же, как для REDIS_BIND_HOST.
REDIS_KEY_PREFIX omniroute: src/shared/utils/rateLimiter.ts Префикс пространства имён, применяемый к каждому ключу OmniRoute в Redis (ограничитель частоты запросов, кэш аутентификации, хранилище квот, автоматический выключатель прогрева). Предотвращает конфликты ключей, когда экземпляр Redis используется совместно с другими приложениями (#11042).
OMNIROUTE_INTERNAL_SERVICE_TOKEN (не задано — механизм отключён) src/lib/api/internalServiceAuth.ts Общий секрет для внутренних REST-переходов с сохранением идентификации (#9260): компоненты OmniRoute, вызывающие другие локальные маршруты OmniRoute, отправляют его как x-omniroute-internal-service-token, чтобы сохранить идентификацию исходного вызывающего субъекта. Сравнивается с помощью timingSafeEqual.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE (не задано) src/lib/api/internalServiceAuth.ts Вариант внутреннего сервисного токена в виде секретного файла: путь к файлу, содержимое которого после удаления начальных и конечных пробелов используется как токен. Учитывается только в том случае, если встроенная переменная не задана.
OPENROUTER_PROVIDER_STATS_ENABLED true src/lib/catalog/openrouterProviderStats.ts Дополняет список поставщиков на панели управления статистикой еженедельного рейтинга OpenRouter (#9324). Включено по умолчанию; задайте false, чтобы полностью пропустить фоновую загрузку (не блокирует работу и никогда не приводит к критической ошибке).
OPENROUTER_PROVIDER_STATS_TTL_MS 86400000 (24 ч) src/lib/catalog/openrouterProviderStats.ts TTL кэша для снимка статистики поставщиков OpenRouter, в миллисекундах.
OMNIROUTE_REDIS_IMAGE redis:7-alpine bin/cli/commands/redis.mjs Образ Redis, используемый средством запуска Redis в один клик. При необходимости переопределите его значением redis:8-alpine или адресом зеркала приватного реестра.
QDRANT_HOST qdrant (опциональный профиль кластера) Имя хоста вспомогательного контейнера Qdrant, когда активен --profile memory. По умолчанию указывает на имя сервиса qdrant во внутренней сети; переопределите для внешнего развертывания. Используется только тогда, когда qdrantEnabled имеет значение true в коде (src/lib/memory/vectorStore.ts:108).
QDRANT_PORT 6333 (опциональный профиль кластера) REST-порт вспомогательного контейнера Qdrant.
QDRANT_GRPC_PORT 6334 (опциональный профиль кластера) gRPC-порт вспомогательного контейнера Qdrant. Используется клиентскими библиотеками, которые предпочитают gRPC вместо REST для потоковых операций.
QDRANT_API_KEY (не задано) (опциональный профиль кластера) Необязательный API-ключ для Qdrant Cloud или локального экземпляра с аутентификацией. Пустое значение → заголовок api-key не отправляется.
QDRANT_COLLECTION omniroute-memory (опциональный профиль кластера) Имя коллекции для эмбеддингов памяти диалогов OmniRoute. Создается при первом запуске с числом измерений, указанным в QDRANT_VECTOR_SIZE.
QDRANT_EMBEDDING_MODEL text-embedding-3-small (опциональный профиль кластера) Имя модели эмбеддингов по умолчанию, записываемое в метаданные коллекции Qdrant. Фактически эмбеддинги создаются тем провайдером, на который указывает поле embeddingModel в настройках OmniRoute.
QDRANT_VECTOR_SIZE 1536 (опциональный профиль кластера) Размерность вектора эмбеддинга. Должна соответствовать используемой модели (text-embedding-3-small → 1536; ada-002 → 1536; nomic-embed-text → 768).
QDRANT_HNSW_EF_CONSTRUCT 128 (опциональный профиль кластера) Точность построения индекса HNSW. Более высокое значение = более медленное построение, но более быстрый поиск.
OMNIROUTE_ROTATION_ENABLED true open-sse/services/rotationConfig.ts Главный переключатель настраиваемой оператором ротации учетных записей. При значении false ни один из перечисленных ниже классов OMNIROUTE_ROTATE_* не запускает переключение на резервную учетную запись (состояние отключенного главного переключателя также блокирует классы 429/500/502, включенные по умолчанию). Позволяет управляющему фронтенду (например, настольному приложению VibeProxy) синхронизировать собственные правила ротации с серверным механизмом переключения учетных записей.
OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS 0 open-sse/services/rotationConfig.ts Период ожидания (в секундах), применяемый к учетной записи с ограниченной частотой запросов, когда вышестоящий сервис не предоставляет явной подсказки о времени сброса ограничения. 0 = использовать период ожидания по умолчанию, заданный механизмом, вместо фиксированного переопределения.
OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET true open-sse/services/rotationConfig.ts Аналог настройки интерфейса «не помечать как ограниченный по частоте запросов без времени сброса».
OMNIROUTE_ROTATE_ON_429 true open-sse/services/rotationConfig.ts Включает резервное переключение для ошибок со статусом 429. Если установлено значение false (при OMNIROUTE_ROTATION_ENABLED=true), ошибка 429 больше не инициирует ротацию учётной записи и вместо этого возвращается клиенту.
OMNIROUTE_ROTATE_429_THRESHOLD 1 open-sse/services/rotationConfig.ts Количество ошибок 429 за период OMNIROUTE_ROTATE_429_WINDOW_SECONDS, необходимое для ротации учётной записи. Значение 1 (по умолчанию) запускает ротацию немедленно, сохраняя прежнее поведение.
OMNIROUTE_ROTATE_429_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Скользящее окно (в секундах), в пределах которого ошибки 429 учитываются для достижения порога OMNIROUTE_ROTATE_429_THRESHOLD.
OMNIROUTE_ROTATE_ON_500 true open-sse/services/rotationConfig.ts Включает резервное переключение для серверных ошибок 5xx (кроме 502, для которой предусмотрен отдельный класс). Если установлено значение false, эти ошибки больше не инициируют ротацию учётной записи.
OMNIROUTE_ROTATE_500_THRESHOLD 1 open-sse/services/rotationConfig.ts Количество ошибок 5xx за период OMNIROUTE_ROTATE_500_WINDOW_SECONDS, необходимое для ротации учётной записи. Значение 1 (по умолчанию) запускает ротацию немедленно.
OMNIROUTE_ROTATE_500_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Скользящее окно (в секундах), в пределах которого ошибки 5xx учитываются для достижения порога OMNIROUTE_ROTATE_500_THRESHOLD.
OMNIROUTE_ROTATE_ON_502 true open-sse/services/rotationConfig.ts Включает резервное переключение для ошибок 502 (неверный шлюз). Если установлено значение false, ошибки 502 больше не инициируют ротацию учётной записи.
OMNIROUTE_ROTATE_502_THRESHOLD 1 open-sse/services/rotationConfig.ts Количество ошибок 502 за период OMNIROUTE_ROTATE_502_WINDOW_SECONDS, необходимое для ротации учётной записи. Значение 1 (по умолчанию) запускает ротацию немедленно.
OMNIROUTE_ROTATE_502_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Скользящее окно (в секундах), в пределах которого ошибки 502 учитываются для достижения порога OMNIROUTE_ROTATE_502_THRESHOLD.
OMNIROUTE_ROTATE_ON_400 false open-sse/services/rotationConfig.ts Явное включение (по умолчанию ОТКЛЮЧЕНО): если задано значение true, обычная ошибка 400 (неверный запрос) также запускает ротацию аккаунта. Эта настройка лишь дополняет существующее поведение — она никогда не блокирует предусмотренный движком переход при ошибке 400, содержащей текст об ограничении частоты запросов или квоте, независимо от значения этого флага.
OMNIROUTE_ROTATE_400_THRESHOLD 1 open-sse/services/rotationConfig.ts Количество ошибок 400 в течение OMNIROUTE_ROTATE_400_WINDOW_SECONDS, необходимое для ротации аккаунта (учитывается только при OMNIROUTE_ROTATE_ON_400=true).
OMNIROUTE_ROTATE_400_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Скользящее окно (в секундах), в пределах которого ошибки 400 учитываются для достижения OMNIROUTE_ROTATE_400_THRESHOLD.

Прогрев подключений Anthropic OAuth, включённых пользователем, по расписанию cron, чтобы 5-часовое окно ограничения частоты запросов открывалось простым запланированным запросом, а не первым реальным запросом (#8848). Планировщик отключён, если OMNIROUTE_WARMUP_ENABLED не имеет истинного значения или подключение не отмечено в settings.claudeWarmup.connections; пустой список подключений означает, что прогрев не выполняется, даже если переменная среды включена.

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_WARMUP_ENABLED (не задано → отключено) src/lib/warmupScheduler.ts Главный переключатель планировщика прогрева. Принимает 1/true/yes/on (без учёта регистра, пробелы по краям удаляются). Любое другое значение или отсутствие значения оставляет планировщик отключённым.
OMNIROUTE_WARMUP_CRON 0 7 * * * src/lib/warmupScheduler.ts Пятипольное cron-выражение для запуска прогрева, вычисляемое в часовом поясе America/Los_Angeles (часовой пояс сброса Anthropic) независимо от системного времени хоста.
OMNIROUTE_WARMUP_CONCURRENCY 3 src/lib/warmupScheduler.ts Количество подключений, прогреваемых параллельно при каждом запуске. Ограничивается диапазоном 1–10; при нечисловом значении используется 3.
OMNIROUTE_WARMUP_MODEL claude-3-5-haiku-20241022 src/lib/warmupScheduler.ts Модель, используемая для запроса прогрева. Переопределяйте только в том случае, если модель по умолчанию недоступна в вашем тарифном плане; выберите самую дешёвую модель, которая всё ещё открывает окно.

VNC-сеансы для входа через браузер и псевдоним каталога данных

Заголовок раздела «VNC-сеансы для входа через браузер и псевдоним каталога данных»

Контейнеризированные Chromium+VNC используются для интерактивного получения учётных данных при входе через браузер (/api/vnc-session), наряду с устаревшим псевдонимом DATA_DIR. Все параметры необязательны — значения VNC по умолчанию предназначены для встроенного образа omniroute-vnc-chromium:local и переопределяются только для пользовательского образа контейнера, портов или настройки жизненного цикла.

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Тег Docker-образа для контейнера авторизации Chromium+VNC. Соберите docker/vnc-browser/chromium или укажите здесь пользовательский образ.
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Исполняемый файл среды выполнения контейнеров, используемый для запуска VNC-контейнера (например, задайте значение podman).
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Порт VNC/noVNC, открытый внутри контейнера.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Порт Chrome DevTools Protocol внутри контейнера.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Путь к каталогу профиля Chromium внутри контейнера.
OMNIROUTE_VNC_PROFILE_DIR $HOME/.omniroute/browser-login-profiles src/lib/vncSession/manifest.ts Каталог хоста, содержащий сохранённые профили авторизации в браузере.
OMNIROUTE_VNC_IDLE_MS 600000 (10 мин) src/lib/vncSession/manifest.ts Время ожидания при бездействии (мс), по истечении которого неактивный VNC-сеанс удаляется.
OMNIROUTE_VNC_MAX_MS 1800000 (30 мин) src/lib/vncSession/manifest.ts Жёсткое ограничение продолжительности одного VNC-сеанса (мс).
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Максимальное количество одновременных VNC-сеансов.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Время ожидания (мс) готовности браузера в контейнере к работе с CDP.
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Время ожидания (мс) для извлечения сохранённого сеанса и файлов cookie после завершения авторизации.
OMNIROUTE_VNC_CHROMIUM_ARGS --remote-debugging-port=9222 --no-first-run --no-default-browser-check src/lib/vncSession/manifest.ts Дополнительные флаги командной строки, передаваемые Chromium в контейнере.
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Выделенная сеть Docker, к которой подключается VNC-контейнер авторизации (#12571) вместо сети-моста по умолчанию, чтобы соседние контейнеры не могли обращаться к его порту моста CDP.
VIBEPROXY_DATA_DIR (не задано) open-sse/services/notionThreadSessions.ts Устаревший псевдоним для DATA_DIR, проверяемый только в том случае, если не заданы ни DATA_DIR, ни OMNIROUTE_DATA_DIR. Определяет расположение кэша сеансов веб-потоков Notion (&lt;dir&gt;/notion-web-thread-sessions.json).

Используется скриптами scripts/dev/run-next-playwright.mjs, scripts/dev/smoke-electron-packaged.mjs, scripts/dev/run-ecosystem-tests.mjs и scripts/build/uninstall.mjs. В рабочих развёртываниях не задавайте ни одно из приведённых ниже значений.

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_E2E_BOOTSTRAP_MODE auth scripts/dev/run-next-playwright.mjs Режим начальной настройки E2E (auth, fresh, reuse) для средства запуска Playwright.
OMNIROUTE_E2E_PASSWORD резервно используется INITIAL_PASSWORD scripts/dev/run-next-playwright.mjs Пароль администратора, передаваемый в окружение Playwright.
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Отключает локальный опрос проверки работоспособности во время запусков Playwright.
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Отключает цикл проверки работоспособности токенов OAuth во время тестов.
OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS (не задано) src/lib/tokenHealthCheck.ts Список провайдеров через запятую, исключённых из упреждающего цикла обновления токенов (например, codex,openai). Целевая альтернатива полному отключению проверки работоспособности: провайдеры с коротким TTL продолжают обновляться, а каскадные провайдеры работают только реактивно.
OMNIROUTE_HIDE_HEALTHCHECK_LOGS true scripts/dev/run-next-playwright.mjs Отключает вывод сообщений проверки работоспособности в stdout Playwright.
OMNIROUTE_PLAYWRIGHT_SKIP_BUILD 0 scripts/dev/run-next-playwright.mjs Пропускает производственную сборку Next.js перед запуском Playwright (оптимизация CI).
OMNIROUTE_SKIP_UNINSTALL_HOOK 0 scripts/build/uninstall.mjs Пропускает хук удаления OmniRoute (используется CI, чтобы сохранить node_modules без изменений).
ECOSYSTEM_SERVER_WAIT_MS 180000 scripts/dev/run-ecosystem-tests.mjs Время ожидания (мс), в течение которого сервер должен перейти в работоспособное состояние перед запуском тестов экосистемы/протокола.
ELECTRON_SMOKE_URL http://127.0.0.1:20128/login scripts/dev/smoke-electron-packaged.mjs URL, по которому инструментарий дымового тестирования Electron ожидает доступность упакованного приложения.
ELECTRON_SMOKE_TIMEOUT_MS 45000 scripts/dev/smoke-electron-packaged.mjs Общее время ожидания (мс), по истечении которого инструментарий дымового тестирования прекращает работу.
ELECTRON_SMOKE_SETTLE_MS 2000 scripts/dev/smoke-electron-packaged.mjs Период стабилизации (мс) после загрузки страницы.
ELECTRON_SMOKE_APP_EXECUTABLE (автоматически) scripts/dev/smoke-electron-packaged.mjs Явно заданный путь к исполняемому файлу упакованного приложения Electron.
ELECTRON_SMOKE_DATA_DIR (tmpdir) scripts/dev/smoke-electron-packaged.mjs Каталог данных для дымового тестирования Electron.
ELECTRON_SMOKE_KEEP_DATA 0 scripts/dev/smoke-electron-packaged.mjs Установите значение 1, чтобы сохранить каталог данных smoke-теста после запуска.
ELECTRON_SMOKE_STREAM_LOGS 0 scripts/dev/smoke-electron-packaged.mjs Установите значение 1, чтобы во время запуска передавать журналы Electron в stdout.
ELECTRON_SMOKE_COLD_RESTART 0 scripts/dev/smoke-electron-packaged.mjs #7592: повторный запуск с тем же каталогом данных и проверка того, что при втором запуске выбран нативный драйвер SQLite.
CLI_DEVIN_BIN (поиск в PATH) open-sse/executors/devin-cli.ts Переопределяет путь к исполняемому файлу Devin CLI.

Используется скриптом scripts/i18n/run-translation.mjs (команда npm run i18n:run). По умолчанию все пять переменных не заданы — задавайте их в .env только на тех машинах, на которых должен быть доступен запуск переводчика документации.

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_TRANSLATION_API_URL (не задано) scripts/i18n/run-translation.mjs Совместимый с OpenAI базовый URL серверной части перевода.
OMNIROUTE_TRANSLATION_API_KEY (не задано) scripts/i18n/run-translation.mjs Bearer-токен для серверной части перевода (никогда не записывается в журнал).
OMNIROUTE_TRANSLATION_MODEL (не задано) scripts/i18n/run-translation.mjs Идентификатор модели, например gpt-4o-mini или cx/gpt-5.4-mini.
OMNIROUTE_TRANSLATION_TIMEOUT_MS 60000 scripts/i18n/run-translation.mjs Тайм-аут каждого запроса в миллисекундах.
OMNIROUTE_TRANSLATION_CONCURRENCY 4 scripts/i18n/run-translation.mjs Количество параллельных запросов на перевод при обработке нескольких файлов или локалей.

Необязательное дополнение, управляемое флагом функции RADAR_ENABLED (по умолчанию отключён — это флаг функции, переключаемый через Settings/DB, а не переменная окружения; см. docs/frameworks/RADAR.md). Первые четыре переменные ниже позволяют при необходимости переопределить параметры для самостоятельно размещённой или форкнутой ленты и процессов получения ключей спонсоров. Пятая переменная, RADAR_ADMIN_URL, представляет собой отдельную ссылку без значения по умолчанию на закрытую операционную панель владельца. Полную документацию модуля и сквозную последовательность активации и управляемой настройки см. в docs/frameworks/RADAR.md.

Универсальный компонент чтения объявлений Home/Changelog не настраивается с помощью переменной окружения и не зависит от флага функции RADAR_ENABLED. Он считывает URL общедоступного репозитория news.json, объявленный в src/shared/utils/releaseNotes.ts, используя только GET; идентификаторы скрытых объявлений сохраняются в локальном хранилище браузера.

Переменная Значение по умолчанию Исходный файл Описание
RADAR_FEED_URL https://radar.omniroute.online src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts Базовый URL, общий для отдельно подписанных лент каталога, рефералов, предложений для спонсоров и Intel. Переопределите его, чтобы использовать самостоятельно размещённый или форкнутый сервис.
RADAR_FEED_PUBKEY (закреплённый ключ по умолчанию) src/lib/radar/pinnedKeys.ts Открытый ключ Ed25519 (SPKI в формате base64-DER или PEM), используемый для проверки подписей пользовательской ленты.
RADAR_CONTRIBUTOR_CLAIM_URL https://radar.omniroute.online/auth/github src/lib/radar/links.ts URL, который открывает кнопка панели управления «Я участник проекта» (процесс получения ключа спонсора через GitHub OAuth).
RADAR_SUPPORTER_PLANS_URL https://radar.omniroute.online/planos src/lib/radar/links.ts URL, который открывает кнопка панели управления «Поддержать проект» (страница оплаты/тарифов).
RADAR_ADMIN_URL (не задано) src/lib/radar/links.ts Ссылка на закрытую операционную панель, доступную только владельцу. Требуется HTTPS, кроме случая HTTP-перенаправления на loopback-интерфейс через SSH; если значение не задано или недопустимо, элемент навигации не создаётся.

Аудит: удалённые / неиспользуемые переменные

Заголовок раздела «Аудит: удалённые / неиспользуемые переменные»

Следующие переменные присутствовали в предыдущих версиях .env.example, но не имеют ссылок во время выполнения в текущей кодовой базе. Они были удалены:

Переменная Причина
STORAGE_DRIVER=sqlite Не считывается ни одним исходным файлом. SQLite — единственный поддерживаемый драйвер, поэтому выбор не требуется.
INSTANCE_NAME=omniroute Присутствует в старой документации и шаблонах переменных окружения, но не используется во время выполнения. Может вернуться в будущей функции поддержки нескольких экземпляров.
SQLITE_MAX_SIZE_MB=2048 Не упоминается в исходном коде. Размер базы данных искусственно не ограничивается.
SQLITE_CLEAN_LEGACY_FILES=true Не упоминается в исходном коде. Вероятно, очистка устаревших файлов была удалена.
CLI_ROO_BIN Не зарегистрирована в src/shared/services/cliRuntime.ts.
CLI_KIMI_CODING_BIN Не зарегистрирована в src/shared/services/cliRuntime.ts (Kimi Coding использует OAuth, а не исполняемый файл CLI).
IFLOW_OAUTH_CLIENT_ID / IFLOW_OAUTH_CLIENT_SECRET Нигде не упоминаются в исходном коде.
CEREBRAS_API_KEY / COHERE_API_KEY / FIREWORKS_API_KEY / GROQ_API_KEY / MISTRAL_API_KEY / NEBIUS_API_KEY / PERPLEXITY_API_KEY / TOGETHER_API_KEY / XAI_API_KEY Удалены в v3.8.0. Среда выполнения больше не считывает эти переменные окружения — учётные данные поступают из Dashboard / data/provider-credentials.json / зашифрованной БД.
CURSOR_PROTOBUF_DEBUG Удалена в v3.8.0. Исполнитель Cursor использует CURSOR_DEBUG / CURSOR_STREAM_DEBUG (см. §22).
CLI_COMPAT_KIRO Удалена в v3.8.0. Kiro входит в CLI_COMPAT_OMITTED_PROVIDER_IDS — её переключатель не оказывает никакого эффекта.
QIANFAN_API_KEY Удалена вместе с другими неиспользуемыми заготовками API-ключей провайдеров в v3.8.0.
Переменная Старое значение в .env.example Фактическое значение по умолчанию Исправление
APP_LOG_RETENTION_DAYS 90 7 ✅ Вводящее в заблуждение значение удалено; 7 указано как значение по умолчанию
CALL_LOG_RETENTION_DAYS 90 7 ✅ Вводящее в заблуждение значение удалено; 7 указано как значение по умолчанию

Повторное создание конфигурации OpenCode (специализированные инструменты)

Заголовок раздела «Повторное создание конфигурации OpenCode (специализированные инструменты)»

Используется скриптом scripts/ad-hoc/regen-opencode-config.ts для повторного создания opencode.json с точными значениями limit.context и limit.output, полученными из работающего экземпляра OmniRoute. Ни одна из этих переменных не требуется для обычной работы — скрипт предназначен только для разработчиков.

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_URL http://localhost:20128 scripts/ad-hoc/regen-opencode-config.ts Базовый URL экземпляра OmniRoute, к которому выполняется запрос /v1/models.
OMNIROUTE_KEY (не задано) scripts/ad-hoc/regen-opencode-config.ts API-ключ для аутентификации в конечной точке OmniRoute /v1/models. Если не задан, используется OPENCODE_API_KEY.
OPENCODE_API_KEY (не задано) scripts/ad-hoc/regen-opencode-config.ts API-ключ в стиле OpenCode (sk-...), записываемый в заново созданный opencode.json. Если не задан, используется OMNIROUTE_KEY.

Средства автономной оценки сжатия (специализированные инструменты)

Заголовок раздела «Средства автономной оценки сжатия (специализированные инструменты)»

Используется scripts/compression-eval/index.ts — CLI для автономной оценки сжатия. Для обычной работы не требуется — предназначено только для разработчиков.

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_EVAL_CREDENTIALS {} (пустой объект) scripts/compression-eval/index.ts Предоставленные оператором учётные данные в формате JSON для провайдера, проверяемого CLI автономной оценки сжатия (разбираются с помощью JSON.parse). Не задавайте для пробного запуска.

Используются src/lib/vncSession/manifest.ts для настройки безголовых сеансов Chromium на базе Docker для провайдеров автоматизации браузера. Все параметры необязательны — значения по умолчанию указаны ниже.

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Путь к исполняемому файлу Docker, используемому для запуска контейнеров VNC.
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Образ Docker для контейнера VNC Chromium.
OMNIROUTE_VNC_CHROMIUM_ARGS (встроенные флаги) src/lib/vncSession/manifest.ts Дополнительные аргументы CLI Chromium, передаваемые браузеру внутри контейнера.
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Порт VNC внутри контейнера.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Порт Chrome DevTools Protocol внутри контейнера.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Каталог профиля внутри контейнера.
OMNIROUTE_VNC_PROFILE_DIR (не задано) src/lib/vncSession/manifest.ts Каталог на стороне хоста для постоянного хранения профилей браузера.
OMNIROUTE_VNC_IDLE_MS 600000 src/lib/vncSession/manifest.ts Время ожидания при бездействии (мс), по истечении которого сеанс VNC завершается.
OMNIROUTE_VNC_MAX_MS 1800000 src/lib/vncSession/manifest.ts Максимальная продолжительность сеанса (мс).
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Максимальное количество одновременных сеансов VNC.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Время ожидания готовности браузера (мс).
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Время ожидания завершения или очистки (мс).
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Выделенная сеть Docker, к которой подключается контейнер (#12571), отдельно от моста по умолчанию.
VIBEPROXY_DATA_DIR (не задано) open-sse/services/notionThreadSessions.ts Каталог для постоянного хранения сеансов потоков Notion.
Переменная Значение по умолчанию Описание
OMNIROUTE_INTERNAL_SERVICE_TOKEN – Встроенный токен для межсервисной аутентификации уровня управления.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE – Путь к файлу, содержащему токен внутреннего сервиса (предпочтительно в контейнерах; переопределяет встроенную переменную).
Переменная Значение по умолчанию Описание
OPENROUTER_PROVIDER_STATS_ENABLED true Установите значение false, чтобы пропустить получение статистики OpenRouter по каждому провайдеру для дополнения каталога.
OPENROUTER_PROVIDER_STATS_TTL_MS 3600000 TTL кеша (мс) для полученной статистики провайдеров OpenRouter.
Переменная Значение по умолчанию Описание
REDIS_BIND_HOST 127.0.0.1 Адрес привязки встроенной службы Redis.
REDIS_PORT 6379 Порт встроенной службы Redis.
OMNIROUTE_REDIS_BIND_HOST – Переопределение адреса привязки встроенной службы Redis на уровне OmniRoute.

Эти настройки были добавлены после предыдущего снимка контракта окружения.

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_CHAT_ADMISSION_QUEUE_MS 2000 src/shared/middleware/chatBodyAdmission.ts Максимальное время ожидания слота допуска ресурсоёмкого чата перед возвращением допускающей повторную попытку ошибки 503; короткое ограниченное ожидание обеспечивает последовательную обработку всплесков запросов агентов вместо мгновенного ответа 503. Значение 0 восстанавливает немедленное отклонение.
OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES 4194304 (4 МБ) src/shared/middleware/chatBodyAdmission.ts Бюджет байтов в очереди для ожидания допуска: ограничивает общий объём буферизованных байтов тела запроса, ожидающих в рамках всего процесса, чтобы ожидание не приводило к росту кучи (#4380). При превышении бюджета немедленно возвращается допускающая повторную попытку ошибка 503.
OMNIROUTE_CHAT_VIRTUAL_TTL_MS 60000 (60 с) src/shared/middleware/chatBodyAdmission.ts Устаревшая настройка, не выполняющая никаких действий начиная с #10110: каналы допуска для отдельных сеансов были удалены в пользу единого бюджета на весь процесс. Принимается для совместимости конфигурации, но игнорируется.
OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS 64 src/shared/middleware/chatBodyAdmission.ts Устаревшая настройка, не выполняющая никаких действий начиная с #10110: каналы допуска для отдельных сеансов были удалены в пользу единого бюджета на весь процесс. Принимается для совместимости конфигурации, но игнорируется.
OMNIROUTE_CHAT_VIRTUAL_LANES 0 (выкл.) open-sse/services/admission/runtime.ts Адаптивные виртуальные каналы допуска во время выполнения (#9654): главный переключатель адаптивного шлюза для каждого арендатора (система 2). Отличается от указанных выше устаревших переменных каналов для отдельных подключений (TTL_MS / MAX_SESSIONS, не выполняют никаких действий начиная с #10110). Одноимённый флаг функции на панели управления; переменная окружения имеет приоритет над переопределением на панели управления; требуется перезапуск.
OMNIROUTE_RUNNOW_TIMEOUT_MS 30000 src/app/api/jobs/[id]/run-now/route.ts Ограничивает время, в течение которого вызов немедленного запуска ожидает выполнения уже запущенного задания, прежде чем начать запуск задания из очереди.
ADOBE_FIREFLY_BROWSER_REFRESH включено open-sse/services/adobeFireflySession.ts Поддерживает актуальность состояния IMS и состояния браузерных рисков с помощью сеансов Chrome CDP, привязанных к учётной записи; установите 0, чтобы отключить.
ADOBE_FIREFLY_SESSION_DISK включено open-sse/services/adobeFireflySession.ts Сохраняет восстановленные сеансы Adobe в DATA_DIR; установите 0, чтобы хранить состояние только в памяти.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Минимальный интервал между отправками запросов на генерацию Adobe Firefly.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Дополнительный период бездействия после каждой третьей успешной отправки запроса Adobe.
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Настоящий безголовый режим, предназначенный только для отладки; Adobe colligo обычно отклоняет полученный сеанс риска.
CHROME_PATH автоопределение open-sse/executors/cloudflare-playground.ts, open-sse/executors/chatgpt-web-codex.ts Необязательный абсолютный путь к исполняемому файлу Chrome, используемому браузерными исполнителями, когда автоматического определения на платформе недостаточно.
TELEGRAM_BOT_TOKEN (не задано) src/lib/telegram/config.ts Токен BotFather, который включает входящий вебхук и подписывает initData мини-приложения.
TELEGRAM_WEBHOOK_SECRET (не задано) src/lib/telegram/config.ts Общий секрет, зарегистрированный через setWebhook и проверяемый по заголовку X-Telegram-Bot-Api-Secret-Token при каждой доставке вебхука. Обязателен для маршрута вебхука; если не задан, доставки вебхука отклоняются с кодом 503.
TELEGRAM_DEFAULT_MODEL auto/chat src/lib/telegram/chatProxy.ts Модель, используемая для ответов в чатах Telegram.
TELEGRAM_BOT_API_BASE https://api.telegram.org src/lib/telegram/config.ts Переопределение базового URL Bot API для прокси или самостоятельно размещённых серверов Bot API.
TELEGRAM_WEBHOOK_TIMEOUT_MS 60000 src/lib/telegram/config.ts Время ожидания исходящих вызовов Bot API в миллисекундах.
OMNIROUTE_OPTIONAL_PACK_TAR 1 (включено) scripts/build/optionalPackStaging.mjs Установите 0, чтобы не создавать архивы .tar.gz при подготовке необязательных пакетов машинного обучения и браузера для автономного дерева Electron (каталоги пакетов и optional-packs.index.json по-прежнему создаются). Используется процессом выпуска настольного приложения для уменьшения размера загружаемых артефактов.

Глобальные значения по умолчанию для безголового браузера и исходящего туннеля инструментов. Значения подключения, заданные на панели управления, имеют приоритет.

Переменная Значение по умолчанию Исходный файл Описание
CHATGPT_WEB_CODEX_CHROME_PATH (автоматическое определение) open-sse/executors/chatgpt-web-codex.ts Явный путь к Chrome/Chromium для работы через npm, systemd и PM2.
CHROME_PATH (автоматическое определение) open-sse/executors/chatgpt-web-codex.ts Общий резервный вариант для явного пути к Chrome/Chromium.
CHATGPT_WEB_CODEX_CDP_URL (не задано) open-sse/executors/chatgpt-web-codex.ts Внутренняя конечная точка CDP; Docker использует вспомогательный контейнер на порту 9223.
CDP_PROXY_TOKEN (не задано) docker/chatgpt-web-codex-browser/cdp-proxy.mjs Если значение задано, каждый запрос к вспомогательному контейнеру CDP-прокси должен передавать его в заголовке X-Omni-Cdp-Token (#13679). Если значение отсутствует, прокси перенаправляет запросы без аутентификации — в таком случае защиту обеспечивает только сетевая изоляция сети Compose chatgpt-web-codex-net. Создать токен можно с помощью openssl rand -hex 32.
CHATGPT_WEB_CODEX_TUNNEL_ID (не задано) open-sse/executors/chatgpt-web-codex.ts Глобальный идентификатор туннеля OpenAI для локальных циклов инструментов Codex.
CHATGPT_WEB_CODEX_RUNTIME_KEY (не задано) open-sse/executors/chatgpt-web-codex.ts Глобальный ключ среды выполнения туннеля; никогда не выводите его в журналы.
CHATGPT_WEB_CODEX_CONNECTOR_NAME OmniRoute Codex v2 open-sse/executors/chatgpt-web-codex.ts Точное имя вновь созданного пользовательского коннектора ChatGPT для моста MCP.
CODEX_CHATGPT_WEB_HOME <DATA_DIR>/chatgpt-web-codex open-sse/vendor/codex-chatgpt-web/config.ts Выделенный каталог для состояния браузера, брокера и туннеля.
CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS 0 open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts При значении 1 на каждой контрольной точке создаются диагностические снимки браузера.
CODEX_CHATGPT_WEB_LAUNCHER (не задано) open-sse/vendor/codex-chatgpt-web/config.ts Необязательный абсолютный путь к постоянному исполняемому файлу лаунчера.
CODEX_CHATGPT_WEB_BUN (автоматическое определение) open-sse/vendor/codex-chatgpt-web/config.ts Необязательный абсолютный путь к исполняемому файлу среды выполнения Bun.
CODEX_WEB_GPT_BUN (не задано) open-sse/vendor/codex-chatgpt-web/config.ts Устаревший резервный вариант для CODEX_CHATGPT_WEB_BUN; в новых конфигурациях используется каноническое имя.

Долгоживущий потребитель SSE, который зеркалирует задачи хаба OmniConductor в локальный A2A TaskManager (src/lib/conductor/). Использование по выбору — мост запускается только тогда, когда задана переменная CONDUCTOR_HUB_URL. Только для серверной части: токен хаба никогда не должен попадать в браузер.

Переменная Значение по умолчанию Исходный файл Описание
CONDUCTOR_HUB_URL (пусто) src/lib/conductor/boot.ts Базовый URL хаба OmniConductor (например, http://127.0.0.1:7910). Не задано = мост отключён.
CONDUCTOR_HUB_TOKEN (пусто) src/lib/conductor/boot.ts Учётные данные хаба для SSE-ленты — создайте на хабе пир вида spokesperson (POST /v1/peers, права администратора).
CONDUCTOR_ORCHESTRATOR_TOKEN (пусто) src/lib/conductor/hubProxy.ts Учётные данные для входящего делегирования задач A2A→хаб (POST /v1/tasks); если не задано, используется CONDUCTOR_HUB_TOKEN.
CONDUCTOR_SPOKESPERSON_URL http://127.0.0.1:7920 src/lib/conductor/faroProxy.ts Базовый URL сервиса spokesperson (Faro), доступного через прокси чата панели управления (/api/conductor/ask).

Используется в open-sse/services/combo.ts и src/lib/quota/quotaScheduler.ts для предварительной проверки бюджета токенов перед запросом. Использование по выбору — если переменная не задана, поведение маршрутизации по умолчанию не изменяется.

Переменная Значение по умолчанию Исходный файл Описание
OMNIROUTE_QUOTA_AWARE_ROUTING 0 open-sse/services/combo.ts При значении 1 пропускает подключения, в которых бюджета токенов на временное окно (rateLimitOverrides.tpm, таблица provider_quota_state) недостаточно для покрытия оценочной стоимости запроса до его отправки. Если бюджет не настроен, запрос разрешается.

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

HagiCode

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

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

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