Перейти к основному содержанию
Обрезка сеанса удаляет старые результаты инструментов из контекста перед каждым вызовом LLM. Она уменьшает разрастание контекста из-за накопленных выводов инструментов (результатов exec, чтений файлов, результатов поиска), не переписывая обычный текст разговора.
Обрезка выполняется только в памяти — она не изменяет сохраненную на диске расшифровку сеанса. Вся ваша история всегда сохраняется.

Почему это важно

В длинных сеансах накапливается вывод инструментов, который раздувает окно контекста. Это увеличивает стоимость и может вынудить выполнить Compaction раньше, чем необходимо. Обрезка особенно полезна для кэширования промптов Anthropic. После истечения TTL кэша следующий запрос заново кэширует весь промпт. Обрезка уменьшает размер записи в кэш, напрямую снижая стоимость.

Как это работает

  1. Дождаться истечения TTL кэша (по умолчанию 5 минут).
  2. Найти старые результаты инструментов для обычной обрезки (текст разговора не трогается).
  3. Мягко обрезать слишком большие результаты — оставить начало и конец, вставить ....
  4. Жестко очистить остальное — заменить заполнителем.
  5. Сбросить TTL, чтобы последующие запросы повторно использовали свежий кэш.

Очистка устаревших изображений

OpenClaw также строит отдельное идемпотентное представление повторного воспроизведения для сеансов, в истории которых сохраняются необработанные блоки изображений или медиа-маркеры гидратации промпта.
  • Оно сохраняет 3 последних завершенных хода байт-в-байт, чтобы префиксы кэша промптов для недавних последующих запросов оставались стабильными.
  • В представлении повторного воспроизведения более старые уже обработанные блоки изображений из истории user или toolResult могут быть заменены на [данные изображения удалены - уже обработаны моделью].
  • Более старые текстовые ссылки на медиа, такие как [медиа прикреплено: ...], [Изображение: источник: ...] и media://inbound/..., могут быть заменены на [ссылка на медиа удалена - уже обработана моделью]. Маркеры вложений текущего хода остаются нетронутыми, чтобы vision-модели по-прежнему могли гидратировать свежие изображения.
  • Сырая расшифровка сеанса не переписывается, поэтому средства просмотра истории все еще могут отображать исходные записи сообщений и их изображения.
  • Это отдельно от обычной обрезки по TTL кэша. Она нужна, чтобы повторяющиеся полезные нагрузки изображений или устаревшие ссылки на медиа не сбивали кэши промптов на последующих ходах.

Умные значения по умолчанию

OpenClaw автоматически включает обрезку для профилей Anthropic:
Тип профиляОбрезка включенаHeartbeat
OAuth/токен-аутентификация Anthropic (включая повторное использование Claude CLI)Да1 час
API-ключДа30 мин
Если вы задаете явные значения, OpenClaw их не переопределяет.

Включение или отключение

Для провайдеров не Anthropic обрезка по умолчанию выключена. Чтобы включить:
{
  agents: {
    defaults: {
      contextPruning: { mode: "cache-ttl", ttl: "5m" },
    },
  },
}
Чтобы отключить: задайте mode: "off".

Обрезка и Compaction

ОбрезкаCompaction
ЧтоОбрезает результаты инструментовСуммаризирует разговор
Сохраняется?Нет (для каждого запроса)Да (в расшифровке)
ОбластьТолько результаты инструментовВесь разговор
Они дополняют друг друга — обрезка сохраняет вывод инструментов компактным между циклами Compaction.

Дополнительные материалы

  • Compaction — сокращение контекста на основе суммаризации
  • Конфигурация Gateway — все параметры конфигурации обрезки (contextPruning.*)

Связанные материалы