Мои родители и вся моя семья живут в Риге, а большинство наших родственников - в России и Украине. Когда привычные мессенджеры начинают работать с перебоями, хочется иметь простой и независимый способ связи. Самый простой способ из мне известных - WebRTC.

В рамках развития собственного понимания тонкостей парной разработки программ с участием LLM-агентов я решил создать PWA для видеочата на базе WebRTC при помощи Codex-агента.

Считаю, что эксперимент завершился успешно, хотя и не очень хорошо. Я использовал все лимиты Plus-подписки на Codex, но при этом получил работающий прототип.

Я пробовал Codex через веб-интерфейс с июня и не сталкивался ранее с ограничениями на количество или объём запросов. Возможно, всё это время мне давали "первую дозу", а возможно только недавно ввели подсчёт обращений. В общем, теперь есть лимиты на дневные обращения и недельные:

Вежливое предложение потратить ещё денег
Вежливое предложение потратить ещё денег

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

Я уверен, что настоящий вайб-кодер смог бы сделать аналогичное приложение за пару часов или даже за полчаса. Но я не вайб-кодер, а получившееся приложение можно увидеть и попробовать здесь - https://call.wiredgeese.com/

Вход
Вход

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

Три человека в комнате: я, я и ещё раз я.
Три человека в комнате: я, я и ещё раз я.

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

QA и я обсуждаем качество связи
QA и я обсуждаем качество связи

В общем, вайб-кодер сделал бы быстрее, но у меня зато есть документация ко всей этой беде (ссылка на состояние репо на момент "заработало!" и срабатывания стопа по дневному лимиту).

Основное время у меня ушло на создание документов в контексте и установление доверительных отношений с Агентом (не хотел, лишенец, создавать отчёты о проделанной работе). К тому же я настоятельно просил Агента применять на бэке мой собственный контейнер объектов, что вовсе не сокращало время разработки, зато облегчало тестирование бэка.

На фронте я дал Агенту полную свободу и он создал фронт буквально за два-три подхода (но фронт остался без тестов).

По итогу получлось порядка 17К бэкенд-кода, 23К фронтенд-кода и 124К документации в когнитивном контексте проекта. Другими словами, чтобы удерживать разработку в управляемых рамках, документации должно быть в разы или даже на порядки больше, чем самого кода. Просто та информация, которая находится в головах членов команды разработки, традиционно не считается за документацию, хотя и используется командой при кодировании. Вот только Агент не может залезть в голову членам команды, поэтому ему всё нужно описывать в явном виде.

Лично я считаю данный опыт успешным подтверждением возможности использования LLM-агентов для создания приложений, несмотря на то, что они непредсказуемы и всё такое. Да, HomeCall - это не MS Office. Но и не "Hello World!"