Обрезка сессии
Обрезка сессии обрезает старые результаты инструментов из контекста в памяти непосредственно перед каждым вызовом LLM. Она не переписывает историю сессии на диске (*.jsonl).
Когда она выполняется
- Когда mode: "cache-ttl" включен и последний вызов Anthropic для сессии старше ttl.
- Влияет только на сообщения, отправленные модели для этого запроса.
- Активна только для вызовов Anthropic API (и моделей Anthropic OpenRouter).
- Для лучших результатов сопоставьте ttl с вашим cacheControlTtl модели.
- После обрезки окно TTL сбрасывается, поэтому последующие запросы сохраняют кэш до истечения ttl.
Умные значения по умолчанию (Anthropic)
- Профили OAuth или setup-token: включить обрезку cache-ttl и установить heartbeat на 1h.
- Профили API key: включить обрезку cache-ttl, установить heartbeat на 30m и cacheControlTtl по умолчанию на 1h для моделей Anthropic.
- Если вы установите любое из этих значений явно, OpenClaw не переопределяет их.
Что это улучшает (стоимость + поведение кэша)
- Почему обрезать: Кэширование подсказок Anthropic применяется только в пределах TTL. Если сессия простаивает после TTL, следующий запрос повторно кэширует полную подсказку, если вы не обрежете ее сначала.
- Что становится дешевле: обрезка уменьшает размер cacheWrite для этого первого запроса после истечения TTL.
- Почему важен сброс TTL: после выполнения обрезки окно кэша сбрасывается, поэтому последующие запросы могут повторно использовать свежекэшированную подсказку вместо повторного кэширования полной истории снова.
- Что она не делает: обрезка не добавляет токены или "удваивает" затраты; она только изменяет то, что кэшируется при этом первом запросе после TTL.
Что можно обрезать
- Только сообщения toolResult.
- Сообщения пользователя + помощника никогда не изменяются.
- Последние keepLastAssistants сообщения помощника защищены; результаты инструментов после этого порога не обрезаются.
- Если недостаточно сообщений помощника для установки порога, обрезка пропускается.
- Результаты инструментов, содержащие блоки изображений, пропускаются (никогда не обрезаются/не очищаются).
Оценка окна контекста
Обрезка использует оценочное окно контекста (символы ≈ токены × 4). Размер окна разрешается в этом порядке:
- Определение модели contextWindow (из реестра моделей).
- Переопределение models.providers.*.models[].contextWindow.
- agents.defaults.contextTokens.
- По умолчанию 200000 токенов.
Режим
cache-ttl
- Обрезка выполняется только если последний вызов Anthropic старше ttl (по умолчанию 5m).
- Когда она выполняется: то же поведение soft-trim + hard-clear, что и раньше.
Soft vs hard обрезка
- Soft-trim: только для больших результатов инструментов.
- Сохраняет голову + хвост, вставляет ... и добавляет примечание с исходным размером.
- Пропускает результаты с блоками изображений.
- Hard-clear: заменяет весь результат инструмента на hardClear.placeholder.
Выбор инструмента
- tools.allow / tools.deny поддерживают подстановочные знаки *.
- Запрет выигрывает.
- Сопоставление нечувствительно к регистру.
- Пустой список разрешений => все инструменты разрешены.
Взаимодействие с другими ограничениями
- Встроенные инструменты уже усекают свой собственный вывод; обрезка сессии - это дополнительный слой, который предотвращает накопление слишком большого вывода инструмента в контексте модели для долгих чатов.
- Уплотнение отдельно: уплотнение суммирует и сохраняет, обрезка временная для каждого запроса. См. /concepts/compaction.
Значения по умолчанию (когда включено)
- ttl: "5m"
- keepLastAssistants: 3
- softTrimRatio: 0.3
- hardClearRatio: 0.5
- minPrunableToolChars: 50000
- softTrim: \{ maxChars: 4000, headChars: 1500, tailChars: 1500 \}
- hardClear: \{ enabled: true, placeholder: "[Old tool result content cleared]" \}
Примеры
По умолчанию (выключено):
{
agent: {
contextPruning: { mode: "off" }
}
}
Включить обрезку с учетом TTL:
{
agent: {
contextPruning: { mode: "cache-ttl", ttl: "5m" }
}
}
Ограничить обрезку конкретными инструментами:
{
agent: {
contextPruning: {
mode: "cache-ttl",
tools: { allow: ["exec", "read"], deny: ["*image*"] }
}
}
}
См. справку по конфигурации: Gateway Configuration