swarmclaw: фикс окна контекста агента (8192 fallback -> 200K патч), claude-cli не нужен
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -94,6 +94,14 @@ Device SwarmClaw (10.0.0.135) спарен на openclaw с `operator.admin` (ap
|
||||
- **Грабля: `agent.gatewayProfileId`** переключает chat-модель агента на gateway-провайдера (openclaw model «default») → `MODEL_NOT_FOUND 404`, агент перестаёт отвечать. **НЕ ставить** `gatewayProfileId` на агенте; openclaw_nodes сам берёт дефолтный gateway-профиль. Оставлять `gatewayProfileId: null`, provider `omniroute`.
|
||||
- **Полное управление (cron, agent-files SOUL/IDENTITY/.., models, deploy)** — только через UI (Providers → профиль «Antoshka») или SwarmClaw API напрямую (`/api/openclaw/{cron,agent-files,models,...}?profileId=gateway-0eaf65b0` с cookie `sc_auth`). Через агентский чат cron/файлы НЕ редактируются.
|
||||
|
||||
## Окно контекста агента = 8192 (баг!) → патч на 200K (2026-06-12)
|
||||
Дирижёр жаловался на «ограничение окна» и просил пересадить себя на `claude-cli` + Anthropic-ключ. **Корень — НЕ модель и НЕ Max-лимит:** `getContextWindowSize(provider, model)` (`src/lib/server/context-manager.ts`) для незнакомого custom-провайдера `omniroute` не находит его ни в `PROVIDER_CONTEXT_WINDOWS[model]` (там `claude-opus-4-6`, нет `cc/claude-opus-4-8`), ни в `PROVIDER_DEFAULT_WINDOWS[provider]` (есть `anthropic/openclaw/google`, нет `omniroute`) → **fallback `8_192`**. При 4.8k токенов агент уже «на 58%» и паникует. OmniRoute при этом реально отдаёт `context_length: 1000000` для `cc/claude-opus-4-8`.
|
||||
- **Чистого API-пути нет** — окна зашиты в бандл, `model_overrides` про подмену модели (heartbeat), provider-config `contextWindow` нигде не читается.
|
||||
- **Фикс — патч каталога окон в бандле:** добавлен `omniroute:2e5` в `PROVIDER_DEFAULT_WINDOWS` (чанк `/app/.next/server/chunks/src_lib_server_06.*.js`, паттерн `goose:2e5,openclaw:128e3` → `...,omniroute:2e5,openclaw:128e3`). Проверено: `context-status` → `contextWindow: 200000`. Бэкап чанка `.bak-ctxwin`.
|
||||
- **200K, не 1M:** консервативно (гарантированно для Opus). 1M ставить только после проверки, что Max-тракт `cc/*` реально принимает >200K (иначе переполнение → ошибка).
|
||||
- **Устойчивость:** патч в бандле образа — слетает при `--force-recreate`/обновлении. Скрипт `/opt/swarmclaw/repatch-ctxwin.sh` переприменяет (idempotent). Запускать после каждого `docker compose pull`/update SwarmClaw.
|
||||
- **Вывод про claude-cli:** не нужен. Ключ Anthropic не давать — проблема была чисто в неверно посчитанном окне.
|
||||
|
||||
## Схема API (для будущих правок headless)
|
||||
- `POST /api/providers` → `{id,name,baseUrl,models[],requiresApiKey,isEnabled}` (type всегда `custom`), хранит JSON в таблице `provider_configs`.
|
||||
- `POST /api/agents` → zod `AgentCreateSchema`; обяз. `name`,`provider`; `ollamaMode` только `local|cloud|null` (не `off`).
|
||||
|
||||
Reference in New Issue
Block a user