Многие слышали про AutoGPT и GPT Engineer — агентные системы, которые позволяют генерировать код по промпту от пользователя. Меня зовут Евгений Кокуйкин. Я руководитель AI продуктов компании Raft. Сегодня расскажу про Replit Agent — AI Copilot для написания кода без знаний в программировании. Без шуток! Раньше у меня на такие прототипы уходили часы кодинга и отладки. А сейчас я сгенерировал код приложения через агент — быстрее, чем писал эту статью. Так что теперь можно участвовать в хакатоне, не зная Python.
Replit — это онлайн-IDE, где с помощью AI можно быстро создать прототип приложения и задеплоить его прямо в облаке. Недавно вышла экспериментальная фича Replit Agent, которая стоит 25 баксов. Правда, для оплаты потребуется зарубежная карта, но это уже каждый сам решает, стоит заморачиваться или нет. Эта фича позволяет начать генерацию проекта одним промптом. Я так вдохновился постом Степана Гершуни, что тестировал кодинг-агента в Replit, а потом не спал всю ночь, записывая впечатления. Так появился этот обзор.
Для теста решил сделать минимальную версию нашего рабочего продукта audioinsights.ru. Мой промпт: «Хочу создать приложение, которое будет брать URL видео с YouTube, расшифровывать его с помощью OpenAI Whisper и позволять задавать вопросы по транскрипции.»
![Задаем описание программы промптом, далее агент предлагет доп фичи, выбираем нужные Задаем описание программы промптом, далее агент предлагет доп фичи, выбираем нужные](https://habrastorage.org/getpro/habr/upload_files/70b/35f/fca/70b35ffcafa89490c7a95cc195fd2ba9.png)
Далее агент предложил добавить фичи: кеширование транскрипций, выгрузка результата в CSV и т.д. Выбрал пару фичей и запустил генерацию. Бэкенд агент написал на Flask, фронтенд — на ванильном JavaScript. Replit запросил ключ от OpenAI. Через пару минут появился скелет веб-приложения с базовыми контролами. Запускаю — не работает.
![Появилась первая версия приложения, но она не качает файл. Агент пошел исправлять и находить ошибку автоматически. Появилась первая версия приложения, но она не качает файл. Агент пошел исправлять и находить ошибку автоматически.](https://habrastorage.org/getpro/habr/upload_files/294/2d8/6f0/2942d86f0fae388859df3d9748b6dc99.png)
И тут началось самое интересное — режим отладки. Агент постоянно спрашивает: «Вы видите такую-то кнопку? Введите адрес YouTube-видео и нажмите на кнопку. Вы получили транскрипцию?». Я естественно все делаю, как он пишет. Но несколько раз при попытке скачать видео возникают ошибки, но когда агент добавил yt_dlp — загрузка прошла успешно.
То есть, на отладку загрузки файла ушло минут 10, а вот скачивание отчета с ответами на вопросы заняло значительно больше времени. Отладка не потребовала знаний программирования. Всё, что было нужно, это отвечать на вопросы агента и ждать, пока он исправит код и передеплоит проект. Агент оказался достаточно умным, чтобы править различные corner cases. Например, вначале я стал тестировать транскрибацию часовых видео. Посыпались ошибки загрузки, а потом работы с OpenAI API, но агент все быстро обработал и в итоговой версии загрузка велась чанками, а работа с GPT шла через саммари на длинных видео. Магия какая-то!
Работа с отладчиком напоминает взаимодействие в команде: менеджер выдает задачу, программист ее берет, отправляет на тестирование, и если не работает — заводят баг, программист исправляет, и так по кругу, пока приемка не завершена. Для тех, кто хочет полного погружения, есть функция голосового ввода — можно даже проводить дейли с агентом. :)
![Транскрипция появилась, агент все ошибки исправил, я протестировал Транскрипция появилась, агент все ошибки исправил, я протестировал](https://habrastorage.org/getpro/habr/upload_files/80b/980/9c2/80b9809c2fe7c8d9c21e259a172d788a.png)
Каждая фича сохраняется в отдельный коммит, и можно переключаться между версиями во время работы над проектом. Как только проект готов, его можно задеплоить, и доступны разные варианты: выделенная VM, автоскейлинг для «богатых», статика, деплой по запросу. Так как мой аккаунт OpenAI не бесконечный, деплой я пока отключил, чтобы избежать эффекта «хабра». Выложил код проекта на github, благо синхронизация с github автоматическая.
![Да, кстати, git можно теперь тоже не учить, все через чат можно сделать, правда историю гита мы знатно попортили :) Да, кстати, git можно теперь тоже не учить, все через чат можно сделать, правда историю гита мы знатно попортили :)](https://habrastorage.org/getpro/habr/upload_files/e74/e9f/15b/e74e9f15ba1e6cde41d0174560acd436.png)
Редактирование кода — это то, чего раньше не хватало scaffolding-тулзам прошлого поколения. В Replit после окончания работы над фичей можно продолжить дорабатывать приложение. Например, я добавил функцию схлопывания панели, и это заняло всего пару минут.
![Финальный вариант приложения: дизайн от Лебедева, динамический UX c прячущейся панелью и кнопка, которая задает вопросы по транскрипции Финальный вариант приложения: дизайн от Лебедева, динамический UX c прячущейся панелью и кнопка, которая задает вопросы по транскрипции](https://habrastorage.org/getpro/habr/upload_files/1bb/f68/9df/1bbf689df248cef445dca416f8f3f8ad.png)
В конце решил смигрировать фронтенд на ReactJS, но агент завис на установке npm-модулей из-за warning'ов при запуске.
![Агент зациклился при миграции приложения на React Агент зациклился при миграции приложения на React](https://habrastorage.org/getpro/habr/upload_files/37c/b2f/84e/37cb2f84eed1a5f101d8ea2a49a2e1d7.png)
![Агент вежливо просит отменить задачу Агент вежливо просит отменить задачу](https://habrastorage.org/getpro/habr/upload_files/5ed/6dd/f55/5ed6ddf55de0e1944ef2d6044d0116de.png)
Не смотря на то, что миграция на React не удалась, процессом разработки через чат-бот удобно управлять. Если не получилось создать фичу, то можно остановить агент или откатиться к прошлой версии и продолжить добавлять фичи через агент с любого момента.
Видно, что Replit сейчас ограничен, он поддерживает несколько стандартных шаблонов кода на Python и сама идея имеет ограниченное покрытие, когда дело касается всего многообразия фреймворков библиотек. Пока помимо интеграции с OpenAI и сервисами Google в инструментарии есть возможность работы с Postgres, хранилищем S3 и варианты SSO. Но в последнем раунде финансирования проект привлек почти 100 миллионов долларов. Так что с учетом высокого интереса к новому агенту, команда конечно же получит поддержку на доработку и интеграцию с популярными библиотеками, облачными сервисами и языками программирование. Это всего лишь вопрос времени. Так что в скором времени мы наверняка сможем писать рабочие микросервисы на Java или микрофронтенды на React.
Итоги
На мой взгляд это лучший способ потратить 25 баксов этой осенью и самый продвинутый кодовый агент.
Агент узко направлен: основной фокус на Flask & Python/Node.js, поддержки фронтенд-фреймворков пока нет.
Если вы разрабатываете AI-приложения, обратите внимание на чатовый интерфейс агента. Трудно поверить, что можно программировать без открытия IDE, используя только смартфон.
В своем канале я недавно написал заметку про функцию миграции легаси-кода в Amazon Q. Несмотря на мощный экономический эффект — 4,5 тысячи человеко-лет, сэкономленных для Amazon, их кодовая модель больше похожа на классический code-to-code транслятор. Replit же, безусловно, агент другого поколения. Он может с нуля решить небольшую прикладную задачу. Поддержка фреймворков в кодовой модели пока ограничена, но это ведь только начало… Так что посмотрим, какие технологии команда добавит в ближайшем квартале.
В заключение хочу поделиться TED talk CEO Amjad Masad рассказывает про первые звоночки агентных систем, когда продукт еще не был создан https://youtu.be/kCudFI4tcpg
Уже совсем скоро 26 и 27 сентября я буду выступать на AiConf 2024 в Москве. У меня будет доклад про обзор уязвимостей моделей https://aiconf.ru/2024/abstracts/12705. Но там будут темы про будущее технологий машинного обучения. Мне кажется, что такие агенты как Replit — это наше будущее. Ведь завтра они могут стать настольным инструментом каждого программиста.