Не верится, что Anthropic так облажались с Ральфом Виггамом

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00Ральф Виггам просто разрывает всё вокруг. В прошлом году мы выпустили об этом видео, и с тех пор
00:00:04в Твиттере только об этом и говорят. Мэтт Покок сделал кучу роликов на эту тему,
00:00:09Райан Карсон написал очень популярную статью, а Razmike дополнил всё это своим
00:00:13bash-скриптом Ralphie. Но что, если все делают это неправильно? Создатель уже заявил,
00:00:19что некоторые реализации некорректны.
00:00:21Так как же делать правильно? И почему Ralph сейчас — это лучший способ создавать ПО
00:00:26с помощью ИИ? Подписывайтесь, и давайте разбираться.
00:00:30Цикл Ralph (Ralph loop) был создан Джеффом Хантли, и он писал о нем еще в июне прошлого года.
00:00:35По сути, это bash-цикл, который снова и снова скармливает ИИ-агенту один и тот же запрос.
00:00:40Но это гениально сразу по нескольким причинам, ведь так агент работает в самом «умном»
00:00:46режиме — когда у него минимум контекста. Посмотрите на это.
00:00:51Представим, что это всё окно контекста агента. От 0 до примерно 30% —
00:00:57это так называемая «умная зона», где агент работает лучше всего. От
00:01:0130 до 60% он всё еще справляется отлично. А начиная с 60% — то есть 60, 70, 80, 90 —
00:01:08результаты начинают деградировать. Назовем это «зоной тупости». Эти цифры не высечены
00:01:12в камне и меняются от модели к модели. Для кого-то умная зона может быть и 40–50%,
00:01:16но обычно после 80% заполнения окна контекста начинается та самая тупость.
00:01:21Например, для Claude Sonnet или Opus типичное окно контекста — 200 000 токенов. Можно
00:01:28сказать, что первые 60к — это умная зона. Следующие 60к всё еще ничего, но уже хуже первых.
00:01:33А последние 80к токенов работают заметно слабее. Опять же, это мой личный
00:01:38опыт работы с данной моделью, у вас он может быть другим. Причина в том,
00:01:43что сама модель является авторегрессионной — ей нужно смотреть на
00:01:47предыдущие токены, чтобы предсказать следующий. И если токенов слишком много, ей
00:01:52приходится перебирать огромный массив данных, чтобы найти важные детали для текущей задачи.
00:01:56Давайте сфокусируемся на первых 30%. Еще до вашего первого промпта
00:02:01в окно контекста автоматически добавляется ряд вещей. Сначала системный промпт,
00:02:06затем системные инструменты. В типичной модели Claude это занимает 8,3% и 1,4% контекста.
00:02:12То есть почти 10% из этих 30. Еще могут добавиться «навыки» (skills),
00:02:16а также кастомные инструменты MCP. Наконец, файл agent.md тоже идет туда.
00:02:21И чем больше любой из этих элементов (например, файл .md), тем больше
00:02:25токенов он съедает. И всё это происходит еще до того, как вы написали свой запрос. Поэтому
00:02:30лучше держать этот раздел максимально компактным: меньше инструментов,
00:02:35меньше навыков и лаконичный agent.md, чтобы модель работала в своем
00:02:40оптимальном состоянии. Чтобы вы понимали, 60к токенов — это примерно
00:02:44весь сценарий фильма «Звездные войны: Новая надежда» (около 54к в GPT-5).
00:02:51Вы спросите: а как же сжатие (compaction)? Разве оно не помогает? Об этом
00:02:56мы поговорим чуть позже. А сейчас перейдем к тому, как именно Ralph решает проблему.
00:03:00Преимущество Ralph в том, что вы фокусируетесь на одной цели за одно окно контекста.
00:03:05Все 200к токенов мы выделяем под одну цель или задачу. Для этого
00:03:10мы пишем промпт, который первым делом изучает файл plan.md. В нем
00:03:15прописаны задачи: создать фронтенд, создать бэкенд, настроить базу данных
00:03:19и так далее. Это очень упрощенный пример. В реальности Ralph требует
00:03:23большей детализации, но для примера сойдет. Итак, этот промпт
00:03:28велит агенту выбрать самую важную задачу и внести изменения. После этого
00:03:33нужно запустить код, сделать коммит, пуш и прогнать тесты.
00:03:38Когда тесты пройдены, агент отмечает задачу как выполненную в
00:03:42файле plan.md и повторяет цикл. Он будет искать следующую важную
00:03:46задачу, пока не закроет весь список. Хотя, я возьму свои слова назад,
00:03:52потому что цикл Ralph можно крутить бесконечно, даже если все задачи выполнены.
00:03:57Плюс в том, что агент может найти баги или придумать фичи,
00:04:02которых не было в плане. А если он начнет «галлюцинировать» или творить дичь,
00:04:08вы можете в любой момент остановить процесс, поправить prompt.md и запустить всё заново.
00:04:12С Ralph это элементарно, потому что весь процесс выполняется в одном bash-цикле while.
00:04:16Тут он просто выводит содержимое prompt.md через cat (то есть передает его агенту)
00:04:22и запускает Claude в режиме «YOLO». Конечно, флаг называется не YOLO,
00:04:26а «dangerously skip permissions», но для краткости я написал так.
00:04:31Особенность Ralph в том, что он находится вне контроля модели. Модель
00:04:36не может сама его остановить. Она просто продолжает работу. И это гарантирует,
00:04:41что когда запускается новая задача или триггерится промпт, контекст
00:04:46остается таким же чистым, как при первом открытии агента. Никакого сжатия,
00:04:50никакого лишнего мусора. Каждая задача получает максимум чистого контекста,
00:04:55и модель всегда работает в оптимальном состоянии. К слову, сжатие (compaction) —
00:05:01это когда агент просматривает все написанные токены и выбирает то,
00:05:05 что кажется ему важным для следующего шага. Но он лишь предполагает,
00:05:11что важно, а что нет. Поэтому при сжатии можно потерять критическую информацию,
00:05:16и проект перестанет работать. Теперь, когда мы разобрали каноничную реализацию
00:05:21цикла от автора, становится ясно, чем отличаются другие подходы. Взглянем
00:05:27на вариант от Anthropic: там используется слэш-команда для запуска Ralph внутри
00:05:33кода Claude, есть лимит итераций и «обещание завершения». Проблема этого
00:05:38плагина «Ralph Wiggum» в том, что он сжимает данные при переходе к новой задаче.
00:05:43Вместо полной очистки окна контекста после завершения этапа,
00:05:48он упаковывает старую информацию, из-за чего могут потеряться важные детали.
00:05:54Также смущают лимиты итераций — иногда полезно просто
00:05:59дать Ralph волю. Он может найти интересные решения, о которых вы и не думали.
00:06:04А если вы при этом наблюдаете за процессом (human-in-the-loop), вы заметите
00:06:08паттерны поведения модели, которые можно подправить в исходном промпте.
00:06:14Если разобрать подход Райана Карсона, то он не совсем
00:06:19каноничный, потому что на каждом круге цикла есть возможность
00:06:24редактировать или дополнять файл agents.md. По моему опыту,
00:06:29модели по умолчанию бывают очень многословными. И если на каждой
00:06:33итерации вы раздуваете agents.md, который подгружается в начало каждого
00:06:39пользовательского запроса, вы просто забиваете окно контекста лишними токенами,
00:06:44толкая модель в ту самую «зону тупости». Но тот факт, что люди
00:06:48создают свои скрипты на базе простого bash-цикла Ralph, доказывает,
00:06:53насколько эта идея проста и понятна. И хотя есть «каноничный» Ralph,
00:06:57это нормально, когда разработчики и компании адаптируют его под себя.
00:07:03Например, мне нравится, что в скрипте Ralphie от RazMike можно
00:07:08запускать параллельные процессы Ralph и использовать браузерный инструмент
00:07:13агента для тестов. А в версии Мэтта Покока
00:07:18задачи добавляются как GitHub Issues. Цикл Ralph выбирает
00:07:23самую приоритетную, отрабатывает её и закрывает Issue перед переходом
00:07:28к следующей — это очень остроумно. Сила и простота Ralph
00:07:32означают, что он задержится надолго. Мы увидим еще много
00:07:37улучшений и итераций этой идеи. Мне нравится вектор развития Джеффри
00:07:42в его проекте Loom and Weaver — он хочет сделать разработку ПО автономной
00:07:47и безошибочной. Но когда столько «Ральфов» клепают софт автономно,
00:07:52нужен способ отслеживать ошибки и исправлять их. И тут на помощь приходит
00:07:56Better Stack: он умеет не только собирать логи и фильтровать ошибки,
00:08:01но и отслеживать баги на фронтенде. С помощью этого MCP-сервера
00:08:06вы можете попросить агента вытащить конкретные ошибки фронтенда или бэкенда
00:08:11вместо чтения всего лога целиком, что, в свою очередь, экономит контекст.
00:08:16Так что зацените Better Flux и делитесь мнением в комментариях.
00:08:17So go and check out Better Flux, and let me know what you think in the comments.

