Перейти к содержимому

ИИ2 мин чтения

Как ИИ-агенты написали этот сайт за два дня — с тестами вперёд

Автономные агенты-программисты реализовали onlyapps.org по письменному плану примерно из пятидесяти задач. Что сделало код надёжным: тесты до реализации, один строгий шлюз, независимые ревью и растущий файл ловушек.

Сайт, который вы читаете, — публичные страницы на трёх языках, консоль редакторов, Go API и фоновый воркер — реализовали автономные агенты-программисты примерно за два дня. Не потому, что агенты волшебные, а потому, что мы дали им точный план и беспощадное определение «готово». Рассказываем, как это работало.

Начинайте с решений, а не с кода

До всякого кода мы провели долгое интервью о продукте и превратили его в пакет документов: продуктовые требования, техническое задание с критериями приёмки для каждой функции, модель данных, контракты API, экраны UX, стратегию тестирования и инструкцию по деплою. Важные решения принимали мы, а не агенты: стек, собственный сервер вместо облачных сервисов, три языка в URL, то, что мы сознательно не делаем. В итоге получился план примерно из пятидесяти небольших задач.

Сначала тесты — всегда

Каждая задача шла в одном порядке, который виден в истории коммитов:

  1. test — написать тесты по критериям приёмки и убедиться, что они падают;
  2. feat — написать минимум кода, чтобы они прошли;
  3. refactor — навести порядок, пока тесты остаются зелёными.

С агентами писать тест первым ещё важнее, чем с людьми. Агент очень хорошо умеет писать код, который выглядит законченным; упавший, а затем позеленевший тест — доказательство того, что код действительно делает то, что написано в спецификации.

Один шлюз на всё

Задача считается выполненной, только когда проходит одна команда: линтер, проверка типов, unit-тесты, интеграционные тесты на настоящем PostgreSQL в контейнерах, проверка зависимостей на уязвимости, продакшен-сборка и бюджет JavaScript для самых тяжёлых страниц. Перед деплоем end-to-end-тесты прогоняют настоящий сайт и консоль в браузере и проверяют доступность каждого шаблона страницы. Покрытие Go-кода тестами не должно опускаться ниже 85%; в итоге получилось около 90%.

Примечание

Шлюз одинаков для агентов и людей. Если он красный — работа не сделана, без исключений и без «временно отключённых» тестов.

Ревью чужими глазами

После выполнения задач отдельные агенты-ревьюеры прочитали всё изменение целиком: один искал ошибки и проблемы безопасности, другой проверял соответствие плану. Модель другого вендора провела независимое ревью, и каждое замечание было либо исправлено, либо явно отклонено с объяснением.

Файл ловушек, который постоянно растёт

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

Где по-прежнему нужны люди

  • Продуктовые решения. Что делаем, чего не делаем и какие риски принимаем.
  • Реальный мир. День деплоя выявил то, что не покрывал ни один тест: общий сервер, где другие проекты использовали те же имена сервисов, таймаут прокси, обрывавший большие загрузки, формат пароля, ломавший строку подключения. Мы исправили это вместе, и каждый случай стал тестом или правилом.
  • Что публиковать. Агенты могут подготовить черновик текста, но что появится на сайте, решает команда.

Вывод

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

Хотите сделать продукт таким способом? Напишите нам.

ПоделитьсяXLinkedIn

ONLYAPPS team

Нови-Сад, Сербия · onlyapps.org

Контакты

Аналитические cookie мы используем только с вашего согласия. Необходимые cookie обеспечивают работу сайта. Политика конфиденциальности