Обсудить задачу
статья · агенты и экономика ИИ

Агент отвечал на «ты тут?» шестьюдесятью тысячами токенов. Разобрал, куда они уходят

Коротко

мой личный ИИ-агент отправлял в модель 60 000 входящих токенов на каждое сообщение, даже на «ты тут?». Разобрал по слоям: две трети системного промпта занимал каталог навыков, которыми я не пользуюсь, а историю раздували не наши реплики, а выдача терминала – 831 символ моего текста против 123 000 символов вывода команд. Плюс размышления модели, которые оплачиваются как исходящие и никуда дальше не идут, сжатие контекста на модели с окном в 16 000 токенов и фоновая задача, о которой я не знал. После настройки – 300 токенов на сообщение. И самое неожиданное: в деньгах всё это стоило копейки.

3 сентября 2026
Человек произносит короткую фразу, а за ней тянется огромный шлейф из бумажных лент, распечаток и папок – Нейровод, neurovod.ru
Реплика в два слова, за которой тянется весь накопленный контекст

С чего началось

Я гоняю Hermes Agent от Nous Research – это персональный ИИ-агент, который живёт на моей машине: терминал, файлы, браузер, телеграм-шлюз, планировщик задач, память между сессиями. Работает через RouterAI на deepseek-v4-flash.

Смотрю статистику у провайдера и вижу три запроса подряд:

времявходящихисходящихответ
15:42:2858 1572 47720,37 сек
15:43:2560 7546495,44 сек
15:43:4061 5711 47912,06 сек

Шестьдесят тысяч входящих. При этом я в той сессии написал ему буквально «ты тут?», «але» и «сейчас на роутер аи работаем?».

Спросил у него самого. Он ответил уверенно: системный промпт 17 тысяч токенов, схемы инструментов 8 тысяч, история сессии 24 тысячи. И добавил, что память забита под потолок – 6 000 из 6 000.

Половина этого оказалась неправдой. Не потому что он врал – он просто не видит себя со стороны.

Что на самом деле в системном промпте

Hermes пишет каждую сессию в SQLite вместе с системным промптом. Выгрузил и померил.

Промпт – 34 999 символов. Разложил по блокам:

блоксимволовдоля
каталог навыков22 89465 %
правила поведения агента6 77919 %
всё остальное: память, профиль, платформа~5 30016 %

Две трети – список навыков. Сто тридцать четыре записи с описаниями, которые уезжают в модель при каждом запросе. Содержимое навыка грузится по требованию, а вот перечень постоянный.

Что в нём было: pokemon-player, gif-search, songwriting-and-ai-music, ascii-video, manim-video, pixel-art, touchdesigner-mcp, управление умными лампами, поиск по закладкам Firefox. Я не ставил почти ничего из этого – оно приехало пачкой при установке и при обновлениях.

Память и профиль, на которые он грешил, занимали в сумме пару тысяч символов из тридцати пяти.

Историю раздувает не переписка

Дальше я разобрал историю той самой сессии. Сто десять сообщений, сорок пять вызовов инструментов.

что лежит в историисимволов
размышления модели123 710
их точная копия во втором поле123 708
результаты вызовов инструментов63 312
собственно его ответы6 271
мои реплики831

Восемьсот тридцать один символ – это весь мой вклад в разговор. Остальное он произвёл сам.

Сорок три вызова терминала. Когда я спросил про расход токенов, он полез перебирать логи: посчитал completion_tokens через awk, заглянул в errors.log, потом пять раз подряд разными запросами в базу сессий, потом снова в логи, потом в журнал обновлений. Один результат – 15 220 символов. И каждый такой кусок остаётся в контексте навсегда: следующий запрос тащит его целиком.

Вот откуда рост. Не «история переписки», а протокол его собственной суеты.

Размышления, за которые платишь молча

Четверть мегабайта размышлений в одной сессии, записанных дважды – в поля reasoning и reasoning_content, копия в копию.

Обратно в модель они не уходят, за это отвечает отдельный флаг, и он выключен. То есть на входящие токены они не влияют. Но модель их генерирует, а генерация – это исходящие, которые стоят втрое дороже входящих.

В конфиге у меня стояло reasoning: none. Выглядит как «размышления отключены». Полез в исходники – такого ключа в коде нет вообще. Настройка называется reasoning_effort, и выключает её значение false. У меня там стояло medium.

Проверил на живом запросе, «сколько будет 17 × 23»:

запросвыходиз них размышления
без параметра43 токена41
с отключёнными размышлениями1 токен0

Разница в цене – в шесть раз на пустом месте.

Сжатие, которого не было

