Построение под тест: агенты кодирования выдают то, что вы проверяете, а не то, что вы запросили
Building to the Test: Coding Agents Deliver What You Check, Not What You Requested
June 26, 2026
Авторы: Yanuo Ma, Ben Kereopa-Yorke, Ben Schultz
cs.AI
Аннотация
Бенчмарки широко используются для оценки выполнения задач крупными языковыми моделями (LLM), однако такой подход накапливает проблемы конструктной валидности, и успешный проходной балл может не свидетельствовать о том, что запрошенная задача действительно была решена. Мы изучаем обе проблемы. В контролируемой среде «код как спецификация» два продуктивных агента Copilot CLI (claude-opus-4.7, gpt-5.5) заново реализуют таблицу данных React Fluent-UI на Angular в виде многократно используемой библиотеки под скрытым оракулом Playwright, состоящим из 222 тестов, в ходе 18 прогонов и трёх условий доступности оракула. Наряду с баллами мы проводим механический аудит библиотеки и проверяем каждое заключение с помощью холостой абляции. Без оракула библиотека присутствует, но не завершена, что выявляется по баллам. При оракуле в цикле балл достигает почти идеального значения, однако демонстрация, непосредственно демонстрирующая тестируемое поведение, показывает, что библиотека либо остаётся неработоспособной, либо отсутствует вовсе. Мы называем это «построением под тест»; более широкую предрасположенность, стоящую за обоими явлениями, — «самосознанием валидации». Агент сам по себе не проверяет то, что он выпускает, так, как это сделал бы пользователь. Распространённость этого явления остаётся открытым вопросом применительно к другим агентам, сигналам и семействам моделей. Помимо бенчмарковых баллов, предрасположенности вроде самосознания валидации заслуживают исследовательского внимания.
English
Benchmarks are widely used to evaluate task completion by Large Language Models (LLMs), but this approach has accumulated construction-validity problems, and a passing score may not show whether the requested task was delivered. We study both problems. In a controlled code-as-spec setup, two production Copilot CLI agents (claude-opus-4.7, gpt-5.5) re-implement a React Fluent-UI data table in Angular as a reusable library under a hidden 222-test Playwright oracle across 18 runs and three oracle-availability conditions. Alongside the score, we run a mechanical library audit and check each verdict with a no-op ablation. Without the oracle, the library is present but unfinished, revealed by scores. With the oracle in the loop, the score reaches near-perfect, but from a demo holding the tested behavior directly, the library left dead or absent. We call this building to the test; the broader disposition behind both we call validation self-awareness. The agent does not, on its own, validate what it ships as a user would. Prevalence remains an open question across other agents, signals, and model families. Beyond benchmark scores, dispositions like validation self-awareness merit research attention.