Коротко: токены съедает не работа агента, а повторное снабжение его контекстом. Семь рабочих способов: память вместо пересказа проекта, точечный поиск вместо чтения файлов, короткий system prompt, дисциплина сессий, подбор модели под задачу, кэширование промптов и замер расхода. На нашем репозитории это дало от 1,4 до 3,3 раза меньше токенов на старт сессии; на точечных вопросах — до 4,2 раза.
Куда на самом деле уходят токены
Прежде чем экономить, посмотрите на анатомию расхода. В каждом запросе агента оплачиваются четыре корзины:
- Системный промпт — правила, инструкции, описания инструментов. Платится в каждом запросе без исключений.
- История сессии — весь диалог с начала, включая неактуальное. Растёт квадратично по духу: чем длиннее сессия, тем дороже каждый следующий ход.
- Файлы и код — самая тяжёлая корзина у кодовых агентов: «прочитай репозиторий» легко означает десятки тысяч токенов.
- Выводы инструментов — логи, результаты поиска, диффы. Часто возвращаются целиком, когда нужна пара строк.
Все семь способов ниже бьют по этим корзинам. Поехали по убыванию эффекта.
1. Память вместо пересказа проекта
Самая дорогая привычка — объяснять проект заново в каждой сессии. Стек, договорённости, «вчера чинили баг» — это тысячи токенов в день, вручную.
Мы замерили это на собственном репозитории: старт сессии с дайджестом памяти стоит ~4 200 токенов, чтение проекта с нуля — ~8 900. Разница 2,1 раза на каждом старте (методика и полные цифры). Память — это сущности, решения и открытые задачи, которые агент читает одним вызовом с жёстким бюджетом объёма, вместо того чтобы заново сканировать файлы.
Для этого и сделан MaxGraph: локальный MCP-сервер, который ведёт граф памяти и отдаёт выжимку в начале сессии. Работает и в триале, ставится одним промптом.
2. Точечный поиск вместо файлов целиком
«В каком статусе задача по миграции?» не требует чтения CHANGELOG. Вопрос, размазанный по двум файлам, обходится в ~4 300 токенов чтения против ~1 000 за один поиск по памяти — разница до 4,2 раза.
Практическое правило: если ответ — факт или решение, агент должен искать его в памяти или поиском по коду (grep, семантический поиск), а не читать файлы целиком. Файл целиком оправдан, только когда вы правите именно его.
3. Короткий system prompt
Каждая строка в system prompt оплачивается в каждом запросе. Наблюдение из практики: периодически перечитывайте свои CLAUDE.md / AGENTS.md и выкидывайте правила, которые ни разу не сработали. Правило «на всякий случай» стоит вам каждый день; правило «однажды понадобится» — никогда.
Хороший тест: если агент нарушил правило хотя бы раз за месяц — оно нужно. Если ни разу не нарушил и не пригодилось — кандидат на удаление.
4. Дисциплина сессий: закрывайте, не тяните
Длинная сессия — это история, которую вы тащите за собой в каждом запросе. К концу дня типичная сессия кодового агента весит столько, что каждый новый вопрос стоит как небольшая статья.
Правильнее: завершить этап, зафиксировать итог (у нас это делает session_close — итоги уходят в память) и начать следующую сессию с чистого листа плюс дайджест. Сжатие контекста (compaction) — тот же механизм, только в аварийном режиме: лучше закрывать сессию до того, как её начнёт резать сам клиент. Подробнее про сжатие: что такое компактизация контекста.
5. Модель под задачу, а не одна на всё
Роутинг «прочитай лог и скажи, упало ли» не требует флагманской модели. Если ваш стек позволяет (у многих клиентов есть выбор модели по задаче), рутинные чтения и классификации отдавайте дешёвой модели, а проектирование и дебаг — дорогой. Экономия на порядок по цене токена, без потери качества там, где оно важно.
6. Кэширование промптов
Если провайдер поддерживает prompt caching (Anthropic, OpenAI и другие кэшируют повторяющийся префикс запроса), стабильный system prompt и стабильный порядок контекста дают скидку на кэшированную часть — у Anthropic она существенная. Условие одно: начало запроса должно быть байт-в-байт одинаковым между вызовами. Дайджест памяти с фиксированной структурой (как у нас) кэшируется лучше, чем пересказ в свободной форме.
7. Мерить, иначе это гадание
Нельзя экономить то, что не измеряется. Минимум: считайте токены на старт сессии и на типичный вопрос до и после изменения. Мы ведём такие замеры на себе и публикуем их отдельными статьями — потому что «стало дешевле» без цифры не ответ.
FAQ
Экономия токенов — это потеря качества? Нет, если резать повторы, а не сигнал. Память возвращает ровно релевантное: решения, открытые баги, задачи. Чтение «всего подряд» добавляет шум, а не качество — на длинных контекстах модель ещё и хуже находит середину.
Сколько реально можно сэкономить? На нашем репозитории: 1,4–3,3 раза меньше токенов на старт сессии, до 4,2 раза на точечных вопросах. Это замер, не обещание: методика открыта, повторите на своём проекте.
Когда экономить НЕ надо? Когда контекст и есть работа: ревью большого диффа, анализ длинного документа. Там чтение целиком оправдано, и дешевле его не сделать. Экономия — про повторяющиеся расходы, не про разовые.
Что дальше
- Цифры этой статьи: мы замерили цену повторного контекста — с таблицами и оговорками.
- Начать с памяти за 10 минут: память для Claude Code или для Cursor.
- Словарь терминов: глоссарий памяти агентов.
Дай своему агенту память
Триал 7 дней без карты. Установка — один промпт, дальше агент сделает сам.