Telegram-канал →
Блог · Вайб-кодинг

Cursor: как резать задачу на шаги, чтобы агент не переписал лишнее

Евгений Вязников6 мин чтения◉ 0 просмотров

Агент в Cursor переписывает лишние файлы, когда задача звучит как просьба собрать весь сервис сразу. Рабочий порядок другой: один шаг, один файл, одна проверочная команда, и только потом следующий шаг. Модель под агентом считают отдельно. Для GPT-4o это 2,5 / 10 долларов за 1 млн токенов, окно 128k, доступ из России через прокси. Ниже правило шага, которое удерживает правку в названных границах.

Почему агент переписывает файлы, которые вы не называли?

Широкая задача не содержит границы. Агент видит репозиторий и считает соседний модуль частью работы. Отсюда правки в 8–15 файлах там, где хватало одного. Лечится это не новым лозунгом, а шагом, в котором назван ровно 1 путь. Второй файл в том же шаге уже повод остановить прогон.

Цена ошибки здесь двойная. Вы теряете время на откат и платите за выход модели. У GPT-4o выход стоит 10 долларов за 1 млн токенов при входе 2,5 доллара и окне 128k. Лишние 3000 токенов объяснений, почему переписан чужой файл, стоят 0,03 доллара и ещё час разбора diff. Час обычно дороже этих 0,03 доллара, поэтому границу ставят до запуска, а не после.

Как выглядит один шаг, который можно принять?

Шаг помещается на экран. В нём есть исходное состояние, ровно 1 файл, запрет и команда. Пример запрета: не менять зависимости и не трогать каталог рядом. Пример команды: npm run build. Готово — это код возврата 0, а не фраза модели о завершении.

Порядок на первый сервис уже разобран отдельно. Его держит материал «Cursor без магии: как собрать первый сервис через задачи, а не одним промптом» (/blog/cursor-pervyy-servis/). Здесь узкая добавка: режьте уже описанную задачу на шаги по одному файлу. Каркас проекта не заменяет границу шага. Без границы агент и на хорошем каркасе уходит в соседние 5 файлов.

text
Правило одного шага
1. Файл: только путь, названный в задаче
2. Запрет: соседние файлы и зависимости не менять
3. Проверка: npm run build
4. Стоп, если код возврата не 0
5. Следующий шаг только после кода 0

Куда девать второй файл и общую правку?

Второй файл — это шаг 2, не абзац внутри шага 1. Между ними живая проверка. Если build на шаге 1 вернул не 0, шаг 2 не начинают: иначе diff смешивает две причины. Откат тогда тоже один, а не развилка из 2 правок. На практике это снижает размер diff с десятков файлов до 1.

Общую формулировку «приведи проект в порядок» не отправляют агенту. Её режут на список шагов по 1 файлу ещё до открытия чата. Список из 6 шагов лучше одного абзаца на 600 слов. Каждый шаг ссылается на свою команду: где-то build, где-то тест одного модуля, где-то проверка типов. Команду пишут целиком, без «ну ты понял».

Если шагов 6 и каждый выход модели около 1500 токенов, GPT-4o берёт примерно 0,09 доллара за выходы плюс вход. Один нерезанный прогон на 9000 токенов выхода стоит те же 0,09 доллара, но откатывать его тяжелее. Режут не ради копеек ставки 10 долларов, а ради diff в 1 файл.

Какую модель ставить на короткий шаг, а какую на длинный файл?

На шаг внутри 128k подходит GPT-4o: 2,5 / 10 долларов за 1 млн токенов, прокси, оплата Apple In-App Purchase или зарубежная карта. Прямого входа у OpenAI из России нет. Если файл и соседний контекст больше 128k, но не больше 200k, смотрят Claude 3.7 Sonnet: 3 / 15 долларов, окно 200k, тоже через прокси. Hybrid thinking на шаге включают только когда проверка ловит ошибку дороже лишнего выхода по 15 долларов.

DeepSeek R1 берут на шаг, который помещается в 64k: цена 0,55 / 2,19 доллара за 1 млн токенов, доступ без VPN, напрямую. Оплату Apple на R1 не переносят. Способ входа Gemini 2.5 Flash при окне 1M и цене 0,075 / 0,3 доллара не подан, поэтому «поставь Gemini, раз файл большой» из этой матрицы не следует. Повторяемую формулировку шага удобно сверять со статьёй «Регламент вместо вдохновения: как писать промпты для повторяемого результата» (/blog/prompty-dlya-povtoryaemogo-rezultata/).

Чем шаг агента отличается от сценария, который уже крутится сам?

Шаг в Cursor заканчивается вашей проверкой команды. Сценарий, который гоняет цепочку без вас, — другая работа. Её каркас описан в материале «n8n + AI: конвейер агентов для лидов, документов и CRM» (/blog/n8n-ai-konveyer-agentov/). Не смешивайте их в одном запуске: агент в репозитории и конвейер заявок ломаются по разным причинам. Здесь критерий приёмки один — код возврата команды на одном файле.

Рядом на сайте лежат разделы «модели» (/models/), «промпты» (/prompts/) и «гайды» (/guides/). Правило шага можно положить в файл проекта и ссылаться на него из каждого задания: 1 файл, 1 команда, стоп при коде не 0. Этого достаточно, чтобы агент не переписал лишнее на ближайших 5–10 шагах. Дальше тот же шаблон повторяют, не расширяя шаг «заодно».

Какие вопросы возникают на первом разрезанном шаге?

Можно ли отдать агенту два файла, если они связаны? В одном шаге — нет. Связанные файлы идут как шаг 1 и шаг 2. Между ними команда, например npm run build, должна вернуть 0. Иначе diff смешивает причины, и откат уже не умещается в 1 файл.

Какую цену закладывать, если в Cursor выбран GPT-4o? 2,5 доллара за 1 млн токенов входа и 10 долларов за 1 млн выхода, окно 128k. Доступ из России через прокси, оплата Apple In-App Purchase или зарубежная карта. 3000 лишних токенов выхода — это 0,03 доллара плюс время на чужой diff.

Что считается готовностью шага? Код возврата 0 у названной команды, а не сообщение модели. Пока build или тест модуля красный, следующий файл не открывают. На пачке из 6 шагов это 6 отдельных проверок.

Итог

Агент Cursor не переписывает лишнее, если шаг содержит 1 файл, явный запрет и команду с кодом возврата 0. Второй файл — это следующий шаг после проверки. GPT-4o на таком шаге считают по 2,5 / 10 при окне 128k и доступе через прокси. Модель с другим окном подставляют только когда 128k не хватает, и способ входа берут из канона, а не из привычки. Автор материала — Евгений Вязников.

Евгений Вязников

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

Читать в Telegram →