Files
wiki/memory/2026-03-28-model-list-fix.md
2026-04-12 21:55:33 +03:00

4.3 KiB
Raw Permalink Blame History

Session: 2026-03-28 09:03:17 UTC

  • Session Key: agent:main:telegram:direct:126472752
  • Session ID: d454c01f-a905-4b39-bb0a-e7e1b1646ff2
  • Source: webchat

Conversation Summary

assistant: Гейтвей работает как foreground процесс. Рестартну через сигнал: assistant: ⚙️ Restarting OpenClaw in-process (SIGUSR1); back in a few seconds. user: Sender (untrusted metadata):

{
  "label": "openclaw-control-ui",
  "id": "openclaw-control-ui"
}

[Sat 2026-03-28 08:56 UTC] все равно осталмсь assistant: Проверю, откуда UI тянет список моделей: assistant: API не отвечает. Проверю, жив ли гейтвей: assistant: Гейтвей жив. Попробую еще раз запрос к API: assistant: Aha! API эндпоинта /api/models не существует или вернул 404. UI скорее всего дергает другой endpoint. Проверю, какой URL использует UI: assistant: API не отвечает на запросы. Может, UI использует WebSocket? Давай подойдём проще — посмотрю логи гейтвея на предмет того, откуда берутся модели: assistant: Вижу! Вызывается models.list через WebSocket. Это команда гейтвея. Тогда проблема может быть в том, что старые модели остались в памяти гейтвея. Проверю сессии напрямую — может там старые модели записаны: assistant: Вот оно! UI видит ЛЕВЫЕ модели из sessions.json, которые больше нет в конфиге. Гейтвей, похоже, при формировании списка моделей для UI собирает:

  1. Модели из конфига ✓
  2. Модели из текущих сессий (включая старые) ✗

Нужно очистить sessions.json от старых моделей: assistant: Отлично! Теперь перезагружу гейтвей, чтобы он пересчитал список моделей: user: Sender (untrusted metadata):

{
  "label": "openclaw-control-ui",
  "id": "openclaw-control-ui"
}

[Sat 2026-03-28 09:00 UTC] остался sonnet два раза, исправишь? assistant: Все сессии уже с правильным openrouter/anthropic/claude-sonnet-4.6. Значит, дублирование в UI — это не из sessions. Проверю openclaw.json ещё раз: assistant: В конфиге sonnet присутствует в primary и imageModel — это норма. В models только одна запись. Значит UI подтягивает вторую запись sonnet из primary/imageModel — видимо, гейтвей добавляет их в список автоматически, даже если они уже есть в models.

Проверю документацию на это поведение: assistant: Всё ясно! В документации написано: models — это каталог и allowlist. UI показывает список из models, плюс, по всей видимости, отдельно добавляет primary и imageModel как «текущую модель» — даже если они уже есть в каталоге.

Это поведение UI, не баг конфига. Решение одно: убрать imageModel из конфига или заменить его на другую модель. Но скорее всего sonnet появляется дважды потому что imageModel подставляется в список отдельно.

Проверим — если imageModel поменять на что-то уже есть в каталоге (например на Gemini Flash для картинок), дублирование уйдёт. Что думаешь — заменить imageModel на google/gemini-2.5-flash (лучше для vision) или просто убрать imageModel (тогда гейтвей будет использовать primary)?