Key Takeaway

Метод Ralph Loop позволяет создавать ПО с помощью ИИ максимально эффективно, удерживая агента в оптимальной зоне контекста через цикличную очистку памяти и работу над атомарными задачами.

Highlights

Концепция Ralph Loop — это использование простого bash-цикла для бесконечного повторения запросов к ИИ-агенту.

Эффективность модели напрямую зависит от заполненности окна контекста: до 30% — «умная зона», после 60% — «зона тупости».

Каноничная реализация Ralph предполагает полную очистку контекста перед каждой новой подзадачей для сохранения точности.

Критика реализации от Anthropic и Райана Карсона за использование сжатия данных (compaction) и раздувание файла agents.md.

Использование файлов plan.md и prompt.md позволяет структурировать работу агента и легко исправлять ошибки в процессе.

Интеграция с инструментами мониторинга, такими как Better Stack через MCP-сервер, помогает экономить контекст при отладке.

Timeline

Введение в феномен Ральфа Виггама

Видео начинается с обсуждения огромной популярности концепции Ralph в сообществе разработчиков и социальных сетях. Автор упоминает известных личностей, таких как Мэтт Покок и Райан Карсон, которые внесли свой вклад в развитие этой темы. Основная проблема заключается в том, что многие реализации могут быть некорректными с точки зрения оригинальной идеи. Бросается вызов текущим методам создания ПО с помощью искусственного интеллекта. Вступление задает тон обсуждению того, почему Ralph считается сейчас лучшим способом взаимодействия с ИИ-агентами.

