При разработке современных AI-приложений, автономных агентов и чат-ботов разработчики неизбежно сталкиваются с так называемым «налогом на контекст»:
Чтобы модель дала точный и предсказуемый ответ, вы обязаны передавать вместе с каждым пользовательским запросом:
- Обширный системный промпт с описанием роли и формата вывода (2 000–5 000 токенов).
- Спецификации OpenAPI / JSON Schema для вызова инструментов (Function Calling) (3 000–10 000 токенов).
- Контекст предметной области, документацию или фрагменты репозитория (
AGENTS.md,.cursorrules) (5 000–30 000 токенов).
В результате в 10-шаговом диалоге одна и та же статическая информация отправляется на сервер 10 раз подряд, превращая 20 000 токенов в 200 000 оплачиваемых единиц.
Технология Prompt Caching полностью решает эту проблему.
1. Как устроен Prompt Caching под капотом
В архитектуре Transformer обработка входящего текста (Prefill Phase) требует вычисления так называемых матриц Key и Value (KV-кэш) для каждого входного токена на тензорных ядрах видеокарт.
[Запрос 1] [Статичный префикс (20 000 токенов)] + [Вопрос А]
└──────────────┬──────────────────┘
▼
Вычисление KV-кэша на GPU (100% стоимости, задержка 1200мс)
│
▼
Сохранение состояния KV-кэша в HBM/DRAM кластера
[Запрос 2] [Статичный префикс (20 000 токенов)] + [Вопрос Б]
└──────────────┬──────────────────┘
▼
МГНОВЕННОЕ ЧТЕНИЕ ИЗ КЭША (Скидка 88%, задержка 180мс)
Когда следующий запрос начинается с того же самого префикса, инференс-сервер не пересчитывает математику внимания заново, а сразу загружает готовые матрицы из памяти.
2. Экономика в рублях: сравнение тарифов
В шлюзе RunGate AI Gateway (api.rungate.ru/v1) скидка за кэшированные токены транслируется напрямую клиенту:
| Модель | Входящие токены (без кэша, за 1M) | Кэшированные токены (Кэш-хит, за 1M) | Экономия |
|---|---|---|---|
| Claude 3.7 Sonnet | 350 ₽ | 35 ₽ | 90% |
| Claude 3.5 Haiku | 95 ₽ | 9.5 ₽ | 90% |
| GPT-4o | 300 ₽ | 150 ₽ | 50% |
| DeepSeek V3 | 25 ₽ | 6.5 ₽ | 74% |
| Gemini 2.0 Flash | 35 ₽ | 8.7 ₽ | 75% |
При активной разработке через агенты (Cursor Composer, Claude Code CLI или собственный бэкенд) средний процент попадания в кэш (Cache Hit Rate) составляет от 72% до 88%. Это снижает суммарные расходы на API в 2.5–4 раза.
3. Золотое правило формирования промпта: Стабильный Префикс
Кэширование работает строго по принципу совпадения байтового префикса от начала текста. Если вы измените хотя бы один символ в начале промпта, весь последующий кэш будет инвалидирован.
❌ Как делать НЕЛЬЗЯ (кэш ломается при каждом запросе):
[
{ "role": "system", "content": "Текущее время: 2026-11-09 20:45:12. Ты AI-ассистент..." },
{ "role": "system", "content": "Документация проекта на 15 000 слов..." }
]
Почему это плохо: Динамический таймстемп в самом начале меняется каждую секунду, из-за чего многотысячная документация за ним никогда не попадет в кэш.
✓ Как делать ПРАВИЛЬНО (99% кэш-хитов):
[
{ "role": "system", "content": "Ты AI-ассистент компании... [Постоянные правила роли]" },
{ "role": "system", "content": "Документация API, схемы БД, правила кода [Статичный контент]" },
{ "role": "user", "content": "[Динамический контекст: время, ID сессии, вопрос пользователя]" }
]
4. Пример подключения к RunGate Gateway с кэшированием
Подключение через стандартную библиотеку OpenAI на Python не требует никаких сторонних пакетов:
import os
from openai import OpenAI
# Подключение к рублевому шлюзу RunGate
client = OpenAI(
base_url="https://api.rungate.ru/v1",
api_key=os.environ.get("RUNGATE_API_KEY", "sk-rg-...")
)
response = client.chat.completions.create(
model="claude-3-7-sonnet",
messages=[
{
"role": "system",
"content": "Ты ведущий архитектор... " + ("Большая неизменяемая документация " * 200)
},
{
"role": "user",
"content": "Напиши метод авторизации пользователей через JWT."
}
]
)
# Проверяем телеметрию кэша в ответе:
usage = response.usage
print(f"Всего входных токенов: {usage.prompt_tokens}")
if hasattr(usage, "prompt_tokens_details"):
cached = usage.prompt_tokens_details.cached_tokens
print(f"Из них считано из кэша (со скидкой 88%): {cached} токенов")
При первом запуске cached_tokens будет равен 0 (запись в кэш). При каждом последующем обращении в течение 5 минут все 20 000+ токенов системного описания будут обработаны по тарифу 35 ₽ за миллион вместо 350 ₽, а генерация начнется практически мгновенно.
Выпустить ключ sk-rg-... и пополнить баланс в рублях через СБП можно прямо сейчас в консоли RunGate Gateway.