Привет, Хабр! Это компания 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 проектов получился таким, для каждого есть демо и каждый можно было попробовать в деле. 

 Онбординг by Денис Головко

Денис создал прототип тулы для онбординга сотрудников в игровой форме. Такая себе игра в «Крокодил» для работы. Нужно отвечать на вопросы, пользуясь подсказками ИИ, до тех пор, пока не запомнишь всё необходимое и все ответы не будут правильными.

Демо: https://drive.google.com/file/d/1xkKWjOAsZx9o4eNjWiEZsvLrNOQ8gm9-/view?usp=sharing
Ссылка: https://crocodile-corporate-quest.replit.app/ 

Общение с ИИ Replit Денису тоже далось нелегко — нервы немного сдавали :) 

Морской бой by Анатолий Разумовский

В рамках хакатона Анатолий разработал два сервиса, хотя на конкурс представил только один — морской бой, с возможностями сетевой игры, игры с AI ботом, чатом между игроками.

Демо: https://youtu.be/YjjgoUw110o
Ссылка: https://task-manager-pro-anatolyrazumovs.replit.app/

«Сначала я создал аналог Copilot для промпт-инженера. Он позволяет создать структурированный промпт из свободной речи. Этот промпт можно использовать для решения поставленной в проекте задачи.Например, можно надиктовать поставленные задачи, зачитать ТЗ, проговорить, кто и что ждёт от продукта и его функционала. На выходе, после обработки этой свободной речи, сервис предоставит готовый промпт.

Если в современной модели пытаться использовать простые промпты, сформулированные в свободной форме, результат будет некачественным и непостоянным. Самому же составлять структурированный промпт — долго.

Готовые помощники для создания промптов не работают с голосовым вводом. К тому же у них зачастую совсем не управляемый результат. И менять правила и условия создания промпта — нельзя.

В моём сервисе можно за пять минут надиктовать задачу, а он её переработает и выдаст готовый структурированный промпт с примером вывода. Даже без корректировок, результат работы сервиса получается качественным и постоянным.

Но на конкурс я решил подать другой проект, так как он глубже раскрывает возможности агента. Я выбрал реализовать «Морской бой», потому что эта игра сложнее «крестиков-ноликов» и лучше подходит в качестве демо. У «Морского боя» более сложный игровой процесс и правила. Например, у игроков изначально НЕ пустое поле — корабли расставлены по определённым правилам, они различаются по длине, их разное количество. Да и схема перехода хода в этой игре нетривиальная — только при промахе. А ещё по сети должны передаваться состояния поля каждого из игроков, а также координаты выстрелов и статусы противников. 

Изначально у меня была идея сделать игру мультиплеерной. Мне было интересно посмотреть, на что способен Replit. В YouTube можно найти много демо, в которых люди делают в сервисе красивые игры с картинками и анимацией. Но, как правило, в этих играх счёт — бесконечен, а задача — набрать как можно больше очков до поражения. Это самый простой тип, где в случайном порядке повторяются одинаковые действия без дополнительных условий. 

Я не нашёл созданных с помощью Replit сетевых игр, в которых можно выигрывать и проигрывать, исходя из сложных правил. Поэтому решил проверить сетевые возможности сервиса. Хотелось показать, что даже без написания можно создать действительно сложный продукт с интересной логикой работы».

Анатолий Разумовский, AI Project Manager & QA Lead 

AI Comics by Сергей Шахназаров

Сергей сделал генератор комиксов по мотивам биографий известных людей.

Демо: https://gifyu.com/image/SATb9

«Я хотел реализовать проект полностью через новый сервис Replit AI Agent. Штука очень интересная и довольно впечатляющая — получилось сделать прототип примерно за час обсуждений с агентом. При этом круто, что сервис также полностью автоматически может задеплоить итоговое решение.

Дальше, как это обычно бывает с AI, инструмент начинает упираться в размер памяти/контекста. То есть в новой итерации часто ломается предыдущий код, агент может «забывать» про первоначальные цели. По итогу агент вообще сломался и попросил обратиться в техподдержку — на этом наше общение завершилось. 

Мой вердикт — инструментом можно пользоваться для быстрой проверки идей, но не более того. Надеюсь, в будущем сервис усовершенствуют для более серьезных задач».

Сергей Шахназаров, тимлид

Programming Easter Eggs Generator by Кухарев Кирилл

Кирилл сделал приложение, приуроченное к Дню программиста. В нём можно создавать забавные пасхальные яйца — «Пасхалки» — с помощью OpenAI. С помощью приложения можно сгенерировать шутку, факт, проверить свои навыки в одном из языков программирования, найти баг, рассмотреть временную сложность алгоритмов и сохранить понравившуюся «Пасхалку».

Демо: https://drive.google.com/file/d/1iSwWYG2wjDzbwGgmUxtt5OYuudLsSc7o/view?usp=sharing

Сайт проверки скорости реакции пользователя by Егор Королев

Пользователю нужно ввести своё имя и нажать на кнопку после сигнала. Это позволяет узнать, насколько быстрая у него реакция.

