swarmclaw: оба агента на OmniRoute/Opus (фикс default через БД), грабли claude-cli фоллбек/Session not found/gateway health
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -50,7 +50,9 @@ tags: [dttb, swarmclaw, openclaw, orchestrator, lxc, docker]
|
||||
6. Локаль в LXC не настроена (`locale: Cannot set LC_*`) — косметика, при желании `locale-gen en_US.UTF-8`.
|
||||
7. **Агент отвечал `Error: Missing credentials … OPENAI_API_KEY`** хотя OmniRoute ключ не требует. Причина: OpenAI-совместимый клиент внутри SwarmClaw отказывается слать запрос без непустого `apiKey`. **Фикс:** создать dummy-credential (`POST /api/credentials {provider:omniroute, apiKey:"omniroute-noauth-dummy"}` → `cred_0d2feda42f7b`) и привязать к провайдеру (`requiresApiKey:true` + `credentialId`) И к агенту (`PUT /api/agents/<id>` — PATCH даёт 405). OmniRoute ключ игнорирует. После — агент Dirizhyor отвечает на Opus 4.8 (проверено: «работает», + сам диагностировал второй агент через tools).
|
||||
8. **UI «No agents yet» + циклический логин в Chrome** = браузер держал старый JS-бандл (в логах `Failed to find Server Action`), ломались Server Actions (вход и загрузка). Сервер исправен (REST API через NPM HTTPS отдаёт auth+agents). Лечится чистым браузером (Yandex/инкогнито сработали сразу) или Clear site data в Chrome. SW/PWA нет, контейнер стабилен (0 рестартов).
|
||||
9. **Дефолтный агент Assistant** сидит на провайдере `claude-cli` (в контейнере нет) + пустая модель → не отвечает. Удалён по решению Олега (`DELETE /api/agents/default`). Остался только Dirizhyor.
|
||||
9. **Дефолтный агент Assistant/«Ассистент»** упорно падал `Claude CLI not found`. Корень в коде: `agent-runtime-config.ts` → `provider = seed.provider || 'claude-cli'` (хардкод-фоллбек). У default слетал/пустел provider → фоллбек на claude-cli (в контейнере нет). `POST /api/agents` не даёт задать фиксированный `id`, `PUT /api/agents/default` для пустого не помог. **Фикс: прямой `INSERT OR REPLACE INTO agents` в `data/swarmclaw.db`** — id=`default`, data = копия Dirizhyor (omniroute/opus/cred). App подхватывает без рестарта (loadAgents читает свежо). Теперь оба агента на OmniRoute/Opus.
|
||||
10. **«Session not found» при тесте через curl** — нельзя слать в произвольный `agent-chat-*` ID; сессия создаётся UI/отдельно. Не баг агента — артефакт диагностики. Реальные сессии (созданные в UI) работают (`completed`).
|
||||
11. **Gateway health «не обновлялась 30 мин / статус неизвестно»** — у RPC `/api/openclaw/gateway` есть только connect/disconnect/reload-mode; health-поле профиля (`status`,`lastCheckedAt`) обновляет фоновый probe, не RPC. `gateway.connect{profileId}` → `ok:true` (связь рабочая), но индикатор остаётся `unknown`. Косметика мониторинга, на работу не влияет.
|
||||
|
||||
## Схема API (для будущих правок headless)
|
||||
- `POST /api/providers` → `{id,name,baseUrl,models[],requiresApiKey,isEnabled}` (type всегда `custom`), хранит JSON в таблице `provider_configs`.
|
||||
|
||||
Reference in New Issue
Block a user