Привет, Хабр! Это компания Raft и я — руководитель AI продуктов Евгений Кокуйкин. А на фото выше — троица из нашей команды — техлид Саша Константинов, AI Project Manager & QA Lead Толя Разумовский и Data scientist Арсений Пименов на конференции Олега Бунина AIConf. Недавно в сети появился Replit Agent с многообещающими заявлениями. Мол, этот инструмент пишет код лучше программистов и скоро их заменит. Хотя в Raft мы и пишем код по старинке — вручную, но следим за технологиями и стремимся использовать новшества там, где это может быть полезно. Решили испытать Replit Agent в деле и даже устроили внутри команды мини-хакатон. Делимся впечатлениями.
Двадцать человек из рабочего чата радостно откликнулись на идею и начали пробовать, что же им нагенерирует Replit Agent.
Сначала нужно было купить подписку — удовольствие попробовать инструмент в деле стоит 25 долларов в месяц. Платить, естественно, нужно с иностранной карты.
Первые приколы начались сразу же. Например, у нашего уважаемого CTO Саши Константинова агент не взлетел и из-за этого Саша выпал из гонки на самом старте. У всех участников клиент тоже многократно ломался в процессе и откатиться назад к моменту, когда всё работает, было настоящей проблемой.
Выяснилось, что написать элементарную игру вроде «крестиков-ноликов» ещё реально, но вот что-то посерьёзнее — проблема. Создать корпоративное приложение с помощью Replit Agent оказалось попросту невозможным.
Расскажем подробнее.
Так как испробовать агент мы решили из любопытства, то, чтобы было интереснее, ввели соревновательный момент. Решили использовать формат хакатона и в конце отведённых двух недель выбрать лучшие проекты и вручить за них призы.
Оценивали проекты:
По зрелищности. Вау-эффект, участники посмотрели на проект и поразились, что такое способен сделать ИИ сделать за пару вечеров: это красочно, динамично, интересно, но не обязательно технически сложно.
По степени проработки. Вдруг участники решат сделать собственный Slack или Jira-киллер и ударятся в хардкор. Если они смогут быстро добиться такого на новом ИИ агенте, то хоть простые зрители не оценят, зато ценители поймут. Есть шанс получить приз зрительских симпатий :)
Подводить итог решили в общей таблице с ФИО участника, ссылкой на приложение (приложение можно было опубликовать тоже через Replit), коротким демо на 1 минуту. В общем чате компании попросили поставить лайки. Кто наберёт больше, тот молодец и победил.
Понятно, что это не большой серьёзный хакатон, но так у энтузиастов появилось больше мотивации попробовать сделать на Replit что-то действительно необычное. А значит у нас получилось бы больше занятных кейсов применения нового инструмента.
Сразу скажем: до финала дошли 11 проектов. С помощью голосования предлагалось выбрать 3 проекта, которые больше всего понравились. Первый проект получал 3 балла, второй - 2, третий - 1. Проект, набравший наибольшее число баллов — побеждал.
Список всех 11 проектов получился таким, для каждого есть демо и каждый можно было попробовать в деле.
Денис создал прототип тулы для онбординга сотрудников в игровой форме. Такая себе игра в «Крокодил» для работы. Нужно отвечать на вопросы, пользуясь подсказками ИИ, до тех пор, пока не запомнишь всё необходимое и все ответы не будут правильными.
Демо: https://drive.google.com/file/d/1xkKWjOAsZx9o4eNjWiEZsvLrNOQ8gm9-/view?usp=sharing
Ссылка: https://crocodile-corporate-quest.replit.app/
Общение с ИИ Replit Денису тоже далось нелегко — нервы немного сдавали :)
В рамках хакатона Анатолий разработал два сервиса, хотя на конкурс представил только один — морской бой, с возможностями сетевой игры, игры с AI ботом, чатом между игроками.
Демо: https://youtu.be/YjjgoUw110o
Ссылка: https://task-manager-pro-anatolyrazumovs.replit.app/
«Сначала я создал аналог Copilot для промпт-инженера. Он позволяет создать структурированный промпт из свободной речи. Этот промпт можно использовать для решения поставленной в проекте задачи.Например, можно надиктовать поставленные задачи, зачитать ТЗ, проговорить, кто и что ждёт от продукта и его функционала. На выходе, после обработки этой свободной речи, сервис предоставит готовый промпт.
Если в современной модели пытаться использовать простые промпты, сформулированные в свободной форме, результат будет некачественным и непостоянным. Самому же составлять структурированный промпт — долго.
Готовые помощники для создания промптов не работают с голосовым вводом. К тому же у них зачастую совсем не управляемый результат. И менять правила и условия создания промпта — нельзя.
В моём сервисе можно за пять минут надиктовать задачу, а он её переработает и выдаст готовый структурированный промпт с примером вывода. Даже без корректировок, результат работы сервиса получается качественным и постоянным.
Но на конкурс я решил подать другой проект, так как он глубже раскрывает возможности агента. Я выбрал реализовать «Морской бой», потому что эта игра сложнее «крестиков-ноликов» и лучше подходит в качестве демо. У «Морского боя» более сложный игровой процесс и правила. Например, у игроков изначально НЕ пустое поле — корабли расставлены по определённым правилам, они различаются по длине, их разное количество. Да и схема перехода хода в этой игре нетривиальная — только при промахе. А ещё по сети должны передаваться состояния поля каждого из игроков, а также координаты выстрелов и статусы противников.
Изначально у меня была идея сделать игру мультиплеерной. Мне было интересно посмотреть, на что способен Replit. В YouTube можно найти много демо, в которых люди делают в сервисе красивые игры с картинками и анимацией. Но, как правило, в этих играх счёт — бесконечен, а задача — набрать как можно больше очков до поражения. Это самый простой тип, где в случайном порядке повторяются одинаковые действия без дополнительных условий.
Я не нашёл созданных с помощью Replit сетевых игр, в которых можно выигрывать и проигрывать, исходя из сложных правил. Поэтому решил проверить сетевые возможности сервиса. Хотелось показать, что даже без написания можно создать действительно сложный продукт с интересной логикой работы».
Анатолий Разумовский, AI Project Manager & QA Lead
Сергей сделал генератор комиксов по мотивам биографий известных людей.
Демо: https://gifyu.com/image/SATb9
«Я хотел реализовать проект полностью через новый сервис Replit AI Agent. Штука очень интересная и довольно впечатляющая — получилось сделать прототип примерно за час обсуждений с агентом. При этом круто, что сервис также полностью автоматически может задеплоить итоговое решение.
Дальше, как это обычно бывает с AI, инструмент начинает упираться в размер памяти/контекста. То есть в новой итерации часто ломается предыдущий код, агент может «забывать» про первоначальные цели. По итогу агент вообще сломался и попросил обратиться в техподдержку — на этом наше общение завершилось.
Мой вердикт — инструментом можно пользоваться для быстрой проверки идей, но не более того. Надеюсь, в будущем сервис усовершенствуют для более серьезных задач».
Сергей Шахназаров, тимлид
Кирилл сделал приложение, приуроченное к Дню программиста. В нём можно создавать забавные пасхальные яйца — «Пасхалки» — с помощью OpenAI. С помощью приложения можно сгенерировать шутку, факт, проверить свои навыки в одном из языков программирования, найти баг, рассмотреть временную сложность алгоритмов и сохранить понравившуюся «Пасхалку».
Демо: https://drive.google.com/file/d/1iSwWYG2wjDzbwGgmUxtt5OYuudLsSc7o/view?usp=sharing
Пользователю нужно ввести своё имя и нажать на кнопку после сигнала. Это позволяет узнать, насколько быстрая у него реакция.
Демо: https://kappa.lol/zxra2
Иван создал 3D игру, в которой необходимо объезжать встречный поток машин.
Демо: https://disk.yandex.ru/i/tW1C9WY2GFFapQ
Ссылка: https://car-dodge-challenge-ivanvlasov10.replit.app
«Я сразу решил написать игру. Идей была масса, и в Replit есть возможность создать сразу много проектов (replов), поэтому я открыл 5-6 вкладок и начал писать идеи туда. Те, где результат показался более-менее годным, начал развивать. Промпты писал на русском и делал это «по-фану».
Ожидание было таким:
А реальность такой:
Изначальный промпт был небольшим:
Если резюмировать, то Replit Agent — тупенький. В нём есть возможность делать роллбек на предыдущую версию, только это и спасало. Просишь его исправить баг — он ломает всё, но баг так и остаётся нетронутым.
Я думаю, что это прикольный инструмент для пет-проектов либо начального прототипа идей. Но цена сервиса не соответствует его качеству».
Власов Иван, Backend-разработчик
Иван разработал ассистент для поддержки общения в чате с различными ИИ-агентами — он исправляет ошибки и меняет стиль сообщения на формальный и неформальный.
Демо: https://disk.yandex.ru/i/H-jCA0TVLdxONQ
«Изначально я пытался делать приложение для транскрибацию аудио, чтоб помочь себе в работе. До какого-то результата даже удалось дойти, но потом приложение начало резко деградировать.
Затем у меня появилась идея реализовать забавную историю с Лурка — древний копипаст из 90-х, где пользователь форума просил сделать игру, где он «будет ходить лесным эльфом и грабить кОРОВаны» (цитата)
Я решил попробовать, что будет если этот копипаст в незименённом виде отправить в агент и сделать игру на основе этого запроса. Агент игру сделал, но она получилась примитивной и неинтересной. Тогда я скопировал этот же запрос в Chat GPT и попросил составить нормальное ТЗ. Когда отдал агенту это ТЗ, он начал делать реально интересную игру с прикольными игровыми механиками.
На протяжении полутора недель я понемногу возвращался к ней, фиксил баги. Но оказалось, что как только ты добиваешься от Replit какого-то результата, решение начинает крашиться и приходится тратить 15-20 запросов только на то, чтоб откатить его в рабочее состояние. Затем ты снова дорабатываешь и снова всё ломается.
Спустя неделю мучений получилась хорошая игра, но с ужасной графикой. Мне захотелось реализовать пиксельную графику и за пару дней до сдачи работ я начал это делать и в результате агент полностью сломал игру. Откатиться было нельзя и меня очень это взбесило, так как времени я потратил много. В итоге реализовал другую идею — ассистента, который пишет формальную и неформальную версию текста для русского языка, а для английского ещё и исправляет ошибки. Эта штука получилась быстро и легко — за 5-6 запросов.
Мой вывод: для простых двухфазных задач Replit подходит, но он не прорывной и не крутой. Если инструмент будут дальше развивать, то может когда-нибудь из этого что-то и получится, но пока — нет».
Иван Шаламов, продакт-менеджер
Светлана создала с помощью Replit приложение для пар, которое поддерживает совместные цели и задачи, позволяет синхронизировать календари и списки дел.
Демо: https://drive.google.com/drive/folders/1cz0sreO5Q9h6C1LmQzeLfweTXrH3VqUn?usp=sharing
Ссылка: https://couple-connect-2-svetlanakonstan.replit.app/
«Я не умею в кодинг, но решила поэкспериментировать. Мой проект называется Couple Connect. Это приложение для влюбленных, направленное на общение двоих с собственными воркспейсами.
Накидала подробный mindmap на английском, затем обработала с GPT в подробное ТЗ.
«Ну всё, поехали! Сейчас выйдет бомба-пушка с таким ТЗ!»— подумала я и скопировала свои ожидания в окно запроса Replit.
Сначала бот предложил мне несколько фич, которые можно добавить, выдернув из контекста описания. Наконец, я получила первый прототип. Пушка-бомба не случилась. Вместо этого был скучный скудный и формочный интерфейс с предложением регистрации.
И тут начались чудеса, — регистрация не работает, ошибка 500. И эта ошибка сопровождала все мои попытки и итерации в мольбах исправить еще и Build error.
Просьба добавить что-либо в интерфейс или передвинуть по странице (e.g. Хэдер встал посередине страницы — надо исправить) заканчивалась поломкой всего, что было уже сделано и исправно работало. Если ошибку долго не получалось исключить/починить, то приложение деградировало и зацикливалось, что приводило к полной поломке.
Если долго просить исправить ошибку (просьба/приказ на английском, русском или просто копирование ошибки), то Replit и вовсе обижается ограничивает доступ на несколько часов.
В некоторых сообщениях прослеживался почерк не бота, а человека, который просил искать по файлам строчки кода и писать, находится ли та или иная строчка на нужном месте.
Данное приложение я сделала в нескольких версиях. Самую удачную удалось задеплоить.
Ожидание и реальность не сошлись. От начальной идеи не отказалась, но пришлось сильно упростить и побиться над функциональностью оставшегося.
Плюсы: строит прототип приложения с некоторым функционалом; легко делает примитивные «игрушки» телефончиков из 2000х.
Минусы: плохо строит логические связи, примитивный интерфейс с грубыми ошибками, не может в сложный функционал, плохо исправляет ошибки, даже отправленные с id и описанием».
Светлана Константинова, QA (инженер по тестированию)
Данил создал с помощью агента форум для обмена фотографиями домашних животных сотрудников Raft с возможностью голосования за самых интересных питомцев.
Демо: https://drive.google.com/file/d/1dw-nNKEFXpTaH0TbGpxIPEynpLqCP1d6/view?usp=sharing
Ссылка: https://raftpets.replit.app/
Иван реализовал с помощью Replit приложение для анализа постов в социальных сетях (VK, Telegram) с возможностью формирования отчетов о постах и их эффективности.
Демо: https://drive.google.com/file/d/1_Pluwxprgdeof4cL4uaSJtHhTiLuVH39/view?usp=sharing
Ссылка: https://social-insights.replit.app
«Хотя мне и удалось сделать сервис с помощью агента, впечатления скорее негативные. Сервис Replit достаточно сырой, в нём почти нет выбора технологий для разработки, периодически «думалка» агента зависает и он перестаёт генерировать код. А если его в этот момент остановить, он может откатить свою память на пару шагов назад. Половину информации из промптов пропускает «мимо ушей».
Из плюсов — может сделать что-то несложное, умеет хостить приложение за пару кликов.
Для реального коммерческого применения штука сомнительная со всех сторон, возможно, иногда инструмент может быть полезен для пресейла в духе «мы тут прикинули как оно может работать», но не более того».
Четвериков Иван, AI Architect
Арсений создал веб-сайт для мониторинга криптовалютных активов. Приложение отображает топ выросших за сутки монет и предоставляет информацию для поиска новых проектов с потенциалом роста.
Демо: https://disk.yandex.com/i/mnoTUA4u4FtBtg
Ссылка: https://github.com/parseny/CryptoGainerTracker
Тесно пообщавшись с ИИ-агентом Replit, мы всей командой пришли к единому мнению — решение пока неконкурентное и нежизнеспособное. И, конечно, разработчиков заменить не в состоянии. С его помощью можно написать код для простой игры вроде «крестии-нолики», которые я сгенерировал за несколько промптов.
Но на более-менее больших и серьёзных проектах всё бесповоротно ломается. Выбрать технологии или язык – целая проблема.
Да и команды пользователя, и даже собственные предложения Replit реализует через раз — и это в лучшем случае.
В результате оказалось, что от известного GPT4 толку в подобных задачах больше, хотя и он пока заменить программиста не способен.
Replit же скорее тратит нервные клетки разработчиков (и не только), а не облегчает их труд.
Призовые места мы, конечно же, всё равно присвоили. Ведь несмотря на упорство Replit в генерации ошибок и краша всего уже сгенерированного, ребятам удалось довести проекты до финиша и показать их.
В результате голосования победителями стали:
Первое место. Car Dodging by Иван Власов. Он получил сертификат ozon на 30 тыс руб. + билет на YappiDays.
Второе место. Social Media Data Analysis Tool by Четвериков Иван. Он получил сертификат ozon на 10 тыс руб. + билет на YappiDays.
Третье место. AI Comics by Сергей Шахназаров. Он получил сертификат ozon на 5 тыс руб. + билет на YappiDays.
Ещё два проекта «Морской бой by Анатолий Разумовский» и «Couple Connect by Светлана Константинова» мы наградили призом зрительских симпатий — билетами на YappiDays.
Но, на самом деле, мы благодарны всем участникам за участие в этом эксперименте — нам стало понятно, что работа программиста в ближайшее время точно не потеряет актуальности 🙂
Как вам такой эксперимент внутри компании? А вы проводите соревнования, чтобы веселее протестировать новый инструмент всей командой? Или изучаете новые технологии самостоятельно? Поделитесь опытом в комментариях.
P.S. Спасибо Маше Даровской @darovska_online за помощь в подготовке материала.