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

50 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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):
```json
{
"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):
```json
{
"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)?