Transcription
Добро пожаловать. Итак, этот семинар посвящен циклам Ральфа. Поднимите руки, кто знает, что такое цикл Ральфа. Это почти все. Я предполагаю, что остальные, кто пришел, были здесь только потому, что им показалось, что это звучит странно, или, возможно, они искали тихое место для работы. Я не знаю, но вы очень желанны. Итак, что мы собираемся делать сегодня, это двухчасовой семинар. Мы, э-э, если вы могли бы немного освободить место, если вам нужно, по мере того, как люди входят, это было бы очень полезно. Спасибо. Это двухчасовой семинар. Мы фактически построим циклы Ральфа вместе. Мы сделаем это вместе на наших собственных ноутбуках, чтобы, э-э, что-то произошло и что-то было сделано. Так что это не просто теория. Это очень практическая вещь. Так что, если у вас есть ноутбук, вы можете достать его через секунду. Мы фактически попробуем сделать это сами. Э-э, так что, э-э, у меня есть несколько слайдов, но не очень много. Большая часть этого будет живыми демонстрациями и своего рода взаимодействием, э-э, пунктами также. Э-э, и идея в том, что к концу этого вы сможете уйти с чем-то, что работает, и мы, э-э, применим это к своего рода игрушечной кодовой базе, э-э, просто для развлечения, э-э, чтобы создать таймер Помодоро. Но, э-э, но, надеюсь, идея в том, что вы сможете использовать это в своей реальной работе, когда мы закончим. Итак, еще одно поднятие рук. Хорошо. Кто использует Claude code или Codeex специально для написания кода? Поднимите руки. О, довольно много людей, специально для написания кода. Хорошо. Кто использует его для написания всего своего кода? Кто больше не пишет никакого кода? Это довольно много людей. Посмотрите вокруг на минуту. Это огромное изменение. Если бы я спросил группу программистов шесть месяцев назад, кто больше не пишет никакого кода, вы бы получили совершенно другой ответ. Э-э, так что следующий вопрос: кто использует либо Claude code, либо Codeex? Э-э, и я также включу сюда Cursor в их не связанной с кодом работе. Хорошо, довольно много из вас. А как насчет всей вашей обычной не связанной с кодом работы? Хорошо. Интересно. Интересно. Так вы можете увидеть будущее в комнате? Правильно. Есть несколько человек, которые начинают, но мы все еще на этом пути, безусловно. И кто раньше создавал циклы Ральфа? Последнее поднятие рук. Один или два человека. Хорошо, отлично. Я буду рассчитывать на вас во всем. Э-э, так что это здорово. Итак, э-э, немного обо мне. Меня зовут Крис Парсонс. Э-э, в наши дни я провожу большую часть своего времени, пытаясь помочь, э-э, командам, подобным той, которой я раньше руководил, разобраться, что, черт возьми, делать с ИИ, в основном. Итак, я CTO по образованию. Я занимался парой стартапов и масштабируемых компаний, и это захватило меня и моих друзей с бурей, и мы все еще пытаемся разобраться в этом профессионально вместе с точки зрения того, как помочь нашим командам внедрить и использовать ИИ. Так что это то, чем я занимаюсь сейчас. У меня около 30 лет или около того профессионального создания программного обеспечения, я был генеральным директором агентства. Я занимался большим количеством гибкого консалтинга, помните это, и такого рода обучением тоже в свое время. И, э-э, и, как ни странно, все эти, это совершенно другая тема. Все эти принципы и практики, которым мы учили годами, и никто на самом деле не слушал, по-прежнему очень применимы к ИИ. Так что, вот так. Э-э, так что в наши дни я фактически постоянно запускаю циклы Ральфа, 24 часа в сутки, чтобы выполнять свою работу. Так что я использую их для написания своих электронных писем. Я использую их для проверки своего календаря. Я использую их для написания контента и информационных бюллетеней. Я использую их, чтобы помочь мне выполнять клиентскую работу. Так что я использую их абсолютно во всем. Я также использую их для кода, на чем мы сегодня сосредоточимся, но они очень применимы к каждой части нашей жизни. Так что к концу дня идея в том, что вы будете в положении, когда сможете делать это тоже. Э-э, вот как я работал с ИИ до недавнего времени. Э-э, вы, вероятно, не видите этого очень хорошо. Это рабочий процесс N10, который я использовал для создания своего еженедельного информационного бюллетеня. Мне потребовалась, э-э, вероятно, неделя, чтобы написать его, не говоря уже о фактическом тестировании и отладке. В нем огромное количество разных вещей. Это похоже на поток избранных статей, который читал бы различные статьи из моего блога и выяснял, публиковал ли я это раньше, суммировал бы это с помощью ИИ и помещал бы туда. А затем есть другой для получения ссылок, которые я разместил в определенном списке, и он делал бы небольшой комментарий к этому. Это было действительно довольно сложно и трудно запускать и поддерживать. И это работало нормально, за исключением того, что в 14:00 в понедельник, почти каждый понедельник, я получал бы ужасное уведомление от NA10 о том, что мой рабочий процесс не удался. И я просто думал: "О, нет". А затем мне приходилось заходить и выяснять здесь, что сломалось, и пытаться запустить и исправить это. Теперь это ничего против NA10. NA10 — это действительно классный инструмент, и он может делать действительно классные вещи. И я никогда не смог бы оркестровать ИИ так, как я это делал раньше, без такого инструмента, как N810. Несмотря на то, что я кодер, управлять этим здесь намного проще. И вы можете легко управлять всеми ключами API, и это хороший инструмент для соединения вещей, но он был настолько хрупким в использовании на таком уровне сложности. И я не получил от него большой пользы. Э-э, и каждый раз, когда я его исправлял, я делал что-то еще. Так что, честно говоря, мне, вероятно, было проще просто написать информационный бюллетень, чем поддерживать то, что писало информационный бюллетень. И мой информационный бюллетень, вероятно, был немного лучше. Э-э, так что это было не очень хорошо. Э-э, но, но это было, на мой взгляд, несколько месяцев назад, действительно единственный способ использовать ИИ. Вам приходилось как-то оркестровать и управлять им, давать ему правильные данные и как-то обрабатывать весь контекст. И я думал, что это будущее автоматизации, но это не совсем будущее автоматизации. Будущее автоматизации гораздо больше похоже на что-то вроде этого, работающего в Claude code. Так что это, очевидно, не реальный навык, но, э-э, у меня теперь в Claude code есть навык, который пишет для меня информационные бюллетени, и у него есть все эти инструкции. Фактически, я скопировал и вставил JSON-код NA10 оттуда в Claude code и сказал: "Напиши навык на основе этого потока", и он сделал отличную работу. Э-э, а затем он проходит и делает все эти вещи. Но интересно, как работает Claude code? Ну, он читает первое, решает следующий шаг, а затем читает следующую часть, а затем решает следующий шаг, и он как-то работает в течение нескольких минут, чтобы фактически написать и создать информационный бюллетень, который я писал. И то же самое для кода. То же самое для всего, что мы хотим создать с помощью Claude code. Claude как-то просто заботится об этом. Вы описываете типы вещей, которые вы хотите, и он делает это. Теперь интересно, что Claude code фундаментально работает в цикле, не так ли? Он просто читает навык, вызывает инструмент, возвращается к началу, снова читает навык, вызывает инструмент, вызывает инструмент, а затем в какой-то момент он понимает, что закончил, и останавливается, и дает вам ваш информационный бюллетень в любой форме, в которой вы его хотите. Э-э, так что интересно, что это дает гораздо лучшие, более связные информационные бюллетени, чем предыдущий рабочий процесс. Мне все еще приходится их менять, писать, ковыряться в них, но, но они являются гораздо лучшим первым черновиком, чем когда-либо прежде. И я на самом деле не трогал этот навык. Все, что я действительно делаю с этим навыком, это говорю в конце процесса написания информационного бюллетеня: "Пожалуйста, просто обновите навык всем, что вы можете понять из сессии, что вы должны были сделать иначе". И он вносит редкие корректировки здесь и там. Э-э, так что это цикл, это такая форма работы в циклах с ИИ. Так что агенты, которые изначально начинаются в рабочих процессах, где у вас есть довольно сложная оркестровка, которая выглядит немного как что-то адское, вроде этого, заканчиваются довольно простым циклом, возможно, с немного лучшим контекстом. Теперь это не работало долгое время, но теперь это начинает работать с последними моделями, и под последними моделями я действительно подразумеваю GPT 5.8. X, действительно GPT 5.12 и выше, и Claude Opus 4.6 или Sonnet 4.6 и выше. Так что эти модели начали появляться примерно в конце ноября. Я понятия не имею о Mythos, кстати. Я разговаривал с людьми, которые использовали его, и они говорят, что он хорош, но это в основном маркетинг, но посмотрим. Но, но да, посмотрим, куда это нас приведет. Может быть, нам даже не понадобятся навыки. Может быть, мы просто скажем: "Напиши информационный бюллетень", и он сделает это. Кто знает? Но, но то, что я пытаюсь, моя точка зрения в том, что вместо использования сложных рабочих процессов мы фактически используем навыки и циклы гораздо больше в контексте и циклах. И любой агент, который мы запускаем, в некотором роде уже является циклом. Хорошо. И эта мощная циклическая конструкция может быть применена более широко. Итак, что происходит, когда мы берем циклы немного дальше? Итак, первая стадия — это эта идея, или первая идея пришла от Джеффри Хантли некоторое время назад, в древние времена ИИ, что означает, вероятно, около прошлого июня, и он сказал, что, по сути, мы должны делать, это всякий раз, когда мы заканчиваем использовать ИИ для чего-либо, мы должны просто попробовать это снова каким-то образом, мы должны просто дать ему точно такой же запрос и посмотреть, что произойдет, посмотреть, что он сделает снова. И это звучит немного глупо, и это основано на. Кто-нибудь знает, откуда эта история? Кто знает, почему это называется циклом Ральфа? Как два человека. Это называется циклом Ральфа из-за Ральфа Виггама, персонажа Симпсонов, который, по сути, говорит, что он просто пробует одно и то же снова и снова и снова, и в конце концов это работает. И это все, что это действительно. Все, что представляет собой цикл Ральфа, это построить эту вещь или сделать эту вещь в подсказке. Затем ИИ уходит и делает это, а затем заканчивает и говорит: "Хорошо, я сделал это". А затем он говорит: "Хорошо, отлично. Иди и построй эту вещь". И вы знаете, и сделай все, что я сказал, чтобы построить эту вещь. И он говорит: "О, хорошо. Я сделаю это снова". И прорывная природа того, что это означало, заключалась в том, что ИИ часто просматривал свой код и понимал, что он что-то упустил каким-то образом, верно? Так он выяснил, что он не совсем закончил. И это довольно распространенная проблема с инструментами кодирования ИИ в прошлом году. Он не совсем закончил. Он не совсем дошел до конца, и поэтому он говорил: "О, да, я должен был исправить эту часть", а затем делает это снова, а затем, а затем, когда он останавливается и говорит: "Хорошо, я определенно закончил сейчас, 100%, это сделано, это закончено", а затем что вы делаете? Вы даете ему еще один запрос, говорите: "Иди и создай функцию". Это как "Я создал функцию", и он пытается и смотрит снова. О, да, на самом деле была эта крошечная вещь, которую я должен был сделать. Я действительно закончил. И так далее, и так далее. Так что вы можете увидеть полезность прохождения через этот цикл, где вы просто создаете функцию, а затем просто просите ее создать функцию, а затем вы просите ее создать функцию. Так что это своего рода первая стадия циклов Ральфа. И я хотел бы, чтобы мы попробовали это. Итак, во-первых, я собираюсь провести немного живого кодирования. Держитесь за шляпы. Посмотрим, как это пойдет. И мы собираемся попробовать сделать этот процесс, используя Claude code, чтобы увидеть, куда это приведет. Итак, позвольте мне начать менять то, чем я делюсь. Извините, это займет минуту. Хорошо, отлично. Этот, все могут это видеть? Хорошо, люди видят это сзади? Хорошо, вы хотите, чтобы я увеличил размер? Получил одобрение. Отлично. Итак, это кусок кода, который я написал за три минуты вчера вечером. Так что он не очень хороший, но в этом вся суть. Мы исправим это. Итак, это буквально таймер Помодоро, и вы можете видеть, как он работает. Так что, если я перейду к Python и наберу Pomodoro start, ура, у нас есть таймер Помодоро. Это все, что он делает. Он буквально просто делает старт. Нет никакого способа узнать, закончен ли он или завершен, или что-то в этом роде, но это то, что мы собираемся изменить. Другая классная вещь, которая очень важна для любого уважающего себя проекта Vibe coded AI, это то, что у него есть тесты. Так что, смотрите, у него есть тест. Есть один тест, и он проверяет, запускается ли он. Так что это здорово. Так что, если мы быстро посмотрим, и вы должны простить меня, если вы не фанат Vim, потому что я им являюсь. Хотя я почти не использую его сейчас, это довольно грустно, знаете ли, 20 лет мышечной памяти просто исчезло. Но, но да, так что все, что он делает, это буквально просто запускает команду старт, а затем сохраняет в вашем Pomodoro в вашем домашнем каталоге. Он сохраняет время, когда вы начали. Действительно, действительно просто. Так что это очень простой, довольно прямолинейный проект. Разница в том, что у него есть новая папка с разными вещами. И это тикеты. Так что есть множество способов, которыми мы могли бы улучшить этот таймер Помодоро. И первый тикет — было бы действительно здорово знать, сколько времени осталось на нашем Помодоро, а не просто начинать его. Так что я создал очень простую систему тикетов, чтобы позволить нам просто захватить некоторые изменения. Это не было одноразовым. Так что я понятия не имею, хороши ли эти тикеты на самом деле. Фактически, я не смотрел на некоторые из них. Так что посмотрим, как это пойдет. Но, но идея в том, что мы можем использовать их для начала построения рабочего цикла, чтобы что-то сделать. Так что я собираюсь начать с того, что запущу Claude, и я буквально скажу: "Напиши первый тикет". Так что потерпите, пока Claude запустится. В некотором смысле я очень рад, что они на самом деле не выпустили Mythos вчера, потому что я думаю, что я не думаю, что он будет работать сегодня, если бы они это сделали. Это действительно не работает, не так ли? Это расстраивает. >> Вау. Попробуем снова. >> Есть проблема с Wi-Fi. >> О, хорошо. Я имею в виду, это может вызвать некоторые проблемы с моим докладом, но посмотрим. У меня нет одного из тех модных новых Mac, которые позволяют мне запускать. Нет, это фактически зависло мой компьютер. Можете себе представить? Это работало буквально 10 минут назад. Позвольте мне просто посмотреть. Потерпите, пока я отлаживаю свою машину. >> Есть, э-э, я думаю, я на другом Wi-Fi, так что должно быть, э-э, нет. Да, Wi-Fi отключился. Время раздачи. >> Возможно, придется. Хорошо, подождите секунду, пока я подключусь к своему телефону, у которого, я думаю, приличный 5G, так что все должно быть хорошо. Хорошо, давайте посмотрим, станет ли лучше. >> Ура. Хорошо, давайте попробуем снова. Э-э, не тот. Э-э, круто. Итак, э-э, код Pomodoro workshop. Хорошо, достаточно ли это? >> Хорошо. Давайте попробуем этот Claude через силу 5G. Посмотрите на это. Работает. Фантастика. Хорошо. Итак, э-э, как я уже сказал, у нас есть очень, очень простой, глупый таймер Помодоро. И мы собираемся реализовать тикет. Так что я собираюсь сказать: "Реализуй этот тикет". Так что он находится в doc tickets 001. Отлично. И я просто скажу это. Посмотрим, что произойдет. Так что он прочитает тикет, который я показал вам кратко ранее. Это очень просто. И все, что он делает, это реализует статус, чтобы увидеть, насколько мы продвинулись. Э-э, а затем, что я хочу, чтобы он сделал, что я сделаю после этого, это я скажу, когда он закончит, потому что это будет буквально два файла. Ему не будет сложно это сделать. А затем я скажу: "Реализуй это снова и посмотри, что произойдет". Так что есть несколько разных способов сделать это. И нет никакого установленного способа сделать цикл Ральфа. Это действительно концепция, а не что-либо еще. Отлично. Итак, он сделал тикет. Если я быстро сделаю быстрый get diff, вы увидите, что он добавил команду статуса. Я думаю, когда я поднял руки раньше, большинство из вас — кодеры. Так что, надеюсь, это не сложно следить. И тогда у нас есть новый тест. Посмотрите на это. Мы добавили тест. Он даже не просил об этом. Он добавил тест. О боже мой, во что превращается мир? Так что теперь я собираюсь сказать то же самое. Год назад это был бы действительно важный шаг, потому что он определенно что-то упустил бы. В то время как теперь это как бы "вы уже сделали это". Все в порядке, верно? Так что Opus теперь намного лучше замечает, когда вещи сделаны. Теперь традиционный цикл Ральфа просто продолжал бы это делать, верно? И он продолжал бы с этим вроде "реализуй этот тикет, реализуй этот тикет, реализуй этот тикет". И это как бы скучно, и это на самом деле не сделает ничего другого. И в какой-то момент, когда я пробовал это раньше, это интересно. Он сделал что-то другое. Он фактически заметил, что он должен был сделать, это фактически обновить статус до "сделано". Так что процесс сработал, который не работал раньше. Так что это здорово. Так что он фактически заметил что-то, чего он не сделал. Так что там вы видите фундаментальный ранний принцип ранних циклов Ральфа, верно? Идея в том, что вы можете просто пронестись и сделать что-то, и он в конечном итоге найдет то, что упустил. Поскольку он упустил это, я просто попробую еще раз, но я не думаю, что он придумает что-то еще. Как я уже сказал, последние модели действительно не нуждаются в этом шаге в той же степени. Они, как правило, просто делают это. Фактически, на этот раз это просто вроде бы, "О, если вы запускаете цикл Ральфа, который берет следующий тикет. О, это смешно. Он буквально раскрывает мою презентацию. Это фантастика. Хорошо. Я хотел бы, чтобы мы сделали, я думаю, как отправную точку, другая вещь, которую вы можете сделать, это просто убить контекст, а затем вы можете сделать то же самое снова и сказать: "Реализуй doc tickets 001". И мне лень печатать. Он найдет. И тогда, э-э, так что теперь, что я делаю, это фактически делаю то же самое, но без того, чтобы он знал о предыдущем контексте. Так что будет довольно интересно посмотреть, что он с этим сделает. Я предполагаю, что он найдет, предполагая, что он нашел тикет. Да, он нашел тикет. Это было достаточно легко для него. Он просто запускает тест, чтобы убедиться, что они работают. И все проходит. Хорошо. Так что он доволен. Так что некоторые люди, когда мы начали использовать циклы Ральфа, они не делали этого в том же статусе. И был ранний плагин Claude code, который просто на хуке остановки, который работает прямо сейчас, когда он останавливается, он просто делал бы ту же команду снова. И так же, как я, вводя одно и то же каждый раз, но это не очень хорошо работало, потому что он не продвинулся далеко. В то время как теперь, что более полезно, или что люди начали делать, это просто запускать Claude code в своего рода цикле. Так что они делали бы что-то вроде while true, а затем do Claude, implement ticket 001, верно? И затем done. И тогда это просто пройдет. Не совсем на самом деле, потому что я не делал Claude P, но, по сути, это то, что они делали. О нет, теперь я действительно испортил это. Я действительно не должен был нажимать Enter на этом, не так ли? Хорошо, вот оно. Но это, по сути, то, что делали люди. Самый глупый цикл Ральфа — это буквально просто цикл while, и он просто проходит и реализует вещи, супер, супер легко. Итак, что является следующим шагом в цикле RA? Ну, на самом деле, что мы собираемся сделать сейчас, это я попрошу вас дойти до этой точки, а затем я отвечу на вопросы от других людей. Так что позвольте мне просто переключиться обратно сюда. Я надеюсь. Вот оно. Да, отлично. Итак, что я хотел бы, чтобы вы сделали, если бы вы могли открыть свои ноутбуки и взять код отсюда. Так что это просто на моем GitHub, как Pomodoro workshop. Вы должны быть в состоянии найти это довольно легко. И вы видели, как я это запускал. Это очень просто. Вам может понадобиться настроить Python на вашей машине. Так что, надеюсь, это не будет слишком сложно, или вы просто запускаете чистый Python. Pomodoro.py даст вам команду, которую вы можете набрать, а затем это просто юнит-тест для запуска теста Pomodoro. Супер легко. А затем в шаге четыре я хочу, чтобы вы запустили Claude Code или Codeex и попробовали создать этот тикет и убедились, что он работает. И это будет отличная отправная точка. Но пока не создавайте больше тикетов. Не позволяйте ему зайти слишком далеко. А затем, если вы действительно привыкли к этому, и это просто буквальная очевидность для вас, попробуйте в Codeex, попробуйте в чем-то еще. Попробуйте, возможно, попробуйте настроить что-то похожее в одном из ваших собственных проектов. Так что что-то другое. Так что я собираюсь отвечать на вопросы сейчас, пока люди набирают это. Я дам вам, возможно, несколько минут, чтобы настроить это, а затем мы перейдем к следующему шагу. Есть ли у кого-нибудь вопросы или комментарии или мысли? У меня есть микрофон. Если люди хотят спросить что-нибудь. Да, вот он. >> Он должен включиться через секунду. >> Надеюсь, ребята сзади. Может быть, он не включен. Он включен? >> Да, вы можете крикнуть, и я повторю. Да, это может сработать. >> Это? Могу я просто проверить, включен ли он? >> Да, выглядит включенным. Это странно. Кричите, и я повторю. В любом случае, о, вот оно. Вот оно. >> Отлично. >> Э-э, я немного поиграл с методом BMAD, который, я не знаю, видели ли вы его. Э-э, у него есть парень, парень, который, по сути, написал кучу навыков и команд для следования полному процессу Agile от >> вы знаете, и у него есть агент для сборки, тестирования >> вы знаете, всего, и, и я полагаю, >> так что, э-э, вы делали что-нибудь, где, используя этот вид процесса цикла Ральфа, вы проходите этот цикл, вы проходите полный жизненный цикл разработки программного обеспечения на каждом этапе, а затем Да. Э-э, я, возможно, доберусь до этого в конце. Э-э, но да, я пробовал некоторые из этих вещей. Э-э, это действительно интересно, и это задает очень хорошие вопросы как о контексте, так и о фактической ценности работы. Это действительно интересно. Так что да, мы поговорим об этом, возможно, больше в конце. Так что спросите снова, если я не дошел до этого, просто задайте тот же вопрос снова, и мы доберемся до него в ралли. >> Спасибо. >> Э-э, кто-нибудь еще задает вопросы? Как люди справляются с настройкой? Кто-нибудь смог настроить? Вы знаете, помашите мне, если вам удалось запустить. Отлично. Отличный старт. Кто-нибудь смог реализовать первый тикет? Ура. Несколько человек. У вас есть вопрос? >> О, иди. Вы сделали это. Отлично. Фантастика. Да, я, вероятно, должен был дать разные инструкции для задания вопроса по сравнению с завершением. Это здорово. Так что несколько человек начали. Фантастика. Отлично. Так что вы, вероятно, можете понять, куда это ведет. И если вы внимательно следили за живой демонстрацией, вы уже знаете ответ. Я возьму у вас микрофон, чтобы вам не пришлось его держать. Спасибо. Э-э, но да, вам не обязательно останавливаться на одном тикете. Теперь, Мэтт ПКО случайно не в комнате? Я знаю, что он проводит семинар после этого. Он человек, у которого я это взял. Так что, если он смотрит видео, спасибо, Мэтт. Это было откровением для меня еще в сентябре прошлого года. Он опубликовал блестящее видео на YouTube именно о том, как вывести циклы Ральфа на новый уровень, потому что, когда они только появились, я заметил это в интернете. Я поиграл с этим и подумал: "Да, это нормально. Это как бы круто. Он как бы замечает вещи, которые ИИ может делать, где он что-то упустил, и он может делать вещи немного лучше, но это не изменит все, что я делаю". А затем ответ заключается в том, что он действительно меняет весь мой подход к работе и коду сейчас. Так что, я думаю, действительно интересное — это не то, как я убеждаюсь, что Claude закончил эту одну вещь. Это то, что происходит, если я направлю этот вид цикла на кучу дел, верно? Что происходит, когда мы направляем его на целый список дел? Теперь я попробовал это. Я написал пост в блоге об этом, который был немного депрессивным, потому что он просто показал полное фиаско во всем посте, честно говоря, но это было больше о том, что я пытался сделать. Я пытался заставить Claude, я думаю, это был Claude в то время, разбить большой проект на множество разных тикетов. А затем я заставил его разбить все эти тикеты на более мелкие тикеты. А затем я заставил его выяснить все зависимости между этими тикетами и записать их все очень тщательно. А затем я заставил его выяснить, как он мог использовать кучу разных агентов. Извините. У вас был вопрос? Один, два, один, два. Хорошо. У меня проблема с Wi-Fi, и я не сделал клон. >> О, мне жаль. Идите сюда. >> Да. Да. Пару минут. Да. Спасибо. >> Да, это нормально. Я оставлю это. Это нормально. >> Все ли оценили слайд. Хорошо. Хорошо, вот оно. >> Э-э, так что, э-э, эти слайды, кстати, созданы с использованием навыка слайдов с помощью Nano Banana Pro. Он абсолютно невероятен в создании слайдов. Я не добавил, кроме как крошечную вещь, вроде добавления QR-кода, я не добавил никакого текста к этим слайдам. Это просто плоские изображения в Google Slides. Они действительно, это невероятно в создании слайдов. Э-э, о чем я говорил? Да. Так что, э-э, так что идея простого создания цикла Ральфа для выполнения одной вещи казалась немного бессмысленной, и это просто обходило некоторые ограничения. Если вы направите этот цикл на кучу работы, тогда он станет невероятно мощным. И, как я уже говорил ранее, я создал этот огромный сложный граф зависимостей с кучей разных тикетов о том, как я собирался построить эту действительно сложную систему для себя. А затем я запустил около шести или семи параллельных агентов и сказал: "Итак, ты делаешь один поток, и ты делаешь этот поток, и ты берешь этот тикет". И это просто ужасно провалилось, потому что система просто не могла понять, что было сделано, а что нет. Было много конфликтов между тикетами, вроде: "Я ничего не могу сделать, пока ты не закончишь этот общий тикет, так что я сделаю это". И другой Claude сказал: "Ну, я ничего не могу сделать, пока этот общий тикет не будет сделан, так что я сделаю это тоже". А затем они оба реализовали одно и то же, и это был огромный беспорядок. Так что это было действительно очень удручающе, и я написал об этом целую статью, и я, по сути, сказал: "Невозможно оркестровать большое количество агентов", вы знаете, "вы просто не можете этого сделать", что, очевидно, было чушью, но так я чувствовал в то время, и интересно было то, что я фактически воссоздал водопадные процессы, которые наблюдались в некоторых худших компаниях, когда я начинал кодировать для себя в 90-х, где люди писали документы с требованиями, которые приходилось тащить на собрания по требованиям. где весь проект был специфицирован заранее со всеми сложными зависимостями, переданными команде разработчиков, а затем им давали два года на сборку. Я вижу, как некоторые, возможно, более опытные люди в комнате кивают и улыбаются мне, когда я говорю об этом, но да, к счастью, мне удалось избежать работы в таких командах, но некоторые из моих друзей это делали, и это было абсолютно ужасно. И то, что я сделал, это, по сути, я дал это Claude, чтобы он сделал. Я дал этот водопадный процесс Claude, чтобы он организовал и выяснил, как он идет, что было действительно плохо. Так что неудивительно, что это не сработало. Если люди не могут этого сделать, как ИИ должен сделать лучше? Однако, если вместо того, чтобы говорить "со всеми вашими тикетами", "первый самый важный, затем этот, а затем вы должны сделать этот, но не думайте об этом, пока не сделаете это". Вместо того, чтобы делать это, я вернусь на минуту. Все ли в порядке с этим слайдом? Кстати, кому-нибудь еще нужен слайд? Хорошо. Хорошо, мы в порядке. Правильно. Вместо того, чтобы делать это, вы можете просто запустить цикл, где вы говорите что-то вроде: "Эй, просто выбери следующий самый важный тикет". Это так просто. Просто выясни, вот все тикеты. Просто выясни, что является самым важным следующим, что нужно сделать. Хорошо? Вам не нужно беспокоиться о зависимостях. Вам не нужно самому разбираться. ИИ вполне способен посмотреть на все это, выяснить зависимости на лету на основе того, что только что было сделано, и выяснить, что является следующим самым важным делом. Это на самом деле довольно легко для ИИ. Единственное, что он не может сделать так легко, это управлять этим процессом параллельно. Но, честно говоря, когда мы запускаем такие циклы, если мы запускаем их непрерывно, узким местом обычно является не количество агентов. Обычно это вы, просто успевающие за ИИ, который просто делает вещи снова и снова. Так что давайте забудем параллелизм на минуту и просто начнем с цикла. Посмотрите, сможете ли вы успеть за ИИ, просто одним ИИ, который работает непрерывно, и вы в порядке. Не беспокойтесь о параллелизме пока. Не беспокойтесь о гастауне, ни о чем таком пока. Какими бы впечатляющими ни были эти проекты, вы можете просто начать с простого цикла. Это нормально. Итак, что я хотел бы, чтобы вы сделали снова в этот момент, это я быстро покажу, как это работает для тех из вас, у кого нет ноутбуков, но затем я хотел бы, чтобы вы просто попробовали это на своем компьютере. Итак, снова, позвольте мне найти свою мышь, а затем перейти к демонстрации моего экрана снова. Хорошо, отлично. Так что, если я вернусь к Claude, на самом деле, я сначала вернусь к Vim и посмотрю на папку тикетов. Так что у меня есть куча тикетов здесь. У меня есть команда статуса, у меня есть команда остановки, у меня есть пользовательские длительности. Никогда не использовал это. Я использую другие вещи, вроде, знаете ли, меток и всего такого. Я мог бы попытаться разобраться в зависимостях сам, но мне это действительно не нужно. Я могу просто просто зайти в Claude и сказать: "Реализуй следующий самый важный тикет, используя принципы TDD из doc tickets". Зафиксируй, когда закончишь. Что-то вроде этого. Хорошо. Так что давайте посмотрим, что он сделает. Так что он читает кучу тикетов. Как вы видите, он прочитал номера один, два и три, и решил, что следующий — номер два. Он просто сделает это. Это здорово. Так что он будет работать над этим. Теперь интересная вещь сейчас в том, что после того, как это закончится, теперь он использует TDD, так что он прочитал тест первым. Когда он закончит, надеюсь, да, он отметил его как сделанный. Очень хорошо. Запомнил время и затем должен зафиксировать. Давайте посмотрим, сделает ли он это. >> Извините. >> Нет, это совершенно новая сессия. Хотя я думаю, что у него, вероятно, все еще был рабочий каталог из предыдущей. Так что, на самом деле, я думаю, что он есть. Так что то, что он не сделал, это зафиксировал их атомарно, что определенно является чем-то, что я мог бы улучшить в своей подсказке, но мы можем обсудить это через минуту. Так что тогда, надеюсь, он просто сделает это, а затем он закончит. Да, отлично. Он сделал это. Фантастика. Теперь я могу либо сделать это снова как цикл, либо просто перезапустить новую сессию. Просто сделайте то же самое, и на этот раз он выберет что-то другое, а затем продолжит работать. Теперь вы можете представить, что если я помещу это в цикл while, то теоретически это должно пройти через все тикеты каким-то образом. Теперь, будет ли то, что я получу в конце, на самом деле тем, что я хочу, это совершенно другой вопрос. Но он определенно сделает много работы подряд. Так что я хотел бы, чтобы вы попробовали. Так что, если у вас есть приложение, работающее на ваших компьютерах, посмотрите, сможете ли вы заставить его пройти через столько тикетов, сколько вы хотите, в течение этого времени. Так что он должен быть в состоянии продолжать. Посмотрите, сможете ли вы заставить его написать небольшой скрипт bash, как я сделал, где вы делаете while, true, а затем Claude. Я кратко покажу вам, как это сделать. Фактически, если я быстро сброшу, чтобы он мог начать с самого начала. И фактически, я на самом деле пойду на один шаг дальше. Вот оно. Отлично. Да, это правильное место для начала. Итак, если вы сможете заставить его сделать это, то это здорово. Другое, что вы можете сделать, это вместо использования Claude таким образом, вы можете использовать Claude-p. Можете ли вы все это видеть? Хорошо. Кстати, я не уверен, как я могу сделать это. >> Да. Да. Clear — это хороший вариант. Да. Clear Claude. Вот оно. Так что мы можем сделать, это фактически использовать Claude.p вот так. И вы можете заставить его выводить, просто делая stream JSON или что-то в этом роде. Как это называется? Что-то вроде stream JSON. Э-э, подождите секунду. Давайте посмотрим. Я думаю, они удалили его. Это раздражает. Неважно. Который не увидит никакого вывода. Так что нет ничего, что могло бы помешать вам настроить его таким образом, а затем вы можете просто сделать это. >> Вам нужно настроить CL с полными разрешениями, чтобы он не работал должным образом. >> Да. Так что единственный способ, которым это работает, это если вы хотите запустить это должным образом и чтобы оно не останавливалось, вы должны быть довольно избирательны в отношении разрешений, которые вы ему даете. Так что вопрос был, предположительно, вы должны запустить claw с полными разрешениями, чтобы это работало. Да. Да, вы должны. >> Это зависит от того, что вы делаете. Да, если вы работаете в небольшом изолированном проекте, как этот, шансы того, что он найдет что-то еще, очень малы. У меня есть проект под названием lockbox, и его единственная цель — попытаться остановить его от глупых действий, когда он читает недоверенные токены, которые потенциально могут сбить его с пути, он, по сути, просто предотвращает любой доступ к файловой системе или что-либо еще после этого. Так что есть способы управлять этим. Итак, что это делает в фоновом режиме, вы на самом деле не видите, как он что-то делает, потому что у меня нет этого режима вывода, но вы можете выяснить, по сути, что для запуска этого в каком-то скрипте. И если я, фактически, если я выйду из этого, надеюсь, он остановится. Вот оно. Нет, просто продолжайте. Извините. Явно, явно более готовый к производству цикл Ральфа выглядел бы не так. Но вы можете видеть, что он сделал много работы. Так что, если я перейду сюда, вы увидите, что он уже начал с команды статуса. И он просто работает над этим в данный момент. Так что он снова начал с самого начала. Он просто работал. Так что есть несколько вещей, которые следует учитывать здесь. Во-первых, обратная связь действительно очень важна с циклами Ральфа. Вы знаете, вам нужно иметь возможность запускать его в режиме, в котором вы можете сказать, что он делает и как он это делает. Так что этот супер базовый, который я дал вам там, не очень хорош. Это не тот, который я бы рекомендовал запускать в производстве. Точно так же вам нужно выяснить, какой именно является подсказка для Ральфа. И это действительно, действительно важный момент. И я думаю, что я хотел бы, чтобы вы сделали, когда вы пробуете это, да, он будет строить кучу тикетов подряд, но точно так же он будет делать их таким образом, который вам не нравится. Так что, например, если я запускаю этот тест, который буквально просто реализует следующую самую важную вещь, давайте начнем с этого, я, вероятно, сделал бы что-то вроде "run simplify", который является действительно полезным навыком от Claude от команды Anthropic, когда закончено, и убедитесь, что вы рефакторите, чтобы уменьшить дублирование. Вы можете представить, что вы могли бы создать довольно сложный навык для этого. И я покажу вам мой фактический навык для этого в конце. Но пока вы работаете над этим, попробуйте выяснить, есть ли способы улучшить то, что он делает. Так что дайте ему попробовать, позвольте ему принять решение, а затем позвольте ему написать код, а затем прочитайте код и подумайте: "Хорошо, что я мог бы улучшить в этом процессе?". А затем сбросьте все и затем улучшите подсказку после этого. Попробуйте это и посмотрите, как это работает. Пока люди работают над этим на своих машинах, я с удовольствием отвечу на вопросы. >> Да. >> Вы использовали навыки, такие как суперсилы? >> Какой? Извините. >> Суперсилы. >> То, что я сделал, это я направил Claude на весь репозиторий и сказал: "Выясни все, что в настоящее время не входит в мой набор навыков, и реализуй их для меня с моим собственным контекстом", и это сработало довольно хорошо. Так что я не использовал эти конкретные, но я, по сути, украл их. >> Это здорово. >> Тогда, потому что я много использую суперсилы, а затем я просто даю такие задачи, а затем прошу его >> запускать несколько агентов в фоновом режиме. Да. И вы делали это, это то, что я >> Да. Да. Так что вы можете сделать, это есть версия agent teams, которую я думаю, я отключил в этом конкретном экземпляре Claude code, но что может произойти, это вы можете заставить Claude использовать суб-агентов в команде. Так что фактически, я думаю, я могу включить это, если я найду agent teams. Вот оно. Claude code experimental agent teams. Так что, если я возьму это, а затем запущу Claude с этим включенным, тогда вы должны быть в состоянии сказать: "Используй команду агентов для реализации doc tickets в этом репозитории" или что-то в этом роде. И я не думаю, что это на самом деле работает в T-Max. Так что, так что, возможно, это не сработает. Так что я, возможно, просто попробую это снова. Потерпите секунду. Так что, если я возьму это, а затем вставлю это туда. А затем возьму это, а затем запущу T-Max. А затем запущу это в теории. В теории, это должно начать вызывать других агентов, и потому, как я сказал, пытаться оркестровать циклы Ральфа или оркестрировать агентов самому, чтобы попытаться организовать все зависимости и сложности, на самом деле очень сложно. Но вы можете просто дать работу Claude, и он сделает гораздо лучшую работу по управлению этим. Так что, как вы видите, он уже решил напечатать все это, имя файла и тикет для каждого, и у него есть куча там. Так что он фактически решил, что они все последовательны. Так что он не должен запускать ни один из них параллельно, что довольно интересно. И затем он должен теоретически запустить агент реализации. Давайте посмотрим, будет ли он. Я думаю, он просто работает как суб-агент. Неважно. Я не уверен, что это сработает. Неважно. Если вы сможете заставить его сделать это, дайте мне знать. Но, но, но, по сути, это экспериментальная функция, которая появилась всего несколько недель назад, которая позволяет ему, э-э, запускать суб-агентов в Claude также, чтобы делать вещи. Есть ли еще вопросы, пока люди работают над этим? Да. >> Вы сказали, что вы создали автоматизацию Ральфа, верно? Так что же было критерием обратной связи? Так что, например, что решает, является ли это хорошей статьей в газете, вроде как веб-фреймворк, но что такое хорошее, если это динамично, если это статично, вы помещаете это в файл Claude MD? >> Да, отличный вопрос, как это работает? Так что, так что, э-э, вопрос заключается в том, чтобы просто повторить первую половину этого: когда я использовал рабочий процесс NA10 для создания цикла Ральфа для создателя информационных бюллетеней, как я знал, как агент знал, что такое хорошее, когда он приходил? Как я определял "хорошее"? Отличный вопрос. Так что, так что, что касается информационных бюллетеней, я уже писал свой информационный бюллетень вручную. Так что я примерно знал, как я хотел, чтобы он выглядел и звучал. Я также провел много исследований, используя навык исследования, который был чем-то вроде, который я построил, который похож на "отличные информационные бюллетени", и я также делал такие вещи. Я также говорил такие вещи, как, это фантастически написанный новый, на самом деле, я просто собираюсь, это не то, что я делаю, я на самом деле делаю, это фантастический информационный бюллетень, который я написал или прочитал где-то, не могли бы вы, пожалуйста, выяснить, почему он так хорош, и каковы редакционные принципы, которые пошли в этот информационный бюллетень, чтобы он работал действительно, действительно хорошо, а затем я просто вставлял это в, вставлял информационный бюллетень, заставлял его выяснять, что в нем было хорошего, а затем, а затем я проверял его, а затем я говорил: "Да, здесь все еще есть элемент человеческого вкуса". Вы не можете полностью обойтись без этого. Сказав это, у меня также есть навык симуляции аудитории, который, по сути, использует кучу разных персон для разных клиентов или потенциальных клиентов, с которыми я работаю. А затем я запускал бы его, запускал бы готовый информационный бюллетень через него и говорил: "Запустите все это параллельно", а затем, когда вы закончите, выясните способы, которыми я могу улучшить этот информационный бюллетень или навык информационного бюллетеня, чтобы сделать это. Так что есть несколько разных способов сделать это. Симуляция аудитории — это супер экспериментальная, но она на самом деле очень эффективна и часто выявляет идеи, о которых я просто не думал. Я, моя личность, я немного немного рассеян, немного так, как я говорю и общаюсь, часто мои клиенты являются
Не так. Итак, эм, я склонен заваливать людей информацией, и иногда мой навык говорит: "Хорошо, Крис, у тебя много идей, тебе просто нужно сосредоточиться на одном главном пункте, который имеет смысл", и я говорю: "Это так полезно". Итак, эм, так что да, что довольно полезно и интересно, так это то, что вы можете использовать ИИ для получения обратной связи об ИИ, вот так. Отличная вещь в этом конкретном, эм, проекте, который мы пишем, этой маленькой штуке для помидоров, которую пишут люди, заключается в том, что это инструмент командной строки, и очень легко понять, работает ли он. Так что это идеально подходит для цикла Ральфа, и на самом деле эти маленькие инструменты, которые мы создаем для себя, например, навык рассылки, идеально подходят для такого рода цикла. Я часто говорю: "Я хочу улучшить этот навык. Не могли бы вы, пожалуйста, обменяться мнениями и написать контент, затем использовать другого агента, чтобы прочитать контент, решить, хорош ли он, придумать, что улучшить, затем отправить это обратно и просто запустить это как цикл. Эм, есть действительно классный, эм, я не собирался рассказывать вам об этом до конца, но расскажу сейчас." Эм, есть действительно классная, эм, функция в коде под названием цикл, где вместо, эм, создания, на самом деле, я начну это в новой сессии. Вместо того, чтобы просто делать эту штуку, где вам приходится создавать свой собственный цикл while, вы можете сказать: "цикл каждую минуту, эм, создай следующий тикет из тикетов doc, по сути". И тогда произойдет следующее: эм, цикл настроит, эм, своего рода таймер повтора. И, как вы видите, у него есть инструмент создания cron, что для непосвященных просто означает делать что-то каждую минуту. Вот что означают эти пять звезд. И, эм, что он собирается сделать, так это буквально просто создать следующий тикет. Когда он закончит, он снова проверит cron, создаст следующий тикет. Когда он закончит, он снова проверит cron и продолжит. Так что это отлично подходит для работы над кучей тикетов, но это не просто применяется к набору вещей, которые у вас были раньше. Если вы подумаете об этом, я просто оставлю это работать там. Вы могли бы иметь цикл, который делает что-то вроде этого. Цикл каждый час проверяет linear на наличие новых отчетов об ошибках из теста. Эм, и тогда я просто оставлю это работать. Эм, о да, не могу написать. Эм, просто оставьте это работать, и, эм, вы получите, вы раздражаете свою команду тестирования. Но, но в любом случае, суть в том, что вы можете запускать такие циклы, чтобы выполнять работу довольно интересным, я бы сказал, динамичным способом. Даже несмотря на то, что это довольно простой цикл, он просто находит следующую вещь, делает следующую вещь. Если вы подумаете об этом, чертовски много нашей работы — это просто циклы. Если мы разработчики программного обеспечения, что мы делаем? Мы смотрим на бэклог. Мы выбираем верхнюю вещь из бэклога. Мы перемещаем ее в, знаете ли, в процессе. Мы назначаем ее себе. Мы проверяем архитектуру. Мы выясняем, нужны ли нам другие контексты. Мы, эм, смотрим на изменение. Мы, эм, вносим изменение. Мы отправляем PR. Мы, эм, эм, знаете, ждем обзоров. Мы, эм, комментируем обзоры. Мы отклоняем обзоры. Мы иногда вносим изменения. Мы отправляем PR. Мы сливаем PR. Затем мы проходим процесс выпуска. Затем мы начинаем снова, берем следующий тикет и так далее. Это цикл. Это довольно сложный. Эм, как мы говорили всего минуту назад, но, но это все еще цикл. Возможно, заставить ИИ управлять всем этим циклом. Нет причин не делать этого. Эм, и это, по сути, то, что происходит здесь, когда, когда, эм, вы можете настроить, на самом деле, вы никогда не напишете это. Вы гораздо чаще напишете что-то вроде этого, где вы скажете: "каждый час, эм, поиск ошибок в linear", и у вас будет навык, который кодирует все эти, эм, эти фрагменты информации, которые я только что дал ему, таким образом, который будет работать для вас и вашей конкретной команды. Все ли знают, что такое навыки, прежде чем я продолжу? Нет. Я думаю, почти все знают, что такое навыки. Если вы еще не поняли, что такое навык, то это ваше домашнее задание. Идите и поймите, как работают навыки. Это лучший, эм, способ, который у нас есть на данный момент для упаковки полезных маленьких пакетов контекста и скриптов и перемещения их в разные места или, или создания разных вещей. Так, например, я имею в виду, у меня их около 50, которые я написал. Эм, и тогда они просто делают много разных вещей. Отличная вещь в навыках заключается в том, что вы можете вызывать их в свой контекст, когда они вам нужны. Так, например, и я просто сделаю это. Я мог бы сказать: "Ты знаешь, как создавать изображения, используя, эм, nano banana?" И я могу задать, эм, ИИ вопрос, и ответ будет: "Ну, я мог бы как бы поискать это, эм, но на самом деле он знает, что у меня есть навык изображений для этого, как ни странно. Но если бы у вас его не было, он бы не знал. Но если я затем сделаю изображения и скажу: "Как создавать изображения? Дайте мне пошаговую инструкцию". Тогда, и что он собирается сделать, так это то, что он вызовет этот навык изображений. Эм, и тогда он расскажет мне, как именно он это делает. И я на самом деле написал, на самом деле, я увеличу это, чтобы вы могли видеть, я на самом деле написал скрипт в этом навыке, который на самом деле выполняет генерацию для меня. Эм, так что это кодифицировало процесс этого, и он просто выбирает, какой, эм, эм, модель он хочет, и дает ей контент, и у меня есть эти конкретные шаблоны, которые я использую для создания конкретных навыков Nanabanana. Nanaban великолепен. Эм, вот как я создал презентацию, которую вы смотрите. У меня есть навык слайдов и навык изображений, которые работают в тандеме для создания этих презентаций. Круто. Итак, посмотрим, что сделала другая вещь. Как вы видите, она уже на тикете шесть. Эм, отличная вещь в Ralphs — это то, что вы просто продолжаете работать и продолжаете говорить о чем-то другом, а он сделал кучу всего здесь. И он просто остановился в этой точке, но через секунду, эм, надеюсь, если мы просто подождем, он снова начнет весь процесс. Вот оно. У него есть запланированная задача для выполнения, и он снова работает. Эм, так что вы можете просто, вы можете просто оставить сессии claw code работать с такими циклами. Они длятся около трех дней, так что вам придется их обновлять. Но вы можете, вы можете просто сделать это и продолжать работать, даже прежде чем перейти к более сложному написанию скрипта, который оборачивает claw для выполнения задачи, и всех этих вещей. Эм, есть еще вопросы? У кого-нибудь есть что-нибудь интересное или удивительное из их цикла Ральфа? Кто-нибудь пробовал это на своей реальной работе? Это было бы интересно. Да. Как, какой у вас был опыт? У вас все еще есть микрофон? >> Да. >> Да. >> Да. Я просто сделал скриншот цикла Ральфа для фреймворка для создания контекста веб-сайта. Так что Claude просто делает скриншоты, а затем смотрит на макет, потому что у него проблемы с геометрией, вроде как с пробелами. >> Это работает хорошо. >> Приятно. Круто. Так вы на самом деле используете скриншоты Claude Claude для получения обратной связи. >> Да. >> Да. Это довольно продвинуто. Мало кто этим занимается. Эм, люди пытаются использовать, эм, эм, вроде, эм, playright и тому подобное для создания скриншотов, а также плагин claudin chrome, который поставляется с claude. Можно использовать это, чтобы заставить его управлять Chrome, а затем делать скриншоты того, что происходит. У меня был смешанный успех с этим, потому что это довольно сложная вещь для управления. Но, но для простых скриншотов это работает очень хорошо. Для моих, эм, изображений и контента, эм, которые я пишу, эм, когда он запускает эти навыки изображений, он всегда сначала смотрит на изображения, чтобы увидеть, есть ли какой-либо странный AI-гарбл текст или что-то еще, и он отклонит их, даже не показывая мне, если есть проблема с изображением. Эм, был ли еще один вопрос или комментарий? Да, здесь есть вопрос. Можете просто передать микрофон? Это нормально? Большое спасибо. >> Эм, я думаю, это близко к уже заданному вопросу. Эм, потому что я не совсем знаком с Rough Loops. Если я попрошу агента реализовать задачу один, которая уже была реализована, проверит ли он качество реализованного или только проверит, было ли это сделано или нет, или отмечено или нет? Да, это очень зависит от того, для чего вы это настроили. Итак, так что нет никакой магии в цикле Ральфа. Это просто цикл. Так что этот цикл, который я сейчас запускаю, на самом деле, я, вероятно, должен просто сказать: "цикл стоп". Иначе он будет продолжаться. Используйте мою квоту. Я думаю, я думаю, вы можете просто остановиться так. У нас теперь довольно полнофункциональная установка помидоров. Давай. Время остановиться. Эм, так что это зависит, это полностью зависит от того, что вы пишете. Так что, если вы, эм, если вы пройдете к тому, что было, цикл, который я настроил? Я думаю, это был этот. Я просто сказал: "создай следующий тикет". Это очень расплывчато и не очень полезно. Так что он может на самом деле не закончить его. Он может просто решить создать его и не отправить. Он может быть не очень полезным. Так что более интересно, если вы перейдете к, эм, позвольте мне, вероятно, самое простое. Если я загружу свой, эм, навык Ральфа, это мой фактический навык, который я использую, эм, для циклов Ральфа. Так, эм, и то, что я делаю, на самом деле, это немного устарело. Эм, но тот, который у меня здесь, на самом деле использует папку doc changes. Вы можете видеть это там, но, эм, я использую doc tickets в этом примере, но я изменил это в последней версии. Эм, но, эм, но в конечном итоге вам не нужно использовать систему тикетов, такую как плоский файл в, эм, в репозитории GitHub. Вы можете использовать биты, которые являются версией Стива Яки этого подхода, которая довольно классная. Я использовал ее. Эм, вы можете использовать linear, вы можете использовать Jira, вы можете, знаете ли, пока вы можете получить доступ к этому из ИИ, вы можете использовать любую, эм, систему тикетов, которую вы хотите. Для целей этого упражнения, над которым вы работаете, я обычно просто использую, эм, плоские файлы, потому что они просто работают, знаете ли, это не нужно ничего сложного. В том же смысле, эм, эм, цикл Ральфа — это полностью то, что вы из него делаете с точки зрения его эффективности. Так, например, эм, в этом конкретном, эм, я дал ему надлежащую, эм, роль, в том смысле, что вы один инженер в эстафетной команде, делайте ровно одно изменение, затем сбрасывайте контекст и останавливайтесь, начинайте снова. Такова идея. Так что для этого он разработан для запуска в скрипте оболочки, где у него каждый раз совершенно новый контекст, потому что я не хотел, чтобы контекст загрязнялся каждый раз. В наши дни я гораздо меньше забочусь об этом, потому что контекст намного больше, чем раньше. Но, эм, но когда я писал это, это было очень важно. Как вы можете видеть, это специально для кода, который не требует человеческого обзора перед отправкой. И затем, по сути, эм, он рассказывает вам о том, когда работа должна быть там. Какое правильное время для инструмента, читайте claw.md, измените формат. Это формат тикета. Это вся обоснованность. Это различные значения статуса. Я прошу его проверить состояние git, чтобы убедиться, что у него нет рабочей директории. У него также есть, знаете ли, состояния восстановления. Так что, если он упал, он знает, что если есть, эм, грязное рабочее дерево, но тесты проходят, но вы, вероятно, закончили, но вы можете не быть, так что просто перепроверьте. Если тесты не проходят, то, вероятно, это просто в процессе, но сломано, так что вам, вероятно, просто стоит выбросить это или, или просто относиться к этому по-другому. Так что, так что вы можете представить, что это строилось со временем, пытаясь, пытаясь заставить это работать, пытаясь понять, чего хочет пользователь, убедиться, что прохождение тестов недостаточно, проверить фактическое поведение, запускать вещи параллельно, пометить как готовое, бла-бла-бла-бла-бла. Происходит чертовски много. Так что с реальным циклом Ральфа вы хотите со временем создавать для своего конкретного проекта, как именно проверить, что что-то работает, как именно запускать тесты в вашем конкретном фреймворке и диалекте, как вы отправляете вещи команде тестирования, как вы хотите, эм, комментировать конкретные изменения, какой стиль вы хотите использовать, хотите ли вы, эм, выбрать то, что кажется вам наиболее очевидным, или то, что имеет наивысший приоритет, или смесь того и другого, в зависимости от того, как вы себя чувствуете в этот день. Что бы вы ни хотели, должно быть закодировано в нем. Так что, когда вы пишете цикл Ральфа, эм, я покажу вам ссылку, чтобы получить этот в конце, но нет необходимости использовать только мой или, или что-то еще. Просто начните с моего, а затем скажите: "исправь это для моего проекта" и, и, и позвольте ему меняться и трансформироваться и развиваться. Пара вопросов. Так, эм, просто подойдите. Спасибо. >> Привет. Эм, спасибо за доклад. Эм, не могли бы вы немного подробнее рассказать о теме песочницы, потому что это то, что остановит меня от запуска этого. >> Да, это имеет смысл. Да. Да, абсолютно. Так что есть ряд различных способов песочницы для этого. Для этого конкретного небольшого проекта я этого не делаю. Большая часть моей работы происходит на VPS, который находится вдали от моей основной машины. На нем есть несколько ключей, которые специфичны для того, что я хочу, чтобы он делал. И, эм, он может получить доступ к инструментам разработчика. Многие из них он может получить доступ только в режиме только для чтения. Он также может получить доступ к моей электронной почте, но опять же, у него довольно строгие детальные разрешения claw для не отправки электронных писем, потому что это довольно важно. Я никогда не позволяю ему отправлять электронные письма. Я только позволяю ему черновики. Так что, эм, так что я использую комбинацию, эм, размещения кода физически, не физически, а как бы вдали от машины на другой машине на VPS. Я также использую разрешения claw для этого. Система разрешений немного сломана, но она в основном работает. Я пытаюсь построить lockbox, чтобы сделать ее еще лучше. Я использую, эм, что еще я делаю? Так что ключи, которые я использую, это отдельные ключи. Так что, эм, у ИИ есть доступ к своим собственным ключам, которые я не использую для других своих дел. Так что я могу видеть своего рода аудиторский след того, что он сделал. Так что есть ряд различных способов сделать это. Если вы хотите просто запускать вещи просто на своей машине, есть Docker sandbox, который довольно классный. Это новая функция в Docker, которая просто позволяет вам делать Docker sandbox cla и запускать claw в этой песочнице. Так что вы можете как бы изолировать его в определенном контейнере. Это довольно мощно, потому что это позволяет вам изменять вещи только в этом конкретном месте в файловой системе. Проблема в этом заключается в том, что он все еще может утекать данные из одной вашей системы в другую. Есть такая вещь, как смертельная триада. Я не знаю, слышали ли вы об этом. Саймон Уилсон придумал это. Идея в том, что если у вас есть недоверенные токены, доступ в Интернет и доступ к секретным важным данным, которые вы не хотите терять, вы потеряете эти данные. По сути, это, это, эм, главное. Так что вам придется как бы минимизировать количество раз, когда эти вещи сталкиваются в одном контексте. Так что, да, много чего можно сказать о безопасности и песочнице в частности. Я склонен запускать, я не запускаю с опасно пропущенными разрешениями. Но я запускаю с, эм, рядом вещей, включенных по умолчанию, но не все, по сути. И вам придется пройти и выяснить, каков ваш профиль риска и насколько вам важны эти вещи. И, конечно, когда вы даете, главное, главное, что нужно прочитать, если вы заинтересованы, это прочитать о смертельной триаде, если вы еще не знали о ней. И, эм, будьте вдумчивы о том, сколько власти и разрешений вы даете своим агентам, особенно если вы используете что-то вроде OpenClaw, которое, к сожалению, небезопасно по умолчанию. Я знаю, что они проделали огромную работу, эм, над OpenClaw, чтобы сделать его более безопасным, но это все еще проблема для таких агентов. У них есть доступ ко многим вещам. Есть еще вопросы? Да. >> Эм, у вас был шаг проверки в цикле. >> Эм, это может быть анекдотичное свидетельство, но как только я изменил свой, чтобы использовать суб-агентов здесь для шага проверки, он начал находить вещи. >> Ах, интересно. >> В то время как, пока вы делаете проверку на том же шаге с тем же контекстом, он просто хлопает себя по спине и вроде как Да, это действительно, это действительно хороший момент. Эм, определенно есть, эм, предвзятость подтверждения, которая происходит с агентами, где они говорят: "О, да, конечно, я написал это хорошо. Это было хорошо. Я проверил это минуту назад." Да, использование суб-агентов действительно мощно, потому что суб-агент начинает только с небольшим объемом контекста. Он не начинает с полным контекстом, верно? Так что вы можете получить гораздо больше, эм, силы от него. Так, хороший пример из этого конкретного проекта, эм, действительно полезный, эм, навык, который я упомянул ранее, это simplify. Simplifies — это встроенный навык кодирования claw, и что он делает, так это то, что он смотрит на последние изменения и запускает три суб-агента, чтобы попытаться выяснить, следует ли улучшать ваш код. Так что вы можете видеть здесь, что он делает. Так что, надеюсь, это запустит эти, они загрузятся, и он, вероятно, найдет кучу проблем. Да, отличный момент. >> Отличная презентация. Спасибо. Вы пробовали open spec или в сочетании с openspec или любой другой спецификацией? Нет, я, если честно, не большой поклонник разработки, управляемой спецификациями. Я знаю, что это, это, эм, спорно, и я уточню это. Я беспокоюсь, что разработка, управляемая спецификациями, возвращает нас в крайнем случае к плохим старым временам водопада, где мы бы специфицировали весь или пытались чрезмерно специфицировать проект. Даже эти маленькие наборы тикетов меня не так сильно беспокоят. Я чувствую, что спецификация должна быть гораздо более итеративной, эм, и вещи, которые мы можем видеть, она уже исправляет кучу вещей, что довольно круто. Так что она нашла, чтобы закончить этот момент, она нашла кучу проблем там, и у нее есть некоторые исправления. Да, так что спецификации, эм, мне нравятся спецификации "точно в срок". Мне нравится идея построения или обдумывания того, что вы пытаетесь построить, создания какого-то плана и кодирования, а затем его выполнения. Это нормально. Я доволен этим, и я думаю, что это полезный шаг. Я беспокоюсь о, эм, я беспокоюсь о таких вещах, как Kira, где они кодифицировали это в инструмент. Я беспокоюсь, что это почти окаменеет этот один подход с, эм, ИИ, который работает сегодня, но может не работать снова, когда мифос в конечном итоге выйдет. Правильно? Так что я беспокоюсь, что инструменты слишком быстро переходят к конкретной структуре работы, которая может быть не правильной в будущем. Так что я, я осторожен с этим. Эм, я думаю, это очевидно. Это, это трюизм, что ИИ нуждается в большем контексте, чтобы хорошо работать. Так что мы должны попытаться дать ему больше контекста. Но я думаю, что идея чрезмерного увлечения этим и чрезмерной спецификации проекта — это то, с чем нужно быть осторожным, а также с чрезмерной структуризацией нашего процесса на основе того, что мы знаем об агентах сегодня, потому что тогда мы будем работать с, эм, новым видом процесса, управляемого ИИ, который лучше всего работал с агентами, которые вышли в 2025 или 2026 году. Знаете, когда мы все еще будем использовать это в 2030 году, и это будет бессмысленная трата времени. Так что это те опасения, которые у меня есть по этому поводу. Есть еще вопросы? >> Да, отличный доклад. Так, вы упомянули, что вам не нравится спецификация, и вы используете Ральфа. Так что, по сути, человека нет в цикле. Так возникает вопрос, действительно ли clo нуждается в вас там? Где, где ваш вклад там? Отличный вопрос. Эм, так что я много думал об этом в последнее время и переживал небольшой экзистенциальный кризис. Не знаю, как насчет кого-либо еще. Но, но да, какую ценность я здесь добавляю? Конечно, не при написании таймера помидоров. Я не уверен, что добавляю много ценности вообще. Я имею в виду, я буквально сказал, что я однократно сделал эти спецификации, и там не было никакого смысла. Я не говорю, что я не, я не люблю планировать систему. Что меня интересует на данный момент, и у меня нет ответов, так это тот факт, что ИИ часто будет выбирать лучшие спецификации и писать лучшие спецификации, чем я могу написать, и часто будет иметь лучшее представление о направлении, в котором должно идти мое программное обеспечение, чем я сам. Так что мне нравится идея иметь циклы Ральфа, которые создают другие циклы Ральфа, потенциально, или иметь циклы Ральфа, которые отслеживают целые, эм, взаимодействия с клиентами или даже целые стартапы. Так что у меня есть, эм, навык, над которым я работаю. Должен ли я показать это? Я покажу это. Все будет хорошо. Что может пойти не так? Эм, который называется стартап. Это довольно амбициозно, но идея в том, что он должен, по сути, провести продукт через весь фреймворк стартапа. Эм, так что он, он предназначен для запуска в виде цикла. Идея в том, что он О, я вижу, вы все фотографируете. Теперь я владею этим. >> Черт. Эм, но с большой благодарностью Эшу Мару, который пишет блестящие вещи об этом. Я должен сказать, что для, для записи. Эм, так что действительно, действительно полезно, эм, для меня. Так что я построил это из, по сути, всех классных книг, которые я читал о вещах. Так что я, я, я основатель стартапа, соучредитель CTO. Так что, так что это близко моему сердцу. И то, что я пытаюсь сделать здесь, это я пытаюсь дать ИИ достаточно контекста, чтобы он мог управлять моим стартапом для меня и потенциально выяснить, что является следующим самым важным делом, над которым нужно работать, а затем делать это в цикле, знаете ли, а затем есть большой внешний цикл, который запускает это и говорит: "Хорошо, что дальше самое важное дело? Давайте сделаем это." Эм, так что это не работает, но это интересно, и это движется вперед, и, эм, это часто, эм, первое, что он делает, я думаю, у меня нет этого, чтобы показать. Но, эм, О, да, я покажу это, потому что это смешно. Подождите секунду. Эм, есть, я спросил его, как у него дела, эм, в одном из его циклов, и он произвел колоду обновлений стартапа как меморандум для инвесторов, который я даже не просил сделать. Я покажу вам демо. Подождите секунду. Эм, потому что это абсолютно блестяще. Давайте посмотрим, смогу ли я просто показать это окно. Вот оно. Обновление стартапа Air skills. Эм, и так, да, он сказал: "Да, мне нужно дать ему обновление". Так что я сделал, он сказал, по сути, вот как далеко мы продвинулись. Вот проблемы, которые никто не решил. Вот что мы знаем, что реально. Вот количество, это инструмент управления навыками, над которым я работаю в фоновом режиме. Эм, это все виды проблем. И он придумал все эти классные вещи, которые могли бы войти в колоду инвестора. Эм, честно говоря, это неплохо. Это не плохой, я думаю, это на самом деле GitHub для AI-навыков, но вот оно. И, эм, знаете ли, кто за это заплатит? Сколько они заплатят? Эти цифры определенно неверны. Но, но интересно то, что он решил, что он хочет сделать это, эм, и выяснить все эти цифры на основе, на основе этого, эм, что, я думаю, было смешно, и он был довольно горд этой колодой, честно говоря, и мне пришлось как бы сказать: "Подождите минуту, мы не, у вас есть серьезное мышление, которое вам нужно сделать, прежде чем вы как бы перейдете к этому". Будет ли, эм, платить за управление навыками? Отличный вопрос. Эм, пока не знаю. Так что, эм, причина, по которой я показываю это, скорее в том, чтобы указать, что, эм, ИИ может сделать чертовски много, и, эм, он еще не делает стартапы хорошо, но это, вероятно, связано с моим файлом навыков, а не с, эм, самим агентом. Я думаю, что есть чертовски много вещей, которые потенциально будут, эм, будут циклами в будущем. Эм, я только дошел до этого на своих слайдах. О боже. Эм, подождите секунду. Эм, так что мы сделали это. Мы сделали это. Если вы все еще, если вы не просто слушаете меня и все еще работаете над этим демо, у меня есть пара задач для вас, если вы хотите это сделать. Одна из них — это, эм, вы можете попробовать обновить формат вашего тикета. Если вам нравится необработанный файл markdown, doc tickets — это нормально. Если вы хотите просто набрать bd install или, или установить биты, это очень легко сделать. И вы хотите, чтобы Ralph loop работал с вашими битами, попробуйте это. Посмотрите, работает ли это. Знаете, нет никакого давления на вас, чтобы достичь чего-либо в этой маленькой папке. Биты — это здорово, потому что они работают только в вашей папке. Так что, и это просто устанавливает маленький инструмент. Так что это довольно полезная вещь, чтобы попробовать. Так что, если вы хотите попробовать другой формат тикета или вы хотите как бы переместить это в свой основной проект и подключить свой, эм, цикл Ральфа к своей, эм, системе тикетов, чтобы увидеть, как это ощущается. Да, может быть, еще не отправляйте тикеты, но, знаете ли, вы потенциально могли бы попробовать это и посмотреть, куда это приведет. Так что это вариант. Другой — это навык. Вам придется постоянно обновлять и работать над своим циклом. Цикл, по сути, содержит все ноу-хау о том, как вы, как человек, пройдете через это. Вы можете пройти весь путь от "сделай следующий тикет" до "сделай следующий шаг в стартапе, стремящемся к мировому господству, который вы строите, или что бы это ни было". Знаете ли, это работает для всех этих вещей. Что супер интересно в этом, так это то, что я, я все больше и больше убеждаюсь, что все на самом деле является циклом. Может быть, может быть, как инженер, я определенно нахожусь в цикле, и большая часть работы, которую я делаю. Может быть, как менеджер проекта или, или менеджер проекта, я нахожусь в цикле. Может быть, как генеральный директор, я нахожусь в цикле. Кто знает? Может быть, эм, определенно, эм, многие из каденций, на которых я работаю, эм, тоже работают в циклах. Так что, эм, у меня есть навык, и если вы запускаете бота open claw, вы делаете что-то похожее, эм, который просто запускает пульс каждые 15 минут. Он просто, эм, на моем, эм, VPS, он просто запускает Claude, проверяет несколько вещей, проверяет мой календарь, смотрит, есть ли у меня что-нибудь, и, эм, отправляет мне сообщения Telegram. Может быть, это на цикле, и это, это определенно на цикле. Это 15 минут. У меня есть рабочий цикл, который я покажу вам через минуту. И у меня есть утренний цикл, где каждое утро в 6:00 утра он составляет полный брифинг моего дня, выясняет, что именно я должен делать, и, эм, просто дает мне всю информацию, которая мне нужна, которая произошла за ночь, все электронные письма, которые пришли, все это. Эм, рабочий цикл особенно интересен, потому что он, по сути, я не уверен, что могу показать это. Давайте посмотрим, смогу ли я найти что-нибудь, что я могу показать. Давайте посмотрим. Нет, причина, по которой я не могу, заключается в том, что там есть куча клиентской информации. Так что я не могу показать вам это. Но, что я могу показать вам, например, этот экран, я могу показать вам. Так что, если я быстро переключусь на это, эм, так что это приложение, я сделаю его немного больше. Это теперь, как я запускаю свой рабочий цикл. Так что это приложение, которое я написал, эм, для управления проектами. Так что у меня нет тикетов внутри моего, эм, рабочего хранилища. У меня есть файлы проектов, и каждый из проектов — это, эм, набор работы, которую мне нужно сделать. И затем время от времени у меня есть, я, по сути, закодировал систему канбан, и рабочий будет подбирать и делать следующий шаг по проекту. Так что, если следующий шаг по проекту — написать электронное письмо, потому что у него есть обзор, или он проверяет вещи, или, эм, он создает слайды для моего проекта, он сделает следующий шаг. Так что, например, это, эм, подготовка к мастер-классу, эм, спецификация, эм, проект, над которым он работает. И у него есть куча фронт-маттера, который выглядит вот так. Эм, и, эм, у него есть несколько вопросов ко мне. Я не обновлял это, его нужно обновить. У него есть контекст. У него есть след решений о том, что он сделал и почему он это сделал. Эм, и так, по сути, для каждой разной вещи, которая происходит, эм, он просто выясняет следующую. У него также есть, эм, заметки о, эм, других докладах, которые я мог бы давать, которые в итоге не состоялись. Эм, у него есть обратная связь с предыдущего мастер-класса, который я провел по схожей теме, которую можно щелкнуть. На самом деле, я не могу щелкнуть по этому. Есть ошибка. Но, эм, он, по сути, покажет заметки из сеанса обратной связи. Так что, так что этот проект собирает все из всего контекста, который вы можете найти, а затем делает следующий шаг в цикле. Так что вы можете запускать все в цикле. Вы можете запускать всю свою работу в цикле. Когда я просыпаюсь утром, обычно у меня около 15 или 16 черновиков писем, на которые мне ответили, и он пытался ответить на них. Я всегда должен их редактировать. Они всегда в порядке. Но, но он определенно пытается, эм, начать планировать мою работу. У меня есть очень конкретные правила о том, что он может и чего не может делать. Мое основное правило: можно ли это отменить без смущения для меня? И если ответ "нет", не делай этого. И, но просто сделайте маленькую заметку в проекте и верните ее мне. Так что отправка электронных писем не разрешена. Создание набора слайдов, например, этого, обратимо. Это не вызывает у меня смущения. Так что он просто пошел и сделал это, эм, и дал мне. Например, эм, он не публикует в LinkedIn за меня. Он не, эм, он не отправляет электронные письма. Он не отправляет сообщения. Но, эм, но он, эм, он готовит все для моего обзора. К вашему предыдущему вопросу, который является очень длинным ответом на ваш вопрос, эм, он, эм, заставил меня искренне задуматься о том, в чем я хорош и для чего я здесь. Довольно часто я дошел до точки, когда я просто человек, который отвечает на электронные письма, который просто проверяет электронные письма и отправляет, проверяет электронные письма, отправляет. Это не звучит как настоящая работа. Это не хорошо. Так что, так что, что это означает для моей работы? И мне пришлось принять сознательное решение. Какие части моей работы я хочу делать, а какие части моей работы я не хочу делать. Я не хочу быть рецензентом электронной почты, но я хочу быть стратегом. Я хочу помогать организациям разбираться в том, что, черт возьми, происходит с ИИ и как это исправить для их организации. Теперь я могу заставить ИИ сделать плохой первый черновик, но я не хочу рецензировать черновик ИИ. Я на самом деле хочу делать эту работу сам. Так что, поэтому я, по сути, сказал: "не делай никакой этой работы. Я хочу делать эту работу. Просто дай мне всю необходимую информацию, и я сделаю работу, потому что мне нравится эта работа, и я хорош в ней". Так что, эм, ИИ может делать всю, эм, мусорную работу, но он не может и не должен делать работу, в которой я уникально хорош. Но поскольку все является циклом, и Ральф, это становится таким экзистенциальным, потому что циклы Ральфа настолько, эм, действительно все и могут использоваться для всего, нам приходится задавать сложные вопросы о том, какие из наших частей работы мы действительно хотим делать. Что мы хотим делать, эм, из этой работы? Это уже не просто о том, что ИИ может делать или не может делать. Да, есть вопрос. Есть куча вопросов, но давайте пойдем к заднему ряду. Я думаю, ваша рука была поднята первой. Я думаю, эм, чат идет с микрофоном. >> Ну, для записи это очень полезно. Спасибо. Так, с открытыми задачами, да, как вы думаете о том, когда останавливаться? Так вы устанавливаете KPI в начале или как, как вы, как вы знаете, когда это сделано? Да, отличный вопрос. Эм, я прошу его, так что опять же, это сводится к тому, что я просто вернусь к, простите, другое окно, это одно. Это сводится к обновлению вашего цикла, и вам, по сути, нужно сказать ему, когда останавливаться. Так что, у меня не просто один файл цикла Ральфа, который работает для всех этих разных циклов, которые я показал вам ранее. У меня есть разные для каждого. И, например, рабочий говорит: "Когда ты дойдешь до точки, где ты либо исчерпаешь контекст, либо дойдешь до точки, где есть необратимая вещь, которую нужно сделать, тогда я хочу, чтобы ты остановился и сообщил". И что означает "сообщить", в данном случае обновить файл проекта, который является просто файлом в репозитории, с тем, где вы находитесь, и таким образом, где вы представляете это мне для обзора. Так что я сейчас довольно усердно работаю над, эм, этим шагом представления, потому что я, я определенно не хочу просматривать diff и просто читать текст, который мне очень трудно, просто потому, что часто есть огромная стена из него, и его трудно понять. Так что я прошу его начать давать мне вещи шаг за шагом в формате слайдов. Я пытаюсь довести его до того интерфейса, который я показал вам раньше. Вы можете немного увидеть, как я пытаюсь заставить его показывать вещи в разных местах, разными способами, чтобы, эм, чтобы добраться до, эм, того, что мне нужно уникально сделать дальше. Я полагаю, так что, чтобы ответить на ваш вопрос, это зависит от того, что вы делаете. Я думаю, самая важная часть — это то, что вы определяете края для себя и, и, и имеете этот реальный, знаете ли, момент, когда, знаете ли, что я на самом деле хочу делать? Как я хочу участвовать в этой работе здесь? не просто, знаете ли, ИИ помогает мне делать мою работу и компаньон для меня, это гораздо больше сейчас, какие части мне даже не нужно знать? Знаете ли, следующий вопрос, там один здесь, там микрофон где-то спереди, я думаю, да, отлично, спасибо. >> Эм, как вы справляетесь с деградацией контекста? Так, например, ваш пример, где у вас есть цикл, и он берет одну задачу за другой. Это одна и та же сессия claw code, которая выполняет все эти задачи? Придется поэкспериментировать с этим с помощью команды, эм, слэш-цикл. Да, это так. Это одна и та же сессия. Эм, я, когда вы запускаете ее как своего рода цикл while вне claw, тогда это другая сессия, у вас есть разные компромиссы с этим. С той же сессией у вас есть весь контекст предыдущих тикетов и предыдущих изменений. Это может быть полезно. На практике я не находил этого настолько полезным, потому что он может просто извлекать файлы по мере их поступления. Если вы ничего не вводите в сессию, вы ничего полезного туда не добавляете. Так что, на самом деле, там нет ничего полезного. Так что я склонялся в прошлом предпочитать начинать свежий контекст для каждой новой сессии. Но цикл очень, слэш-цикл очень легко запустить, и он просто работает, и особенно opus очень, очень хорош в извлечении длинного контекста. Так что это гораздо, гораздо меньше проблема. >> Хорошо. >> Эм, простите. Да, там, эм, есть один сзади. Есть ли там микрофон? Хорошо, отлично. >> Эм, вы просматриваете сессии, которые выполняются вашими циклами, или вы просто просматриваете diffs на GitHub? Отличный вопрос. >> Я не позволяю ни одному из моих рабочих закрывать проект. Так что, эм, я бы всегда сказал, если вы думаете, что закончили, скажите мне, что закончено, и я закрою, я, я закрою это. Так что это может быть, что есть, эм, большой список завершенных вещей, которые мне нужно проверить, проверить для себя, но я хочу быть этим, эм, последним шагом проверки. Причина, по которой я добавил это, заключается в том, что я беспокоюсь, что я что-то упущу. Есть такая вещь, эм, которую кто-то недавно придумал, называемая когнитивным долгом, которая заключается в том, что вы не в курсе всего, что может делать ваша кодовая база, или, или всего кода в вашей кодовой базе. И это меня беспокоит. Так что, так что я склонен хотеть, чтобы, по крайней мере, понять, как код сочетается друг с другом и как, или как часть работы, над которой я работаю, сочетается друг с другом. Так что я не позволяю ИИ просто что-то выкладывать, знаете ли, из поля зрения, без того, чтобы я имел возможность взглянуть на это. Иначе я чувствую, что потеряю контроль над тем, что происходит. Да, потому что я, я имею в виду, эм, например, я, я использую сессии для отслеживания, эм, тикетов. >> Так что, так что вместо того, чтобы просматривать код или diffs в коде, я просто просматриваю, что делала конкретная сессия. >> И у меня даже есть, вроде как, система маркировки, какая сессия находится в каком статусе. >> Да. >> Есть ли какой-нибудь способ, как вы это делаете аналогично? >> Эм, похоже. Да, я думаю, что сессии и статусы, я, я думаю, что это может сработать. Эм, я, я не склонен использовать сессии таким образом. Что я склонен делать с сессиями, так это то, что я заставляю Claude каждую ночь проходить через все предыдущие сессии, которые я запускал в тот день на всех машинах, на которых я запускаю Claude. Claude, он сохраняет их все в JSON-файл для меня. А затем я прошу его, эм, как выяснить, как моя система может улучшиться, а также просто то, что я сделал, чтобы я не забыл, эм, что произошло. И так он пишет небольшой абзац о том, сколько я сделал. И, эм, и я использую это для, эм, для отслеживания работы, но это не совсем то же самое, что один тикет на сессию. Мне нравится идея иметь, вроде как, один контекст на сессию. Я думаю, это довольно хорошая идея, и один, эм, вроде как, за единицу работы. Я, я просто
не удалось выполнить эту работу. Но это >> Я Я нашел это действительно полезным, потому что тогда я могу вернуться к конкретной сессии, когда происходило конкретное мышление. >> Да. И я делаю это иногда, когда у меня есть проект, который длится несколько сессий, я могу вернуться к предыдущей сессии. Хм, вместо команды VCP, которую я вам показал, я мог бы набрать VCR, и это сделает то же самое. Но на практике я люблю дисциплину, когда приходится снова браться за дело, потому что это означает, что если приходится снова браться за дело из нового контекста, это означает, что вся информация, которая была в этой сессии, фактически кодифицирована в других местах, которые может найти любая сессия Claude или человек, что означает, что вы в конечном итоге получаете гораздо более, я думаю, богатый репозиторий знаний, в котором вы работаете. Итак, возникает вопрос, если сессии не являются по-настоящему эфемерными, и у вас есть они как хранилище, доступны ли они как будущий контекст? Если вы относитесь к ним как к эфемерным и убедитесь, что вы захватываете все в них в свой репозиторий в любом случае или в файлы документации или что-то еще, я думаю, это может быть более мощным. Так что, определенно стоит подумать. Есть еще вопросы? Похоже, мы прошли долгий путь от простого написания этого тикета, но вот так. Это хорошо. Все хорошо. Да, >> большое спасибо за доклад. У меня есть вопросы. Похоже, что в цикле некоторые шаги могут быть необязательными, например, вы можете перейти к коду, а затем ничего там не найти. Y >> и вы бы подумали об оптимизации этого каким-то образом, или вы просто позволяете токенам сгорать? >> Нет, просто сжигайте токены. Они не так дороги. Зависит от того, что вы делаете. Хм, я думаю, мы находимся в точке, где я должен, это совершенно другая вещь. Хм, мы, по сути, находимся в эре бесплатных токенов прямо сейчас. Хм, знаете, у меня есть подписка Max 20. Хм, я определенно использую больше, чем средний человек, вероятно, который платит за одну из них. Хм, так что я думаю, что в этот момент я бы оптимизировал освобождение своего собственного времени, а не оптимизацию для сжигания еще нескольких токенов. Я не думаю, что токены когда-либо станут такими дорогими. Я думаю, что передовые модели потенциально будут очень дорогими, но у нас есть действительно хорошие, более дешевые или бесплатные альтернативы прямо за углом. Не такие хорошие для последней работы, которую мы пытаемся сделать, но они действительно, действительно хороши. Так что, хм, я думаю, хм, был по крайней мере один, который только что вышел, GLM, который только что вышел, выглядит очень многообещающим. Хм, это ZAI. Я думаю, он вышел на этой неделе. Действительно, действительно интересно. Я все еще использую Claude, но это не обязательно всегда будет так. Так что я думаю, я бы просто сжег их. Я бы, как я уже сказал в самом начале, хм, знаете, я потратил много времени, занимаясь всей этой оптимизацией, когда я делал это, если вы не были здесь в начале, эту вещь, вы знаете, я потратил много времени, пытаясь возиться со всем этим, но в конечном итоге я просто позволяю этому работать. Это намного проще. Однако я иногда приближаюсь к концу моей подписки Max. Я немного нервничаю по поводу того, что это означает. Мне придется выяснить, как получить еще один аккаунт. 200. >> Да, Max, тот, который стоит 200 долларов в месяц. Да. Да, я приближаюсь к этому каждую неделю. Я примерно на 80%. Нервничаю. Хм, да, у вас был вопрос. Вы хотите вернуть микрофон? Это нормально? Спасибо. >> Я больше на это не смотрю. >> Здравствуйте. Это, я хотел спросить вас о Спасибо большое за презентацию. Да, конечно. >> О донастройке для для промпта, >> вы версионируете это? У вас есть наборы данных, которые вы используете для донастройки всего вашего цикла? >> Э, так, в плане, хм, версионирования цикла Ralph в частности, как промпта для цикла Ralph. >> Да. >> Так что я использую для этого навыки. Так что, как я уже указывал ранее, хм, хм, все, что идет в навык, и я прошу Claude написать навык для меня. Хм, и это сохраняется либо в вашей папке навыков docu в вашем проекте, либо в вашей домашней директории под doclaude skills. Хм, я использую GitHub для версионирования всего этого для себя. Я не думаю, что git — это правильный формат навыков для этого в долгосрочной перспективе. Я думаю, нам нужно что-то новое. Отсюда попытка создать навыки, по сути, хм, что является идеей попытки сделать навыки гораздо более переносимыми и общими в командах, что я пытаюсь выяснить. Так что да, я версионирую их, и я отношусь к ним как к довольно важному коду, и на самом деле я не делюсь некоторыми из них, но я не делюсь всеми ими регулярно, потому что там много моей собственной интеллектуальной собственности, и на самом деле много интеллектуальной собственности моих клиентов тоже там. >> Да, вопрос был скорее относительно производительности промптов. Мх. >> Так что, хм, вы говорили, что в начале вы по мере продвижения улучшаете промпты, и но вы версионируете это по мере продвижения, и вы версионируете общую производительность промпта? >> Так что, когда вы говорите промпт, вы имеете в виду сам навык, который я использую? >> Да. Да. Да. Да. >> Да. Так что да. Так что навык, так что промпт находится внутри навыка. Так что, когда я набираю /bug tracking или /alph, это промпт, который написан Claude и управляется Claude, что означает, что весь этот файл является промптом, и поэтому он версионируется. Так что я всегда, у меня есть git, работающий в этой настройке, и затем каждый раз, когда я его меняю, я обновляю. Но вы, но вы остаетесь субъективным, как вы упомянули, вы улучшили. Допустим, у вас есть набор данных, это будет проблема. Я говорю, и ожидаемый результат будет новой функцией, добавленной в репозиторий. >> Да. >> Так что вы могли бы >> это больше, как я оцениваю, хорошо ли это, или как >> Да, именно. Как вы узнаете, что вы действительно улучшаетесь? >> Я вижу. Так как вы узнаете, улучшаетесь ли вы? Это действительно хороший вопрос. Хм, я стресс-тестирую свои навыки. Так что с другими навыками, и я говорю, знаете, хорош ли этот навык? Могли бы вы его улучшить? Могли бы вы его написать? Хм, я трачу довольно много своего времени, копаясь в своей системе и своих навыках, вероятно, больше, чем следовало бы. Хм, я думаю, хм, это немного субъективно в данный момент. Чего я не сделал, и это было бы действительно хорошее упражнение, это попробовать запустить слепое тестирование, где вы запустите набор тикетов с одним навыком и набор тикетов с другим. В конечном итоге, поскольку Claude недетерминирован в любом случае, я думаю, что существует высокий уровень вариативности с любыми подобными тестами. Так что действительно трудно думать о том, как построить полезный тест таким образом, чтобы знать, улучшаетесь ли вы на самом деле или нет. Хм, в целом, чем больше контекста вы даете в свой промпт, тем лучше он будет работать до определенного момента, который не очень легко и очевидно определить, когда он становится хуже. Так что, хм, в конечном итоге это баланс. Но да, у меня не было объективного процесса улучшения. Отличный вопрос. Это вопрос прямо за вами. Как вы версионируете навыки? >> Я использую GitHub в данный момент. Хм, у меня есть продукт, который я пытаюсь создать, который, я имею в виду, это вот это. Так что, если вы хотите мой навык, кстати, вот как вы его получите. Хм, это проект под названием air skills, который вы видели краткий предварительный просмотр ранее из моей презентации, которую подготовил для меня мой агент. Но идея в том, что вы можете упаковывать и управлять этими навыками как единым целым. Так что вы можете создавать навыки для своей организации, вы можете создавать наборы навыков, вы можете создавать набор навыков для вашей организации, который работает для разных команд в вашей организации. А затем все это версионируется и обновляется для вас, без необходимости всем учиться использовать git и github. Такова идея. Хм, это действительно проблема в данный момент. Я нашел это очень, очень трудным для управления. Даже для себя, просто поместить навык на GitHub. Вы знаете, я не могу представить, чтобы кто-то оттуда, это довольно много трения для такого кодера, как я. Я не могу представить, чтобы не-кодеры использовали это. Так что, так что да, пытаюсь построить это. Хм, так что да, выполните эту команду на своей машине. У вас будет мой навык. >> Хм, извините, здесь есть вопрос, а затем дальше. Да. >> Хм, как вы, вы немного коснулись этого, но как бы по краям. Как вы управляете знаниями? Так что, я думаю, знаете, я использую Claude для того, почему мой VPN не работает? И тогда я узнаю что-то и хочу это записать, а потом я думаю, у меня есть встреча с кем-то с транскрипцией, и у меня это где-то еще, и у меня есть кусок кода, который я пишу, и все, у меня есть все эти разные контексты, но они как бы очень неорганизованы. Есть ли у вас способ подумать о том, как вы это организуете? >> Да. Так что у меня есть директория кода, и у меня есть директория хранилища, и это две директории, в которых я работаю. Так что директория кода содержит несколько разных проектов, над которыми я работаю более классическим способом. Директория хранилища — это место, где я делаю всю свою другую работу, и, честно говоря, я в основном начинаю работать там, даже если я работаю над кодом, и просто говорю ему, где находится код. Потому что хранилище содержит несколько тысяч файлов со всем различным материалом, который я собрал, узнал, работал с Claude за последние несколько лет. Ну, не с Claude так долго, но вы понимаете, что я имею в виду. Я начал с Obsidian давным-давно, и я работаю над этим хранилищем уже давно. И с Claude теперь это просто работает для меня. Так что, когда я провожу исследование о том, как исправить свой VPN или что-то еще, он просто сохраняет файл там. У меня есть некоторые конкретные правила о том, как структурировать и управлять этим. Если вам интересно больше, я не так много об этом написал, но я знаю, что Андре Капати только что написал об использовании LM в качестве вики. Это отличная статья, если вы еще не видели. Я знаю, что Минйович на самом деле, смешно, вчера сделал что-то на дворцовых сайтах, это еще одна версия этого. Вы можете использовать это тоже. Есть много разных систем для этого. Лучший способ начать — это файлы markdown в файловой системе и использовать их как вики. Так что запустите Obsidian в одном окне, а Claude — в другом, и просто работайте с ним и сохраняйте вещи по мере их поступления. И у вас есть агент, который затем структурирует и помещает эти хранилища в папки или что-то в этом роде? >> Да. Так что это зависит от вашего метода. Я использую подход Zettelkasten, который заключается в том, что у вас есть одна заметка на мысль. Так что любая мысль идет в плоскую папку. Затем у меня есть раздел /projects, в котором находятся все проекты, которые вы видели, включая один для этой презентации. Который является моей единицей работы для агента, над которым мы работаем вместе. Он делает много, а затем я делаю что-то, а затем он делает что-то. У меня есть транскрипты там. Все звонки, которые я когда-либо записывал, идут туда. И я использую инструмент под названием Leanne, который является инструментом для создания вложений командной строки. Так что он, по сути, просто запускает вложения по всему тексту в репозитории, всем транскриптам, всем ссылкам, которые я когда-либо сохранял, включая весь контент. Это огромно. И тогда он может находить вещи полезно и легко. Так что, лучшее время для начала — это сегодня, потому что это занимает годы, чтобы собрать. Мне нужно написать об этом больше. Есть еще вопросы? Да, один здесь. >> Вы сказали, что у вас были трудности при версионировании ваших навыков. Я использую навыки только последний месяц, так что я не осведомлен об этих трудностях. Можете ли вы объяснить, в чем заключаются трудности? >> Я могу, я уверен, что есть. Были ли у кого-нибудь здесь какие-либо трудности с моим управлением и использованием навыков? Были ли у кого-нибудь еще? Да, довольно много разных людей. Так что, да, это развивающаяся вещь. Неудивительно, что вы еще не столкнулись с этим, если вы не используете это очень долго. Что я обнаружил, так это то, что если вы просто используете их самостоятельно, создание файла навыков и управление ими довольно просто. Помещение их в GitHub довольно просто. Это симлинки и репозиторий GitHub. Это нормально. Где это становится трудно, так это как вы это делитесь. Так как вы поделитесь навыком? Хорошо. Ну, если вы хотите использовать MPX skills, вам придется поместить его в свой собственный репозиторий GitHub. Это кажется слишком громоздким только для одного навыка. Мне пришлось бы иметь 50 из них, чтобы поделиться всеми моими навыками. Так что это не очень работает. Тогда это больше похоже на, хорошо, если я не хочу этого делать, я просто отправляю им файл навыка? Отправляю ли я им zip-файл? Я не могу придумать лучшего способа сделать это. Придется ли мне иметь подмодуль в моей папке навыков для каждого репозитория Git, с которым я делюсь навыком? Это просто не имеет смысла. Так что я думаю, я думаю, идея Claude имеет некоторые вещи там вокруг рынков плагинов, где вы можете иметь плагин, который имеет набор навыков. Это лучший способ, но тогда вы версионируете плагин, а не навыки. Так что это, вероятно, самый бесшовный способ. Это просто не работает так хорошо. Также есть проблема, если кто-то вносит вклад в ваш навык, хотите ли вы его изменения или нет? Это будет зависеть от того, какой вклад. Они локальны только для них, или это изменения, которые могут быть включены в целом, и это зависит от навыка и зависит от них. Так что вам придется управлять этим. Так что вы ведете бэклог для каждого навыка, где у вас есть тикеты для улучшения навыков? Вы видите, вы видите, я думаю, что это все нерешенные проблемы. Я пытаюсь, мой вклад — это попытка решить некоторые из них. Но это большие проблемы, которые мы еще не решили. Другие вопросы? Там один в самом конце. Хм, если есть микрофон, это было бы здорово. Спасибо. Один, два, один. Хорошо, работает. Мой вопрос о том, как мы можем масштабировать этот подход с циклом Ralph, но как для реальной производственной команды, как я не знаю, три инженера, как координировать, как сотрудничать, есть ли у вас какие-либо идеи, как мы можем это организовать? У вас есть какой-либо опыт? >> Это большой вопрос. Как, чтобы убедиться, что я понял. Как вы масштабируете это, чтобы вы могли координировать целые команды, используя этот вид циклического подхода? >> Это так? Со всеми тикетами и навыками. Да. >> 100%. Да, это сложно. Я думаю, что команды, где я видел, как это хорошо работает, это те, которые проактивно обновляют тикеты. Отлично то, что если вы подключаете свою систему тикетов к ИИ, она очень хорошо ее обновляет. Так что вы определенно должны это сделать. Убедитесь, что вы претендуете на тикет и перемещаете его в колонку "в работе" до начала работы. И убедитесь, что кто-то другой не сделал этого до того, как вы начнете работу. Вы понимаете, что я имею в виду? Это очень важно, чтобы избежать конфликтов. Это всегда были проблемы с большими командами. Точно так же, пара спорных моментов. Точно так же, как циклы Ralph работают очень хорошо, просто делая одну вещь в цикле и довольно последовательно. Знаете, вполне возможно, что накладные расходы на координацию в наших командах вызваны тем, что у нас слишком много людей в наших командах, и, возможно, у нас должны быть меньшие команды и просто больше их, верно? Так что, возможно, если вы пытаетесь заставить 10 человек координировать работу и использовать ИИ и циклы Ralph и все такое, это просто не сработает. Возможно, вам нужно три, и, возможно, это способ управлять этим проектом, а затем вы разбиваете его, а затем у вас есть другие семь человек, делающих что-то еще, или что-то еще. Имеет ли это смысл? Так что, так что устранение проблемы — это первый шаг, и убедитесь, что вы уже используете свои механизмы координации — это второй шаг. А затем просто попробуйте и выясните, где возникают узкие места. Будьте действительно, знаете, будьте действительно хороши в ретроспективах с этим. Я думаю, ретроспективы и команды часто довольно анемичны. Это как что нам следует делать меньше? Что нам следует делать больше? Это просто рецепт того же самого, больше того же. И просто изменение крошечных приращений, что может быть хорошо, но в конечном итоге это требует радикального переосмысления. Так что будьте очень внимательны, чтобы ваши ретроспективы действительно меняли вещи в том, как вы на самом деле работаете, или давали пространство для попыток. Давайте просто попробуем использовать RA flip на всей нашей работе в течение недели и посмотрим, что произойдет. И если это не сработает через два дня, это нормально. И если вы кто-то здесь, кто находится в руководящей роли и может спонсировать такую работу, это то, что означает переход к ИИ. Если вы хотите трансформировать свою команду, вам придется спонсировать такие эксперименты и быть готовым к неудачам, потому что я говорил с лидерами здесь на минуту, потому что это будет грязно, и это будет много неудач. Но если вы хотите реальной трансформации, это единственный способ ее добиться. Вы должны дать своей команде пространство для попытки множества разных вещей. Так что дайте им прикрытие. Так что, да, это большой и сложный вопрос. Я думаю, если вы можете и имеете возможность просто попробовать и посмотреть, к чему это приведет. Есть целая отдельная вещь под названием теория ограничений, о которой я вообще не говорил, которая заключается в том, что в любой команде в любой системе всегда есть узкое место. Всегда есть одно узкое место, которое является большим узким местом. Если вы не работаете над этим одним узким местом, вся остальная работа, которую вы можете сделать для оптимизации и улучшения системы, бесполезна и на самом деле, вероятно, контрпродуктивна. Вот почему некоторые команды при использовании инструментов ИИ и передовых инструментов ИИ, таких как Ralph Loops, которые просто, знаете ли, ИИ или то, что мы делаем сейчас, но просто на стероидах, некоторые команды при его внедрении на самом деле работают медленнее. Некоторые команды работают удивительно быстро, некоторые команды работают медленно. Почему это? потому что они не работают над ограничением. Ограничением в этих командах может быть процесс проверки. Если вы выпускаете свой код раз в месяц, и вы отправляете 200 PR, а не 20 в этом выпуске, как вы думаете, это пойдет? Вы знаете, это не пойдет хорошо. Вот почему команды работают медленнее, потому что им нужно исправить свой процесс выпуска, а не скорость кодирования. Так что всегда сначала исправляйте то, что является самым большим узким местом. Затем выясните, куда перемещается узкое место в системе, и это непредсказуемо. Это случайность. Так что вам придется выяснить это. Затем переместите и исправьте следующую вещь в системе. Для получения дополнительной информации прочитайте "Цель" Элияху Голдратта от 1984 года, не меньше. Это удивительная книга. Еще один. Есть еще один вопрос здесь? Есть еще один микрофон? Где микрофон? >> У меня есть микрофон. >> О, у вас есть микрофон. Отлично. Продолжайте. Хм, поскольку вы спрашивали о, как бы, говоря об ограничениях, это напомнило мне, я являюсь частью команды ИИ, и у нас есть команда ИИ, и они пишут много микросервисов, и это в разных репозиториях. >> Хорошо. >> Как вы справляетесь с, как бы, кодированием сейчас, поскольку это один большой монорепозиторий или это как маленькие маленькие репозитории? >> Вам придется попробовать разные способы и посмотреть. Я не думаю, что архитектура GitHub или, извините, Git, будь то много репозиториев или один репозиторий, действительно имеет значение. Вы всегда можете начать свой ИИ в папке над всеми вашими другими репозиториями и просто заставить его работать. Он отлично справляется с этим. Так что это нормально. Я думаю, что более важный вопрос — это модели координации внутри ваших команд и ваших сервисов. Кто за что отвечает? И как это меняется с ИИ? Я думаю, что это более интересный вызов. Главная причина, по которой я спрашиваю, заключается в том, что некоторые микросервисы зависят от других, >> и тогда вам нужно выпустить один из них, вам нужно выпустить тег, а затем обновить другой, и это просто >> да, я думаю, что ИИ сделает то, что он раскроет все места, где этот процесс неэффективен, потому что он будет делать все быстрее, что означает, что если вы видите эти узкие места, где у вас есть зависимости между вашими микросервисами, угадайте, что это ваше самое большое узкое место, поэтому исправьте это. Так как исправить это узкое место? Ну, вы можете попробовать систему атомарных выпусков, или вы можете создать что-то, используя Claude, используя цикл RA, который определяет способ координации выпусков между несколькими репозиториями более успешно. Я не знаю. Но это то, что вы делаете. Это то, где вы работаете. Не работайте ни над чем другим, пока это не будет исправлено. Если это узкое место. >> Да, здесь есть вопрос. Вы хотите передать микрофон? >> Да. >> Я должен сказать, что я почти в конце контента. Есть, что, вероятно, было ясно полчаса назад. Единственное, что я, я имел слайд с вопросами и ответами. Если вы уходите, вы можете уйти, но вы можете остаться для большего количества вопросов. Я был бы очень признателен за обратную связь. Так что этот QR-код — единственное, что я вручную добавил в эти слайды. Если вы могли бы просто заполнить это, это было бы прекрасно и удивительно. Спасибо. Это буквально всего три минуты, четыре вопроса. Это просто помогает мне улучшаться и убедиться, что я хорошо провожу эти семинары в будущем. Это также мой LinkedIn. Я много публикую там контента. Свяжитесь со мной. Вы, в случае, если вы имеете в виду некоторые из этих вещей, не согласны со мной. Я люблю несогласие. Я люблю, когда люди говорят: "Неужели Крис, это безумие? Ты не должен этого делать". Люблю такие комментарии. Потому что это действительно помогает мне думать и улучшаться, что я люблю делать, и потому что все, потому что Ralph Loops делает всю мою другую работу. Так что у меня больше ничего нет. Отлично. Спасибо. Так что я просто хотел это выставить. Я очень рад продолжать отвечать на вопросы. Но если люди хотели уйти, то это может быть хорошее время. Вперед. Мой вопрос касается инструментов оркестрации мультиагентов. Мой, мне интересно, пробовали ли вы такие вещи, как Gasttown от CVG или да, >> есть еще один парень, который делает что-то вроде MCP agent mail. >> Да, есть действительно крутые и интересные вещи. Я все еще думаю, что мы находимся в диком западе, буквально с Gasttown и тому подобным, но мы действительно не знаем, как это пойдет. Я пробовал Gasttown. Я не мог его по-настоящему заставить работать, но это было довольно рано. Для меня я чувствую, что сторона оркестрации агентов — это я думаю, что мы усложняем вещи, предполагая, что они должны быть параллельны. Мне нравится идея просто начать с цикла для начала. Я не чувствую необходимости, чтобы мой ИИ делал много вещей одновременно, прежде чем я смогу просто заставить его делать одну вещь. Это как бы возвращается к теории ограничений снова. Я не думаю, что скорость, знаете ли, количество токенов в секунду — это узкое место. Я думаю, что это наша способность указывать, что мы хотим, и проверять, что сделал ИИ. Так что, если это мое узкое место, я не хочу вводить больше агентов. Так что я не тратил много времени с этими инструментами по этой причине. Я думаю, что они решают проблему, которую еще не имеют многие люди. >> Да. Так что >> Здравствуйте. Да. >> Да. Не только для скорости, но, например, я не знаю, экспериментировали ли вы с MCP agent mail. Так что агенты могут блокировать файлы и общаться друг с другом, чтобы они не наступали друг другу на ноги, и вы можете использовать разные, как бы, облачные opus и кодеки, работающие над одним и тем же проектом, так что у вас есть разные мозги, работающие над одним и тем же проектом. >> Приятно. Да. Нет, я не пробовал. Я думаю, я слышал об этом, но не пробовал. Звучит как супер интересная идея, очень похожая на то, что кто-то упомянул ранее о суб-агентах, пытающихся взглянуть на вещи с другой точки зрения. Я получил большую ценность от этого. Я упоминал ранее мой подход к симулированной аудитории, который в конечном итоге работает, он берет транскрипты и ответы на опросы с моего веб-сайта, и создает персоны, и заставляет эти персоны думать по-разному в параллельных суб-агентах, чтобы по-новому взглянуть на контент с разных точек зрения. Так что вся эта идея иметь две разные вещи и две разные модели в этом случае — это супер интересная. Я думаю, мы увидим гораздо больше этого. Я вижу большую ценность в этом. Мы определенно знаем, что они довольно хороши в согласии друг с другом, и вы часто получаете лучший контрарный взгляд, если вы отбрасываете контекст и смотрите на него снова. Так что отличный принцип. Я думаю, что инструменты все еще очень ранние, что мы все знаем, но это интересные идеи, безусловно. >> Есть вопрос прямо за вами. >> Да, просто продолжайте. Они все включаются. >> Так что отличный доклад, кстати. Спасибо. Хм, сколько важности вы придаете? Так что в плане фаз разработки вы тратите много времени на создание контекста, создание тикетов, и у вас есть система для их последовательного выполнения, которая продвигается вверх. Сколько вы фокусируетесь или подчеркиваете CI/CD, запуск автоматизированных тестов, линтинг? Дает ли это вам уверенность в уменьшении количества кода, который вы просматриваете? >> Абсолютно. Ну, да и нет. Зависит от того, что это за код. Я думаю, во-первых, я думаю, что CI/CD, хорошее тестирование абсолютно необходимо. Линтинг и все такое. Если вы хотите, чтобы ИИ хорошо справлялся, почему бы вам не дать ему эти инструменты, чтобы помочь ему хорошо справляться, верно? Точно так же, как люди работают намного лучше, когда у них есть линтинг, CI/CD и хорошие тесты. Это точно так же. То же самое с чистыми кодовыми базами. Вы знаете, стоит проделать всю эту работу, чтобы ИИ работал хорошо. Так что это дает мне больше уверенности в том, что я делаю. Проблема в том, что если ИИ пишет тесты, а затем также пишет код, то есть хороший шанс, что он что-то неправильно понял в том, что вы пытаетесь построить. Так что часто он не делает очевидных ошибок. То, что он делает неправильно, это то, что он полностью неправильно понимает функцию, строит и говорит: "Да, это нормально". А затем отправляет, и тогда я думаю: "Боже мой, я не совсем позволяю ему отправлять все". Только с предварительными проектами я делаю это. Но, но да, это дает мне уверенность в том, что вещь функционально приемлема для выпуска или может быть выпущена. Что я, я все еще хочу читать диффы, потому что я все еще не доверяю ИИ в вопросах безопасности. Так что, я не знаю, потерял ли я экран. Вот оно. Спасибо. Думаю, мой компьютер уснул. Я просто не совсем доверяю ИИ в том, что он не потеряет данные моих клиентов, и я просто не пойду на компромисс. Так что я буду читать диффы, потому что я не хочу нести за это ответственность. Это не кажется, что это кажется, что есть некоторые проблемы, в которых вы можете полностью доверять ИИ, например, линтинг, тестирование. Есть некоторые проблемы, которым вы действительно не можете доверять ИИ, просто потому, что это не ответственно. Так что, возможно, конкретные изменения, связанные с безопасностью. Если вы выполняете миграции производственной базы данных, вы, вероятно, должны проверить, сработали ли они, прежде чем запускать их в производстве. И есть некоторые, которые немного более расплывчаты и туманны. Так что, UI-тестирование довольно интересно на ранних этапах. Вы знаете, идея иметь отличный механизм обратной связи. Если вы можете заставить ИИ кликать по вашему проекту, чтобы проверить, работает ли он, это очень мощно. В моем опыте это работает 50% времени, но это может быть довольно полезно, по крайней мере, для первой попытки. Наличие хороших сквозных тестов на самом деле очень полезно, если вы используете playright или что-то подобное, которое он поддерживает для проекта навыков, который я вам показал. У меня есть очень комплексные сквозные тесты, которые настраивают полные файловые системы навыков и заставляют ИИ создавать две разные персоны, запускающие каждую, знаете ли, издателя и создателя, и он просто проверяет, что все файлы находятся в правильных местах, и это очень, очень полезно для таких полных сквозных тестов. Равно, если вы можете создавать такие механизмы обратной связи и давать ИИ шанс действительно узнать, хорошо ли он справился, это блестящее место. И поэтому я всегда ищу, как, если бы ИИ мог сказать, хорошо ли что-то или нет, а не я. И когда я могу исключить себя из этого цикла, это просто значительно улучшает весь процесс. Это не всегда возможно или желательно, но насколько я могу, я это делаю. Вы проектируете процесс обратной связи, хотя вы решаете критерии, а затем позволяете ИИ работать поверх них. >> Да. Если я работаю в команде из одного человека, да. Если я работаю с владельцем продукта или менеджером продукта или дизайнером, я очень заинтересован в использовании их навыков и тестировщиков, чтобы найти способы проектирования этих процессов. Это то, что они приносят в эти процессы, верно? Это так же, как кодеры думают, как мы можем избежать самостоятельного набора текста, а что насчет, если вы менеджер продукта, как вы заставляете ИИ делать легкую работу, чтобы вам не приходилось ее делать, вы знаете, как вы проходите через этот процесс, то же самое с тестировщиками, супер интересная область исследований. >> Два момента, которые приходят на ум: вы, что хорошо работает в небольшой команде, что хорошо работало для меня, это настройка враждебных обзоров, где у вас есть спецификация, агент-разработчик разрабатывает рецензента, который проводит враждебный обзор. Вы передаете этот контекст обратно. Агент-разработчик итеративно, как правило, ловит много вещей, увеличивает количество уверенности, которую я должен отправить. Но даже с этим, с той скоростью, с которой вы можете создавать спецификации и сколько кода вам действительно приходится просматривать, я все равно остаюсь узким местом в процессе проверки. >> Да. Вы всегда я всегда узкое место. У меня есть 30 разных вещей, которые мне нужно теперь просмотреть, которые мой ИИ сделал за ночь или что-то в этом роде, и я просто думаю, о боже, знаете ли, и проблема для меня в том, что большая часть этого — это не работа, которую я должен делать. Единственная причина, по которой это было передано мне, заключается в том, что я не могу доверять ИИ с этим, но любой человек мог бы выполнять такую работу. Так что теперь я думаю, нанимать ли людей, чтобы просто делать скучную работу? Этично ли это? Вы знаете, это своего рода интересные вопросы для нас, чтобы подумать, но вы правы. Если мы сможем спроектировать систему, мне нравится ваша враждебная точка зрения, чтобы построить на чем-то еще, что кто-то другой говорил. Если мы сможем сделать это и спроектировать эти системы таким образом, чтобы нам не приходилось участвовать, я думаю, это лучше для всех нас, потому что я просто не хочу давать человеку ужасную работу. >> До тех пор мы наняты. >> Да, я полагаю. >> Спасибо. >> Не за что. Есть еще вопросы? На этом закончим? Народ, было приятно провести с вами время. Было очень, очень весело.