📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Ralph Wiggum is the Final Evolution of Vibe Coding (Here's What Comes Next)

Cole Medin20:46

Transcription

Ральф Вигум. Вот имя, которое я никогда не думал, что произнесу на своем YouTube-канале, но вот мы здесь. Он персонаж из телешоу "Симпсоны", и, по-видимому, теперь лучший в мире инженер-программист, и он повсюду. Вы, вероятно, слышали о Bash Loops, возможности запускать Claude Code часами и часами без перерыва, завершая целые приложения, пока вы спите. Как и создатель Ральфа Вигума здесь, он завершил контракт на 50 000 долларов, используя его менее чем за 300 долларов API-кредитов для своего кодирующего агента. Итак, это просто куча хайпа? Я имею в виду, да, в некотором роде так и есть. И именно это я хочу сегодня с вами обсудить, потому что Ральф Вигум — это действительно финальная эволюция Vibe-кодирования. И я не совсем имею в виду это в хорошем смысле. Теперь есть несколько хороших выводов из Ральфа Вигума как фреймворка и некоторые места, которые действительно выделяются. Итак, мы рассмотрим это, но также углубимся в то, где он полностью разваливается, и в то, какое реальное решение существует для расширения границ возможного с помощью кодирования агентов. Мы углубимся в агентные каркасы. Но для начала давайте разберемся, что, черт возьми, такое Ральф Вигум. Итак, в максимально простых терминах, с Ральфом Вигумом мы берем нашего ИИ-ассистента по кодированию и заставляем его работать в цикле, пока он полностью не завершит все для текущего запроса функции. Итак, у нас есть промпт с нашим запросом функции или приложением, которое мы хотим создать. Мы подаем его нашему кодирующему агенту, такому как Cloud Code. И затем у нас есть хук. Итак, мы обнаружим, когда агент попытается прекратить работу, и мы заставим его продолжить. Буквально, мы возьмем вывод агента и подадим его обратно ему же в качестве входных данных для следующего запуска. И единственный способ выйти из этого цикла — это вывести кодовую фразу безопасности. Что-то вроде: "Эй, я закончил. Я реализовал абсолютно все. Могу ли я, пожалуйста, выйти из цикла?" И тогда, наконец, наш хук позволит ему вернуть управление нам. Итак, возвращаясь к статье, которую я показывал ранее, у них есть простая однострочная фраза для ее объяснения. Мы берем наш промпт, подаем его нашему кодирующему агенту, и мы просто запускаем это в цикле while, по сути, вечно или до тех пор, пока мы не достигнем конца и не получим эту кодовую фразу безопасности, которую мы ищем. И прелесть этого, которую я действительно уважаю, даже несмотря на то, что я считаю, что у Ральфа Вигума много недостатков, заключается в том, что техника детерминированно плоха в недетерминированном мире. И, по сути, это означает, что мы ожидаем, что кодирующий агент не сделает лучшую работу. Но именно поэтому мы позволяем ему итерировать и итерировать и итерировать, пока он, наконец, не достигнет всего, что он поставил себе целью. И это очень характерно для Ральфа Вигума из "Симпсонов". Буквально этот персонаж, воплощение Ральфа Вигума, у него всегда были эти сумасшедшие идеи, которые он очень плохо реализовывал, но он был настолько настойчив, что, я думаю, в конечном итоге он добился бы успеха. И вот что мы делаем здесь, заставляя нашего кодирующего агента принять эту персону. Итак, если вы заинтересованы в том, чтобы попробовать Ральфа Вигума самостоятельно, это плагин, который вы можете установить в Cloud Code буквально менее чем за минуту. Я оставлю ссылку на это в описании, и я расскажу, как мы можем использовать это и как именно это работает немного позже. Но я хочу вернуться к диаграмме здесь и теперь провести параллели между Ральфом Вигумом и сутью Vibe-кодирования. Я думаю, вы очень быстро увидите здесь, почему я говорю, что Ральф Вигум — это воплощение Vibe-кодирования. Итак, когда Vibe-кодирование было придумано в начале прошлого года, в оригинальном твите Андрея Карпатого было использовано несколько фраз. По сути, мы полностью отдаемся вайбам нашего кодирующего агента. Мы принимаем экспоненты. Мы забываем, что код вообще существует. Мы просто говорим на естественном языке с нашим агентом, описывая, что мы хотим, а затем позволяем ему делать всю работу. Итак, мы не проводим никаких исследований. Обычно у вас нет структурированного плана с пятью видами кодирования. Вы доверяете ИИ и позволяете ему итерировать и итерировать. Так что всякий раз, когда что-то ломается, вы просто говорите: "Эй, Клод, это не работает. Пожалуйста, исправь это". Вы действительно не занимаетесь критическим мышлением самостоятельно. Вы просто принимаете все, что выходит. И это действительно Ральф Вигум, потому что это просто Vibe-кодирование в бесконечном цикле. У нас есть одно условие для выхода из цикла. Но здесь мы действительно итерируем и итерируем бесчисленное количество раз. И так философия здесь, которую я снова уважаю, и я думаю, что из этого есть что-то, что можно извлечь, заключается в том, что настойчивость превосходит изощренность. Это суть Ральфа Вигума в шоу "Симпсоны". Вы пробуете снова и снова, и в конце концов добиваетесь успеха. И вот как Vibe-кодирование развивалось: оно началось как легкий наркотик из простых промптов, вроде: "Хорошо, я доверю своему кодирующему агенту отредактировать один файл". Но теперь, особенно за последний год, мы стали все больше и больше доверять нашим ассистентам по кодированию, редактируя множество файлов одновременно, не проверяя их работу, позволяя им создавать целые функции и просто плывя по течению. И теперь дошло до того, что мы создаем целые приложения, буквально заставляя нашего кодирующего агента работать и работать, пока он не скажет, что что-то сделано. Это Ральф Вигум. Вот почему я говорю, что это пик Vibe-кодирования, потому что буквально не может быть более "вайбовым", чем это. Это потолок Vibe-кодирования, потому что мы не можем выйти за рамки заставления нашего кодирующего агента работать, пока он, наконец, не скажет, что приложение завершено. И поэтому, если вывод Ральфа Вигума нас не устраивает, мы здесь в тупике. Если мы хотим заниматься Vibe-кодированием, мы больше ничего не можем сделать. Наконец, мы вынуждены применять собственное критическое мышление, ставить себя за руль и строить систему. Не дай бог вам придется строить систему для вашего кодирующего агента. Это всегда то, что я пропагандирую, поэтому я не совсем говорю, что это хорошо, когда Ральф является воплощением Vibe-кодирования. Теперь вся эта идея заставления нашего агента работать очень долго, чтобы он мог коснуться большого количества кода и выполнить много работы. Есть некоторые варианты использования, где это действительно мощно. Итак, я расскажу об этом, а также о том, когда это обычно разваливается, что происходит в большинстве случаев. Но прежде чем мы это сделаем, я хочу показать вам Ральфа Вигума в действии, как он работает под капотом. Итак, как я уже упоминал ранее, это официальный плагин Ralph Wigum Claude Code. Это самый простой способ привнести Ральфа Вигума в вашу среду кодирования. Теперь вы можете использовать этот фреймворк для других ассистентов по кодированию, если они поддерживают хуки, но почти все, кого я знаю, пробуют это в Cloud Code специально. Итак, именно это я хочу вам показать. И чтобы установить это, есть всего одна команда, которую вам нужно выполнить, чтобы получить плагин. Итак, я оставлю это в описании. И мы установим это из официального магазина плагинов Anthropic. Я скопирую эту строку. Я зайду в свой Cloud Code, вставлю ее. Это название официального магазина плагинов от Anthropic. А затем в плейсхолдере мне просто нужно заменить его на название плагина Ralph, которое — Ralph-loop. Итак, я запущу это. Он скажет, что у меня уже установлено, но для вас он установит его в ваш Cloud Code впервые. Там есть пара разных опций, которые вам нужно выбрать. А затем вам просто нужно перезапустить ваш Cloud Code. Итак, я покажу вам, как это выглядит. Я просто перезапускаю сессию, чтобы загрузить плагин. И теперь, если я введу /real, вы увидите, что здесь есть три опции. У меня есть одна, чтобы получить помощь. Это просто даст мне описание того, как использовать плагин. Очень хорошо. А затем у нас есть одна, чтобы начать цикл, который буквально все, что нам нужно сделать здесь. Я нажму tab для завершения. Нам просто нужно указать промпт, функцию, которую мы хотим, чтобы он создал. Мы можем максимизировать количество итераций, если хотим избежать сжигания всех наших токенов. А затем последнее, что нам нужно указать, — это кодовая фраза безопасности. Что мы хотим, чтобы наш кодирующий агент вывел, чтобы сообщить хуку: "Эй, мы действительно в порядке, чтобы закончить здесь. Мы завершили реализацию". А затем последняя команда, которая у нас есть, — это cancel Ralph. Итак, если мы хотим резко завершить цикл, чтобы выйти из него, если он затягивается слишком долго, мы можем запустить это вручную. Итак, я покажу вам быстрый пример цикла Ralph Wigum прямо сейчас. Я не буду запускать его вживую, потому что вся суть в том, что он идет долго, поэтому он довольно скучный. Но я покажу вам что-то после факта, чтобы у вас был хороший пример. И поэтому я использовал плагин здесь, чтобы запустить цикл Ralph. У меня есть описание того, что я хочу, чтобы он создал. Я просто держу это очень просто. А затем я позволяю ему идти вечно. У меня нет максимального количества итераций. Вы, вероятно, захотите добавить это. А затем у меня есть моя фраза завершения. Это кодовая фраза, как я шутливо называю ее. Когда он будет абсолютно уверен, что выполнил поставленную задачу, он сможет вывести слово "done". И поэтому, если мы посмотрим в конец вывода, мы увидим, что он это сделал. Он вывел "done". А затем он дал мне сводку. А затем он передает управление обратно мне. И вот как я знаю, что хук не заставил его продолжать, потому что вы видите мой вывод прямо здесь. И поэтому, переходя к папке плагина, я покажу вам, как это работает немного под капотом. Это довольно интересно. Итак, если мы перейдем в папку хуков, у нас есть один хук, настроенный для Cloud Code. Мы отслеживаем, когда Cloud Code останавливается, когда он передает управление обратно нам. Итак, мы запустим команду, когда это произойдет. Теперь мне не нужно глубоко вдаваться в код, очевидно, но, по сути, мы просто проверяем: достигли ли мы максимального количества итераций, которое мы указали, что разрешаем. Если да, то мы закончим раньше и закончим сейчас, если у нас есть фраза завершения или, в моем случае, "done" — это финальный вывод нашего агента. Итак, если это так, то мы заканчиваем. В противном случае, что мы сделаем в самом конце здесь, это возьмем вывод из предыдущего агента, подадим его в качестве входных данных для следующего запуска Claude, заставляя его продолжать в цикле. И то, как мы знаем, на какой итерации мы находимся, также является частью Ralph Wigum, у нас есть этот локальный файл, где мы, по сути, отслеживаем состояние цикла. Итак, у нас есть мой запрос здесь, что я хотел создать, факт того, что он активен. Мы сделали две итерации. Это наша фраза завершения. И поэтому это, по сути, файл, который управляет всем циклом. Итак, Ralph Wigum очень прост в целом. Это просто этот файл с некоторыми промптами, объясняющими, как его использовать, а затем хук остановки. Больше ничего нет. Он на самом деле красиво прост. Спонсор сегодняшнего видео — Dev Stats, который, по сути, является приборной панелью для инженерных команд. И поэтому, если вы управляете командой или просто хотите увидеть, куда уходит ваше время на разработку, это инструмент, который изменит ваш подход, особенно если вы полагаетесь на кодирующих агентов. И поэтому все, что вам нужно сделать, это подключить ваши репозитории GitHub или GitLab. И тогда вы сможете мгновенно визуализировать весь жизненный цикл разработки программного обеспечения, а переходя к интеграциям здесь, вы можете не только подключать свои репозитории, но и подключать свое программное обеспечение для управления задачами, такое как Jira или Linear. Итак, чтобы показать вам истинную мощь Devstats, у меня есть подключенный репозиторий для вымышленного проекта. Это кивок в сторону сериала "Кремниевая долина". И поэтому я просто хочу показать, сколько информации мы можем получить из Devstats. И поэтому, даже на главной странице прямо здесь, у нас уже так много информации. Мы можем видеть среднее время, которое требуется для каждого этапа жизненного цикла разработки программного обеспечения. И мы можем нажать на всех наших отдельных членов команды, чтобы увидеть их вклад и результаты. и даже увидеть, сколько вы делаете по типу активности, например, запросы на извлечение и обзоры кода. Мы также можем перейти к времени цикла PR, чтобы увидеть в среднем, сколько времени требуется, чтобы перейти от проблемы до развертывания. Мы можем посмотреть на стареющие ветки и проблемы, чтобы увидеть, что застаивается и что, возможно, нам следует решить в первую очередь. У нас даже есть метрики Dora, так что мы можем видеть такие вещи, как точность спринта, наш коэффициент сбоев изменений, как быстро мы восстанавливаемся после этих вещей, то, о чем действительно заботится руководство. И это только верхушка айсберга информации и данных, доступных на платформе. Так что, если вы хотите выпускать быстрее и действительно знать, что вас замедляет, независимо от того, работаете ли вы с большой командой или просто используете своих кодирующих агентов, то определенно стоит ознакомиться. Я оставлю ссылку на них в описании. Итак, я должен отдать должное Ральфу Вигуму. Есть много вариантов использования, где этот простой каркас с некоторыми промптами и хуком для заставления его работать долго очень полезен. Итак, как правило, это задачи, которые имеют очень четкие критерии завершения и фундаментально легко выполнимы. Просто вам нужно коснуться большого количества кода и провести много времени в кодовой базе. Так что такие вещи, как миграции, рефакторинг и добавление лучшего тестового покрытия в вашу кодовую базу. Ральф Вигум отлично подходит для этого. Цель очень недвусмысленна и не требует большого человеческого суждения. Теперь это если у вас есть много валидации, чего с Ralph Wingham по умолчанию, у вас действительно нет. Это еще одна проблема, о которой я поговорю немного позже. Но главная проблема с Ralph Wigum заключается в том, что он действительно разваливается для любых задач, требующих большого суждения, особенно когда у вас есть неоднозначные критерии завершения. Вам нужна большая творческая свобода, чтобы действительно определить, когда задача выполнена. Итак, несколько проблем с Ralph Wake. Первое — это то, что без большого количества указаний агенты любят чрезмерно инженерить. Если вы сами занимались каким-либо Vibe-кодированием и потом смотрели на результаты, то беспорядок, который вам приходится убирать, обычно связан с тем, что кодирующий агент делает гораздо больше, чем действительно необходимо для реализации функции. И поэтому "перепекание" — это еще одна фраза для этого. Это происходит все время с Ralph Wigum. А также отсутствие человека в цикле, особенно когда вы выполняете очень длительные задачи, довольно страшно и опасно, потому что во многих случаях приходится корректировать курс. У меня это происходит все время, когда я выполняю реализацию функции с моим кодирующим агентом, и он делает плохую работу. Итак, я смотрю, что он создал. Я работаю с ассистентом по кодированию, чтобы решить проблему, будь то чрезмерное инженерирование или просто плохо написанный код, что бы это ни было. А затем я убеждаюсь, что это больше не повторится. С Ralph Loop у нас нет такой роскоши, потому что мы не вмешиваемся после каждого шага. Мы просто позволяем ему идти, идти, идти. И это так опасно, особенно из-за кроличьих нор, в которые мы можем попасть. Кодирующие агенты попадают в эти циклы сбоев, где они сталкиваются с проблемой при валидации. Они пытаются исправить ее, но терпят неудачу снова и снова, потому что они фундаментально неправильно понимают проблему. И поэтому вы сжигаете тысячи, сотни тысяч, миллионы токенов, пытаясь решить что-то. И поэтому, да, с максимальным количеством итераций мы можем предотвратить его бесконечное продолжение, но тогда мы все равно не получаем желаемый результат. Теперь я знаю, что это звучит очень мрачно, но есть некоторые решения, вещи, которые мы можем объединить с Ralph Wigum, чтобы сделать его более структурированным и надежным. Первая идея — объединить фреймворк PRP с Ralph Wigum. Я много рассказывал об этом на своем канале раньше. Я оставлю ссылку на видео прямо здесь, но PRP, или Product Requirement Prompt, — это процесс создания структурированного плана действий для реализации функции с вашим кодирующим агентом, прежде чем вы отправите задачу и заставите его все сделать. И это так важно для Ralph Wigum, потому что он предполагает, что у вас есть хороший промпт. И это, мой друг, ужасное предположение, потому что создание хорошего структурированного плана, вероятно, самая сложная часть работы с кодирующими агентами в первую очередь. И поэтому, когда у нас нет определенного процесса для этого, тогда мы действительно занимаемся Vibe-кодированием. И поэтому мы отходим от Vibe-кодирования, когда начинаем использовать что-то вроде PRP для исследований, сбора требований, создания чертежа с кодирующим агентом. Итак, у нас есть хорошо подобранный набор контекста, который затем можно подать в цикл Ralph, чтобы выполнить все в цепочке циклов, которые мы связываем. И поэтому в нашем плане мы можем определить критерии успеха. Итак, агент действительно точен, когда он выводит эту фразу в конце, говоря, что он закончил. Потому что это еще одна проблема с Ralph: даже несмотря на то, что вся суть в том, что он говорит, что закончил, только когда это действительно так, мы все равно сталкиваемся с классической проблемой с кодирующим агентом, когда иногда он говорит, что закончил, когда есть еще вещи, которые отсутствуют из того, что мы просили его сделать. И поэтому фреймворк PRP, опять же, я оставлю ссылку на него в описании. Раасмус, создатель PRP, добавил Ralph Wigum непосредственно в фреймворк PRP и плагин, который мы можем установить очень похожим образом на официальный. Итак, у нас есть PRP Ralph и PRP Ralph cancel. Итак, похожие команды, но теперь суть в том, что входные данные для PRP Ralph вместо того, чтобы быть просто базовым промптом, мы будем вводить PRP, где у нас есть этот очень структурированный план. И поэтому я дам вам быстрый пример этого прямо сейчас. Итак, сначала нам нужно установить магазин плагинов и плагин для PRP, которые я также оставлю в описании. Итак, мы просто добавляем магазин Rasmus, и он клонирует его. Установка занимает немного времени, а затем после этого, что у меня уже установлено, поэтому я получаю эту ошибку. Затем мы можем конкретно установить PRP core, который поставляется с версией Ralph Wiggum. И поэтому я покажу вам короткий разговор здесь. Когда мы начинаем процесс планирования, мы просто хотим поговорить с нашим кодирующим агентом, понимая, что мы хотим создать или что мы хотим добавить дальше в нашу кодовую базу. И поэтому я веду этот разговор. Я устанавливаю критерии с кодирующим агентом, а затем я вызываю процесс для начала создания PRP. Итак, я запускаю команду, которая поставляется с плагином, и я просто говорю, например: "Эй, на основе нашего разговора, давайте создадим полный план для слоя постоянства данных". Итак, мы создаем этот артефакт здесь. Если я зайду в папку PRPS, мы можем увидеть здесь планы, у меня есть этот. Он уже завершен, потому что я сделал это заранее, но это наш структурированный план. Здесь много контекста о критериях, списке задач, нашей стратегии валидации, как мы хотим, чтобы наша кодовая база выглядела после. Это теперь наши входные данные для цикла Ralph. Это намного, намного лучше, чем первый пример, который я вам дал, где это было просто одно предложение. И поэтому теперь мы начинаем совершенно новый разговор и выполняем команду PRP Ralph. А затем наш параметр — это просто путь к нашему структурированному плану. Итак, он по-прежнему использует Ralph Wigam точно так же. Мы идем и идем, пока не закончим, но теперь у нас гораздо лучший контекст. Это приводит к невероятно лучшим результатам. Как вы не представляете, насколько лучше использовать PRP Ralph по сравнению с обычным Ralph Wigum, отправляя очень простой запрос. Хорошо, это все хорошо и замечательно, и PRP плюс Ralph Wigum — это мощная комбинация, но если вы действительно обращали внимание на проблемы, которые я изложил здесь для Ralph Wigum, то вы знаете, что этого недостаточно. Это не решает всех наших проблем. Это помогает нам с нашим планированием и критериями успеха, но у нас по-прежнему нет коррекции курса, и мы все еще рискуем, что наш агент попадет в эти кроличьи норы, потому что в конце концов Ральф по-прежнему диктует весь процесс. Только планирование мы делаем сами в самом начале. И поэтому нам действительно нужно, чтобы что-то вроде Ralph Wigum работало и было гораздо большим, чем Vibe-кодирование, — это агентный каркас. И поэтому я уже много рассказывал об агентных каркасах на своем канале. Я оставлю ссылку на видео прямо здесь, конкретно с одним, которое Enthropic построил для нас. И поэтому вся суть агентного каркаса заключается в том, что это инфраструктура, обертывающая модель для длительных задач, чтобы добавить надежность и такие вещи, как человеческий фактор в цикле. И поэтому Ralph Wigum, по сути, является самым базовым каркасом, который мы можем иметь. Это хук и некоторые промпты. Определенно недостаточно, но это показывает нам самое начало того, что возможно. Теперь, чтобы иметь агентный каркас, который действительно работает для создания готового к производству кода, избегая всех этих проблем, нам нужно многое, и, честно говоря, я думаю, что вся отрасль только начинает понимать, что делает эффективный каркас. Обычно у вас есть своего рода инициализатор-агент, чтобы подготовить сцену для проекта, пока вы проходите через все эти циклы, структурированное отслеживание прогресса, которого у нас действительно нет с Ralph Wigum вообще, конечно, человеческий фактор в цикле, восстановление после ошибок, сжатие памяти и возможность лучшей передачи между различными сессиями, пока мы запускаем их в цикле. У нас этого тоже нет с Ralph. А затем больше похоже на реальную стратегию валидации, встроенную в систему. Теперь это частично решается наличием PRP плюс Ralph Wigum, но фактически делая это детерминированно частью процесса. Чтобы не вдаваться слишком глубоко прямо сейчас, но это так, так важно. И поэтому я думаю, что Ralph Wigum — это действительно Model T ИИ-кодирования, верно? Это не Tesla. Это все еще Vibe-кодирование. Это не приведет вас далеко, но это показывает, в чем будет заключаться настоящий навык в этом году. Агентные каркасы с надлежащим человеческим фактором в цикле. Проблема, которая далека от решения прямо сейчас. И то, во что я собираюсь погрузиться с головой в этом году. Я буду заниматься потоковым контентом, много работы за кулисами, чтобы создавать такие каркасы и делиться ими с вами. Я хочу создать оптимальный каркас. И поэтому я сейчас погружаюсь в много исследований, выясняя, что для этого действительно нужно. И поэтому я знаю, что часть того, что я представляю прямо сейчас, может быть немного расплывчатой для вас, потому что я сам еще не разобрался, но да, в 2026 году конкурентное преимущество сместится с модели. Это не будет хайп вокруг всех этих новых LLM. Вместо этого это будет каркас, обертки, инструменты, которые мы строим вокруг LLM, которые сделают ИИ-кодирование все более надежным и позволят нам оставаться за рулем, позволяя при этом агенту выполнять все более длительные задачи. Итак, если это звучит для вас хорошо, и вы действительно хотите оставаться на переднем крае кодирования, я был бы очень признателен за лайк и подписку. Скоро появится гораздо больше контента об агентных каркасах. И это, мой друг, все, что у меня есть для вас сейчас. Надеюсь, у вас будет прекрасный остаток дня, и я увижу вас в следующем.