# OpenClaw context_length_exceeded: как восстановить работу и сжать контекст

> Если OpenClaw упирается в context_length_exceeded, сначала сохраните выполненную работу и незавершённый запрос. Затем проверьте фактическое окно модели: сжатие помогает с историей, а большой новый ввод или слишком маленький локальный контекст требуют другого действия.

- URL: https://blog.laozhang.ai/ru/posts/openclaw-context-length-exceeded
- Published: 2026-02-08
- Updated: 2026-10-05
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ru/about)
- Topic: Инструменты разработчика
- Tags: OpenClaw, context_length_exceeded, Окно контекста, Сжатие истории, Устранение неполадок

---
Ошибка `context_length_exceeded` в OpenClaw означает, что модель отказалась принять слишком большой контекст. **Сначала сохраните состояние задачи и результаты уже выполненных действий, затем уменьшайте запрос.** Если основное место занимает старая история, поможет `/compact` в поддерживаемой среде. Если переполнение вызывает большой новый файл, постоянные инструкции или маленькое окно фактически загруженной модели, одного сжатия истории недостаточно.

При неудачном сжатии не нужно автоматически начинать задачу заново. Проверьте, что именно отказало: основной запрос или отдельный запрос, который должен составить резюме. Работу можно продолжить из сохранённых результатов, а при необходимости — в новой сессии с короткой передачей состояния. Ниже приведены действия по текущей документации OpenClaw, проверенной 4–5 октября 2026 года; это не отчёт о восстановлении конкретной установки.

## Сохраните работу до повторного запроса

Переполнение может произойти **после того, как инструмент уже изменил файл, отправил сообщение или завершил другую операцию**. Отказ модели на следующем шаге не отменяет эти действия. Поэтому команда «повтори всё» способна создать дубликаты или затереть результат.

Остановите запуск, который продолжает безрезультатные попытки, и сохраните доступные материалы вне переполненного диалога: нужные файлы, вывод завершённых команд и исходный запрос пользователя. Если агент ещё отвечает, попросите его записать состояние в файл. Если не отвечает, составьте запись по истории и фактическим результатам самостоятельно. Сохранить стоит:

- **Точную цель и оставшийся запрос.** Не только тему разговора, но и то, что пользователь ещё ждёт.
- **Выполненные действия.** Какие файлы изменены, какие результаты получены, какие проверки прошли.
- **Действия с внешним эффектом.** Было ли уже что-то отправлено, оплачено, опубликовано; сохраните доступные идентификаторы результата.
- **Неопределённость.** Что запущено, но не проверено, где действие могло выполниться без полученного подтверждения.
- **Следующий безопасный шаг.** Что прочитать или проверить перед новым изменением.

Например, для задачи с кодом короткая запись может выглядеть так. Это образец передачи состояния, а не описание реального запуска:

```text
Цель: исправить импорт CSV и подготовить итог проверки.
Уже сделано: изменён src/import-csv.ts; добавлена обработка пустой строки.
Проверено: сохранённый лог tests/import-csv.log показывает успешный тест.
Не выполнено: проверить CSV с кавычками и сообщить результат пользователю.
Файлы: src/import-csv.ts, fixtures/quoted.csv, tests/import-csv.log.
Не повторять: исходное изменение уже внесено; сначала прочитать текущий файл.
Следующий шаг: проверить quoted.csv и сравнить результат с ожидаемым.
```

Не добавляйте сюда полный лог, весь исходный код и прошлую переписку: это снова заполнит окно. Укажите реальные пути и нужные фрагменты. Секреты и личные данные не включайте в диагностический отчёт.