У Hermes есть сжатие контекста: когда история упирается в потолок окна, вспомогательная модель ужимает её в конспект. Настройка была включена, порог стоял.

Только вспомогательной моделью была назначена reka/reka-edge. У неё контекстное окно 16 384 токена. А сжимать её просили историю на сто тысяч.

То есть сжатие числилось работающим и не работало ни разу. История росла без остановки именно поэтому.

Заменил на mistral-nemo: окно 131 072, вход 2,1 рубля за миллион против 11,3 у Reka. Дешевле впятеро и физически способна проглотить то, что ей дают.

Фоновая задача, о которой я не знал

В логах наткнулся на строки, которых не ожидал:

времявызововвходящихисходящих
22:31:13822 11013 823
22:42:26312 40111 790
22:52:11618 0239 695

Это не мои запросы. После каждого хода агент форкает сам себя, проигрывает копию разговора и спрашивает: не пора ли сохранить новый навык или запись в память. По восемь вызовов за раз и по десять-четырнадцать тысяч исходящих токенов.

В конфиге этой секции не было вовсе. В коде это описано прямо: если настройки нет – считаем включённой, «чтобы сломанный конфиг не отключил ревью молча». Механизм полезный, память он ведёт сам. Но гонять его на основной модели незачем – перевёл на ту же дешёвую Nemo. Бонусом: при смене модели он сам переходит с полного проигрывания разговора на компактный конспект.

Разрез многослойного объекта: один слой занимает две трети объёма, остальные слои тонкие – Нейровод, neurovod.ru
Разрез системного промпта: две трети занимал каталог навыков

А теперь неожиданное: денег это почти не стоило

Когда всё посчитал, вышло не то, чего я ждал.

У deepseek-v4-flash вход 6,2 рубля за миллион токенов, выход 19,8. Запрос на 60 000 входящих – 40 копеек. Сто запросов – сорок рублей. Фоновое ревью – 34 копейки за прогон.

Плюс кэш. Посмотрел учёт по вызовам:

Вход 36 944 токена, из них из кэша – 36 864.

Девяносто девять и восемь десятых процента контекста читается из кэша по льготной цене. Полную стоимость платишь только за первый холодный запрос в сессии.

Так что версия «агент разоряет» не подтвердилась. Настоящая цена другая, и она хуже денег.

Скорость. Двадцать секунд на ответ вместо двух. Модель перемалывает шестьдесят тысяч токенов, чтобы ответить «да, тут».

Качество. Когда в контексте лежат сорок три выдачи терминала, модель отвечает хуже. Ты спрашиваешь одно, а она тащит за собой всё, что нагребла полчаса назад, и путается. Это и есть настоящая расплата за раздутый контекст – не счёт, а деградация ответов.

Что сделал и что получилось

По порядку, от крупного к мелкому.

Навыки: со ста тринадцати до двадцати восьми. Каталог в промпте ужался с 22 894 символов до 4 613. Отдельно поставил маркер, чтобы обновление не подсыпало удалённое обратно – иначе всё вернётся при первом же update.

Размышления выключил правильным ключом.

Сжатие перевёл на модель с нормальным окном, порог опустил до 40 % – чтобы история подрезалась раньше, а не в теории.

Фоновое ревью – на дешёвую модель.

И главное, что дало больше всего: запретил ему лазить по файлам без нужды. У Hermes есть режим «кодерской осанки»: если рабочая папка похожа на проект, агент считает уместным её изучать. В терминале я почти всегда в такой папке. Выключил режим и добавил в описание личности прямое правило: не ходить по файловой системе и не запускать команды, если без этого нельзя ответить.

Результат замерил по логам за сутки:

вызововмедиана входящих
терминал, до настройки48163 051
телеграм, до настройки8527 469
после настройки, оба каналаприрост ~300 на сообщение

Триста токенов – это ровно текст моего сообщения плюс его ответ. Без хвостов.

Разница между каналами, кстати, объяснилась не техникой. Системные промпты почти одинаковые – 34 999 символов в терминале против 34 554 в телеграме. Отличалось поведение: 2,8 вызова инструментов на реплику в терминале против 0,8 в телеграме. В телеграме я с ним разговариваю, в терминале ставлю задачи – и он идёт копать.

Грабли, на которые уже наступил

Настройка с правдоподобным именем может ничего не значить. reasoning: none выглядит как отключение размышлений. В коде такого ключа нет. Проверять надо не по здравому смыслу, а по исходникам – благо Hermes открытый.

Агент не видит себя со стороны. Он уверенно назвал состав своего промпта и ошибся в главном: списал всё на память и профиль, а каталог навыков не упомянул. Спрашивать агента о его расходах – всё равно что спрашивать у человека, сколько он потратил, без выписки по карте.