Анатомия окна контекста и зоны эффективности

Разбирается происхождение Ralph Loop от создателя Джеффа Хантли и техническая суть этого метода. Автор вводит критически важное понятие «умной зоны», которая занимает первые 30% окна контекста модели. При заполнении контекста свыше 60% результаты начинают деградировать, что автор называет «зоной тупости». Эти цифры могут варьироваться, но общая тенденция снижения качества ответов при больших объемах данных остается неизменной. Понимание этих зон необходимо для правильного проектирования циклов работы автономных агентов.

Технические детали: токены и авторегрессия

На примере моделей Claude Sonnet и Opus объясняется, как распределяются токены в рамках 200-тысячного окна. Автор наглядно показывает, что системные промпты и инструменты съедают около 10% полезного пространства еще до начала работы пользователя. Использование метафоры со сценарием «Звездных войн» помогает осознать реальный объем данных, с которым справляется модель. Объясняется авторегрессионная природа моделей, требующая постоянного обращения к предыдущим токенам, что затрудняет поиск важных деталей в перегруженном контексте. Дается совет держать файлы конфигурации типа agent.md максимально лаконичными для экономии ресурсов.

Механика работы Ralph Loop и планирование

Рассматривается практический алгоритм Ralph, где всё внимание фокусируется на одной цели за одно окно контекста. Агент использует файл plan.md для отслеживания задач, таких как создание фронтенда или настройка базы данных. После выполнения задачи агент делает коммит в репозиторий, запускает тесты и отмечает прогресс. Если тесты пройдены, цикл начинается заново с абсолютно чистым контекстом для следующей задачи. Такой подход исключает накопление ошибок и позволяет разработчику корректировать prompt.md в режиме реального времени.

Сравнение реализаций: Anthropic против Канона

Автор анализирует техническую сторону bash-цикла и сравнивает его с официальным плагином от Anthropic. Главная претензия к Anthropic заключается в использовании сжатия (compaction), которое может приводить к потере критически важной информации. В каноничном Ralph модель не контролирует свой цикл, что гарантирует чистоту каждой итерации. Обсуждается важность присутствия человека в цикле (human-in-the-loop) для наблюдения за паттернами поведения модели. Упоминается, что жесткие лимиты итераций мешают ИИ находить неочевидные и творческие решения проблем.

Разнообразие подходов и современные инструменты

В финальной части рассматриваются альтернативные версии Ralph от разных разработчиков, включая интеграцию с GitHub Issues и параллельные процессы. Автор подчеркивает, что простота идеи позволяет легко адаптировать её под конкретные нужды производства. Представляются проекты Loom и Weaver, нацеленные на полную автономию разработки. Для решения проблемы мониторинга ошибок в автономных циклах предлагается использовать Better Stack и специализированные MCP-серверы. Видео завершается призывом тестировать новые инструменты и оптимизировать контекст для достижения лучших результатов в ИИ-разработке.

Community Posts

View all posts