Skip to content

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

На Claude-моделях NordRouter автоматически кэширует длинные контексты. Если вы шлёте запросы с повторяющимся началом (система-промпт, история диалога, большой документ) — повторная часть тарифицируется по цене кэш-чтения, до 90% дешевле обычного входа.

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

  1. Первый запрос с длинным контекстом — контекст записывается в кэш.
  2. Последующие запросы с тем же началом — совпавшая часть читается из кэша по сниженной цене.
  3. В ответе это видно по usage.prompt_tokens_details.

Сколько это стоит

Кэш работает как у Anthropic — по двум ставкам от цены входа модели:

ОперацияМножительКогда списывается
Запись (cache-write)×1.25первый раз, когда контекст попадает в кэш
Чтение (cache-read)×0.1 (−90%)каждый повтор того же контекста

Точная цена у каждой модели своя — смотрите каталог моделей. Пример на Claude Fable 5 (вход $1.548/1M): запись ≈ $1.94/1M, чтение ≈ $0.155/1M.

Порог срабатывания

Кэшируются только достаточно длинные контексты (от нескольких тысяч токенов). Короткие запросы идут по обычной цене — для них кэш не нужен.

Как пользоваться

1. Автоматически — ничего делать не нужно

Большинству настраивать нечего. Если ваш инструмент отправляет один и тот же префикс (системный промпт, историю, большой документ) — NordRouter кэширует его сам. Так уже работает в Claude Code, OpenCode, Cline и любых чат-ботах с историей: на каждом шаге агент пересылает весь контекст — первый шаг пишет кэш, каждый следующий читает его со скидкой 90%.

2. Проверить, что кэш сработал

Посмотрите блок usage в ответе — если часть входа ушла в кэш, там будет cached_tokens:

json
"usage": {
  "prompt_tokens": 21364,
  "prompt_tokens_details": {
    "cached_tokens": 21361     // ← прочитано из кэша по ×0.1
  },
  "completion_tokens": 40
}

cached_tokens > 0 — значит эта часть входа списалась по цене чтения, а не полной.

3. Управлять вручную через cache_control

Если хотите сами решать, что именно кэшировать (эндпоинт /v1/messages), поставьте маркер cache_control на конце блока, который переиспользуете — например на большом справочнике в system:

bash
curl https://nordrouter.com/v1/messages \
  -H "x-api-key: sk-nr-ВАШ-КЛЮЧ" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "anthropic/claude-fable-5",
    "max_tokens": 512,
    "system": [
      {
        "type": "text",
        "text": "Ты ассистент по нашей документации. Вот справочник: <...много текста...>",
        "cache_control": { "type": "ephemeral" }
      }
    ],
    "messages": [{ "role": "user", "content": "Первый вопрос по справочнику?" }]
  }'
python
from anthropic import Anthropic

client = Anthropic(base_url="https://nordrouter.com", api_key="sk-nr-ВАШ-КЛЮЧ")

resp = client.messages.create(
    model="anthropic/claude-fable-5",
    max_tokens=512,
    system=[{
        "type": "text",
        "text": "Ты ассистент по нашей документации. Вот справочник: <...>",
        "cache_control": {"type": "ephemeral"},   # кэшируем справочник
    }],
    messages=[{"role": "user", "content": "Первый вопрос по справочнику?"}],
)
print(resp.usage)  # cache_creation_input_tokens на 1-м запросе, cache_read на след.

Первый запрос запишет справочник в кэш, все следующие с тем же system прочитают его по ×0.1. Ваши cache_control всегда в приоритете — авто-кэш в такие запросы не вмешивается.

Тумблер в личном кабинете

ЛКНастройки → «Кэширование промптов (Claude)»:

  • Включено (по умолчанию) — авто-кэш для всех Claude-запросов без своих маркеров. Оптимально для агентов и диалогов.
  • Выключить стоит, только если каждый ваш запрос полностью уникален — чтобы не платить за запись кэша, который не переиспользуется.
  • Если передаёте cache_control сами — положение тумблера не важно, ваши маркеры всё равно в приоритете.

Пример экономии

Справочник на 40 страниц (~30 000 токенов), к нему 10 вопросов на Claude Fable 5:

Без кэшаС кэшем
Что списывается10 × 30k входа1 запись + 9 чтений
Стоимость входа~$0.46 (≈41₽)~$0.10 (≈9₽)

Экономия ≈78% — и чем больше вопросов к тому же контексту, тем сильнее эффект. Именно поэтому агентный кодинг (где контекст переиспользуется десятки раз) выходит в разы дешевле.