Встроенный механизм OpenClaw умеет восстанавливаться после переполнения с уже записанными результатами инструментов и **не повторять завершённые действия**. Для этого результаты должны быть завершены и зафиксированы; ожидающие инструменты, подтверждения и отменённый запуск имеют другую обработку. Отмена останавливает дальнейшее восстановление, но не откатывает уже выполненное действие или уже сохранённое сжатие. [Условия встроенного восстановления](https://docs.openclaw.ai/concepts/compaction).

## Узнайте, какой запрос превысил лимит

Начните с диагностических команд в чате:

```text
/status
/context list
/context detail
```

На машине, где работает Gateway, просмотрите журнал:

```bash
openclaw logs --follow
```

Сопоставьте сообщения **одного неудачного запуска**: время, фактического провайдера и модель, полный текст отказа, доступные числа токенов и этап. Сохраните нужный фрагмент журнала, затем завершите просмотр. Для дальнейшей диагностики важна последовательность попыток, а не только последняя строка.

| Что видно в журнале | Что проверить | Следующее действие |
|---|---|---|
| Основная модель сообщает `context_length_exceeded`, `request_too_large` или превышение входных токенов | Историю, новый ввод, вывод инструментов и реальное окно этого запроса | Уменьшить крупнейшую часть; при накопленной истории — сжать её |
| Отказ относится к summarization или compaction | Модель сжатия, размер переданного ей текста, запас на резюме и саму ошибку | Исправить бюджет сжатия либо перенести сохранённое состояние в новую сессию |
| Сначала 429, затем попытка другой модели и отказ по длине | Всю цепочку: какой запрос получила резервная модель и какое у неё окно | Разобрать ограничения каждой попытки отдельно |
| Ошибка возникает сразу в свежей сессии | Постоянные инструкции, схемы инструментов, новые вложения и загруженный локальный контекст | Уменьшить постоянный или новый ввод, проверить сервер модели |

**429 сам по себе не доказывает переполнение контекста.** Это другой отказ. Если после него использован резерв с меньшим окном, уже резервный запрос может оказаться слишком большим — такой вывод нужно подтвердить журналом. По текущей политике успешная резервная модель используется для данного хода и не обязательно становится выбранной моделью следующего. Явный выбор модели пользователем в сессии строгий; настроенная модель по умолчанию может иметь цепочку резервов. Поэтому название модели на экране нельзя автоматически считать моделью неудачной попытки. [Политика переключения моделей](https://docs.openclaw.ai/concepts/model-failover).

### Почему низкий процент в `/status` не исключает переполнение

Индикатор контекста использует оценку бюджета последнего подходящего запуска. После смены модели или ограничения окна старые счётчики могут не соответствовать новому запросу. Кроме того, следующий результат инструмента или вложение ещё не обязан входить в показанное число.

`/context detail` помогает найти крупные постоянные составляющие и размеры схем инструментов. При отсутствии сохранённого отчёта `/context list`, `/context detail` и `/context json` могут построить оценку по запросу. Карта `/context map` требует отчёта предыдущего запуска и без него может быть недоступна. Эти данные полезны для поиска причины; точный отказ провайдера относится к реально отправленной попытке. [Как OpenClaw измеряет контекст](https://docs.openclaw.ai/concepts/context).

## Посчитайте бюджет всего контекста, а не последнего сообщения

В окно входят системные инструкции, схемы инструментов, подключённые файлы рабочего пространства, история, результаты инструментов и вложения. Даже короткое «продолжай» может отправиться вместе с большой историей. Сохранённая на диске память и текущий контекст — разные вещи: память занимает окно только в той части, которая действительно загружена в запрос. [Состав контекста](https://docs.openclaw.ai/concepts/context).

![Постоянный ввод, история, новый ввод и запас на ответ внутри окна модели](https://blog.laozhang.ai/posts/ru/openclaw-context-length-exceeded/img/context-flow.webp)


Для первичной оценки удобно разделить запрос так:

```text
Постоянный ввод + история + новый ввод + запас на ответ ≤ доступное окно
```

Это диагностическая оценка, а не точный токенизатор провайдера. Изображения, скрытые обёртки запроса и правила ограничения выхода могут изменить итог. Если провайдер сообщает размер отказавшего запроса, используйте его вместе с ограничениями конкретного API.

Предположим, у реально загруженной модели окно **32 768 токенов**. Постоянный ввод занимает 9 000, история — 20 000, новый ввод — 2 000, а запланированный запас на ответ — 4 000. Общий бюджет составляет **35 000**, то есть превышает окно на **2 232 токена**. Если сжатие уменьшит историю до 10 000, сумма станет **25 000**, а остаток — **7 768**. Это расчёт на условных входных данных, а не измерение OpenClaw и не обещание такой степени сжатия.

Из него следует полезная проверка: **сколько места останется, если старую историю вообще убрать?** Если постоянные инструкции, новое вложение и необходимый запас уже не помещаются, повторное сжатие истории не устраняет причину. Разбейте большой ввод, сократите ненужную постоянную загрузку или выберите модель с подходящим реальным окном.

Запрос на составление резюме имеет собственный бюджет: в него входят текст для сжатия, инструкции суммаризатора и место для результата. Более крупная модель сжатия может помочь этому запросу, но **не расширяет окно основной модели**, которая затем продолжит задачу. Встроенное автоматическое сжатие учитывает подготовленные системные инструкции, схемы инструментов, ожидающий ввод и запас; ранняя проверка до полной сборки запроса не даёт такой же гарантии. [Бюджет сжатия](https://docs.openclaw.ai/concepts/compaction).

## Если `/compact` работает: продолжите с проверкой состояния

В поддерживаемом чате отправьте `/compact` отдельным сообщением. Встроенная среда OpenClaw допускает уточнение того, что важно сохранить:

```text
/compact Сохрани цель, незавершённый запрос, изменённые файлы, результаты проверок и действия, которые нельзя повторять.
```

Такое уточнение подходит встроенному механизму OpenClaw. Нативные среды могут поддерживать только команду без текста или только автоматическое сжатие; например, документация отдельно описывает ограничения нативных сессий Codex. Не переносите поддержку команды с одной среды на все остальные. [Ручное сжатие и поддерживаемые среды](https://docs.openclaw.ai/concepts/compaction).

При обычном встроенном сжатии старые сообщения заменяются резюме для будущих запросов, свежая часть сохраняется, а вызовы инструментов остаются вместе со своими результатами. Полная история остаётся на диске. Однако резюме не обязано содержать каждую подробность, а встроенный суммаризатор получает текст, не пиксели изображений. Критические детали лучше сохранить в доступном файле, а нужное изображение при необходимости прочитать заново.

После команды проверьте три вещи:

1. **Сжатие действительно завершилось.** Ищите запись `embedded run auto-compaction complete` либо изменение счётчика `Compactions` в `/status`; одного сигнала «контекст близок к лимиту» недостаточно.
2. **Состояние задачи сохранилось.** Сравните оставшийся запрос, пути и результаты с записью, сделанной до сжатия. При пропуске восстановите конкретную деталь из файла или истории.
3. **Работа продолжается с нужного места.** Отправьте короткий следующий шаг, а не всю старую задачу. Убедитесь, что агент использовал уже выполненную работу и не повторил внешнюю операцию.

Успех — это завершённый следующий шаг с ожидаемым результатом. Уменьшившееся число токенов подтверждает освобождение места, но само по себе не подтверждает сохранение смысла задачи.

## Если сжатие не помогает или заканчивается ошибкой

Сначала прочитайте ошибку именно сжатия. Увеличение тайм-аута не исправит запрос, который физически не помещается в окно; смена суммаризатора не исправит слишком большой новый ввод основного запроса.

### Резюме не помещается или не проходит проверку

Проверьте размер переданной истории, окно модели сжатия, её доступность и необходимый выход. Если настроена отдельная `agents.defaults.compaction.model`, проверяйте эту модель: явная настройка точная и не наследует резервную цепочку основной сессии. При отсутствии отдельной настройки встроенное сжатие начинает с модели сессии; некоторые подходящие ошибки допускают переход по её резервной цепочке. [Выбор модели сжатия](https://docs.openclaw.ai/concepts/compaction).

Во встроенном режиме safeguard проверка качества сверяет сохраняемое резюме, в том числе незавершённые запросы и точные идентификаторы. Если допустимое резюме не получено, OpenClaw сохраняет исходную историю и сообщает о неудаче. Отключение проверки лишь ради зелёного статуса не восстанавливает пропущенные данные. Практический выход — исправить причину отказа или передать проверенное состояние в новую сессию. [Текущие настройки сжатия](https://docs.openclaw.ai/gateway/config-agents/heartbeat-compaction-and-streaming).

### Суммаризатор долго молчит или возвращает 408/504

В текущем встроенном механизме `timeoutSeconds`, по умолчанию 180 секунд, задаёт **интервал без прогресса**, а не обязательную максимальную длительность всего сжатия. Реальные потоковые токены обновляют этот интервал; полный процесс ограничен десятью такими интервалами — при значении по умолчанию это 30 минут. Прежде чем менять настройку, отличите отсутствие прогресса от медленного, но продолжающегося ответа. [Правила тайм-аута](https://docs.openclaw.ai/gateway/config-agents/heartbeat-compaction-and-streaming).

Для **автоматического** сжатия активного хода есть специальное поведение при истечении срока резюме или HTTP 408/504: OpenClaw продолжает без нового резюме, сохраняя свежую часть, ожидающий запрос и предыдущее резюме. Журнал содержит `[compaction-diag] fallback ... reason=timeout summary=deterministic`. Это освобождает сессию от повторного ожидания того же резюме, но старые факты, которые ещё не попали в резюме, могут выйти из контекста. Они остаются в истории для явного извлечения.

Такой результат нельзя считать полным сохранением знаний. Сверьте продолжение с записанным состоянием и верните нужные старые факты точечно. Ручной `/compact`, отмена запуска и другие ошибки суммаризатора не получают эту же гарантию продолжения. [Исключение при автоматическом тайм-ауте](https://docs.openclaw.ai/concepts/compaction).

### Когда перейти в новую сессию и когда остановиться

Переходите через `/new` или `/reset`, если сохранили состояние, а повторное сжатие возвращает ту же ошибку без изменения её причины, либо старая история уже не нужна для следующего шага. По текущей документации обе команды запускают новую сессию; это не основание считать `/reset` удалением долговременной памяти. [Правила сброса сессии](https://docs.openclaw.ai/concepts/session).

Передайте новой сессии короткую запись состояния и попросите **сначала проверить текущие результаты, затем выполнить оставшийся запрос**. Постоянные инструкции и схемы инструментов загрузятся снова, поэтому новая сессия не гарантирует, что большой файл теперь поместится. Если переполнение воспроизводится на коротком вводе без старой истории, проверяйте постоянную загрузку и модель, а не сбрасывайте сессии по кругу.

Остановите автоматические повторы, если неизвестно, выполнилось ли действие с внешним эффектом. Сначала проверьте его по независимому результату. Если необходимые данные не удаётся восстановить, зафиксируйте конкретный пробел и продолжайте только ту часть задачи, для которой данных достаточно. При повторяемом отказе подготовьте отчёт: версия и среда, фактическая модель каждой попытки, её лимит, этап отказа, текст ошибки и обезличенный фрагмент журнала.

## Проверьте локальную модель и настройте именно нужный механизм

У локального сервера паспортное окно модели и **окно загруженного экземпляра** могут различаться. Для LM Studio документация OpenClaw прямо отдаёт приоритет контексту загруженного экземпляра перед большим заявленным максимумом. Предварительная загрузка, JIT и ограничения машины определяют, какой экземпляр реально обслуживает запрос. Изменение числа `contextWindow` в описании OpenClaw не доказывает, что сервер перезагрузил модель с таким окном. [Контекст экземпляров LM Studio](https://docs.openclaw.ai/providers/lmstudio).

![Восстановление после переполнения через сохранение состояния и уменьшение нужной части запроса](https://blog.laozhang.ai/posts/ru/openclaw-context-length-exceeded/img/diagnostic-tree.webp)


Сверьте загруженную модель и её контекст на стороне сервера, затем описание в OpenClaw и выбранную модель сессии. Если нужна настройка самого подключения, используйте [руководство по LLM в OpenClaw, Ollama и LM Studio](https://blog.laozhang.ai/ru/posts/openclaw-llm-setup). После изменения загрузки проверьте короткий ответ и необходимый вызов инструмента, прежде чем возвращать большую задачу. Проверка каталога подтверждает описание модели, а не успешный инференс.

Для остальных случаев важно не смешивать разные механизмы:

| Что нужно уменьшить или сохранить | Механизм | Что он делает и чего от него ждать |
|---|---|---|
| Старая история разговора | Compaction | Составляет резюме; не увеличивает физическое окно |
| Старые результаты инструментов | `agents.defaults.contextPruning` | Сокращает подходящие результаты по правилам конкретного подключения; не сжимает обычные сообщения |
| Важные сведения перед сжатием | `agents.defaults.compaction.memoryFlush` | Сохраняет долговременное состояние через выбранный механизм памяти; не заменяет сжатие |
| Крупные постоянные файлы | `bootstrapMaxChars` и `bootstrapTotalMaxChars` | Ограничивают загрузку в символах; могут обрезать нужные инструкции |
| Слишком большой текущий файл или лог | Выбор нужных частей исходного материала | Уменьшает новый ввод, который не исчезнет от сжатия старой истории |

**Обрезка результатов инструментов не включена одинаково для всех провайдеров.** Встроенный Anthropic-плагин задаёт свои начальные настройки; другие провайдеры по умолчанию не получают такую обрезку. Для прямого Anthropic API с ключом используется серверное удаление старых результатов из входа модели, для подходящих других подключений — клиентские правила TTL и размера контекста. Клиентское сокращённое представление сохраняется в скрытом маркере истории и может пережить перезапуск Gateway; исходные результаты не перезаписываются. Поэтому описание «только в оперативной памяти, автоматически везде» неверно. [Условия session pruning](https://docs.openclaw.ai/concepts/session-pruning).

Встроенный резерв сжатия по текущей документации составляет до 20 000 токенов и ограничен четвертью активного окна. `keepRecentTokens` по умолчанию равен 20 000 и задаёт ориентир границы свежей истории, а не дополнительную ёмкость. Для небольшого окна слепая вставка «резерва 40 000» из старого примера не является универсальным решением. [Резерв и сохраняемая история](https://docs.openclaw.ai/reference/session-management-compaction/compaction).

`softThresholdTokens` находится в **`agents.defaults.compaction.memoryFlush`**. Это отступ до порога сжатия для раннего сохранения памяти, а не лимит поисковой выдачи `memorySearch`. В документированном примере окна 32 768 резерв равен 8 192, раннее сохранение начинается при 20 576, а блокирующее сжатие — при 24 576 токенах, если применимый серверный порог не выше. Отключение memory flush не отключает compaction. [Назначение порога и расчёт](https://docs.openclaw.ai/reference/session-management-compaction/housekeeping).

Перед изменением конфигурации сохраните её копию и проверьте схему вашей установленной версии. Для документированных текущих команд:

```bash
openclaw config file
openclaw config get agents.defaults.compaction
openclaw config validate
```

Первая команда помогает найти действующий файл, вторая — прочитать нужный раздел, третья — проверить конфигурацию без запуска Gateway. После редактирования повторите валидацию и следуйте сообщению о загрузке изменений. **Принятая схема не доказывает, что запрос помещается в модель или что сервер принял параметры.** Проверка восстановления всё равно нужна. [Команды конфигурации](https://docs.openclaw.ai/cli/config).

## Как не возвращаться к переполнению после восстановления

Сохраняйте полные логи и большие результаты в файлах, а в диалог передавайте ошибку, нужный диапазон и путь к источнику. Просите инструмент читать конкретные участки и искать конкретный текст вместо загрузки всего репозитория. Если следующий шаг действительно требует всего большого документа, делите обработку на части с сохранёнными промежуточными выводами.

Долговременные инструкции должны оставаться короткими и актуальными. Не удаляйте правила безопасности или нужные схемы инструментов ради числа токенов; сначала найдите дубли, устаревшие сведения и материалы, которые можно читать по необходимости. Документированные пределы bootstrap — 20 000 символов на файл и 60 000 суммарно — относятся к символам, не к точному числу токенов. Проверьте в `/context`, что реально загружено и что обрезано. [Загрузка файлов рабочего пространства](https://docs.openclaw.ai/concepts/context).

После крупного этапа сохраняйте результат и следующий шаг. Это облегчает и сжатие, и переход в свежую сессию без повторения работы. Не рассчитывайте на универсальные «60 % экономии»: степень уменьшения зависит от истории, новой нагрузки и среды.

Наконец, разделяйте **занятость окна и оплату**. Оценка контекста показывает давление на запрос; счёт зависит от учтённых входных, выходных и кэшированных токенов и правил подключения. Сокращение лишнего ввода может уменьшить нагрузку, но процент освобождённого окна не равен проценту экономии денег. Текущий встроенный механизм также ведёт оценку контекста отдельно от итогов оплаты. [Учёт при восстановлении](https://docs.openclaw.ai/concepts/compaction).

## Часто задаваемые вопросы

### Почему `context_length_exceeded` появляется сразу после `/new`?

Новая сессия убирает старую историю из активного диалога, но снова получает постоянные инструкции и схемы инструментов. Большое первое вложение или небольшое фактическое окно локальной модели также остаются причинами переполнения. Сравните `/context detail` с лимитом модели из отказавшей попытки; для LM Studio отдельно проверьте загруженный экземпляр. [Состав контекста](https://docs.openclaw.ai/concepts/context), [LM Studio](https://docs.openclaw.ai/providers/lmstudio).

### Можно ли сохранить всю работу, если `/compact` не отвечает?

Можно сохранить доступные результаты, файлы, исходный запрос и точное оставшееся действие, затем передать их новой сессии. Полное сохранение всех знаний автоматически не гарантировано: при специальном автоматическом тайм-ауте свежая часть и ожидающий запрос сохраняются, а старые ещё не обобщённые факты могут уйти из активного контекста. Восстанавливайте их из истории, не повторяя уже выполненные действия. [Поведение при тайм-ауте](https://docs.openclaw.ai/concepts/compaction).

### Большая модель для compaction увеличит контекст основного чата?

Нет. Она может обработать запрос на резюме, который не помещается в меньшую модель, но последующий контекст всё равно должен соответствовать окну основной модели. После сжатия проверьте весь бюджет: постоянный ввод, резюме, свежую историю, незавершённый запрос и запас на ответ. [Бюджет основной модели](https://docs.openclaw.ai/concepts/compaction).

### `/reset` удаляет память OpenClaw?

Документация описывает `/reset` и `/new` как ручной переход в новую сессию. Из этого не следует удаление долговременной памяти. Для восстановления после переполнения не нужно удалять каталог памяти или вручную обрезать файлы истории: сначала сохраните состояние задачи и используйте поддерживаемое управление сессией. [Правила сессий](https://docs.openclaw.ai/concepts/session).

## Источники

Внешние страницы, на которые ссылается это руководство, в порядке упоминания. Последнее обновление: 2026-10-05.

- [Условия встроенного восстановления](https://docs.openclaw.ai/concepts/compaction) (docs.openclaw.ai)
- [Политика переключения моделей](https://docs.openclaw.ai/concepts/model-failover) (docs.openclaw.ai)
- [Как OpenClaw измеряет контекст](https://docs.openclaw.ai/concepts/context) (docs.openclaw.ai)
- [Текущие настройки сжатия](https://docs.openclaw.ai/gateway/config-agents/heartbeat-compaction-and-streaming) (docs.openclaw.ai)
- [Правила сброса сессии](https://docs.openclaw.ai/concepts/session) (docs.openclaw.ai)
- [Контекст экземпляров LM Studio](https://docs.openclaw.ai/providers/lmstudio) (docs.openclaw.ai)
- [Условия session pruning](https://docs.openclaw.ai/concepts/session-pruning) (docs.openclaw.ai)
- [Резерв и сохраняемая история](https://docs.openclaw.ai/reference/session-management-compaction/compaction) (docs.openclaw.ai)
- [Назначение порога и расчёт](https://docs.openclaw.ai/reference/session-management-compaction/housekeeping) (docs.openclaw.ai)
- [Команды конфигурации](https://docs.openclaw.ai/cli/config) (docs.openclaw.ai)
