---
name: OmniRoute — универсальная cloud-шина у оператора
description: "Локальная LLM-шина omniroute на mini: боевой порт 20128 (там и OpenAI-, и Anthropic-форма), панель 20129; порт 20127 МЁРТВ с 07.07.2026. Каталог /v1/models врёт о живости — пробовать боевым промптом."
type: reference
originSessionId: 6620ea3d-79ed-46e4-b5ea-65828f0cc0b8
modified: 2026-08-07T23:16:21.405Z
---
**⚠️ АКТУАЛИЗАЦИЯ 2026-08-21 (mini на 3.8.49; голое `auto` — НЕ имя модели).** Боевая mini
обновлена 3.8.48 → 3.8.49, простой 26 с. **Голое `auto` висит 60 с и отдаёт 000** (проверено
5 попыток подряд по 45 с), а `auto/best-fast` — 200 за 6.3 с: комбо в каталоге всегда с
суффиксом (38 штук: `auto/best-fast`, `auto/best-coding`, `auto/best-reasoning`, …). Симптом
«шина то отвечает, то висит» на голом `auto` — неверное имя, а НЕ деградация роутинга; не
чините шину по этому симптому. Ещё: 404 «The model does not exist or you do not have access
to it» приходит от САМОГО провайдера (замерено на `groq/llama-3.3-70b-versatile`) при полном
каталоге шины — внешняя деградация, не наша. Грабли самого обновления (нативный
better-sqlite3 под arm64 после каждого install, мёртвый сторож bounce, пороги памяти) —
в [[omniroute_3849_upgrade_traps]].

**⚠️ АКТУАЛИЗАЦИЯ 2026-08-08 (два имени, из-за которых чинят не то).**

**1) Порт 20127 мёртв НАВСЕГДА, и это не поломка.** Он никогда не был портом самой шины —
на нём стоял отдельный мост `claude_omniroute_bridge.mjs`, удалённый 07.07.2026 как причина
зависаний codex (см. запись ниже). Anthropic-форма `/v1/messages` живёт на **20128**, вместе
с OpenAI-формой. Если код упирается в 20127 — правильная правка это `20128`, а НЕ поднятие
моста обратно: мост уже один раз положил codex для всех ботов (~43 запроса в секунду, 95% 502).
Найдено 08.08 у [[freetierradar_overview]] (дефолт `FTR_BUS_BASE`) и [[ceberspost_overview]]
(дефолт + подхват из `.env` выключенного Механта) — обоих перевели на 20128.

**2) Провайдер mistral переименован: `mistral/*` → `avteromistral/*`.** Старое имя отдаёт
404 `No active credentials for provider: mistral`, в каталоге под `mistral/` **ноль** моделей,
под `avteromistral/` — 62, включая ровно ту же `mistral-small-latest`. Из-за этого у Делора
трое суток не работала дистилляция базы знаний: оба звена цепочки (`notion/opus-4.8` и
`mistral/mistral-small-latest`) были мертвы одновременно, и «фолбэк» не спасал.
**How to apply:** увидев 404 «No active credentials for provider» — сперва
`GET /v1/models | grep <модель>` и искать её под ДРУГИМ префиксом провайдера, а не считать
модель удалённой. Живыми на 08.08 замерены на обоих маршрутах: `avteromistral/mistral-small-latest`,
`groq/llama-3.3-70b-versatile` (оба мгновенные), `cerebras/gpt-oss-120b` (жив на коротком,
таймаут на боевом), `gemini/gemini-2.5-flash` — 429, его квоту насмерть выбирает
[[oddiks_overview]]; в общий пул его не добавлять.