Демо: https://kappa.lol/zxra2

Car Dodging by Иван Власов

Иван создал 3D игру, в которой необходимо объезжать встречный поток машин.

Демо: https://disk.yandex.ru/i/tW1C9WY2GFFapQ
Ссылка: https://car-dodge-challenge-ivanvlasov10.replit.app

«Я сразу решил написать игру. Идей была масса, и в Replit есть возможность создать сразу много проектов (replов), поэтому я открыл 5-6 вкладок и начал писать идеи туда. Те, где результат показался более-менее годным, начал развивать. Промпты писал на русском и делал это «по-фану». 

Ожидание было таким:

А реальность такой:

Изначальный промпт был небольшим:

Если резюмировать, то Replit Agent — тупенький. В нём есть возможность делать роллбек на предыдущую версию, только это и спасало. Просишь его исправить баг — он ломает всё, но баг так и остаётся нетронутым.

Я думаю, что это прикольный инструмент для пет-проектов либо начального прототипа идей. Но цена сервиса не соответствует его качеству».

Власов Иван, Backend-разработчик

Chat Communication Assistant by Иван Шаламов

Иван разработал ассистент для поддержки общения в чате с различными ИИ-агентами — он исправляет ошибки и меняет стиль сообщения на формальный и неформальный.

Демо: https://disk.yandex.ru/i/H-jCA0TVLdxONQ

«Изначально я пытался делать приложение для транскрибацию аудио, чтоб помочь себе в работе. До какого-то результата даже удалось дойти, но потом приложение начало резко деградировать.

Затем у меня появилась идея реализовать забавную историю с Лурка — древний копипаст из 90-х, где пользователь форума просил сделать игру, где он «будет ходить лесным эльфом и грабить кОРОВаны» (цитата) 

Я решил попробовать, что будет если этот копипаст в незименённом виде отправить в агент и сделать игру на основе этого запроса. Агент игру сделал, но она получилась примитивной и неинтересной. Тогда я скопировал этот же запрос в Chat GPT и попросил составить нормальное ТЗ. Когда отдал агенту это ТЗ, он начал делать реально интересную игру с прикольными игровыми механиками.

На протяжении полутора недель я понемногу возвращался к ней, фиксил баги. Но оказалось, что как только ты добиваешься от Replit какого-то результата, решение начинает крашиться и приходится тратить 15-20 запросов только на то, чтоб откатить его в рабочее состояние. Затем ты снова дорабатываешь и снова всё ломается.

Спустя неделю мучений получилась хорошая игра, но с ужасной графикой. Мне захотелось реализовать пиксельную графику и за пару дней до сдачи работ я начал это делать и в результате агент полностью сломал игру. Откатиться было нельзя и меня очень это взбесило, так как времени я потратил много. В итоге реализовал другую идею — ассистента, который пишет формальную и неформальную версию текста для русского языка, а для английского ещё и исправляет ошибки. Эта штука получилась быстро и легко — за 5-6 запросов.

Мой вывод: для простых двухфазных задач Replit подходит, но он не прорывной и не крутой. Если инструмент будут дальше развивать, то может когда-нибудь из этого что-то и получится, но пока — нет».

Иван Шаламов, продакт-менеджер

Couple Connect by Светлана Константинова

Светлана создала с помощью 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 (инженер по тестированию)

RaftPets by Данил Капустин

Данил создал с помощью агента форум для обмена фотографиями домашних животных сотрудников Raft с возможностью голосования за самых интересных питомцев.

Демо: https://drive.google.com/file/d/1dw-nNKEFXpTaH0TbGpxIPEynpLqCP1d6/view?usp=sharing
Ссылка: https://raftpets.replit.app/

⚡AI-Powered ⚡Social Media Data Analysis Tool by Четвериков Иван

Иван реализовал с помощью Replit приложение для анализа постов в социальных сетях (VK, Telegram) с возможностью формирования отчетов о постах и их эффективности.

Демо: https://drive.google.com/file/d/1_Pluwxprgdeof4cL4uaSJtHhTiLuVH39/view?usp=sharing
Ссылка: https://social-insights.replit.app

«Хотя мне и удалось сделать сервис с помощью агента, впечатления скорее негативные. Сервис Replit достаточно сырой, в нём почти нет выбора технологий для разработки, периодически «думалка» агента зависает и он перестаёт генерировать код. А если его в этот момент остановить, он может откатить свою память на пару шагов назад. Половину информации из промптов пропускает «мимо ушей».

Из плюсов — может сделать что-то несложное, умеет хостить приложение за пару кликов.

Для реального коммерческого применения штука сомнительная со всех сторон, возможно, иногда инструмент может быть полезен для пресейла в духе «мы тут прикинули как оно может работать», но не более того».

 Четвериков Иван, AI Architect

Early-Cryptos by Арсений Пименов

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

Демо: 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 за помощь в подготовке материала. 

 

Комментарии (1)


  1. moonroach
    03.10.2024 09:39

    Получилось очень весело, не смотря на большо количество ошибок. А еще классная идея как можно быстро провеодить хакатоны даже удаленно