Мир ИИ

Cursor срезал счёт агента на 7 %: что сработало

Cursor срезал счёт агента на 7 %: что сработало

23 сентября Cursor опубликовал разбор того, как сократил расход токенов своего агента на 7 % без потери качества. Системный промпт стал короче примерно на 66 %. Описаний инструментов в постоянном контексте стало на 60 % меньше, холодных промахов кэша — на 20 % меньше. Номер строки теперь стоит на каждой десятой строке файла, это минус 1,6 % чтений из кэша. Для агента на API KeyDealer урок такой: кэш на наших ставках скидки не даёт, а вот сокращение постоянного контекста экономит напрямую — на GPT-6 Astra в нашем примере это 83,70 ₽ на одну длинную сессию.

Разбор написали три инженера Cursor — Джедайя Кац, Коннор О'Киф и Кэлвин Йи. Там же сказано, что те же выводы команда переносит в Grok Bot. Это отчёт о том, куда уходит бюджет агента, который работает часами, и у каждого пункта в нём свой замер. Для разработчика, который платит за токены сам, самый полезный кусок — даже не 66 %, а скромное «меньше 20 % разговоров»: столько раз нужен средний инструмент, чьё описание летит в каждом запросе.

Что изменилось в агенте Cursor

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

ПравкаЧто сделалиЗамер Cursor
Системный промптУбрали запреты и «обязательно», которые новые модели уже не требуютоколо −66 % объёма промпта
ИнструментыРедкие грузятся по требованию, в постоянном контексте только частые−60 % токенов описаний
КэшЯвные точки кэша после неизменных слоёв запроса−20 % холодных промахов
Чтение файловНомер на каждой десятой строке вместо каждой−1,6 % токенов чтения из кэша
ПодагентыУбрали подталкивание к подагентам, модель меняют только по указаниючисла нет

Итог по всем пяти, по словам команды, — 7 % расхода токенов у пользователей. Качество проверяли на A/B-тестах по большому числу пользователей. Эвалы, пишут авторы, полезны как быстрый ориентир, но в них в основном «трудные» задачи. Реальный поток запросов выглядит иначе.

Почему системный промпт сократили на две трети

Пока модели были слабее, Cursor расписывал каждый шаг: как пользоваться инструментами, как вести список задач, как вносить правки в код. Отдельно приходилось запрещать странное поведение, например гигантские дампы хэшей, двоичный вывод и эмодзи. Отсюда длинные списки «НЕ делай», «Ты обязан», «Важно».

Новые модели оказались достаточно послушными, чтобы им хватало описания того, как работает инструмент. Это подтвердилось на моделях разных семейств, и промпт сократили примерно на 66 %. Инструкции при этом продолжают и добавлять, и удалять: новые модели требуют новых подсказок, а подсказки потом попадают в обучение следующих моделей.

Системный промпт уходит с каждым ходом агента, поэтому это одна из крупнейших статей расхода, которую обвязка контролирует полностью. Похожий вывод в середине сентября сделала OpenAI в разборе про устаревшие инструкции. Мы пересказали его в материале про то, почему инструкции агенту устарели. Как собрать промпт с нуля без лишнего, написано в руководстве по системному промпту.

Сколько экономит подгрузка инструментов по требованию

Описаний инструментов в постоянном контексте стало на 60 % меньше, а в сессиях с MCP-инструментами общий расход токенов упал на 46,9 %.

За год набор инструментов агента Cursor сильно вырос: фоновый мониторинг shell, облачные подагенты, доступ к веб-страницам. Почти все они полезны, но каждый нужен меньше чем в 20 % разговоров. А полное описание каждого при этом летело в каждом запросе.

Решение Cursor проверил раньше на MCP-инструментах: их перенесли в динамический контекст, откуда они подгружаются только при необходимости. В сессиях, где MCP-инструмент вызывался, общий расход токенов упал на 46,9 %. Теперь то же сделали со встроенными инструментами.

В постоянном контексте остались:

  1. чтение, поиск, правка файлов и shell — ими пользуются чаще всего;
  2. ask_question — некоторые модели «выдумывали» его вызов, когда инструмента не было;
  3. инструменты, без которых не работают отдельные режимы продукта, например create_plan в режиме планирования.

Остальное подгружается, когда агенту понадобится. Какой набор оставить, выбирали A/B-тестами: смотрели на токены, стоимость, задержку, ошибки вызова инструментов и общую активность агента. Спор о том, сколько стоят описания инструментов, мы разбирали в статье про претензии к MCP.

Что Cursor изменил в кэше

Cursor поставил явные точки кэша после неизменной части запроса, и холодных промахов кэша стало на 20 % меньше.

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

