swarmclaw: настоящий корень тесноты контекста = жирные схемы 24 tools (33K/запрос); урезка до 9 = 3K (x11)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -100,7 +100,14 @@ Device SwarmClaw (10.0.0.135) спарен на openclaw с `operator.admin` (ap
|
|||||||
- **Фикс — патч каталога окон в бандле:** добавлен `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`.
|
- **Фикс — патч каталога окон в бандле:** добавлен `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 (иначе переполнение → ошибка).
|
- **200K, не 1M:** консервативно (гарантированно для Opus). 1M ставить только после проверки, что Max-тракт `cc/*` реально принимает >200K (иначе переполнение → ошибка).
|
||||||
- **Устойчивость:** патч в бандле образа — слетает при `--force-recreate`/обновлении. Скрипт `/opt/swarmclaw/repatch-ctxwin.sh` переприменяет (idempotent). Запускать после каждого `docker compose pull`/update SwarmClaw.
|
- **Устойчивость:** патч в бандле образа — слетает при `--force-recreate`/обновлении. Скрипт `/opt/swarmclaw/repatch-ctxwin.sh` переприменяет (idempotent). Запускать после каждого `docker compose pull`/update SwarmClaw.
|
||||||
- **Вывод про claude-cli:** не нужен. Ключ Anthropic не давать — проблема была чисто в неверно посчитанном окне.
|
- **Вывод про claude-cli:** не нужен. Ключ Anthropic не давать.
|
||||||
|
|
||||||
|
### НАСТОЯЩИЙ корень «контекст кончается за 2-3 запроса» (2026-06-12)
|
||||||
|
Размер окна оказался вторичен. Олег: «было 200, всё равно за 2-3 запроса кончается». Замер по OmniRoute `call_logs` (`/root/.omniroute/storage.sqlite`, поле `tokens_in`): простой запрос «привет» = **~33-36K tokens_in** (из них cache_read ~33K — кэшируется, но **занимает окно**). А SwarmClaw `context-status` показывал лишь **5.6K** — он НЕ учитывает в индикаторе системный промпт + **схемы инструментов** + knowledge-инжект. Отсюда иллюзия «3%» при реальных 16-18% на пустой запрос, и окно тает в ~6× быстрее.
|
||||||
|
- **Главный пожиратель — схемы 24 инструментов** в каждом запросе (browser, replicate, image_gen, google_workspace, swarmdock, manage_* — жирные JSON-схемы). **Урезал tools 24→9** (ядро: shell, execute, files, edit_file, web, memory, delegate, openclaw_nodes, schedule_wake) → tokens_in упал **33K → 3K (×11)**. Проверено замером.
|
||||||
|
- Knowledge (189 записей, ~270K ток суммарно) инжектится чанками **по релевантности** (CHUNK_TARGET_CHARS=2200), на «привет» не грузится — не постоянный оверхед, не трогал.
|
||||||
|
- **Как мерить:** `sqlite3 /root/.omniroute/storage.sqlite "SELECT tokens_in,tokens_cache_read FROM call_logs WHERE model LIKE '%opus-4-8%' ORDER BY timestamp DESC LIMIT 5"` на LXC 132.
|
||||||
|
- Урезаны Dirizhyor (0d388a87) + Ассистент (default, был сломан 0 tools — восстановлен через БД-INSERT). Прочие агенты Олега (Pochtalion/Бухгалтер/Бенелюкс/НИИКН-Ассистент/Nastavnik) — по 7 tools, не трогал.
|
||||||
|
|
||||||
## Схема API (для будущих правок headless)
|
## Схема API (для будущих правок headless)
|
||||||
- `POST /api/providers` → `{id,name,baseUrl,models[],requiresApiKey,isEnabled}` (type всегда `custom`), хранит JSON в таблице `provider_configs`.
|
- `POST /api/providers` → `{id,name,baseUrl,models[],requiresApiKey,isEnabled}` (type всегда `custom`), хранит JSON в таблице `provider_configs`.
|
||||||
|
|||||||
Reference in New Issue
Block a user