Нейросеть написала код уверенно и неправильно: как проверить результат, если ты не программист в 2026
Код от нейросети запускается, работает в 60 раз быстрее и проходит тесты, а по смыслу считает обратное. Разбираем на отчёте OpenAI с академическими партнёрами, как проверить результат агента, если ты не умеешь читать код: дифференциальная проверка, эталонные примеры, независимый приёмщик.
15 мин чтения
Короткий ответ: проверяй поведение программы на примерах, где правильный ответ известен заранее. Код читать для этого не обязательно. Возьми старую версию или посчитай нужное вручную, прогони через новый код те же данные и сравни результаты. Расхождение покажет ошибку, которую агент сам не признает, потому что для него работа выглядит сделанной.
Дальше разберём это на свежих цифрах. В августе 2026 OpenAI вместе с академическими партнёрами выпустила отчёт о том, как кодинг-агенты переписывали заброшенный научный софт. Ускорение доходило до 60 раз. И там же нашли ошибки, из-за которых программа считала обратное тому, что нужно, при внешне нормальных цифрах. Ровно та ситуация, в которую попадает новичок с Claude Code: результат выглядит убедительно и по сути неверен.
Кодинг-агенты хорошо переписывают код и плохо судят о смысле того, что переписали. В отчёте OpenAI за август 2026 агенты дали ускорение до 60 раз и совпадение вывода 99,8 процента, но в одном проекте перевернули ключевой управляющий параметр, и результаты остались правдоподобными на вид. Работает одна схема: цель и способ проверки задаёт человек, реализацию пишет агент, судить о своей работе агент не должен. Три приёма без чтения кода: сравнение со старой версией, примеры с заранее известным ответом, независимый приёмщик.
Коротко: пять терминов одной строкой
- Дифференциальная проверка - прогнать одни и те же данные через старую и новую версию, сравнить вывод построчно.
- Эталонный набор (golden dataset) - примеры, где правильный ответ известен заранее и с ним можно сверяться.
- Калибровочный тест - проверка на данных, которые ты сгенерировал сам с известными параметрами, чтобы увидеть, восстанавливает ли программа эти параметры.
- Тестовый стенд - отдельная проверялка, которую пишет человек или другая сессия, и автор кода к ней не прикасается.
- Управляющий параметр - число или флаг, задающий поведение расчёта. Перевёрнутый параметр даёт обратный по смыслу результат при нормальных на вид цифрах.
Что показал отчёт OpenAI про кодинг-агентов и научный софт
Отчёт вышел 1 августа 2026 и описывает восемь кейсов, в основном из биологии. Задача во всех была одна: взять старый научный код, который уже почти никто не поддерживает, и переписать его на современный язык. Работали Codex и Claude Code на моделях GPT-5.5, GPT-5.2 и Claude Opus 5.
По скорости результат сильный. Проект RustQC объединил 15 инструментов контроля качества данных и сократил расчёт с 15 часов 34 минут до 14 минут 54 секунд, это ускорение примерно в 60 раз. Генератор синтетических геномных данных HelixForge стал быстрее в 59,6 раза целиком и в 98,6 раза на главном расчётном шаге. Библиотеку bayesm переписали на Rust с выигрышем от 2 до 20 раз в зависимости от метода. Более скромные цифры тоже есть: сборщик геномов hifiasm ускорился примерно на 15 процентов, библиотека HI.SIM примерно на 31 процент.
Масштаб работы тоже показательный. Геномный картировщик STAR переписали с более чем 20 000 строк на C и C++ в новую версию на Rust под названием rustar-aligner. Иммунологическую модель MHCflurry, примерно 10 000 строк, перенесли с TensorFlow на PyTorch. Причём попытка перенести MHCflurry провалилась ещё в начале 2025 года. Sergey Feldman объясняет провал моделями того времени, сами инструменты тут ни при чём: новые поколения стали достаточно надёжными, чтобы тянуть основную часть такой работы.
Обрати внимание на разброс: от 15 процентов до 60 раз. Ускорение зависит от того, насколько плохо было написано исходное место. Сила модели тут вторична. Агент хорошо снимает очевидную неэффективность и почти ничего не даёт там, где код уже вылизан.
Почему код от нейросети проходит проверку и всё равно врёт по смыслу
Теперь вторая половина отчёта, которая интереснее первой. Агенты, по формулировке Philip Ewels из проекта RustQC, оказались «красноречивы, убедительны и уверенно ошибаются так, что это легко пропустить».
Самый показательный пример из библиотеки bayesm. В одном методе агент перевернул ключевой управляющий параметр, из-за чего расчёт стал давать обратные величины. В другом месте поправочный коэффициент отмасштабировали неправильно. Результат в обоих случаях выглядел правдоподобно, и обычное сравнение вывода эти ошибки пропускало.
Поймали их только детальным калибровочным тестом на тысячах синтетических наборов данных с заранее известными ответами. Смысл приёма простой: ты сам придумываешь данные, где знаешь правильный ответ, скармливаешь их программе и смотришь, вернёт ли она этот ответ. Вывод сам по себе такую ошибку показать не мог.
С чем агент справился
- Перевод 20 000 строк C++ в Rust
- Ускорение расчёта в 60 раз
- Совпадение вывода 99,8 процента
- Объединение 15 инструментов в один
- Сборка проекта, зависимости, тесты
С чем не справился
- Понять, верна ли методика по сути
- Заметить перевёрнутый параметр
- Оценить точность своей работы
- Отличить правдоподобное от правильного
- Сказать «я тут не уверен»
Ключ к пониманию: агент отлично держит форму и плохо держит смысл. Форма проверяется механически, поэтому агент её вытягивает. Программа собирается, тесты идут, вывод похож на прежний. Смысл механически не проверяется, и здесь агент опирается на то, как результат выглядит. Выглядит правдоподобно, значит готово.
Формула: человек задаёт цель, критерий успеха и способ проверки. Агент пишет реализацию. Судить о качестве своей работы агент не должен никогда.
Это ровно то распределение обязанностей, которое зафиксировано в отчёте: люди определяли цели, критерии успеха и методы проверки, агенты занимались реализацией. Ни в одном из восьми кейсов оценку правильности не отдали модели.
Про механику того, почему агент вообще рапортует «готово» на недоделанной задаче, у нас есть отдельный разбор: «Готово», но не работает. А если хочется понять, почему модель выкручивает вверх измеряемый критерий вместо решения задачи, читай про взлом награды.
Проверка работает только тогда, когда ты понимаешь, что именно просишь агента сделать. Пройди мини-курс «Claude за вечер»: от установки до первых результатов на твоих задачах.
Пройти мини-курс →Как проверить результат агента, если ты не умеешь читать код
Хорошая новость: все три рабочих приёма из отчёта не требуют чтения кода. Они требуют понимания задачи, а его у тебя больше, чем у агента, потому что задачу принёс ты.
Приём 1: сравнение со старой версией
Если ты что-то переделываешь, у тебя есть предыдущий вариант. Прогони одни и те же входные данные через старую и новую версию и сравни результаты. Именно так проверяли rustar-aligner: сравнили обработку 10 000 прочтений и получили совпадение 99,815 процента на одиночных прочтениях и 99,883 процента на парных.
Заметь, что цифра не 100 процентов. Расхождение осталось, его посмотрели глазами и признали допустимым. Это нормальный результат проверки, и он честнее, чем «всё совпало».
Ты переписал программу. Прежняя версия лежит в [путь], новая в [путь]. Задача: доказать, что новая версия ведёт себя как прежняя. 1. Собери набор из 20 разных входов, включая пустой ввод, очень большой ввод и три случая на границе допустимого. 2. Прогони каждый вход через ОБЕ версии. 3. Выведи таблицу: вход, результат старой, результат новой, совпало или нет. 4. Для каждого расхождения объясни причину одной фразой и скажи, ошибка это или улучшение. 5. Покажи команды, которыми ты это запускал, и их полный вывод без сокращений. Не переписывай ни одну из версий. Если прогнать не получилось, напиши «не запускал» и причину.
Приём 2: примеры, где правильный ответ известен заранее
Это тот приём, который поймал перевёрнутый параметр в bayesm. Ты придумываешь входные данные, для которых знаешь правильный ответ сам, без программы, и проверяешь, выдаёт ли она его.
Работает в любой задаче, не только в научной. Считаешь скидку, посчитай три случая на калькуляторе и сверь. Обрабатываешь таблицу, возьми 10 строк, посчитай нужное вручную, сверь. Ищешь дубли в базе, добавь три дубля, которые ты сам туда положил, и проверь, что программа нашла именно их.
Придумывай эталонные примеры ДО того, как агент начнёт писать код. Тогда он не сможет подогнать поведение программы под твою проверку, и ты не поддашься соблазну принять его вариант правильного ответа за свой.
Прежде чем писать код, составь план проверки. Задача: [опиши задачу] Дай мне 10 конкретных примеров вход-выход, по которым я смогу понять, работает программа или нет. Требования к примерам: - правильный ответ я должен уметь получить сам, руками или на калькуляторе - три примера обычных, три на границе, два с некорректным вводом, два с пустотой - по каждому напиши, ЧТО именно он проверяет Выведи таблицей. Код пока не пиши, я сначала проверю сами примеры.
Приём 3: приёмку делает не автор
Philip Ewels на проекте RustQC не позволял моделям судить о точности собственной работы и собрал независимый тестовый стенд. Это самая недооценённая часть схемы.
Открой новую сессию с чистым контекстом и дай ей задачу проверить работу. Формулировка важнее модели. «Проверь эту работу» даёт вежливое одобрение. Работает обратная постановка: «попробуй доказать, что эта работа сделана неправильно».
Перед тобой результат работы другого агента: [что сделано, где лежит]. Твоя задача: доказать, что работа сделана НЕПРАВИЛЬНО. Ты приёмщик, не помощник. Проверь по пунктам: 1. Запусти программу и покажи полный вывод команды. 2. Найди места, где результат выглядит правдоподобно, но может быть неверным по смыслу: перевёрнутые условия, знаки наоборот, деление вместо умножения, коэффициенты не того масштаба. 3. Проверь, что программа делает именно то, что описано в задаче. Похожее по смыслу не считается. 4. Назови три способа, которыми результат может оказаться неверным при всех зелёных проверках. 5. Скажи прямо, что осталось непроверенным и почему. Хвалить работу запрещено. Если дефектов не нашёл, так и напиши одной строкой.
Не проси агента проверить его же работу в той же сессии. У него в контексте лежит собственное решение и понимание, что задача уже закрыта. Свежая сессия видит только код и задачу, поэтому ловит то, что автор пропустил по инерции.
Какой способ проверки что ловит
| Способ | Что ловит | Что пропускает | Время |
|---|---|---|---|
| Запустить и посмотреть | Падения, пустой результат, явную ерунду | Всё, что выглядит правдоподобно | 2 минуты |
| Тесты, которые написал агент | Регрессии в том, что агент сам считает важным | Ошибки в понимании задачи | 5 минут |
| Сравнение со старой версией | Расхождения в поведении после переделки | Ошибки, которые были и в старой версии | 20 минут |
| Примеры с известным ответом | Перевёрнутые параметры, неверный масштаб, ошибки методики | Редкие краевые случаи вне набора | 40 минут |
| Независимый приёмщик | Несоответствие задаче, непроверенные места | То, что не воспроизводится на его данных | 15 минут |
Смотри на две нижние строки таблицы. Именно они закрывают тот класс ошибок, из-за которого в bayesm перевернули параметр, и именно их обычно пропускают, потому что первые три строки дают приятное чувство, что всё проверено.
Сформулируй проверку ≈ 15 мин
- Опиши, что считается успехом, в измеримых словах
- Придумай 5-10 примеров с известным ответом
- Запиши всё это до старта работы агента
Отдай реализацию агенту ≈ 30 мин
- Задачу давай куском, не всё сразу
- Проверку из шага 1 в промпт не вставляй целиком
- Фиксируй рабочие состояния, чтобы было куда откатиться
Прогони свои примеры ≈ 20 мин
- Сверь ответы программы со своими
- Любое расхождение разбери до причины
- Требуй полный вывод команд без сокращений
Позови приёмщика ≈ 15 мин
- Новая сессия, чистый контекст
- Задание: докажи, что работа неверна
- Найденное отдай обратно исполнителю
Красные флаги в ответе агента
Есть формулировки, по которым видно, что проверки не было. Их удобно ловить, не разбираясь в коде.
«Проверил визуально» означает, что программу не запускали. «Логика корректна» тоже означает, что не запускали. «Все тесты проходят» без приложенного вывода команды означает, что вывод показывать нечем.
Отдельно про правки после твоего замечания. Ты говоришь «кажется, тут ошибка», агент моментально соглашается и переписывает место, которое работало. Модель выбирает одобрение вместо правоты. Лечится тем, что ты формулируешь замечание вопросом: «объясни, почему здесь именно такой знак» вместо «здесь неверный знак».
Требуй три вещи в каждом отчёте о готовности: саму команду, её полный вывод без сокращений и явное «не запускал» там, где запуска не было. Одна эта привычка снимает большую часть ложных «готово».
И держи под рукой способ вернуться назад. Когда выясняется, что последние сорок минут агент правил не то место, спасает быстрый откат: про механику мы писали в гайде как откатить изменения Claude Code.
Как запустить всё это из России
Обе главные пары инструментов из отчёта доступны, но с оговорками.
Claude Code входит в подписку Claude Pro за 20 долларов в месяц. Anthropic блокирует российские IP, поэтому понадобится рабочий VPN, причём держать его включённым нужно и при регистрации, и при работе. Codex работает через подписку ChatGPT Plus, тоже 20 долларов в месяц. Что именно умеет Claude Code помимо кода, разобрано в гайде Claude Code для не-программистов.
Оплата картой российского банка не пройдёт ни там, ни там. Варианта два: зарубежная карта или сервис оплаты подписок, который оформит подписку за рубли (реферальная ссылка: тебе тот же прайс, мне небольшой процент).
Если платить в валюте пока не хочется, есть российские агрегаторы с доступом к тем же моделям за рубли: MashaGPT берёт 990 рублей в месяц на тарифе Base и 1990 на Ultra, у BotHub тарифы стартуют от 3 долларов. Для проверки готового кода этого хватает: сравнить вывод и разобрать расхождения можно в обычном чате.
Агрегаторы дают доступ к модели, но не дают агента, который сам ходит по твоим файлам и запускает команды. Для приёмки это скорее плюс: приёмщику достаточно видеть код и задачу. А вот исполнителю нужен полноценный Claude Code или Codex.
Чек-лист: что у тебя теперь есть
- Понимание, где именно ломается агент: форму он держит, смысл нет.
- Три приёма проверки без чтения кода: сравнение со старой версией, эталонные примеры, независимый приёмщик.
- Три готовых промпта: дифференциальная проверка, сбор эталонных примеров, приёмка с заданием «докажи, что неверно».
- Таблица, которая показывает, какой способ какой класс ошибок пропускает.
- Порядок работы на 80 минут: сформулировал проверку, отдал реализацию, прогнал свои примеры, позвал приёмщика.
- Список формулировок, по которым видно, что агент ничего не запускал.
- Понимание, сколько это стоит из России и чем платить.
Главное, что стоит унести из отчёта, сформулировал разработчик Brent Pedersen: идти быстро сейчас довольно легко, а чтобы уйти далеко, всё ещё нужны экспертное руководство, понимание, вкус и аккуратность. Ускорение в 60 раз ничего не значит, если программа считает обратное нужному. Проверка, которую придумал ты сам, и есть та часть работы, которую пока не отдать никому.
По материалам: the-decoder.com, AI coding agents can modernize research software, but can’t judge if the science is right, 1 августа 2026.
Частые вопросы
Как проверить код от нейросети, если я не программист?
Проверяй поведение программы на примерах, где правильный ответ известен заранее. Возьми старую версию программы или посчитай вручную, прогони те же данные через новый код и сравни результаты. Расхождение покажет ошибку без чтения кода. Читать программу построчно для этого не нужно.
Почему код от ИИ проходит тесты, но работает неправильно?
Тесты проверяют, что программа запускается и выдаёт похожий по форме ответ. Смысл расчёта они не проверяют. В отчёте OpenAI за август 2026 у библиотеки bayesm нашли перевёрнутый управляющий параметр: цифры выглядели правдоподобно, обычное сравнение вывода ошибку пропускало. Поймал её только тест на данных с заранее известным ответом.
Что такое дифференциальная проверка кода от нейросети?
Это прогон одних и тех же входных данных через старую и новую версию программы с построчным сравнением результата. Метод не требует чтения кода. В проекте rustar-aligner так сравнили 10 000 прочтений и получили совпадение 99,815 процента, что дало основание доверять переписанной версии.
Можно ли доверить нейросети проверку её собственного кода?
Нет. Philip Ewels, который вёл проект RustQC, никогда не позволял моделям судить о точности своей работы и собрал независимый тестовый стенд. Агенты описаны в отчёте как красноречивые, убедительные и уверенно ошибающиеся так, что это легко пропустить. Приёмку отдавай отдельной сессии или проверяй механически.
Сколько стоит Claude Code и работает ли он из России в 2026?
Подписка Claude Pro стоит 20 долларов в месяц и включает Claude Code. Из России нужен VPN, потому что Anthropic блокирует российские IP. Оплата проходит зарубежной картой или через сервис оплаты подписок. Есть российские агрегаторы: MashaGPT от 990 рублей в месяц, BotHub от 3 долларов.