Раньше граница кэша у OpenAI определялась автоматически по последнему запросу. Инструменты и инструкции не менялись, но отдельной переиспользуемой частью их никто не размечал. По документации OpenAI, начиная с GPT-5.6 разработчик может сам поставить точки кэша: режим prompt_cache_options.mode = explicit. Там же указана цена: запись в кэш — 1,25 от обычной входной ставки, чтение — 0,1. Минимальная длина кэшируемого префикса для GPT-5.6 и новее — 1024 токена.

Cursor поставил точки после неизменных слоёв и до растущего разговора. Всё изменчивое — навыки, подагенты, сведения об окружении — вынесли за границу кэша, в служебное сообщение, которое команда называет «фантомным сообщением пользователя». Отсюда и минус 20 % холодных промахов.

Кэш под GPT-5.6 Cursor настраивал, уже зная, что модели OpenAI уходят из редактора 12 ноября: об этом решении мы писали в статье про отключение моделей OpenAI в Cursor. Приём от этого не хуже — он переносится на любой провайдер с кэшем префикса.

Зачем номер строки только на каждой десятой

Агент Cursor читает файлы инструментом Read, и раньше тот нумеровал каждую строку. Модели плохо считают строки сами, а ссылаться на конкретное место в коде им нужно.

Один номер — это три-пять токенов. Мелочь, пока агент не прочитает за сессию десятки тысяч строк. Номер на каждой десятой строке всё ещё позволяет модели точно ссылаться на код, а токенов чтения из кэша стало на 1,6 % меньше. Качество, по замеру Cursor, не упало.

Прочитанный файл не исчезает после ответа: он остаётся в истории и уходит заново с каждым следующим ходом. Возьмём наш пример, а не цифры Cursor. Файл на 2000 строк прочитан на 20-м ходу из 150. Нумерация каждой строки добавит около 8000 токенов, каждой десятой — около 800. Разница в 7200 токенов повторится 130 раз, это 936 тысяч токенов за сессию.

Когда подагенты экономят, а когда нет

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

Но у изоляции есть цена координации. Агенты без общего контекста дублируют работу или делают то, что уже не нужно. Cursor сделал две правки:

  1. убрал из промпта настойчивый совет отдавать подагентам разведку по коду — модели и так научились этому в дообучении, и лишний нажим давал перекос;
  2. ограничил выбор модели для подагента: другую модель агент берёт, только если так сказал пользователь или обвязка.

После второй правки дорогую модель для плана и дешёвую для исполнения по-прежнему можно поставить, но агент больше не решает это сам.

Почему в сумме вышло всего 7 %

Цифры в таблице выше считаются от разных баз, поэтому складывать их нельзя. Минус 66 % — это доля системного промпта. Минус 60 % — доля описаний инструментов. Минус 1,6 % — доля чтений из кэша. Каждая правка режет свой кусок запроса.

А в длинной сессии основная масса — это не постоянная часть. Растёт история: прочитанные файлы, выводы команд, ответы модели, которые уходят обратно на каждом ходу. Плюс выход модели, который у многих провайдеров дороже входа. Правки Cursor касались в основном постоянной части, поэтому в общем счёте получилось 7 %.

Доли расхода по типам (выход, некэшированный вход, кэшированный вход) Cursor показал на графике, но числами в тексте не привёл. Сколько токенов было до и после в абсолютных значениях и как распределилась экономия по моделям, тоже не опубликовано. Мы эти доли не восстанавливаем.

Как сократить расход токенов своего агента

Если агент работает через наш API, у вас одна особенность: на 25 сентября 2026 года у всех текстовых моделей каталога prompt_cache.status = unsupported. Кэшированный вход и запись в кэш считаются по обычной входной ставке, пока не опубликована проверенная скидка. Подробнее — в статье про кэш промптов. Значит, третья правка Cursor на нашем счёте ничего не изменит. Остальные четыре работают напрямую: сколько токенов не ушло, столько рублей не списано.

Посчитаем на условном агенте, похожем на Cursor. Системный промпт 5000 токенов, описания инструментов 10 000, сессия на 150 ходов. Сократим промпт на 66 %, а описания на 60 %: постоянная часть уменьшится с 15 000 до 5700 токенов на ход. За сессию это 1 395 000 токенов. Ставки взяты из GET /v1/models на 25 сентября 2026 года, вход и выход у них одинаковые.

МодельСтавка, ₽ за 1 млнПостоянная часть до, ₽После, ₽Экономия за сессию, ₽
GPT-6 Astra60135,0051,3083,70
GPT-5.6 Sol4090,0034,2055,80
Claude Sonnet 53067,5025,6541,85
GPT-5.6 Luna818,006,8411,16
DeepSeek V4 Flash12,250,851,40

