Перейти к основному содержимому

Технический справочник

Кэширование промптов

Кэширование промптов означает, что провайдер модели может повторно использовать неизмененные префиксы промптов (обычно системные/разработческие инструкции и другой стабильный контекст) между запросами, вместо того чтобы обрабатывать их заново каждый раз. Первый соответствующий запрос записывает токены кэша (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"

Порядок слияния конфигурации:

  1. agents.defaults.models["provider/model"].params
  2. agents.list[].params (соответствующий id агента; переопределяет по ключу)

Устаревший cacheControlTtl​

Устаревшие значения по-прежнему принимаются и преобразуются:

  • 5m -> short
  • 1h -> 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.jsonl
  • includeMessages: true
  • includePrompt: true
  • includeSystem: 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 и стоимость