Мои родители и вся моя семья живут в Риге, а большинство наших родственников - в России и Украине. Когда привычные мессенджеры начинают работать с перебоями, хочется иметь простой и независимый способ связи. Самый простой способ из мне известных - WebRTC.
В рамках развития собственного понимания тонкостей парной разработки программ с участием LLM-агентов я решил создать PWA для видеочата на базе WebRTC при помощи Codex-агента.
Считаю, что эксперимент завершился успешно, хотя и не очень хорошо. Я использовал все лимиты Plus-подписки на Codex, но при этом получил работающий прототип.
Я пробовал Codex через веб-интерфейс с июня и не сталкивался ранее с ограничениями на количество или объём запросов. Возможно, всё это время мне давали "первую дозу", а возможно только недавно ввели подсчёт обращений. В общем, теперь есть лимиты на дневные обращения и недельные:

Тем не менее, я создал свой репо "pwa-home-call" на GitHub'е вечером 1 ноября, а уже вечером 3-го ноября я совершил первый звонок через новое приложение. Последний фрагмент изменений в коде Codex делал уже с предупреждением о приближении к лимитам (чем неожиданно ввёл меня в состояние глубокой философской задумчивости).
Я уверен, что настоящий вайб-кодер смог бы сделать аналогичное приложение за пару часов или даже за полчаса. Но я не вайб-кодер, а получившееся приложение можно увидеть и попробовать здесь - https://call.wiredgeese.com/

На входе нужно представиться и задать код комнаты. После чего все, кто находятся в одной комнате видят друг друга:

Ну а дальше выбираешь, с кем хочешь говорить и связываешься:

В общем, вайб-кодер сделал бы быстрее, но у меня зато есть документация ко всей этой беде (ссылка на состояние репо на момент "заработало!" и срабатывания стопа по дневному лимиту).
Основное время у меня ушло на создание документов в контексте и установление доверительных отношений с Агентом (не хотел, лишенец, создавать отчёты о проделанной работе). К тому же я настоятельно просил Агента применять на бэке мой собственный контейнер объектов, что вовсе не сокращало время разработки, зато облегчало тестирование бэка.
На фронте я дал Агенту полную свободу и он создал фронт буквально за два-три подхода (но фронт остался без тестов).
По итогу получлось порядка 17К бэкенд-кода, 23К фронтенд-кода и 124К документации в когнитивном контексте проекта. Другими словами, чтобы удерживать разработку в управляемых рамках, документации должно быть в разы или даже на порядки больше, чем самого кода. Просто та информация, которая находится в головах членов команды разработки, традиционно не считается за документацию, хотя и используется командой при кодировании. Вот только Агент не может залезть в голову членам команды, поэтому ему всё нужно описывать в явном виде.
Лично я считаю данный опыт успешным подтверждением возможности использования LLM-агентов для создания приложений, несмотря на то, что они непредсказуемы и всё такое. Да, HomeCall - это не MS Office. Но и не "Hello World!"
evgeniy_kudinov
Интересная история.
А ide какую использовали vscode + plugin, Сursor IDE или еще какой то способ?
meeliname
Вроде бы это чатгпт Кодекс, с ним можно и без IDE.
Автору спасибо, хорошая работа!
TheHard
Автор писал про codex - это веб инструмент, который вносит правки напрямую в гитхаб репозиторий и входит в состав основной подписки на чатгпт.
alexmasyukov
Уже давно есть Codex cli
TheHard
И также кодекс есть в курсоре в списке моделей, его можно тянуть по апи куда угодно. Но в статье именно про веб версию.
flancer Автор
Да, коллеги @meeliname и @TheHard правы - с подпиской Plus есть какое-то количество кредитов (раньше меня либо не лимитировали, либо я не доходил до лимитов), которые можно использовать с Кодексом в их облаке через веб-интерфейс. Всё, что нужно для работы с кодом в репозитории на GitHub'е - браузер. Можно даже из мобильного телефона ставить задачу и мониторить результат. Вот отчёт Кодекса о проделанной работе:
А это - этот же отчёт после слияния PR'а.
Так что IDE может быть любой (я перешёл на VSCode с PHPStorm), а можно и вообще без IDE. Я так в режиме эксперимента добавлял с мобильного странички на свой сайт прямо из поезда. Ставишь задачу через браузер Кодексу, мёржишь результат и выкатываешься через GitHub Actions, тоже через браузер. Если всё работает, то и ОК, а если что сломалось - то ты едешь в поезде и у тебя есть только мобильный.