Сто таких сессий в месяц на GPT-6 Astra — это 8370 ₽ экономии только на постоянной части. Актуальные ставки по всем моделям собраны в хабе сколько стоит миллион токенов в рублях. У части маршрутов к вашему запросу добавляется служебный контекст, он виден в поле billing.estimated_route_context_tokens. Что это и откуда берётся, разобрано в статье почему prompt_tokens больше, чем вы отправили.

Порядок работ, по которому это делает Cursor:

  1. Промпт. Выпишите все запреты и «обязательно». Уберите по одному и прогоните на своей выборке задач. Оставляйте только то, без чего результат падает.
  2. Инструменты. Посчитайте по логам, в какой доле сессий вызывается каждый инструмент. Всё, что ниже 20 %, — кандидат на подгрузку по требованию.
  3. Файлы и выводы. Проверьте, что ваш инструмент чтения не дублирует лишнее: номера строк, пустые строки, полные пути в каждой строке.
  4. Подагенты. Считайте, сколько работы они дублируют, прежде чем плодить их.

Для длинных задач по коду есть готовый вариант — KD Code. Это десктопный агент, который сам управляет рабочим контекстом: повторные чтения, история, выводы инструментов. Он работает на том же ключе и балансе. Экономия зависит от задачи и модели и бывает нулевой, поэтому считайте на своих сессиях.

Чего Cursor не раскрыл

Цифры в разборе относятся к трафику Cursor и его обвязке. Заявленные 7 % — средний результат по пользователям. Как он распределён по моделям и типам задач, не сказано. Абсолютных объёмов токенов нет. Нет и данных о том, как изменилась задержка, хотя её отслеживали при выборе инструментов.

Поэтому переносить цифры на свой агент один в один нельзя. Переносится метод: мерить каждую правку отдельно, на живом трафике, со своей метрикой качества. Как поставить такой замер, показано в статье про A/B-тест двух моделей.

Ключ для замеров на своём трафике можно получить на keydealer.ru/login: оплата в рублях, баланс общий для всех моделей каталога.

Частые вопросы

Что именно сократил Cursor?

Расход токенов у пользователей его агента — на 7 % без потери качества, по данным команды от 23 сентября 2026 года. Экономия собрана из пяти правок обвязки. Системный промпт стал короче примерно на 66 %. Редкие инструменты подгружаются по требованию. Кэш размечен явными точками. Номер ставится на каждую десятую строку файла. Подагентов вызывают реже.

Почему промпт удалось сократить на две трети?

Модели стали лучше следовать описаниям инструментов. Длинные списки «никогда не делай» и «обязательно сделай» оказались лишними, причём это подтвердилось на моделях разных семейств. Решения принимали по A/B-тестам на живом трафике, а не по одним только эвалам.

Сколько дала подгрузка инструментов по требованию?

Описаний инструментов в постоянном контексте стало на 60 % меньше. Раньше тот же приём применили к MCP-инструментам, и в сессиях, где такой инструмент вызывался, общий расход токенов упал на 46,9 %.

Что такое явные точки кэша у OpenAI?

Начиная с GPT-5.6 разработчик может сам указать, где кончается неизменная часть запроса, через prompt_cache_options.mode = explicit. По документации OpenAI запись в кэш стоит 1,25 от обычной входной ставки, чтение — 0,1. Минимальная длина кэшируемого префикса — 1024 токена.

Сработает ли кэш на ставках KeyDealer?

Скидки нет. На 25 сентября 2026 года у всех текстовых моделей каталога prompt_cache.status = unsupported, кэшированный вход считается по обычной ставке. Поэтому в агенте на нашем API деньги экономят те приёмы, которые сокращают число токенов, а разметка кэша на счёт не влияет.

Какие инструменты Cursor оставил в постоянном контексте?

Чтение, поиск и правку файлов, shell, инструмент ask_question и инструменты, без которых не работают отдельные режимы, например create_plan в режиме планирования. Остальные подгружаются по требованию, потому что каждый из них нужен меньше чем в 20 % разговоров.

Как сократить системный промпт своего агента?

Выписать все запреты и пункты «обязательно», убирать их по одному и прогонять агента на своей выборке задач. Оставлять только то, без чего результат ухудшается. Cursor принимал такие решения по A/B-тестам на живом трафике.

Почему общий итог всего 7 %, если промпт сократили на 66 %?

Системный промпт и описания инструментов — только часть запроса. В длинной сессии основная масса входа приходится на историю диалога, прочитанные файлы и выводы команд, плюс выход модели. Правки в Cursor касались в основном постоянной части, и в общем счёте она дала 7 %.

Источники