Как это работает
- Предыдущие реплики разговора сводятся в компактную запись.
- Сводка сохраняется в стенограмме сеанса.
- Недавние сообщения сохраняются без изменений.
toolResult. Если точка оказывается внутри блока инструмента, OpenClaw сдвигает границу, чтобы пара осталась вместе, а текущая несвёрнутая конечная часть сохранилась.
Полная история разговора остаётся на диске. Свёртка изменяет только то, что модель видит на следующем ходе.
В новых конфигурациях для
agents.defaults.compaction.mode по умолчанию задано значение "safeguard" (более строгие ограничения и проверки качества сводки). Чтобы отказаться от этого поведения, явно задайте mode: "default".Автоматическая свёртка
Автоматическая свёртка включена по умолчанию. Она запускается, когда сеанс приближается к пределу контекста или когда модель возвращает ошибку переполнения контекста (в этом случае OpenClaw выполняет свёртку и повторяет попытку). Вы увидите:embedded run auto-compaction start/completeв обычных журналах Gateway.🧹 Auto-compaction completeв подробном режиме./statusс указанием🧹 Compactions: <count>.
Перед свёрткой OpenClaw автоматически напоминает агенту сохранить важные заметки в файлах памяти. Это предотвращает потерю контекста.
Ручная свёртка
Введите/compact в любом чате, чтобы принудительно запустить свёртку. Добавьте инструкции, определяющие содержание сводки:
agents.defaults.compaction.keepRecentTokens (по умолчанию: 20,000), ручная свёртка учитывает эту точку отсечения и сохраняет недавнюю конечную часть в заново сформированном контексте. Без явно заданного объёма сохраняемого контекста ручная свёртка действует как жёсткая контрольная точка, после которой работа продолжается только с новой сводкой.
Конфигурация
Настройте свёртку в разделеagents.defaults.compaction файла openclaw.json. Наиболее распространённые параметры перечислены ниже; полное описание см. в разделе Подробное управление сеансами.
Использование другой модели
По умолчанию для свёртки используется основная модель агента. Задайтеagents.defaults.compaction.model, чтобы поручить создание сводки более мощной или специализированной модели. Переопределение принимает строку provider/model-id или простой псевдоним, настроенный в agents.defaults.models:
agents.defaults.compaction.model остаётся точным и не наследует цепочку резервных моделей сеанса.
Сохранение идентификаторов
При создании сводки свёртка по умолчанию сохраняет непрозрачные идентификаторы (identifierPolicy: "strict"). Чтобы отключить это поведение, переопределите его с помощью identifierPolicy: "off"; для собственных инструкций используйте identifierPolicy: "custom" вместе с identifierInstructions.
Ограничение по размеру активной стенограммы в байтах
Если задано значениеagents.defaults.compaction.maxActiveTranscriptBytes, OpenClaw
запускает обычную локальную свёртку перед выполнением, когда история стенограммы достигает
этого размера. Это полезно для длительных сеансов, в которых управление контекстом
на стороне провайдера может поддерживать контекст модели в нормальном состоянии, в то время как сохранённая история стенограммы
продолжает расти. OpenClaw не разделяет необработанные байты, а запрашивает у обычного конвейера
свёртки создание семантической сводки.
Последующие стенограммы
Когда включён параметрagents.defaults.compaction.truncateAfterCompaction, OpenClaw не перезаписывает существующую стенограмму на месте. Он создаёт новую активную последующую стенограмму из сводки свёртки, сохранённого состояния и несвёрнутой конечной части, а затем записывает метаданные контрольной точки, направляющие операции ветвления и восстановления к этой свёрнутой последующей стенограмме.
Последующие стенограммы также отбрасывают полностью совпадающие длинные реплики пользователя, поступившие
в течение короткого интервала повторной попытки, поэтому лавины повторных попыток канала не переносятся
в следующую активную стенограмму после свёртки.
OpenClaw больше не записывает отдельные копии .checkpoint.*.jsonl для новых
свёрток. Существующие устаревшие файлы контрольных точек по-прежнему можно использовать, пока на них есть ссылки,
а обычная очистка сеансов удаляет их, когда они больше не нужны.
Уведомления о свёртке
По умолчанию свёртка выполняется без уведомлений. ЗадайтеnotifyUser, чтобы показывать краткие сообщения о состоянии при начале и завершении свёртки, а также уведомлять о работе в ухудшенном режиме, если сброс памяти перед свёрткой исчерпал доступные попытки, но ответ всё равно продолжается:
Сброс памяти
Перед свёрткой OpenClaw может выполнить беззвучный сброс памяти, чтобы сохранить долговременные заметки на диск. Задайтеagents.defaults.compaction.memoryFlush.model, если для этой служебной операции следует использовать локальную модель вместо активной модели разговора:
Подключаемые провайдеры свёртки
Плагины могут зарегистрировать собственного провайдера свёртки черезregisterCompactionProvider() в API плагина. Когда провайдер зарегистрирован и настроен, OpenClaw поручает создание сводки ему вместо встроенного конвейера LLM.
Чтобы использовать зарегистрированного провайдера, задайте его идентификатор в конфигурации:
provider автоматически принудительно устанавливает mode: "safeguard". Провайдеры получают те же инструкции по свёртке и правила сохранения идентификаторов, что и встроенный механизм, а OpenClaw по-прежнему сохраняет контекст суффикса недавних и разделённых реплик после получения результата от провайдера.
Если провайдер завершается ошибкой или возвращает пустой результат, OpenClaw переходит к встроенному созданию сводки с помощью LLM.
Свёртка и очистка
Очистка сеанса — более лёгкий дополнительный механизм, который сокращает вывод инструментов без создания сводки.
Устранение неполадок
Свёртка выполняется слишком часто? Возможно, окно контекста модели мало или вывод инструментов слишком велик. Попробуйте включить очистку сеанса. После свёртки контекст кажется устаревшим? Используйте/compact Focus on <topic>, чтобы задать требования к сводке, или включите сброс памяти, чтобы сохранить заметки.
Нужно начать с чистого листа? /new запускает новый сеанс без свёртки.
Расширенные параметры конфигурации (резерв токенов, сохранение идентификаторов, пользовательские механизмы контекста и серверная свёртка OpenAI) см. в разделе Подробное управление сеансами.
Связанные разделы
- Сеанс: управление сеансом и его жизненный цикл.
- Очистка сеанса: сокращение результатов инструментов.
- Контекст: формирование контекста для ходов агента.
- Хуки: хуки жизненного цикла свёртки (
before_compaction,after_compaction).