Кэширование промптов
Кэширование промптов означает, что провайдер модели может повторно использовать неизмененные префиксы промптов (обычно системные/разработческие инструкции и другой стабильный контекст) между запросами, вместо того чтобы обрабатывать их заново каждый раз. Первый соответствующий запрос записывает токены кэша (cacheWrite), а последующие соответствующие запросы могут их читать (cacheRead). Почему это важно: снижение стоимости токенов, более быстрые ответы и более предсказуемая производительность для длительных сессий. Без кэширования повторяющиеся промпты оплачивают полную стоимость промпта при каждом запросе, даже если большая часть ввода не изменилась. На этой странице рассматриваются все связанные с кэшем настройки, влияющие на повторное использование промптов и стоимость токенов. Подробности о ценах Anthropic см.: https://docs.anthropic.com/docs/build-with-claude/prompt-caching
Основные настройки
cacheRetention (модель и на уровне агента)
Установите удержание кэша в параметрах модели:
agents:
defaults:
models:
"anthropic/claude-opus-4-6":
params:
cacheRetention: "short" # none | short | long
Переопределение на уровне агента:
agents:
list:
- id: "alerts"
params:
cacheRetention: "none"
Порядок слияния конфигурации:
agents.defaults.models["provider/model"].paramsagents.list[].params(соответствующий id агента; переопределяет по ключу)
Устаревший cacheControlTtl
Устаревшие значения по-прежнему принимаются и преобразуются:
5m->short1h->long
Для новой конфигурации предпочтительнее использовать cacheRetention.
contextPruning.mode: "cache-ttl"
Очищает старый контекст результатов инструментов после окон TTL кэша, чтобы запросы после простоя не кэшировали заново разросшуюся историю.
agents:
defaults:
contextPruning:
mode: "cache-ttl"
ttl: "1h"
Полное описание поведения см. в разделе Очистка сессии.
Подогрев через Heartbeat
Heartbeat может поддерживать окна кэша в теплом состоянии и уменьшать повторные записи в кэш после периодов простоя.
agents:
defaults:
heartbeat:
every: "55m"
Heartbeat на уровне агента поддерживается в agents.list[].heartbeat.
Поведение провайдеров
Anthropic (прямой API)
cacheRetentionподдерживается.- При использовании профилей аутентификации с ключом API Anthropic, OpenClaw автоматически устанавливает
cacheRetention: "short"для ссылок на модели Anthropic, если значение не задано.
Amazon Bedrock
- Ссылки на модели Anthropic Claude (
amazon-bedrock/*anthropic.claude*) поддерживают явную передачуcacheRetention. - Для моделей Bedrock, не относящихся к Anthropic, во время выполнения принудительно устанавливается
cacheRetention: "none".
Модели Anthropic через OpenRouter
Для ссылок на модели openrouter/anthropic/* OpenClaw внедряет cache_control Anthropic в блоки системных/разработческих промптов для улучшения повторного использования кэша промптов.
Другие провайдеры
Если провайдер не поддерживает этот режим кэширования, cacheRetention не оказывает эффекта.
Шаблоны настройки
Смешанный трафик (рекомендуемый по умолчанию)
Сохраняйте долгоживущую базовую настройку для вашего основного агента, отключите кэширование для агентов с всплесками уведомлений:
agents:
defaults:
model:
primary: "anthropic/claude-opus-4-6"
models:
"anthropic/claude-opus-4-6":
params:
cacheRetention: "long"
list:
- id: "research"
default: true
heartbeat:
every: "55m"
- id: "alerts"
params:
cacheRetention: "none"
Базовый подход с упором на стоимость
- Установите базовое значение
cacheRetention: "short". - Включите
contextPruning.mode: "cache-ttl". - Поддерживайте heartbeat ниже вашего TTL только для агентов, которым выгоден теплый кэш.
Диагностика кэша
OpenClaw предоставляет специальную диагностику трассировки кэша для встроенных запусков агентов.
Конфигурация diagnostics.cacheTrace
diagnostics:
cacheTrace:
enabled: true
filePath: "~/.openclaw/logs/cache-trace.jsonl" # опционально
includeMessages: false # по умолчанию true
includePrompt: false # по умолчанию true
includeSystem: false # по умолчанию true
Значения по умолчанию:
filePath:$OPENCLAW_STATE_DIR/logs/cache-trace.jsonlincludeMessages:trueincludePrompt:trueincludeSystem:true
Переключатели окружения (для разовой отладки)
OPENCLAW_CACHE_TRACE=1включает трассировку кэша.OPENCLAW_CACHE_TRACE_FILE=/path/to/cache-trace.jsonlпереопределяет путь вывода.OPENCLAW_CACHE_TRACE_MESSAGES=0|1переключает захват полной полезной нагрузки сообщений.OPENCLAW_CACHE_TRACE_PROMPT=0|1переключает захват текста промпта.OPENCLAW_CACHE_TRACE_SYSTEM=0|1переключает захват системного промпта.
Что проверять
- События трассировки кэша представлены в формате JSONL и включают снимки состояний, такие как
session:loaded,prompt:before,stream:contextиsession:after. - Влияние токенов кэша на каждый запрос видно в обычных интерфейсах использования через
cacheReadиcacheWrite(например,/usage fullи сводки использования сессии).
Быстрое устранение неполадок
- Высокий
cacheWriteпри большинстве запросов: проверьте наличие изменчивых входных данных системного промпта и убедитесь, что модель/провайдер поддерживает ваши настройки кэша. - Отсутствие эффекта от
cacheRetention: убедитесь, что ключ модели соответствуетagents.defaults.models["provider/model"]. - Запросы к Bedrock Nova/Mistral с настройками кэша: ожидаемое принудительное установление
noneво время выполнения.
Связанная документация:
Поверхность учетных данных SecretRefИспользование API и стоимость