Почему OpenClaw тормозит, забывает и сжигает токены: полный гайд по контексту, compaction и отладке
Проблема, которую не видно сразу
OpenClaw работает отлично первые 10–15 минут. Потом начинается: ответы медленнее, агент «забывает» то, что обсуждали час назад, токены улетают с космической скоростью, а в какой-то момент в чат прилетает ошибка context_length_exceeded — и сессия мертва.
Причина одна: контекстное окно модели конечно, а OpenClaw загружает в каждый запрос всё подряд — системный промпт, схемы инструментов, workspace-файлы, историю переписки и результаты поиска по памяти. Когда всё это в сумме превышает лимит модели — 128K, 200K или даже 1M токенов — всё ломается.
Дальше — подробный разбор: из чего состоит контекст, как его контролировать, что такое compaction и pruning, как настроить openclaw.json чтобы забыть про эту проблему, и как отлаживать агента, когда он ведёт себя странно.
Из чего состоит контекст каждого запроса
Каждое сообщение, которое вы отправляете OpenClaw, превращается в огромный payload для LLM. Вот из чего он собирается:
Итого: ещё до первого сообщения вы тратите 20 000–40 000 токенов на «накладные расходы». На модели с 32K-контекстом (типичная локальная модель) это не оставляет места вообще ни для чего.
GitHub Issue #9157 задокументировал случай, когда workspace-файлы съедали 35 600 токенов на каждый запрос — это 93.5% впустую в многосообщенных диалогах, потому что одни и те же файлы переотправлялись снова и снова.
Compaction: как OpenClaw сжимает историю
Compaction — встроенный механизм, который суммаризирует старую часть переписки, сохраняя недавние сообщения дословно. Суммари записывается в JSONL-файл сессии и переживает перезапуски.
Как работает
- Когда контекст приближается к лимиту модели, срабатывает auto-compaction.
- OpenClaw берёт старую часть переписки и сжимает её в компактное саммари.
- Саммари сохраняет ключевые решения, пути к файлам и важный контекст.
- Подробности ранних обменов отбрасываются.
- Результат: ~60% контекстного окна освобождается.
Перед compaction OpenClaw может запустить silent memory flush — тихо записать важные заметки на диск, чтобы не потерять их при сжатии.
Ручная compaction
Не ждите, пока сломается — запускайте compaction сами:
text/compact
Можно дать инструкции, на чём сфокусироваться:
text/compact Focus on decisions and open questions
После этого проверьте статус:
text/status
Если загрузка контекста всё ещё выше 80% — запустите /compact повторно или используйте /new для чистой сессии.
Compaction vs Pruning
Это разные вещи:
- Compaction — суммаризирует историю и сохраняет результат в JSONL-файле сессии. Это постоянное изменение.
- Pruning — обрезает старые tool results в памяти, для каждого запроса отдельно. Не меняет сохранённую историю.
Pruning работает автоматически. Compaction — автоматически + вручную через /compact.
Настройка compaction в openclaw.json
Дефолтные настройки compaction слишком консервативны для серьёзной работы. Они рассчитаны на короткие, простые взаимодействия — если вы работаете дольше 30 минут, нужно тюнить.
Рекомендуемый конфиг
Этот конфиг — результат тестирования комьюнити для сессий длиннее 30 минут:
json{
"agents": {
"defaults": {
"compaction": {
"reserveTokens": 40000,
"keepRecentTokens": 25000,
"reserveTokensFloor": 25000
},
"bootstrapMaxChars": 12000,
"memorySearch": {
"softThresholdTokens": 3000
}
}
}
}
reserveTokens: 40000— сколько токенов держать свободными после compaction. Дефолт: 16 384. При 40K compaction срабатывает раньше, оставляя комфортный буфер вместо работы на грани.keepRecentTokens: 25000— сколько токенов последних сообщений сохранять дословно при compaction. Дефолт: 20 000. Всё старше — суммаризируется.reserveTokensFloor: 25000— абсолютный минимум свободного места, который compaction всегда поддерживает.bootstrapMaxChars: 12000— максимум символов workspace-файлов, инжектируемых в каждый запрос. Дефолт: 20 000. Снижение до 12K экономит тысячи токенов на каждом сообщении.softThresholdTokens: 3000— лимит на результаты memory search. Снижаем, чтобы уменьшить memory footprint.
PR #9620 в основном репозитории увеличил дефолтный буфер auto-compaction с 20K до 40K — подтверждение того, что комьюнити пришло к этой цифре через практику.
Диагностика: понять, что жрёт контекст
Три команды, 60 секунд
Когда что-то не так — начинайте отсюда:
Шаг 1: /status — показывает загрузку контекстного окна в процентах. Выше 80% = проблема.
Шаг 2: /context list — показывает, что именно съедает контекст: какие файлы, сколько токенов каждый. Ищите неожиданно большие workspace-файлы.
Шаг 3: /usage tokens — показывает расход токенов на каждый ответ. Помогает найти самые «дорогие» операции — например, чтение большого файла может добавить 8 000–10 000 токенов за раз.
Что делать с результатами
- Если
/statusпоказывает 80%+ →/compact, затем снова/status. - Если
/context listпоказывает огромные workspace-файлы → уменьшитьbootstrapMaxCharsили почистить сами файлы. - Если
/statusпоказывает мало, но ошибка всё равно есть → возможно, баг (Issue #7483: ложные срабатывания) → обновить OpenClaw.
5 главных команд отладки
Известные баги и как их обходить
OpenClaw активно развивается — баги есть и будут. Вот самые распространённые на февраль 2026:
Issue #7483: ложные срабатывания context overflow
Ошибка context_length_exceeded появляется, хотя контекст не заполнен. Причина — некорректный подсчёт токенов в функции sanitizeUserFacingText. Фикс влит, обновите OpenClaw.
Обход: /compact + повтор сообщения.
Issue #5771: overflow на свежей сессии
Контекст переполняется до первого сообщения — memory search инжектирует слишком много исторического контекста при инициализации.
Обход: отключить memory search:
json{
"agents": {
"defaults": {
"memorySearch": {
"enabled": false
}
}
}
}
Issue #9157: workspace-файлы съедают 93.5% токенов
Одни и те же файлы переотправляются в каждом запросе. Фикс: conditional loading — файлы инжектируются только при изменении.
Обход: обновить OpenClaw или уменьшить bootstrapMaxChars до 5000–10000.
Issue #5433: auto-compaction не срабатывает
Сессия растёт до жёсткого лимита без compaction. Причина — некорректное распознавание формата ошибок от API-провайдеров.
Обход: запускать /compact вручную при 70%+ загрузке.
Issue #7725: Gateway зависает при большом контексте
При инжекции файлов или tool output’ов больше 12 000 токенов Gateway может зависнуть вместо ошибки.
Обход: обновить OpenClaw; если зависает прямо сейчас — рестарт Gateway.
Не дебажить OpenClaw через сам OpenClaw
Одна из самых частых рекомендаций практиков: когда OpenClaw сломался — не пытайтесь чинить его через него же.
Почему:
- Агент в сломанном состоянии будет давать плохие советы.
- Попытки «починить себя» усугубляют context bloat.
- Вы тратите токены на диалог, который ни к чему не ведёт.
Что использовать вместо:
- Claude Code в терминале — быстро посмотреть конфиги, логи, файлы.
- Внешний IDE (VS Code, Antigravity) — редактировать workspace-файлы и
openclaw.json. openclaw doctor --fix— встроенная диагностика из CLI, работает без LLM.- Логи:
~/.openclaw/logs/— там всё, что нужно для понимания проблемы.
Локальные модели: особые правила
Ollama и LM Studio отлично подходят для heartbeat и рутинных cron, но у них свои особенности:
Маленький контекст
Локальные модели обычно дают 8 000–32 000 токенов контекста. С учётом ~20–40K накладных расходов OpenClaw это означает, что для локальных моделей нужна максимально агрессивная compaction:
json{
"agents": {
"defaults": {
"compaction": {
"reserveTokens": 8000,
"keepRecentTokens": 4000
},
"bootstrapMaxChars": 5000
}
}
}
Embedding-модель обязательна
Без embedding-модели (например, nomic-embed-text) весь workspace улетает в каждый запрос как сырой текст. С embedding’ами OpenClaw ищет только релевантные куски — экономия огромная.
LM Studio: фиксируйте настройки правильно
- Context length, KV cache quant, batch size — сохранять в My Models, а не в runtime settings (они сбрасываются при перезагрузке).
- Flash Attention — ставить On, не Auto.
Какие модели тянут
Локальные модели хорошо работают на простых, повторяющихся задачах: саммари логов, JSON-парсинг, маршрутизация сообщений, календарные операции, извлечение структурированных данных. Для всего остального — облачная модель через model-override.
Требования к железу
Минимум для комфортной работы с локальными моделями:
- RAM: 16 GB для 7B-моделей, 32+ GB для 70B
- Диск: 15 GB на квантованную 7B, 40 GB на 70B; SSD обязателен
- CPU: 8+ логических ядер; Apple Silicon отлично, Intel i5 11-gen — нормально
Гигиена сессий: привычки, которые спасают
Из документации, гайдов и практики комьюнити:
- Проверяйте
/statusкаждые 15–20 минут в долгих сессиях. Если выше 60% — запустите/compactпревентивно. - Разбивайте работу на логические блоки. Закончили одну фазу —
/compactили/new. Как git commit — сохраняйте прогресс. - Держите workspace-файлы компактными. Убирайте устаревшие инструкции из AGENTS.md, не превращайте MEMORY.md в свалку. Каждая строка должна «зарабатывать» своё место.
- Используйте state-файлы для долгосрочного прогресса, а не чат-историю. Всё, что важно — пишите в файл явно.
- Знайте «дорогие» операции. Чтение большого файла = +10K токенов. Прогон тестов с verbose output = ещё больше. Перед тяжёлой операцией —
/compact.
Выбор модели по размеру контекста
Не все модели одинаковы. Разброс контекстных окон — от 8K до 1M:
Для комфортной работы с OpenClaw минимум — 128K. Оптимально — 200K и выше. На моделях с 32K и меньше вы будете постоянно бороться с контекстом.