Экономия токенов AI: 4 принципа с калькуляторами | AiManual
AiManual Logo Ai / Manual.
03 Май 2026 Гайд

Как сократить расходы на токены в Agentic AI: 4 принципа с интерактивными калькуляторами

Снизьте затраты на токены в Agentic AI. Принципы: prompt caching, lazy loading tools, semantic caching, agent routing. Калькуляторы экономии.

В 2026 году API LLM подешевели — но не для тех, кто юзает агентные системы вслепую. Каждый цикл агента генерирует тонны токенов: перезапросы инструментов, история диалога, одинаковые системные промпты. Я помню, как запустил мультиагентный пайплайн для анализа логов — через час счет VISA напоминал сумму чека в ресторане с мишленовской звездой. Знаю, не у меня одного.

Пока одни пишут посты в духе "AI — это дёшево", другие выгребают из кошелька по $500 в день. Но есть способ не платить лишнего. Ниже — 4 принципа, которые я вкручиваю в каждый продакшен-агент. К каждому — интерактивный калькулятор, чтобы прикинуть экономию прямо сейчас. Без воды. Только код и циферки.

Важно: Все цены указаны для Claude Opus 4.7 (2026) — $15 за миллион входных токенов, $60 за выходные. Для GPT-4.5 и Gemini 2.5 Pro пересчитывайте по своему тарифу. Подробнее про скрытую инфляцию токенов в Opus 4.7 читайте в этом разборе.

1. Prompt Caching — не гоняйте одно и то же

Самый тупой способ сжечь деньги — отправлять в каждом запросе полный системный промпт размером с «Войну и мир». Anthropic, OpenAI и Google уже давно поддерживают кэширование префикса. Вы помечаете статическую часть cache_control, и API хранит её на сервере. Повторные запросы стоят копейки — вы платите только за разницу.

Например, если системный промпт — 2000 токенов, а каждый пользовательский запрос — 500, то вместо 2500 токенов вы платите за 500 + 10% от кэшированных (дисконт). Экономия на длинных сессиях доходит до 90% на входе.

1 Реализация (Anthropic API)

Вот как это выглядит в коде на Python (версия SDK >= 0.45). Обратите внимание на cache_control в системном сообщении:

import anthropic

client = anthropic.Anthropic()

system = [
    {
        "type": "text",
        "text": "Вы — сеньор DevOps. Отвечай коротко, используй только facts.",
        "cache_control": {"type": "ephemeral"}
    }
]

response = client.messages.create(
    model="claude-opus-4-7-20260401",
    max_tokens=1024,
    system=system,
    messages=[{"role": "user", "content": "Сколько стоит pod в EKS?"}]
)

Кэш живёт 5 минут после последнего обращения. Если в пайплайне перерывы больше — толку ноль. Поэтому для агентов с плотными циклами (интервал < 1 мин) — идеально. Подробнее про формулу effective cost с кэшем читайте в этой статье.

Подводный камень: GPT-4.5 требует явно указывать cache_control на уровне массива сообщений, а не system. В Gemini 2.5 Pro кэш — платная опция (включи в консоли).

🧮 Калькулятор экономии от Prompt Caching

2. Lazy Loading Tools — не тащите лишнее

Ошибка, которую я вижу в 80% агентных систем: в каждом шаге агенту передают все доступные инструменты. 20 функций с описаниями по 200 токенов — и вот уже 4000 токенов летят в каждом запросе просто «на всякий случай». А агент использует 2-3 инструмента за сессию.

Решение — загружать инструменты лениво. Держите реестр, куда добавляйте описание только после того, как агент решил, что инструмент нужен. Или группируйте по доменам: используйте роутер (принцип 4), который сначала выбирает группу, а потом загружает конкретные тулзы.

💡
В AVP (Agent Vector Protocol) эту идею довели до крайности: передают не весь промпт, а только KV-cache — экономия до 78%. Я писал об этом в отдельном разборе.

🧮 Калькулятор экономии Lazy Loading

3. Semantic Caching — не бейте по одному месту дважды

Ручной кэш (exact match) — база. Но в агентных системах один и тот же вопрос часто задают по-разному: «сколько подов» и «какое количество подов». Semantic caching схлопывает такие запросы: вы храните эмбеддинги ответов, а новый запрос сначала ищете среди старых по порогу схожести (cosine similarity > 0.95).

Я использую такой кэш на основе sentence-transformers/all-MiniLM-L6-v2 (399 Мб, скорость 2000 запросов/сек на CPU). Время поиска — 2-5 мс. А экономия на повторяющихся запросах — до 70% на ответах.

Важно: Semantic caching — это компромисс. Если кэш отдаст не совсем точный ответ, агент сделает неправильный шаг. Ставьте порог 0.97+ для критичных операций. В остальных случаях 0.92-0.95 ок.

🧮 Калькулятор экономии Semantic Caching

4. Agent Routing — дешёвая модель для простых задач

Не каждый шаг агента требует мозга Клода Опуса. В моём пайплайне 70% запросов — это форматирование дат, простые вычисления, поиск по индексу. Для них достаточно Gemini 2.5 Flash (или GPT-4o mini). А сложные рассуждения (рефакторинг кода, анализ логов) пусть решает Opus 4.7.

Как сделать роутинг? Вариантов много: классификатор на основе эмбеддингов (logistic regression за 10 строк), или LLM-роутер (маленькая модель решает, куда отправить). Я предпочитаю второй вариант — точность выше 95%.

2 Реализация (псевдокод)

import openai

def route_task(task_description):
    router_model = "gpt-4o-mini"  # дешёвый классификатор
    response = openai.chat.completions.create(model=router_model,
        messages=[{"role": "system", "content": "Task: classify as SIMPLE or COMPLEX. Output only one word."},
                  {"role": "user", "content": task_description}],
        max_tokens=5)
    return response.choices[0].message.content.strip()

task = "Подсчитай количество запущенных подов в неймспейсе."
if route_task(task) == "SIMPLE":
    model = "gemini-2.5-flash"
else:
    model = "claude-opus-4-7-20260401"
# ... далее вызов

Цена роутера (gpt-4o-mini) — $0.15 за миллион входных, $0.60 за выходные. На 1000 запросов вы потратите центы, а сэкономите доллары.

🧮 Калькулятор экономии Routing


Нюансы и грабли, на которые я наступал

  1. Prompt caching не работает, если контекст меняется каждый раз. Проверяйте, что префикс действительно статический. Anthropic кэширует только exact match.
  2. Lazy loading может зациклить агента. Если инструмента нет, а агент его запросил — вылетит ошибка. Добавляйте fallback: «инструмент недоступен, используй другой».
  3. Semantic caching убивает актуальность. Если данные меняются (например, статус деплоя), кэш отдаст старое. Проставляйте TTL для каждого ключа.
  4. Routing иногда ошибается. Сложный запрос может улететь в дешёвую модель и вернуть чушь. Добавляйте ретрай с повышением модели, если ответ выглядит подозрительно.
📌
Совет: Начните с принципа 1 (prompt caching) — он даёт 80% эффекта при 20% усилий. Затем внедрите routing. Lazy loading и semantic caching — для тех, у кого агенты живут в проде и счет за токены превышает $1000/мес.

Хотите копнуть глубже? Почитайте кейс создания продакшен-сервиса за $4.62 — там автор применил все четыре принципа. Или посмотрите сжатие вывода инструментов — ещё один способ резать токены.

Доллар, сэкономленный на токенах, — это доллар, который можно потратить на пиво. Или на ещё один GPU. Выбор за вами.

Подписаться на канал