German: primary на kr/sonnet-4.5 (cc/opus Max флапает 400, fallback не ловит); фикс задвоения Telegram
This commit is contained in:
@@ -16,7 +16,11 @@ tags: [decision, ai, hermes, telegram, lxc, assistant]
|
|||||||
## Модель
|
## Модель
|
||||||
- Провайдер **OmniRoute** (OpenAI-совместимый шлюз на LXC 132): `base_url http://10.0.0.179:20128/v1`.
|
- Провайдер **OmniRoute** (OpenAI-совместимый шлюз на LXC 132): `base_url http://10.0.0.179:20128/v1`.
|
||||||
- **Активная модель: `kr/claude-sonnet-4.5`** (free, Kiro/AWS — основная free-модель из CLAUDE.md).
|
- **Активная модель: `kr/claude-sonnet-4.5`** (free, Kiro/AWS — основная free-модель из CLAUDE.md).
|
||||||
- ⚠️ **Изначально ставил `cc/claude-opus-4-8` (Max), но на первом же реальном сообщении Олега Anthropic вернул `400: You're out of extra usage` — квота Max исчерпана.** Весь конвейер при этом отработал (Telegram→allowlist→OmniRoute→Anthropic), упёрлись только в биллинг. 400 — non-retryable, на fallback НЕ уходит → primary должен быть рабочей моделью. Переключил на бесплатную `kr/claude-sonnet-4.5`. Вернуть Opus: `sed -i 's|kr/claude-sonnet-4.5|cc/claude-opus-4-8|' config.yaml && systemctl restart hermes-german` (когда квота Max сбросится).
|
- ⚠️ **`cc/claude-opus-4-8` (Max) ФЛАПАЕТ** `400: You're out of extra usage`: прямой curl к OmniRoute то проходит (19:16), то нет — реальные запросы Олега падали (19:11 «Привет», 19:18 «Бенелюкс», разные request_id). Причина: включённая Max-квота Opus в текущем окне исчерпана (overflow/pay-as-you-go выключен), а окно делят **openclaw (cc/opus-4-7) + swarmclaw (cc/opus-4-8) + code-server** через тот же OmniRoute `cc/*`.
|
||||||
|
- **400 — non-retryable BadRequestError → fallback НЕ срабатывает** (Hermes уводит в fallback только на rate-limit/5xx/connection). Поэтому fallback на Sonnet от Opus-400 не спасает.
|
||||||
|
- **Решение: primary = `kr/claude-sonnet-4.5`** (free, Kiro/AWS, не флапает, не ест Max-квоту, не конкурирует с другими ботами Олега). Проверено: запрос «Бенелюкс» через тулы вернул корректную сводку по KB.
|
||||||
|
- Вернуть Opus, когда окно Max освободится / включён overflow: `sed -i 's|kr/claude-sonnet-4.5|cc/claude-opus-4-8|' /root/.hermes/config.yaml && systemctl restart hermes-german`.
|
||||||
|
- Доп. правки сессии: отключён `display.platforms.telegram.streaming` (было задвоение сообщений в Telegram); fallback-цепочка протестирована (формат `fallback_providers: [{provider,model,base_url}]`, ключ берётся из env — работает), но снята, т.к. от 400 не помогает.
|
||||||
- Ключ — `OPENAI_API_KEY` + `OPENAI_BASE_URL` в `/root/.hermes/.env` (chmod 600).
|
- Ключ — `OPENAI_API_KEY` + `OPENAI_BASE_URL` в `/root/.hermes/.env` (chmod 600).
|
||||||
- `auxiliary` (vision/web_extract/compression/session_search) → `provider: main` — иначе лезли бы в OpenRouter (ключа нет) и падали.
|
- `auxiliary` (vision/web_extract/compression/session_search) → `provider: main` — иначе лезли бы в OpenRouter (ключа нет) и падали.
|
||||||
- ⚠️ **Грабля для будущего:** оба воркфлоу-ревьюера по коду утверждали, что на приватный IP-эндпоинт `OPENAI_API_KEY` из env «гейтится по хосту» и нужен `model.api_key: ${OPENAI_API_KEY}` в config.yaml, иначе 401. **Эмпирически опровергнуто** — CLI- и gateway-вызовы к 10.0.0.179 проходят с env-ключом без `model.api_key`. Если когда-нибудь начнёт давать 401 на первом вызове модели — добавить `api_key: ${OPENAI_API_KEY}` в секцию `model:` и `systemctl restart hermes-german`.
|
- ⚠️ **Грабля для будущего:** оба воркфлоу-ревьюера по коду утверждали, что на приватный IP-эндпоинт `OPENAI_API_KEY` из env «гейтится по хосту» и нужен `model.api_key: ${OPENAI_API_KEY}` в config.yaml, иначе 401. **Эмпирически опровергнуто** — CLI- и gateway-вызовы к 10.0.0.179 проходят с env-ключом без `model.api_key`. Если когда-нибудь начнёт давать 401 на первом вызове модели — добавить `api_key: ${OPENAI_API_KEY}` в секцию `model:` и `systemctl restart hermes-german`.
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ tags: [dttb, proxmox]
|
|||||||
| ОС/рантайм | Debian 12, unprivileged + nesting, Hermes Agent v0.16.0 (Python, `/usr/local/lib/hermes-agent`, данные `/root/.hermes`) |
|
| ОС/рантайм | Debian 12, unprivileged + nesting, Hermes Agent v0.16.0 (Python, `/usr/local/lib/hermes-agent`, данные `/root/.hermes`) |
|
||||||
| Ресурсы | 2 vCPU / 3 GB / 12 GB (rootfs на local-lvm) |
|
| Ресурсы | 2 vCPU / 3 GB / 12 GB (rootfs на local-lvm) |
|
||||||
| Telegram | бот **«Герман Непомнящий»** @german_dttb_bot — заперт на Олега (`TELEGRAM_ALLOWED_USERS=1292155421`) |
|
| Telegram | бот **«Герман Непомнящий»** @german_dttb_bot — заперт на Олега (`TELEGRAM_ALLOWED_USERS=1292155421`) |
|
||||||
| Модель | `kr/claude-sonnet-4.5` (free, Kiro/AWS) через OmniRoute (`http://10.0.0.179:20128/v1`), auxiliary→main. ⚠️ `cc/claude-opus-4-8` (Max) выдал 400 «out of extra usage» — квота Max исчерпана; вернуть Opus = сменить `model.default` + restart, когда квота сбросится |
|
| Модель | `kr/claude-sonnet-4.5` (free, Kiro/AWS) через OmniRoute (`http://10.0.0.179:20128/v1`), auxiliary→main. ⚠️ `cc/claude-opus-4-8` (Max) **флапает** 400 «out of extra usage» (окно Max-Opus делят openclaw/swarmclaw/code-server); 400 non-retryable → fallback НЕ ловит → primary держим на Sonnet. Вернуть Opus: `sed -i 's\|kr/claude-sonnet-4.5\|cc/claude-opus-4-8\|' /root/.hermes/config.yaml && systemctl restart hermes-german` |
|
||||||
| Workspace | `/root/german` (KB-зеркало `knowledge-base/` RO, cron `*/15` pull; `notes/` writable) |
|
| Workspace | `/root/german` (KB-зеркало `knowledge-base/` RO, cron `*/15` pull; `notes/` writable) |
|
||||||
| Сервис | systemd `hermes-german.service` (`hermes gateway run --replace`) |
|
| Сервис | systemd `hermes-german.service` (`hermes gateway run --replace`) |
|
||||||
| Tags | ai, assistant, hermes |
|
| Tags | ai, assistant, hermes |
|
||||||
|
|||||||
Reference in New Issue
Block a user