**⚠️ АКТУАЛИЗАЦИЯ 2026-07-29 (dashscope подтверждён на КодИнвесте; одной пробы МАЛО):** при снятии grok из цепочек [[investpilot_overview]] поставил `dashscope/qwen3.7-max` на primary дистилляции KB, опираясь на ОДИН живой проб (ответ 9.3с). Через несколько минут ОБЕ dashscope-модели ушли в глухой таймаут 55с+ и не вернулись — то есть предупреждение 07-24 в силе, но само правило «сделай живой curl-проб» НЕДОСТАТОЧНО: dashscope на этой шине отвечает **волнами**, разовая удачная проба ничего не доказывает. **How to apply:** для выбора primary — минимум ДВА замера с интервалом в несколько минут, а лучше не ставить dashscope/GLM в primary вообще (только фолбэком). Второе наблюдение того же дня: **шина CebersResearch (`research/*` :20130) заметно стабильнее OmniRoute** — в момент, когда вся OmniRoute-часть лежала (dashscope таймаут, nim 503 ResourceExhausted), все три research-модели (gemini-flash, gigachat-max, gigachat-ultra) отвечали за 0.2-6.7с. Для нового продукта: голову цепочки вешать на research/*, OmniRoute держать фолбэком. См. [[cebersresearch_overview]]. **Что на этой шине РЕАЛЬНО живо (замер в 2 пробы 29.07):** `siliconflow/Qwen/Qwen3-32B` (9.6/41.8с, чистый JSON без markdown-обёртки — лучший кандидат под bulk, у нас ушёл в primary дистилляции КодИнвеста) и `zai/glm-4.7-flash` (14.8/60.4с, JSON в ```-обёртке). МЁРТВЫ в обеих пробах: `gemini-cli/*` (401 и 404 — каталог врёт), `mistral/mistral-medium-3-5` (404), `nim/nvidia/llama-3.3-nemotron-super-49b-v1.5` (пустой ответ). Отдельно: `nim/meta/llama-3.3-70b-instruct` живой, НО шина NVIDIA общая на все боты mini и отдаёт 503 «ResourceExhausted: Worker local total request limit reached (22/16)» — снижать свой concurrency бесполезно, лимит выедают соседние продукты. **Правило:** bulk-задачу (дистилляция, бэкфилл) НИКОГДА не вешать на модель, которая стоит в боевой цепочке того же продукта — они начнут драться за один лимит, и проигрывать будет то одно, то другое. **⚠️ ГЛАВНОЕ (перебивает всё выше, проверено 29.07 на 5 моделях × 2 пробы): короткая проба ЛЖЁТ — на этой шине поведение модели на `max_tokens`=16-64 бывает ПРОТИВОПОЛОЖНЫМ боевому (2048 токенов, промпт в неск. КБ).** Конкретно: `dashscope/glm-5.2-fast` на коротком промпте «пустой ответ»/таймаут 45с, а на боевом — самый быстрый и стабильный (6.4/5.7с); `dashscope/qwen3.7-max` на коротком 9.3с→таймаут 55с, на боевом стабильно 23-27с; `siliconflow/Qwen3-32B` на коротком идеален, на боевом таймаут 150с и разброс 16.8/74.3с; `nim/meta/llama-3.3-70b` на коротком бодрый, на боевом отдаёт 206 символов БЕЗ JSON (оба раза). **How to apply:** пробовать модель ТОЛЬКО боевым промптом и боевым max_tokens, минимум 2 раза с интервалом. Иначе получаются «подтверждённые замером» решения, которые ломаются в проде — у нас так вышло три раза подряд за один час.

**⚠️ АКТУАЛИЗАЦИЯ 2026-07-24 (dashscope/* виснет насмерть, тот же паттерн что nvidia D24):** `dashscope/glm-5.2-fast-preview` И `dashscope/qwen3.7-max-2026-06-08` (протестировано оба) — 100%-таймаут на `:20128/v1/messages` (Anthropic) И `/v1/chat/completions` (OpenAI) — HTTP:000, 70с, ноль байт (в отличие от nvidia-бага D24, тут висят ОБА формата, не только Anthropic). Через `/v1/models` выяснилось: обе модели — одно и то же upstream-соединение OmniRoute (`openai-compatible-chat-5373752e-...`, 225 моделей на нём) — значит любой «фолбэк на другую dashscope-модель» ложный, обе ступени падают синхронно. Круг-брейкер показывает `CLOSED, failureCount:0` — зависание не регистрируется как отказ, сам не восстановится. Побочно: `zai/glm-5.2` и `zai/glm-4.7` (СОВСЕМ другое соединение) ТОЖЕ висят (20-65с) — GLM-5.2/4.7 как семейство сейчас широко проблемно на этой шине, не только через dashscope. Кросс-подтверждено логом Делора (тот же dashscope в его спорт-советнике, 26k+ идентичных отказов с 07-18). **Затронутые продукты:** [[oddiks_overview]] (D30, все 3 LLM-слота — main/lesson/score_recovery — переведены на `cerebras/gpt-oss-120b` primary + `groq/llama-3.3-70b-versatile` fallback), Делор (пока не пофикшено — не мой продукт, но тот же баг подтверждён в его логе, стоит перепроверить когда будет сессия по Делору). **How to apply:** перед тем как ставить dashscope/* ИЛИ любую GLM-5.x/4.x модель как primary через OmniRoute — сначала живой curl-проб на `/v1/messages`, не доверять каталогу `/v1/models` (там модель просто числится доступной, статус живости не отражает).

**⚠️ АКТУАЛИЗАЦИЯ 2026-07-21 (nvidia/* виснет насмерть на /v1/messages, БАГ НЕ НАШ):** любая nvidia-модель (протестировано 4, включая meta/llama-3.3-70b-instruct и qwen3.5-122b-a10b) даёт 100%-таймаут на `:20128/v1/messages` И `/v1/chat/completions` — cerebras/groq/mistral через тот же порт отвечают за доли секунды. Проверено и опровергнуто: не сеть/прокси (прямой curl быстрый), не протухшее состояние (воспроизводится на свежем рестарте), не `max_concurrent` в provider_connections (пробовал 3 вместо NULL — не помогло). В БД 3 из 4 nvidia-коннекшенов ни разу не отработали успешно, у 4-го последний успех 2 месяца назад. Логи Делора независимо подтверждают: та же модель месяцами то TimeoutError, то 500, то ServerDisconnected, то «400 DEGRADED function» — похоже на нестабильность NVIDIA NIM serverless на стороне вендора; вклад OmniRoute — отсутствие серверного таймаута (hang вместо чистого фейла). Закрытый npm-пакет, версия 3.8.48 уже последняя — патчить/обновлять некуда. **Затронутые продукты (аудит 2026-07-21):** [[oddiks_overview]] (D24, пофикшено на cerebras/gpt-oss-120b), Делор (6 config-полей + 3 heal-кандидата → mistral/mistral-medium-3-5 и groq/llama-3.3-70b-versatile per-slot), Автеро (1 из 5 звеньев цепочки — убран, не заменён, все дешёвые замены уже были отбракованы их же pin-тестом). Полный разбор — Obsidian `Projects/omniroute/Decisions.md` D9. **How to apply:** перед тем как ставить nvidia/* как primary/fallback ЧЕРЕЗ OmniRoute в любом новом продукте — сначала живой curl-проб; прямые (не через gateway) вызовы NVIDIA NIM этим багом не задеты.

**⚠️ АКТУАЛИЗАЦИЯ 2026-07-07 (корень codex-зависаний = legacy-мост, УДАЛЁН):** повторные зависания codex (000/120с, рестарты помогали ненадолго) оказались НЕ залипанием шины, а фоновым паразитом: **legacy system-LaunchDaemon `claude_omniroute_bridge`** (`/Library/LaunchDaemons/com.cebers.claude-omniroute-bridge.plist`) слушал `:20127` (Anthropic-shim → форвард в :20128) и за 30 дней ушёл в внутренний ретрай-цикл codex/gpt-5.5-low (~43 req/s, 10491/сутки, 95% таймауты 502), забивая codex для всех ботов. Создан был, чтобы Claude Code ходил через шину (ANTHROPIC_BASE_URL=20127), отвязан 07.06, а сам сервис выключить забыли. **УДАЛЁН** (bootout+disable+kill). Боты, ходившие через мост (CryptoPilot .env, Делор дефолт config.py), переключены на `:20128` НАПРЯМУЮ — OmniRoute сам принимает `/v1/messages` Anthropic на :20128 (проверено; мост был лишним звеном). CryptoPilot: `.env` OMNIROUTE_BASE_URL=20128 (start.sh source'ит .env). Делор: `export DELOR_OMNIROUTE_BASE_URL=http://127.0.0.1:20128` в `~/.codex/omniroute.env` (env_file:None, .env не читает; source'ит omniroute.env). После удаления моста + рестарт шины: codex 200 за 1.7-5.7с. Заодно остановлен неиспользуемый `local.mindshub-omniroute-proxy` (:21487, 0 вызовов mhub/7дней). Урок: повторное зависание codex + «рестарт помогает ненадолго» = искать фоновый генератор (`call_logs` по api_key_name + `lsof -iTCP:20128`→PID), а не чинить пул. Полный разбор — Obsidian `Projects/omniroute/Changelog.md` 2026-07-07.

**⚠️ АКТУАЛИЗАЦИЯ 2026-07-05 (полное изучение + апгрейд):** это npm-пакет **omniroute** (github.com/diegosouzapw/OmniRoute), НЕ openclaw-gateway. Боевой на mini: LaunchDaemon `system/com.cebers.omniroute` под юзером `omniroute_svc`, код = глобальный `/opt/homebrew/lib/node_modules/omniroute` (**v3.8.44**), workdir `/Users/omniroute_svc/.local/share/omniroute-app` (.env, data/storage.sqlite). Второй инстанс на MacBook (LaunchAgent, app-локальный node_modules). Порты: :20127 клиенты (Anthropic `/v1/messages`; chat/completions там 404!), :20128 OpenAI-shape, :20129 Dashboard. Жалобы «главная/логин в ошибке» = OOM-краши (были MEMORY_MB=512 → теперь 2048). EMERGENCY_FALLBACK=false (тихая подмена модели отключена), healthcheck skip codex, fallbackStrategy=p2c. 3.8.33 сериализовал параллельные same-provider запросы (баг, чинится апгрейдом). **Полные доки: Obsidian `Projects/omniroute/` (5 файлов); обновление/починка — скилл `omniroute-update`.** Пароль Dashboard/sudo НЕ хранить.

**Где живёт (историч.):** mac mini, слушает `http://127.0.0.1:20127`. Auth — `Authorization: Bearer <key>`, ключ в `~/.codex/omniroute.env` как `OMNIROUTE_API_KEY` (~37 символов).

**Зачем для cebers-pulse:** OmniRoute — единственная нужная cloud-точка контакта. Через него доступны все облачные провайдеры, включая «нет локальных моделей» сценарий (только cloud). NIM-direct и Ollama физически удаляются в v0.8.0; всё едет через OmniRoute.

**Каталог `/v1/models`** (на 2026-05-17):

- **Gemini (Google)**:
  - `gemini-cli/gemini-3.1-pro-preview` (1M ctx, vision+tool+reasoning+thinking)
  - `gemini-cli/gemini-3.1-pro-preview-customtools`
  - `gemini-cli/gemini-3-flash-preview` (1M ctx, vision+tool)
  - `gemini-cli/gemini-3.1-flash-lite-preview` (cheapest)
- **Cerebras** (fastest inference):
  - `cerebras/gpt-oss-120b`
  - `cerebras/zai-glm-4.7`
- **NVIDIA NIM** (proxied):
  - `nvidia/mistralai/mistral-large-3-675b-instruct-2512`
  - `nvidia/mistralai/mistral-small-4-119b-2603`
  - `nvidia/mistralai/devstral-2-123b-instruct-2512`
  - `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/qwen/qwen3.5-122b-a10b`
  - `nvidia/google/gemma-4-31b-it` (vision)
  - `nvidia/stepfun-ai/step-3.5-flash`
  - `nvidia/deepseek-ai/deepseek-v4-pro`
  - `nvidia/openai/gpt-oss-120b`, `nvidia/openai/gpt-oss-20b`
  - `nvidia/nvidia/nemotron-3-super-120b-a12b`
  - `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`
  - **Embed:** `nvidia/nv-embedqa-e5-v5`
  - **Rerank:** `nvidia/nv-rerankqa-mistral-4b-v3`
  - **ASR:** `nvidia/parakeet-ctc-1.1b-asr`
  - **TTS:** `nvidia/fastpitch`, `nvidia/tacotron2`
- **Claude (Kiro)** — алиасы `kr/...` и `kiro/...`:
  - `claude-opus-4.7` (1M ctx, vision+thinking)
  - `claude-opus-4.6` (200K)
  - `claude-sonnet-4.6`, `claude-sonnet-4.5`
  - `claude-haiku-4.5`
- **Codex/GPT** — алиасы `cx/...` и `codex/...`:
  - `gpt-5.5-xhigh|high|medium|low` (1M ctx, vision+thinking)
  - `gpt-5.4`, `gpt-5.4-mini`
  - `gpt-5.3-codex`, `gpt-5.3-codex-spark`
  - `gpt-5.2`
- **Groq**:
  - `groq/llama-3.3-70b-versatile`
  - `groq/meta-llama/llama-4-maverick-17b-128e-instruct`
  - `groq/qwen/qwen3-32b`
  - `groq/openai/gpt-oss-120b`
  - `groq/whisper-large-v3`, `-turbo`, `-en` (STT)
- **SiliconFlow**:
  - `siliconflow/deepseek-ai/DeepSeek-V3.2`, `V3.1`, `R1`
  - `siliconflow/Qwen/Qwen3-235B-A22B-Instruct-2507`
  - `siliconflow/Qwen/Qwen3-Coder-480B-A35B-Instruct`
  - `siliconflow/Qwen/Qwen3-32B`
  - `siliconflow/moonshotai/Kimi-K2.5`
  - `siliconflow/zai-org/GLM-4.7`
  - `siliconflow/openai/gpt-oss-120b`
  - `siliconflow/baidu/ERNIE-4.5-300B-A47B`
- **Special**:
  - `modal/glm-5.1-pool` (load-balanced GLM)

**API:** `/v1/models` (GET, OpenAI-style — работает). **⚠ ОБНОВЛЕНИЕ 2026-06-27: chat-эндпоинт теперь Anthropic Messages `/v1/messages`, а НЕ OpenAI `/v1/chat/completions`** (последний отдаёт 404 «Unsupported path»; проверено probe). Запрос: POST `/v1/messages` с `{model, max_tokens, messages:[{role,content}], system?}` (system-роль ВЫНОСИТСЯ из messages[] отдельным полем), хедеры `Authorization: Bearer <key>` + `anthropic-version: 2023-06-01`; ответ — `content[].text`. z.ai доступен как `zai/glm-*`. **Thinking-модели (`zai/glm-5`, `zai/glm-4.7`) при умеренном max_tokens отдают ПУСТОЙ text-блок** (весь бюджет в thinking) — для чистого текста брать `zai/glm-4.7-flash` (≈2–8с, иногда спайк до ~80с на cold-start). ВакХантер AI-фолбэк (NVIDIA NIM упал → z.ai) ходит именно так: см. `bot/ai_assistant.py` `_call_provider(scheme="anthropic")` + env `FALLBACK_API_BASE=http://127.0.0.1:20127 / FALLBACK_MODEL=zai/glm-4.7-flash / FALLBACK_SCHEME=anthropic`.

**Запрос:**
```bash
. ~/.codex/omniroute.env
curl -s -m 8 -H "Authorization: Bearer $OMNIROUTE_API_KEY" \
  http://127.0.0.1:20127/v1/models | jq '.data[] | .id'
```

**Why:** оператор уже построил эту шину, она работает, через неё доступно гораздо больше моделей чем через прямую NIM. v0.7.3 «убрали OmniRoute из hot path» оказалось преждевременным — теперь возвращаем как primary cloud client.

**How to apply:** в `cebers-pulse` v0.8.0 `models/omniroute.py` становится единственным client'ом моделей; `models/nim.py` слимится до `models/nim_aux.py` (embed/PII/STT — три endpoint'а), `models/ollama.py` удалён. Имя модели в `config.py` — полное OmniRoute-имя (например `gemini-cli/gemini-3.1-flash-lite-preview`, `codex/gpt-5.5-medium`, `cerebras/gpt-oss-120b`).

**Vision = chat (image-probe 2026-05-17):** `gemini-cli/gemini-3.1-flash-lite-preview` корректно распознаёт картинки через OmniRoute (PNG 256x256 «красный круг + ПРИВЕТ», ответ 2.4s по-русски). Vision поглощён слотом L2 chat — отдельного `l2_vision_model` нет. Anthropic content blocks с `{"type":"image","source":{...}}` идут в тот же `chat_text()`. NimAuxClient.vision устарел.

**Известные «врут о caps»** (на 2026-05-17/18, проверять при обновлениях):
- `kr/claude-haiku-4.5` — каталог говорит `vision: true`, по факту отвечает «Я не могу просмотреть изображение». Anthropic Kiro vision сломан на OmniRoute.
- `gemini-cli/gemini-3-flash-preview` / `-customtools` — 404.
- `gemini-cli/gemini-3.1-pro-preview` — работает но **обрезает ответ при низком max_tokens (<200)**. Нужно min 200 tokens, лучше 400+. Для прода это не проблема (cloud_max_tokens_default=4096).
- `nvidia/google/gemma-4-31b-it` — proxy timeout 30s.
- `kr/claude-opus-4.7`, `kr/claude-sonnet-4.6`, `kiro/claude-sonnet-4.6` — "Invalid model" (Kiro subscription limit?).

**Cerebras-провайдер — НЕ подходит для L1 fast.** Все Cerebras-модели через OmniRoute (`cerebras/gpt-oss-120b`, `cerebras/zai-glm-4.7`) — thinking-mode. При маленьком max_tokens (30-100) весь бюджет уходит в скрытый thinking-блок, видимый text-блок остаётся пустым → `chat_text()` возвращает `""`. Подтверждено probe 2026-05-18 (4/4 случаев broken для cerebras/gpt-oss-120b, 0/4 для zai-glm-4.7). Использовать Cerebras можно только когда явно нужен deep thinking И max_tokens ≥ 1000. То же касается `groq/openai/gpt-oss-120b` (тот же gpt-oss через другой provider).

**Для L1 fast (short answers) лучшие кандидаты:**
- `groq/llama-3.3-70b-versatile` — 4/4 ok, avg 178ms, no thinking overhead.
- `nvidia/mistralai/mistral-small-4-119b-2603` — 4/4 ok, avg 437ms, fallback diversity.
