Перестань копать
Нейронки хорошо умеют многое, но совершенно не умеют остановиться, когда застревают. Представьте: вы просите написать функцию X, но на полпути понимаете, что сначала нужно сделать Y. Обычный человек скажет: "Ага, тогда начнем с Y!" А LLM будет упрямо продолжать долбить изначальную задачу, как дятел по дубу. С одной стороны, это даже хорошо — вы точно знаете, что модель сделает именно то, что вы просили, а не то, что она вообразила, будто вы хотели.
Лучше всего вообще не загонять себя в такой тупик. Популярный подход — сначала попросить reasoning-модель составить план, а потом скормить его кодирующей модели. Этап планирования поможет избежать ситуации, когда кодер пытается делать что-то без нужной подготовки. Еще один плюс: агентские LLM вроде Sonnet сами подгружают файлы в контекст, изучают их и планируют исходя из увиденного. Так модель может сама понять, что надо сделать, без лишних объяснений.
В идеале модель должна понимать, когда что-то пошло не так, и просить о помощи. Но поскольку это "съедает" драгоценный контекст, может быть умнее поставить отдельную модель-сторожа, которая следит за процессом.
Примеры
- Я поменял кое-что в Монте-Карло симуляции, из-за чего поехали случайные числа. Попросил Claude Code пофиксить тесты (некоторые были snapshot-тестами на точную стратегию сэмплинга). Проблема в том, что новая реализация стала недетерминированной — тесты начали "мигать": то проходят, то падают в зависимости от случайности. Claude Code этого не заметил и вместо того чтобы предложить зафиксить random seed, начал ослаблять условия тестов, чтобы "затолкать" их в зеленый статус. Классический случай "продолжать копать" вместо того чтобы остановиться и подумать.