Sessions and memory
Обрезка сеанса
Обрезка сеанса удаляет старые результаты инструментов из контекста перед каждым вызовом LLM. Она уменьшает разрастание контекста из-за накопленных выводов инструментов (результатов exec, чтений файлов, результатов поиска), не переписывая обычный текст разговора.
Почему это важно
В длинных сеансах накапливается вывод инструментов, который раздувает окно контекста. Это увеличивает стоимость и может вынудить выполнить Compaction раньше, чем необходимо.
Обрезка особенно полезна для кэширования промптов Anthropic. После истечения TTL кэша следующий запрос заново кэширует весь промпт. Обрезка уменьшает размер записи в кэш, напрямую снижая стоимость.
Как это работает
- Дождаться истечения TTL кэша (по умолчанию 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.*)