---
read_when:
    - Вы хотите уменьшить рост контекста из-за вывода инструментов
    - Вы хотите разобраться в оптимизации кэша промптов Anthropic
summary: Сокращение старых результатов инструментов для сохранения компактного контекста и эффективного кэширования
title: Обрезка сеанса
x-i18n:
    generated_at: "2026-07-13T18:06:19Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: dd5cb4582cb8d9d7265213abe1f5b5893634882b9f8b3ce1deef746293dd07db
    source_path: concepts/session-pruning.md
    workflow: 16
---

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

<Info>
Прореживание выполняется только в памяти — оно не изменяет сохранённую на диске стенограмму сеанса. Полная история всегда сохраняется.
</Info>

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

В длительных сеансах накапливаются результаты инструментов, увеличивающие контекстное окно. Это повышает стоимость и может привести к необходимости [Compaction](/ru/concepts/compaction) раньше, чем требуется.

Прореживание особенно полезно для **кэширования промптов Anthropic**. После истечения TTL кэша следующий запрос повторно кэширует весь промпт. Прореживание уменьшает объём записи в кэш, напрямую снижая стоимость.

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

Прореживание выполняется в режиме `cache-ttl` при одновременном выполнении проверки времени и проверки размера контекста:

1. Дождаться истечения TTL кэша (по умолчанию 5 минут при ручной настройке; автоматическое значение по умолчанию для Anthropic см. в разделе [Интеллектуальные значения по умолчанию](#smart-defaults)). До истечения TTL прореживание полностью пропускается, чтобы сохранить повторное использование кэша промптов для близких по времени ходов.
2. После истечения TTL оценить общий размер контекста относительно контекстного окна модели. Если отношение ниже `softTrimRatio` (по умолчанию 0.3), пропустить прореживание и не сбрасывать отсчёт TTL.
3. Выполнить **мягкое сокращение** слишком больших результатов инструментов, превышающих порог отношения: сохранить начало и конец (по умолчанию по 1500 символов, но не более 4000 символов суммарно), вставив между ними `...`.
4. Если отношение по-прежнему не ниже `hardClearRatio` (по умолчанию 0.5) и остаётся не менее `minPrunableToolChars` (по умолчанию 50,000) содержимого инструментов, которое можно проредить, выполнить **полную очистку** этих результатов: заменить их содержимое заполнителем (по умолчанию `[Old tool result content cleared]`).
5. Сбрасывать отсчёт TTL только тогда, когда прореживание действительно изменило контекст, чтобы последующие запросы повторно использовали свежий кэш.

Независимо от пороговых значений действуют два правила безопасности: последние `keepLastAssistants` ходов ассистента (по умолчанию 3) никогда не прореживаются, а всё, что находится до первого сообщения пользователя в сеансе, также никогда не прореживается (это защищает начальные операции чтения, такие как `SOUL.md`/`USER.md`).

Прореживать можно только сообщения `toolResult`; обычный текст беседы остаётся без изменений. Используйте `agents.defaults.contextPruning.tools.{allow,deny}`, чтобы указать, результаты каких инструментов можно прореживать.

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

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

- Оно сохраняет **3 последних завершённых хода** побайтово без изменений, чтобы префиксы кэша промптов оставались стабильными для недавних последующих запросов. Учитываются все завершённые ходы, а не только содержащие изображения, поэтому ходы, содержащие только текст, также занимают это окно.
- В представлении для повторного воспроизведения старые уже обработанные блоки изображений из истории `user` или `toolResult` заменяются на `[image data removed - already processed by model]`.
- Старые текстовые ссылки на мультимедиа, такие как `[media attached: ...]`, `[Image: source: ...]` и `media://inbound/...`, заменяются на `[media reference removed - already processed by model]`. Маркеры вложений текущего хода остаются без изменений, чтобы модели с поддержкой зрения по-прежнему могли загружать новые изображения.
- Исходная стенограмма сеанса не переписывается, поэтому средства просмотра истории по-прежнему могут отображать исходные записи сообщений и содержащиеся в них изображения.
- Этот механизм не связан с обычным прореживанием по TTL кэша, описанным выше. Он предотвращает нарушение кэшей промптов в последующих ходах из-за повторяющихся данных изображений или устаревших ссылок на мультимедиа.

## Интеллектуальные значения по умолчанию

Встроенный плагин Anthropic автоматически настраивает прореживание и периодичность Heartbeat при первом разрешении профиля аутентификации Anthropic (или Claude CLI), но только для полей, которые ещё не были явно заданы:

| Режим аутентификации                     | `contextPruning.mode` | `contextPruning.ttl` | `heartbeat.every` |
| ---------------------------------------- | --------------------- | -------------------- | ----------------- |
| OAuth/токен (включая повторное использование Claude CLI) | `cache-ttl`           | `1h`                 | `1h`              |
| Ключ API                                 | `cache-ttl`           | `1h`                 | `30m`             |

Если вы самостоятельно зададите `agents.defaults.contextPruning.mode` или `agents.defaults.heartbeat.every`, OpenClaw не будет их переопределять. Это автоматическое значение по умолчанию применяется только к аутентификации семейства Anthropic; для других провайдеров прореживание получает значение `off`, если вы не настроите его самостоятельно.

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

Для провайдеров, отличных от Anthropic, прореживание по умолчанию отключено. Чтобы включить его:

```json5
{
  agents: {
    defaults: {
      contextPruning: { mode: "cache-ttl", ttl: "5m" },
    },
  },
}
```

Чтобы отключить: задайте `mode: "off"`.

## Прореживание и Compaction

|                | Прореживание                    | Compaction                 |
| -------------- | ------------------------------- | -------------------------- |
| **Что делает** | Сокращает результаты инструментов | Резюмирует беседу          |
| **Сохраняется?** | Нет (для каждого запроса отдельно) | Да (в стенограмме)         |
| **Область**    | Только результаты инструментов  | Вся беседа                 |

Они дополняют друг друга: прореживание сокращает результаты инструментов между циклами Compaction.

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

- [Compaction](/ru/concepts/compaction): сокращение контекста на основе резюмирования
- [Конфигурация Gateway](/ru/gateway/configuration): все параметры конфигурации прореживания (`contextPruning.*`)

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

- [Управление сеансами](/ru/concepts/session)
- [Инструменты сеанса](/ru/concepts/session-tool)
- [Механизм контекста](/ru/concepts/context-engine)