Штатная команда удаления может молча ничего не делать. skills uninstall отработала на сорока шести навыках, вернула успех – и не удалила ни одного. Она рассчитана на установленные из хаба, а встроенные игнорирует. Проверил по диску, иначе бы так и жил с иллюзией.

Не чините то, что не меряли. Я час гонялся за 96-килобайтным файлом инструкций, который, по коду, должен был подмешиваться в промпт. Померил фактический промпт – его там нет. Вывод по исходникам оказался неверным, а замер занял пять минут.

Вспомогательные модели надо проверять по окну, а не по цене. Дешёвая модель на роли компрессора бесполезна, если её окно меньше того, что она должна сжать. Такая ошибка не падает с ошибкой – она просто тихо не работает.

Вопросы и ответы

Это касается только Hermes или любого агента? Механизмы общие. Каталог инструментов и навыков в системном промпте, история вызовов, которая не выбрасывается, фоновые задачи, размышления в исходящих – всё это есть у любого агентного каркаса. Отличаются названия настроек и то, насколько разработчик даёт до них добраться.

Почему нельзя просто увеличить окно контекста? Можно, и именно это создаёт ловушку. У модели окно в миллион токенов, поэтому ничего не ломается и предупреждений нет – история просто пухнет. Проблема всплывает не как ошибка, а как медленные и плохие ответы.

Кэш ведь и так экономит, зачем чистить контекст? Кэш экономит деньги, но не время и не внимание модели. Прочитанные из кэша шестьдесят тысяч токенов всё равно проходят через неё целиком, и релевантная часть в них тонет.

Сколько времени заняла настройка? Вечер, из которого большая часть ушла на замеры, а не на правки. Сами изменения – это шесть строк в конфиге, удаление лишних навыков и три предложения в описании личности.

Что дало наибольший эффект? Запрет самовольно лазить по файлам. Все остальные правки вместе взятые срезали около двух тысяч токенов на вызов, а эта убрала десятки тысяч, потому что убрала причину, а не следствие.

Что делать, если у меня нет доступа к конфигу агента? Начинать новую сессию после каждой законченной задачи. Это единственный рычаг, который работает без настроек, и он же самый действенный: история – самая крупная часть раздутого контекста.

Если у вас похожая история

Первое, что стоит сделать – не менять настройки, а посмотреть выгрузку одной сессии и посчитать, из чего она состоит. У меня после этого замера половина первоначальных гипотез отпала, включая мою собственную.

Если нужен разбор вашего случая или помощь с внедрением агентов так, чтобы они не съедали бюджет и не тормозили – напишите, посмотрим вместе.

Эту задачу закрывает отдельная услуга – аудит бизнес-процессов.

автор – Семенов Евгений, Forward Deployed Software Engineer
статьи по теме

Читать дальше

все статьи →
Экономика ИИ, Боты

Сколько стоит свой ИИ-бот: честная смета от идеи до продакшена

Токены, сервер, разработка – раскладываю реальные цифры трёх запущенных ботов.

5 июля
Агенты, CRM, Боты

ИИ-агент вместо менеджера по заявкам: месяц наблюдений

Что агент делает лучше человека, где ошибается и сколько это стоит в токенах.

10 июля
кейсы по теме

Это уже работает

все кейсы →
процессная аналитика · симуляция

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

Агенты сами находят процесс в базе, схема строится по фактам, симуляция считает эффект правки до внедрения.

услуги147 ч простоя162 → 45 ч
аналитика · r&d

Прогноз оттока в фитнес-клубе: пять портретов

Модель находит уходящих за 15 дней и делит базу на пять портретов – каждому своё предложение, а не общая скидка.

фитнесROC-AUC 0,975 портретов
saas · seo-платформа

ExpertRank: витрина экспертов с разметкой E-E-A-T

Портал для экспертов: профили, категории, модерация и полная поисковая обвязка каждой статьи.

экспертыSEO + GEO30 направлений
лента по теме

Новости и посты

вся лента →
пост Схема: как агент выбирает инструмент пост Qwen подешевел вдвое – пересчитал смету ботов пост 68% американского малого бизнеса уже с ИИ. Что из этого переносится к нам новость Открыта запись на пилоты августа
Именной сертификат курса «ИИ для новичков» – neurovod.ru
БЕСПЛАТНО
курс с сертификатом

ИИ для новичков

Семь коротких уроков с тестами: от «что такое ИИ» до первого собственного ИИ-помощника в вашем деле. Без воды и почтовых рассылок. В конце – сертификат.

Начать бесплатно