📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Claude Code Creator: “Write Loops, Not Prompts”

Sean Kochel20:21

Transcription

Один твит и видеоклип от OpenClaw содержат коды, и, по-видимому, этого достаточно, чтобы весь Twitter сошел с ума. Вам больше не следует использовать агентов для написания кода. Вам следует разрабатывать циклы, которые будут запрашивать ваших агентов. Я больше не использую квад. У меня есть работающие циклы. Именно они запрашивают квад и как бы выясняют, что делать. Моя работа — писать циклы. Как обычно, инженеры, которые ненавидят все, что связано с ИИ, с одной стороны, и люди, которые защищают все, что связано с ИИ, с другой. Итак, в этом видео мы попытаемся найти золотую середину. Итак, мы рассмотрим, что на самом деле представляют собой эти циклы, как избежать необходимости брать второй ипотечный кредит только для их запуска, и я дам вам три простых цикла, которые вы сможете запустить на этой неделе, начиная с того, как мы вообще сюда попали. Итак, я лично считаю, что если вы хотите понять любые из этих аргументов, которые приводят люди, полезно знать происхождение того, как мы вообще пришли к разговору о циклах. Итак, мы потратим здесь две-три минуты, а затем перейдем к циклам и примерам циклов. Итак, в 2022 или 2023 году появилась эта научная работа, которая представила концепцию React, не путать с библиотекой JavaScript. И это было похоже на первую формализованную версию цикла агента. Итак, у вас была бы модель, которая рассуждает о том, что делать. Она использует инструменты, чтобы действовать в отношении чего-либо. Она читает результат того, что она сделала, и повторяет, пока не закончит. Итак, одна модель, один цикл, и человек наблюдает за этим все время. Преимущество в том, что эти модели могли начать действовать на основе того, что им дали инструменты, вместо того, чтобы постоянно выдавать галлюцинаторные результаты. Следующей эволюцией этого стало то, что называется AutoGPT. И это давало ему цель и, по сути, задавало вопрос: а что, если я позволю ему самому себя запрашивать для достижения этой цели? И это было фактически разработано как проект разработчиком видеоигр. И поэтому эта штука могла создавать подцели, но у нее была проблема с тем, что она заканчивалась и уходила в кроличьи норы. Таким образом, она тратила много времени и много токенов, пытаясь сделать то, что вы хотели, чтобы она сделала. Но дело в том, что это показало, что на некотором уровне с надлежащими ограничениями эта концепция автономии могла быть возможной. Затем, возможно, через год или два, мы получили эту концепцию цикла Ralph. И с циклом Ralph он, по сути, сказал: «Эй, мне нужно, чтобы ты запускал один и тот же запрос снова и снова, пока работа не будет фактически завершена, или пока ты не достигнешь максимального количества итераций, которое я позволю тебе фактически выполнить». Таким образом, вместо того, чтобы позволять истории накапливаться и засорять все каналы, у нас появилась идея вроде дисциплины через принужденную амнезию, свежий разговор каждый раз, когда этот запрос запускался, что означало, что у него были свежие глаза, и он мог объективно подходить к проблеме. Итак, именно здесь мы начали получать эту концепцию того, что контролируемый цикл — это очень ценная вещь. Затем, что произошло недавно, это то, что и CodeX, и Claude Code фактически сделали эту идею цикла Ralph продуктом, но с небольшим изменением, и это изменение заключалось в том, что вместо установки максимального количества итераций, вы можете заставить его работать до тех пор, пока основная задача и ваше намерение для этой задачи фактически не будут выполнены. Таким образом, цель — это, по сути, цикл Ralph, где вместо максимального количества итераций он фактически знает, когда задача выполнена на основе установленных вами критериев, что является концепцией, к которой мы перейдем немного позже, потому что она действительно важна. Итак, это подводит нас к тому, где мы находимся сейчас, и объекту явной ненависти друг к другу многих людей, что является концепцией цикла агента. И общая ментальная модель здесь заключается в том, что создание цикла для как бы использования всего, что вы делаете, более ценно, чем отдельные запросы, которые вы отправляете в систему. Теперь многие люди утверждают, что у них есть действительно сложные, многоуровневые версии этих вещей. Но вы также можете настроить циклы агентов, которые на самом деле очень просты в исполнении, и многие люди уже это делают. Но дело в том, что у вас есть циклы на циклах на циклах, которые, по-видимому, управляют другими циклами. И поэтому это своего рода многоагентная оркестровка версии цикла Ralph. И поскольку многие люди жалуются на использование токенов и задаются вопросом, что вообще такое циклы, я на самом деле не думаю, что в конце концов это такая уж сложная тема. Просто так получилось, что она сейчас становится вирусной. И поэтому все и их матери, вероятно, скоро начнут об этом говорить. Итак, что же такое цикл? Цикл — это небольшая программа, которую вы создаете, которая запрашивает агента за вас, читает то, что он произвел, решает, закончил ли он или нет, а затем снова запрашивает его, если нет. Теперь я не собираюсь сидеть здесь и притворяться, что выполнение этого процесса обязательно является самой простой вещью в мире, особенно если вы пытаетесь делать действительно сложные вещи, которые, вероятно, делают многие инженеры. Но концепция создания цикла, который будет выполнять для вас какую-либо задачу и снимать с вас большую часть работы, — это то, что очень ценно, к чему мы перейдем, и я покажу вам несколько таких вещей через минуту или две. Но я думаю, что самое ценное, независимо от того, какой тип цикла вы пытаетесь создать или запустить, это то, что вы начинаете очень подробно относиться к типу контекста, который у вас есть о вас и ваших проектах, к типам вещей, о которых вы действительно хотите быть в курсе, и что вы даете действительно четкие указания и ограничения, чтобы агенты знали, когда они могут принимать решения самостоятельно, а когда им нужно остановиться и проверить с вами. И это, на мой взгляд, что-то очень личное для человека, пытающегося запустить цикл. Уровень его навыков, его опыт, вещи, которые он действительно хочет контролировать, а не просто что-то вроде универсального решения, которое автоматически применяется ко всем без исключения. Итак, с учетом всего этого, я хочу пройти три элемента управления, которые у вас есть, чтобы убедиться, что эти вещи не выйдут из-под контроля и не станут одной из тех ситуаций, когда сгорают миллиарды токенов. Итак, причина, по которой всему этому уделяется так много внимания, заключается в том, что Uber недавно потратил весь свой бюджет на ИИ за четыре месяца. И поэтому эта концепция вроде бы как бы обуздать затраты на токены и не просто позволять агентам работать и выполнять дублирующую работу бесконечно ad infinitum, является действительно важной концепцией и темой прямо сейчас. Очевидно, они ограничили своих инженеров, я думаю, 1500 долларами на инструмент в месяц, которые им разрешено использовать. Итак, как обычные люди, у которых, вероятно, нет корпоративного бюджета, оплачивающего все это, может быть, мы просто используем план CodeX CLI или план Claude Max, что мы на самом деле практически делаем? Итак, первое — это то, что механизмы для этого немного отличаются в зависимости от того, что именно вы используете, очевидно. Но первое, что у нас есть, — это команда goal. А второе, что, на мой взгляд, действительно невероятно ценно, если вы сделаете это правильно, — это новые рабочие процессы Claude. Я не буду углубляться в рабочие процессы, потому что я сделал целое видео об этом на прошлой неделе, которое вы можете посмотреть. Я дам ссылку на него в конце. Но причина, по которой это действительно ценно, заключается в том, что логика оркестровки фактически находится вне самого Claude Code. Итак, одна из больших проблем, почему все это раньше выходило из-под контроля и не работало хорошо, а Claude Code или CodeX как бы фиксировались на определенных решениях, которые действительно не имели смысла и просто продолжали их выполнять, заключается в том, что агент отвечал за оркестровку агента. И поэтому одна из приятных вещей в рабочих процессах заключается в том, что это как бы внешне управляется функцией JavaScript. Итак, сказав это, каковы три элемента управления? Первое — это установка максимального количества итераций. Итак, подобно тому, как фактически работали циклы Ralph, даже если у нас есть цель в уме, что мы пытаемся сделать, мы все равно хотим иметь жесткие ограничения на случай, если мы не сможем эффективно достичь этой цели. Мы не хотим, чтобы он бесконечно пытался исправить это и никогда не останавливался, потому что он никогда на самом деле не достигает цели, потому что он застрял где-то. Теперь, если вы используете рабочие процессы, как я показал в своем последнем видео, вы можете фактически установить максимальное количество итераций, потому что, опять же, вы можете контролировать это внутри переменных, определенных внутри рабочего процесса. Итак, это один очень четкий способ установить для себя ограничения, чтобы эти вещи не вышли из-под контроля и не взорвались количеством задач, которые они пытаются выполнить, и агентов, которых они пытаются вызвать. Номер два — это обнаружение, когда прогресс не достигается. Потому что именно здесь, я думаю, возникают действительно «бегущие» счета, когда прогресс в задаче не достигается, и она постоянно сталкивается либо с одной и той же проблемой снова и снова, либо постоянно возникают новые проблемы, и теперь она идет по странным путям, пытаясь решить проблему, и на самом деле не решает корень того, что вы хотите сделать. Я думаю, что эти неограниченные итерации и решение проблем снова являются одной из причин, по которым вы получаете эти огромные всплески использования токенов. И затем номер три, потолки токенов. Итак, вы можете думать об этом как о жестком финансовом стопе. Например, при создании рабочего процесса Claude вы можете фактически установить максимальное количество токенов, которое могут использовать различные под-агенты. Итак, это часть причины, по которой я понимаю, откуда берется много ненависти, потому что, эй, люди будут ненавидеть, ненавистники будут ненавидеть. Но если вы жалуетесь на то, что тратите токены, то для меня это кажется тем, что вы неправильно настраиваете вещь и просто позволяете ей работать и делать то, чего не должна делать. Итак, если мы примем идею о том, что цикл агента — это просто автоматизация серии циклов Ralph, работающих вместе, и вы создаете их с намерением, то он действительно не должен выходить и начинать тратить токены больше, чем вы, делая все эти шаги вручную, сделали бы в любом случае. Итак, чтобы все это работало, у вас должен быть действительно сильный процесс проверки и обзора того, что было сделано. Что ставит вопрос: по какому стандарту именно вы проверяете и просматриваете что-то? И для меня это одна из областей, где, я думаю, до сих пор нет очень четких ответов, по крайней мере, для меня. Номер один — как циклы фактически справляются с неоднозначностью? Дело в том, что если вы не предоставляете модели надлежащий контекст, ей придется принимать решения от вашего имени в момент игры. Теперь для определенных типов решений вам может быть все равно, особенно если вы не являетесь инженером по образованию. Но когда дело доходит до бизнес-кейса того, что вы строите, или того, как это предназначено для решения проблем конечных пользователей, на мой взгляд, это то, что вам нужно либо иметь чрезвычайно хорошо документированным в каком-либо файле markdown, к которому эти вещи имеют доступ, либо не использовать циклы, если вы не достигли того момента, когда вы действительно ясно понимаете эти вещи и нашли способ передать это, и чтобы модели фактически справлялись с таким типом неоднозначности так, чтобы вы были довольны. Итак, номер два, где на самом деле находится планирование в этой системе типа циклов агентов? Планирует ли ваш цикл намерение, стоящее за чем-то, или только реализацию, или он делает и то, и другое? Теперь кто-то задал этот или похожий вопрос в этой ветке Twitter, и ответ Питера Штейнбергера заключается в том, что он использует vision.markdown для всех своих проектов. Теперь он не ответил точно, что там есть, но кто-то спросил Grok, и, по словам Grok, это основная проблема, предполагаемое решение, ключевые цели, технические принципы и то, как выглядит успех. Теперь я думаю, что это как идея очень, очень ценна. Но это то, что вам, как человеку, придется протестировать и посмотреть, действительно ли наличие документа о видении устраняет многие проблемы, которые у вас были, когда вы вручную запрашивали эти вещи, и в сеансе один на один вы могли доверять тому, что CodeX или Claude Code фактически создают вещь и принимают решения, которые вы бы приняли в ситуации, когда нужно принять решение. Теперь, пункт номер три, который я снова возьму из этой ветки, потому что я думаю, что многие люди подняли много проблем, которые были у меня, это где человек в этом процессе? Где нужен человек? Например, кто-то говорит: ну, вам все равно нужно быть в курсе, чтобы тестировать вещи, если у вас буквально нет бесконечных токенов, что, эй, если вы работаете в OpenAI или вы работаете в Claude Code, у вас, вероятно, есть. Я лично хотел бы видеть внутреннее объявление о вакансии у всех этих поставщиков моделей ИИ, где ваша работа — тестировать все их новые функции за реальный бюджет. Итак, третья вещь, которая, на мой взгляд, является наиболее критичной частью всего этого процесса, и ответ очень зависит от вас, вашего бюджета, ваших знаний определенных областей, являетесь ли вы инженером, как все это, — это где человеку нужно фактически вмешаться, когда мы говорим о полностью автономном цикле агента. Я автор циклов агентов и своей собственной судьбы. Это звучит хорошо, но в реальности, где вам, как человеку, если вы не агент, наблюдающий за этим, нужно фактически вмешаться и контролировать этот процесс и тестировать вещи? Итак, вот что я скажу. Если вы еще не комфортно работаете с двумя-тремя параллельными сеансами одновременно и управляете всем этим, и позволяете агентам создавать вещи, которыми вы довольны, исключительно на основе контекста, который вы им дали, и того, как вы создали этот контекст, передали его между всеми различными агентами, которых у вас есть, — если вы не можете выполнить весь этот процесс самостоятельно прямо сейчас, создание цикла — это действительно, действительно плохая идея. Но если вы это делаете, я думаю, вопрос просто в том, как вы собираетесь лучше автоматизировать этот процесс для себя. Теперь, потому что есть действительно две вещи. Итак, у нас есть наши циклы, которые мы обсуждали, но одна вещь, которая действительно важна для правильного функционирования цикла, — это наши навыки. Итак, я думаю об этом так: циклы — это как сантехника, но если вы будете лить бетон в яичную скорлупу, у вас будут большие проблемы. И поэтому именно поэтому, даже при создании циклов, я думаю, навыки — это то, что делает их эффективными. Нет ничего в цикле по своей сути, что является какой-то новой возможностью, которая позволяет вам стать супер-мега-вайб-кодером, ИИ-кодером, ИИ-инженером по умолчанию, потому что у них есть эта конвенция под названием цикл. Теперь лучшие циклы, которые я видел, и лучшие рабочие процессы, которые я видел, интегрируют существующие навыки в свою работу. Итак, сказав все это, я пройду три конкретных цикла, которые, на мой взгляд, очень ценны для любого. Будь вы новичок или даже более продвинутый, чем я в этом, это как минимум три цикла, которые, я думаю, любой должен или может использовать. Итак, номер один — создание цикла для вашего бэклога задач. Итак, всякий раз, когда я сталкиваюсь с ошибкой, идеей новой функции, улучшениями, которые нужно внести, или даже просто чем-то, что я хочу запомнить на будущее для проекта и, возможно, вернуться к нему, я создаю это как задачу GitHub. Итак, вот пример этого. Мы могли бы использовать команду /goal в этом случае внутри Claude Code, но они имеют это и внутри CodeX. И вы могли бы сказать: мне нужно, чтобы вы прошли через все ошибки, перечисленные в моих задачах GitHub, и использовали навык систематической отладки из Ora Superpowers для их отладки. Затем вам нужно создать тестовый случай для этой ошибки и зафиксировать его в моем проекте. После того, как вы закончите каждую ошибку, откройте PR. Это очень простой пример цикла. Почему? В нем будут ошибки. Некоторые из них будут проще. Некоторые из них будут немного сложнее. Но у нас есть цель — устранить эти ошибки. Теперь, если бы вы хотели иметь максимальное количество итераций и другие подобные элементы управления затратами в этом типе процесса, вы можете ввести это в виде обычного языка. Итак, второй тип цикла, который, на мой взгляд, очень ценен и также довольно прост в освоении, — это проверка фронтенда. Итак, один из циклов, который я запускаю практически каждый раз, когда занимаюсь значительной работой над фронтендом, — это цикл проверки пользовательского интерфейса. Итак, скажем, мы внесли какое-то изменение на фронтенде, это может быть новая функция или модификация существующей вещи, которую мы имеем, затем мы можем запустить внутри, опять же, Claude или внутри CodeX или действительно чего угодно. Вы можете сделать это с симуляторами iOS. Вы можете запустить расширение Chrome, чтобы фактически просмотреть проделанную вами работу, сделать снимки экрана, фактически проверить DOM под капотом, а затем сопоставить это с вашими спецификациями и вашими критериями приемки и критериями проверки для этой функции. Но самое главное, для чего я люблю это использовать, — это фактически сопоставление с нашими дизайнами. Так что, если вы используете такой инструмент, как Claw Design, например, вы можете буквально иметь это же расширение Chrome, открыть свои дизайны внутри Claw Design и посмотреть на два фрагмента работы бок о бок и продолжать итерировать и пытаться, пока работа, которую вы сделали локально, фактически не будет соответствовать спецификациям. И этот тип процесса вы можете ограничить количеством попыток, которые ему разрешено фактически пройти. Вы можете обернуть его в команду goal, чтобы он продолжал идти до тех пор, пока все не будет иметь почти 100% соответствия фактическим дизайнам, которые у вас были. Там есть множество различных вещей, которые вы можете сделать, но это действительно ценный рабочий процесс, который, на мой взгляд, довольно доступен практически любому. Итак, если мы вернемся вниз, мы можем увидеть, что эта цель достигнута. Теперь у меня была помечена только одна ошибка в этом репозитории, но если бы у меня было четыре, пять, шесть, семь, восемь, девять, десять ошибок, она бы продолжала двигаться дальше. Вы бы не получили уведомление о достижении цели, пока она фактически не исправила бы ошибки по всем десяти этим задачам. Номер три — циклы проверки кода. Опять же, это от Бориса Черни, создателя Claude Code, и многие из его циклов — это ориентированные на процесс вещи, где у него есть системы, которые он проходил вручную, но теперь он просто создает циклы для фактического выполнения этих вещей. Например, цикл каждые 5 минут. У него есть специальная команда, которую он называет babysit. И он хочет автоматически обрабатывать проверку кода, автоматически перебазировать и затем переводить свои PR в продакшн. Дело в том, что когда вы начинаете работать с параллельными агентами, а во-вторых, если вы действительно углубляетесь в циклы, вы, вероятно, будете делать гораздо больше, а это означает гораздо больше коммитов, гораздо больше pull request. И концепция цикла поможет вам фактически управлять всем этим. И поэтому установка этих циклов, которые проверяют ход выполнения всего этого объема, который вы создаете, очень ценна, потому что если у вас ее нет, вы очень быстро потеряете след этих вещей. Но опять же, важно помнить, что он использует пользовательские навыки и команды практически для всех этих циклов. Итак, сказав все это, я думаю, что цели и рабочие процессы — это два действительно ценных способа выполнения типов циклов, о которых люди склонны говорить, таким образом, что они действительно практичны и относительно просты в реализации. Тем не менее, вы действительно хотите быть осведомлены о лучших практиках и шаблонах, которым эти вещи могут или должны следовать, чтобы вы случайно не создали рабочий процесс, где теперь у вас есть сотни различных под-агентов, работающих на Opus 4.8, и полностью исчерпали все свои бюджеты, потому что это было бы ужасно. Итак, опять же, я сделал видео о некоторых из этих лучших практик на прошлой неделе, на которое я дам вам ссылку. Итак, да, если вам понравилось это видео, посмотрите то, которое я сделал на прошлой неделе о рабочих процессах Claude, потому что это, во многих отношениях, проявление этой концепции цикла. И, конечно же, подпишитесь, если вам понравилось это видео и вы хотите видеть больше подобного. Но на этом все для этого видео. Увидимся в следующем.