📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Intro to Warp - terminal, agents, and cloud

Warp1:05:09

Transcription

[музыка] [музыка] [музыка] [музыка] [музыка] [фырканье] >> Что там, чат? [крик] Добро пожаловать. Рад вас видеть. У нас уже есть несколько ранних чаттеров на YouTube. Добро пожаловать на стрим. Думаю, это будет хороший стрим. Я всегда так начинаю. Я думал, может, стоит начать стрим со слов: «Это будет плохой стрим. Этот стрим будет отстойным». А потом превзойти ваши ожидания. Разве это не было бы безумием? Думаю, нужно это визуализировать. Итак, это будет хороший стрим. Э-э, позвольте мне перейти к, э-э, э-э, убедиться, что моя установка настроена. Я только что закончил обед и обучение с моей командой на тему, которую мы сегодня не будем обсуждать, базы знаний LLM. Э-э, но есть ряд ресурсов, которыми я поделюсь в конце, э-э, из докладов, которые мы давали. Поскольку совсем недавно я э-э посетил AI Engineer Summit в Сан-Франциско. Так что я только что оттуда, вернулся в район Нью-Йорка. Э-э, дайте знать в чате, если кто-нибудь был на этой конференции. Это было бы выстрелом вслепую, но, возможно, кто-то из вас был. Э-э, в противном случае, дайте знать, откуда вы. Я уже вижу кого-то из Колорадо. Добро пожаловать. Позвольте мне также переключиться на использование продакшена вместо моей среды разработки. Я делал это достаточно раз, чтобы знать, что нужно проверить. Одно из них — не используйте ранние сборки разработки Warp в прямом эфире на стриме. Это приглашение к проблемам. Э-э, так что сегодня мы этого делать не будем. Также поздравляю с днем GPT 5.6. С днем Grok 4.5. С днем Fable 5 extended. Это неделя. Это большая неделя. Если вы следите за всеми делами в области ИИ. Происходит так много всего. Чтобы отпраздновать, я переключу нашу модель на Grok сегодня, пока мы это пробуем. Я знаю, для тех, кто не в курсе, зачем вообще использовать Grok как модель для кодирования? Ну, я покажу. Это довольно хорошо. Я покажу. Хорошо, мы почти готовы. Приятно видеть у стенда. Да, супер джентльменский ИИ. Что там? Рад тебя видеть. Как у тебя дела с Warp? Я знаю, мы обсуждали несколько исправлений для вашей установки. Надеюсь, они прошли хорошо. Привет мир, у нас Аргентина. У нас Англия. У нас белки, приходящие от инженера ИИ, я думаю. Потрясающе. У нас Лос-Анджелес. У нас Кения. Очень круто. Да. Шаши, добро пожаловать. Рад тебя видеть. Хорошо, даю вам еще 60 секунд, а затем перейдем к повестке дня. Так что это довольно проверенная и надежная повестка дня. Где мы пройдемся по всему, что может делать Warp. И мы также поговорим о некоторых вещах, которые идут немного дальше. Э-э, и поскольку вы все рано, вы сможете проголосовать за то, что мы покажем. Как насчет этого? Э-э, вот два голосования, которые мы проведем. Это определит, как мы будем говорить об этих вещах. Первое голосование, напишите мне единицу в чате, если вы используете Cloud Code для кодирования. Напишите мне двойку, если вы используете CodeX. Тройку, если вы используете Warp как своего основного агента кодирования. И четверку, если вы используете что-то другое. Возможно, другую оболочку, возможно, другую модель, что-то в этом роде. Единица для Cloud Code, двойка для CodeX, тройка для Warp, четверка для чего-то другого. У нас есть несколько единиц. У нас есть четверка. Мне это нравится. И также, если это четверка, скажите мне, что это. Я, наверное, должен был это сказать. Э-э, у нас есть несколько троек, потрясающе. Люблю это. Э-э, мы обязательно покажем агента Warp. Мне просто нравится получать здесь представление. У нас нет ни одного поклонника CodeX. О, у нас есть один. Супер-агентный, вы используете CodeX. Хороший вкус, Шаши. Хороший вкус. Э-э, у нас есть Cursor. Хорошо, это имеет смысл. Э-э, у нас приличное количество четверок. Я бы сказал, что единицы в целом побеждают. Э-э, ваша мама уже протестирована? Я не видел результатов Deep Sweep для этой модели, но, э-э, мы продолжим и просто подождем, пока поступят цифры, прежде чем показывать это, я думаю. Э-э, четыре для CodeX. Что? Я сказал два для CodeX. Хорошо, значит, мы два. Но в основном я не трачу на каждую оболочку. Да, это потому, что CodeX наиболее субсидируется. >> [смех] >> Но он также высокопроизводителен. Э-э, это просто зависит. Хорошо, второе голосование. Второе голосование. Вас больше всего интересует оркестровка мультиагентных систем, облачный режим или программные фабрики. Хорошо, напишите мне единицу в чате, если вас больше интересует оркестровка мультиагентных систем и посмотрим, что мы можем узнать об этом. Двойка, если вас интересуют облачные агенты. И тройка, если вас интересуют программные фабрики. Хорошо, у нас больше единиц. Все хорошо. Это имеет смысл. Мультиагент, мультиагент, мультиагент. Вы бы удивились. На прошлом стриме это была программная фабрика с большим отрывом. Может быть, сегодня мы закончим с программной фабрикой. О, у нас есть несколько троек. Вот они. Э-э, так что у нас здесь смесь. Так что я фиксирую некоторые вещи. Ранее было много четверок, так что это вровень между некоторыми четверками и Cloud Code. Мы определенно будем использовать Cloud Code сегодня. Э-э, хорошо, у нас здесь смесь единиц и троек. Я думаю, мы сможем коснуться обоих, но я позабочусь о том, чтобы программные фабрики были представлены, потому что они выиграли с небольшим отрывом. Всего лишь немного. Так что мы это зафиксируем. И если у нас будет немного времени, чтобы показать режим оркестровки в Warp, мы сделаем это. Э-э, потому что это очень круто. Это очень-очень круто. Хорошо. О, позвольте мне откатить пару изменений, а затем я поделюсь своим экраном, и мы начнем. О. Я мог бы показать вам качество автодополнения Warp только что. Это было круто. Э-э, но вы этого не видели. Вы этого не видели. Ничего страшного. Давайте поделимся нашим экраном и начнем. Итак, это то, что вы, вероятно, знаете, терминал Warp. Э-э, мы проведем сегодня здесь, говоря о. Мы пройдемся по основам Warp. Всегда есть вещи, которые выходят просто при разговоре об основах Warp, о которых даже опытные пользователи не знают, поэтому я люблю об этом говорить. Э-э, затем мы немного поговорим об агентах кодирования в Warp и о том, как мы можем вам с этим помочь, используя инструменты, которые вы уже используете, кстати. Э-э, а затем мы поговорим об облачных вещах. Итак, мы поговорим о программных фабриках и немного о мультиагентной оркестровке в конце, если у нас будет время. Э-э, хорошо. Итак, это то, как выглядит терминал, когда вы его настраиваете. Э-э, я не знаю, сколько из вас уже используют Warp. Сегодня у нас будет смесь людей, которые впервые знакомятся с ним, и тех, кто нет. Так что мы будем придерживаться линии и говорить немного о том и другом. Э-э, но вот как выглядит агентская версия Warp. Э-э, так что у вас есть обычный терминал сбоку, но у вас также есть вертикальная панель вкладок для управления всеми этими командами оболочки и агентами, которые вы используете. Э-э, и это расширяется и сворачивается, кстати, с помощью небольшой комбинации клавиш. Вы можете переназначить все сочетания клавиш в Warp. Э-э, и это выглядит очень приятно, потому что вы можете навести курсор на любые задачи, которые выполняются, и увидеть немного больше информации о том, что они делают. Просто чтобы доказать это, я запущу несколько агентов кодирования, чтобы показать вам, как они выглядят бок о бок. Итак, это как использование агента Warp в одной вкладке, Codex в другой, Cloud Code в третьей. И вы можете видеть О, черт. Что здесь произошло? Я потерял свою видеосвязь. Это было странно. Секунду. Позвольте мне вернуть это. Хм. Я не уверен, почему это исчезло. Ну, надеюсь, этого больше не произойдет. Э-э, но да, вы можете видеть здесь, у нас есть подсказки при наведении на то, что делают агенты. Если они в процессе, вы получите «в процессе». Э-э, если им нужно что-то проверить, вы сможете это проверить. Так что, если я запущу небольшую команду в Cloud Code, вы увидите О, он уведомит меня, когда она будет готова. Вы можете нажать на эту маленькую ссылку, чтобы перейти к этому агенту, где бы вы ни находились. И у вас также есть небольшой почтовый ящик вверху, чтобы видеть, над чем работают эти агенты. Так что причина, по которой вам нужны вертикальные вкладки, действительно заключается в этом потоке управления агентами. Но он полагается на CLI. Так что мы не привязываем вас к использованию оболочки Cursor и плана подписки Cursor, например, или Cognition или других инструментов, которые работают таким образом. Это больше похоже на что-то вроде tmux, если вы использовали это раньше. Или действительно на что-либо, что является мультиагентным. Или вы можете запускать любые CLI, которые хотите, или использовать встроенного агента Warp, который дает вам хороший пользовательский интерфейс поверх всего этого. И мы предоставляем вам пользовательский интерфейс агента для управления всеми этими агентами по мере их выполнения. Очень просто. Э-э, Итак, возвращаясь к команде оболочки, позвольте мне показать вам некоторые основы фактического выполнения команд в этом терминале. Э-э, так что, когда вы выполняете команды в Warp, вы сразу заметите, что все, что вы получаете в терминале, немного стилизовано. Это немного улучшено, потому что обычно вам может потребоваться настроить идеальный командный запрос, где вы получаете свой каталог или получаете свое дерево Git и все такое прочее. Изначальная слава Warp заключается в том, что вам не нужно ничего из этого делать. На самом деле, я покажу вам, как выглядит мой стандартный терминал. У меня ничего не настроено на этой машине. Это машина, которую я использую для работы в Warp в течение последнего года и нескольких месяцев. Э-э, и я до сих пор не настроил Zshell, на самом деле. Ну, у меня есть .zshrc, но я никогда не настраивал пользовательское окно запроса. Я думаю, оно называется PS1. Э-э, где вы можете выбрать весь пользовательский интерфейс, который хотите показать, потому что Warp предоставляет его вам. Вы, конечно, можете настроить свое собственное пользовательское окно запроса и попросить Warp использовать его вместо этого, но я добился большого успеха, просто используя то, что предоставляет Warp, потому что вы получаете переключатель каталогов и ветку. У вас также есть панель обзора кода, которую мы рассмотрим, когда попросим ИИ начать писать код для нас. Э-э, и все это кликабельно. Это своего рода приятная особенность. Так что это не только пользовательский интерфейс для просмотра вещей, но вы также можете нажимать и делать вещи. Так что, если вы хотите перемещаться по каталогам, это будет выполнять команды для вас, чтобы перемещаться. Так что, если я хочу найти каталог там, я могу это сделать, и это выполнит эквивалентную команду для меня, что очень приятно. Он также имеет автодополнение, встроенное в этот парень. Если вам интересно, как это работает, это основано на предыдущих командах. Так что, если вы выполнили команду в прошлом, он решит в этой последовательности команд. Так что не только последняя, но и вся последовательность в этой сессии, какая следующая команда наиболее вероятна? И если мы не уверены, мы также добавляем локальное инференс ИИ. Так что, если это новый проект, и вы получаете какой-либо журнал ошибок или инструкции по настройке, он извлекает их для вас и генерирует следующую команду. Это похоже на автодополнение в Cursor, но для ваших команд терминала. Это даже полезнее, чем автодополнение для кода, потому что да, мы почти закончили писать код вручную, но мы еще не закончили запускать терминалы вручную. Что происходит, чувак? >> [смех] >> Я постоянно теряю свой общий экран, и я искренне не знаю почему. О, чувак, это странно. Ну, возможно, мы будем бороться с этим сегодня, к сожалению. Но я буду следить за этим, чтобы убедиться, если мне нужно будет воссоздать экран. Извините за это. Но да, иметь следующее автодополнение для команд терминала очень полезно, потому что когда вы используете агентов CLI, вы проводите здесь много времени. И если вы занимаетесь DevOps, вы тоже проводите здесь много времени. Так что иметь хорошее автодополнение очень полезно. Итак, здесь мы смотрим на серию выполненных команд. Следующее, о чем я могу поговорить, это способ, которым мы группируем все команды, чтобы сделать их немного проще для навигации. Так что вы можете видеть, когда вы нажимаете на команду, просто лениво, она выделяет весь блок, что отличается от других терминалов, к которым вы могли привыкнуть. Так что, например, если бы я запускал что-то в своем стандартном терминале Mac и запускал что-то вроде этого, и я хотел бы получить этот вывод, я мог бы просто, знаете ли, перетащить и получить это для меня. Но если у вас длинный стек трассировки, и его слишком много, чтобы просто выделить его, или его действительно раздражает, чтобы убедиться, что ваш выбор текста правильный. Гораздо удобнее просто нажать на него, щелкнуть правой кнопкой мыши, а затем вы можете скопировать команду, вывод или все. Э-э, так что, если я просто хочу скопировать вывод этой команды, я могу лениво нажать на нее, и вот она. Она в буфере обмена. Мне не нужно ничего об этом делать. Э-э, то же самое и с этим. Если мы хотим скопировать оба, команда C. Для этого есть сочетания клавиш. И это скопирует как ввод, так и вывод. То же самое и с этим. Команда C, вставьте, и теперь у вас есть все. Очень круто. Э-э, и вы также можете перемещаться. Так что у вас есть фиксированные заголовки, во-первых, что очень приятно, если у вас есть длинная трассировка стека, которую вы хотите посмотреть. Э-э, вы также можете нажать команду вверх и вниз, чтобы перемещаться. Э-э, так что, если вы клавиатурный воин и вам нужно быстро переключаться между различными журналами, вы просто запускаете это. Очень легко. Вам не нужно прокручивать вообще, если вы не хотите. Э-э, некоторые другие вещи, которые вы можете сделать здесь. Вы можете фильтровать вывод. Это очень полезно. Так что позвольте мне перейти к моей сборке для разработки, где у меня есть команда, которую я могу запустить для вас. Так что, если я хочу отслеживать журналы работающего приложения, у меня есть сохраненная команда для этого. Кстати, я могу научить вас, как сохранять команды в Warp. Это еще одна функция, которую мы имеем, которая позволяет вам сохранять то, что вы часто запускаете, а также добавлять шаблоны. Э-э, так, например, я хочу отслеживать журналы стабильной сборки. Это команда, которую я сохранил, потому что мне иногда нужно с ней работать. Э-э, и я могу нажать «tail», и теперь мы получим текущий журнал всех событий, происходящих в этом приложении. Так что это буквально отслеживает мои вводы и дает мне журналы разработки. Э-э, и вы снова видите приятные фиксированные заголовки, так что вы не забудете, что это была за команда. Очень полезно. Вы можете нажать, чтобы перейти к началу, а также нажать эту кнопку внизу, чтобы перейти к концу. Мой очень легко перемещаться. Э-э, и если вы хотите найти что-то внутри, у нас есть несколько способов помочь вам. Так что вы можете сделать команду F, как и ожидалось. И если вы хотите получить все информационные журналы, которые там есть, журналы предупреждений, которые там есть. И это достаточно полезно. Вы можете проходить по ним так же, как по веб-странице. Э-э, но если поступает много журналов, например, это полный дамп всего, что выходит из терминала Warp, удобнее просто смотреть на строки, которые вас интересуют, по мере их потоковой передачи. И для этого мы добавили небольшую кнопку фильтра. Так что, если вы нажмете «фильтровать вывод блока» и выберете, что вы хотите ввести, теперь вы заметите, что он просто фильтрует строки, которые включают этот токен. Так что теперь нам не нужно перемещаться по куче шума. Мы видим только то, что важно для нас. И мы также можем искать вещи, связанные с Kubernetes. Вот они. Мы просто ищем события мыши. Теперь мы смотрим на события мыши. Э-э, боже, я просто не знаю, почему это происходит. Э-э, мы будем просто бороться с этим каждые 5 минут или около того. Извините, я не знаю. Э-э, я поработаю над этим после этого стрима. Но да, фильтрация немного облегчает работу с вещами. Э-э, и она также в реальном времени. Так что, если вы начнете работать с командами здесь, а затем мы запустим еще несколько вещей. Я просто нажимаю на клавиатуру, конечно. Вы можете видеть, что журналы обновляются в реальном времени. Так что он не застыл на месте. Это фактически отфильтрованный вид того, что вас интересует. И когда вы его убиваете, он остается, что приятно. Э-э, так что, если вам нужно передать это агенту для контекста, вы можете. И это приводит меня к режиму агента Warp, о котором я сейчас расскажу. Э-э, так что вы заметите здесь, мы также предлагаем вам предложения по запросам, если есть что-то, с чем агент может помочь. Вы можете отключить их в настройках, кстати, если вы не хотите их использовать, но если вы находите их полезными, вот они. Я обнаружил, что они довольно умны на данный момент, потому что мы настроили агента, чтобы он давал нам хорошие предложения. Так что, например, он видит, что я фильтрую предупреждения, и поэтому он говорит: «Позвольте мне помочь вам проанализировать их. Почему бы и нет?» Э-э, так что вы можете нажать команду Enter, если хотите поговорить с агентом, маленькое уведомление внизу, или вы можете просто нажать на предложенный запрос, если хотите. И это приведет вас к разговору с агентом. Так что вы можете видеть, что он включил этот блок в качестве контекста. Мне не пришлось перетаскивать, выделять, копировать, запускать Codex, вставлять. Он просто сделал все это для меня за один раз. И вы можете делать это вручную, тоже. Очень легко получить вывод терминала в контекст. Это действительно то, с чем мы пытаемся помочь, потому что мы терминал. Мы хотим помочь вам собирать контекст более эффективно. И это использует агента Warp, чтобы работать над этим для меня. Э-э, есть много, и вы, вероятно, задаетесь вопросом: «Хорошо, новая оболочка агента, я использую Claude Code, почему вы мне это продаете?» Ну, позвольте мне хотя бы дать вам обзор того, что это такое. Так что это похоже на Open Code или Pie или другие открытые агенты, которые позволяют вам использовать любой инференс, который вы хотите, а также предлагают свой собственный инференс с оплатой за токены. Так что у нас есть компании, которые пропускают свои токены через Warp. Это одна из вещей, которые вы можете сделать. Вы также можете использовать свои собственные ключи, свои собственные URL-адреса инференса, такие как Open Router, или вы можете использовать свою собственную подписку Twitter. Так что это новая функция, которую я могу вам показать, где, если у вас есть существующая подписка Grok или Twitter Premium, вы получаете бесплатный ИИ. Довольно забавно. И вы также получаете доступ к модели, которая действительно хороша. Э-э, так что это модель, которая вышла вчера, на самом деле. Grok 4.5. Я использовал ее несколько часов с момента запуска. Мне нужно больше спать. Э-э, и она очень эквивалентна Opus 4.8 или GPT 5.5. Это, честно говоря, смесь того и другого, где вы видели там, она довольно быстрая. И у нее также есть часть вкуса Opus. Э-э, она действительно эффективна. И прямо сейчас, если у вас есть Twitter Premium, вы можете получить бесплатный ИИ. Так что я думаю: «Почему бы не попробовать?» Если вы уже используете Warp, просто подключите его, если у вас есть, и используйте его, чтобы увидеть, как вам нравится модель. Знаете, это довольно круто. Э-э, у меня уже был Twitter Premium, поэтому я подумал: «К черту. Давайте попробуем модель». И она оказывается действительно эффективной смесью, потому что они теперь работают с командой Cursor над созданием этой модели. Cursor очень хорошо обучается на всех данных, которые у них есть о разработчиках и о том, как они используют подобные вещи. Так что это действительно эффективная модель. Э-э, так что просто упомяну это как вариант. Вы можете использовать свой собственный ключ для этого агента, который я вам показываю здесь. Вы также можете использовать Warp для своего инференса. У нас есть модели с открытым весом, которые будут эффективны по токенам. Или если вы получили Twitter, вы получаете бесплатный ИИ. Так что попробуйте. Почему бы и нет? Э-э, и мы получаем ответ здесь обо всем, что он нашел. Так что он провел небольшое исследование. Э-э, похоже, он сразу перешел в правильный каталог, чтобы ответить на это. Давайте выясним. Э-э, да, он перешел в project/warp. Он сразу это понял. Э-э, так что одна из вещей, которую дает вам наша оболочка, — это свобода перемещаться по разным каталогам. Это довольно хорошо. Э-э, вы также можете настроить разрешения в настройках. И он дал нам анализ. Э-э, так что изменение фокуса было отправлено, полезно, сгенерировано для статистики git diff. Хорошо. Он объясняет все эти предупреждения одно за другим, что полезно. Так что у него также есть вывод в виде таблицы markdown. Так что, если вы хотите посмотреть на что-то более форматированное, это то, что агент Warp предоставит вам в виде приятного пользовательского интерфейса поверх всего с прокручиваемыми видами. Представьте, что у вас есть прокручиваемый вид внутри вашего агента. Э-э, и мы также предоставляем вам разбивку кредитов. Так что здесь он буквально использовал копейки для генерации этого вывода, что довольно круто. И мы также предоставляем вам разбивку того, какие модели использовались. Так что здесь он использует Grok через какую бы подписку у меня ни была. Э-э, он использует GPT-5 Nano для суммирования инструментов. Это ничего не стоит. Не волнуйтесь. Э-э, мы также видим некоторую статистику инференса и другие вещи. Э-э, все это разбито там. И если вы задаетесь вопросом: «Что означают кредиты?» Э-э, мы собираемся переключить это на прозрачную сумму в долларах в ближайшие недели. Так что, если вы сбиты с толку этой метрикой, не волнуйтесь. Это вроде как просто возьмите стоимость токена и разделите на тысячу, что-то в этом роде. Э-э, и мы добавим больше прозрачности в будущем. Но вы получаете сводку в конце каждого разговора. Если вы задаетесь вопросом, к каким моделям вы были направлены, сколько стоило ваше использование, мы предоставим вам это тоже. Э-э, так что, если вы открыты для таких вещей, как Open Code, это своего рода эквивалент. Э-э, но это помогает вам получить контекст из всего, что вы делаете в терминале, и предоставляет вам пользовательский интерфейс для просмотра всего, что делает агент, что довольно здорово, я думаю. Э-э, а также здесь у нас есть переключатель моделей. Так что я подключил свой Twitter и использовал Grok. Это то, что мы видим здесь. Но если вы хотите подключить подписку Warp, вы получите все эти другие варианты. Или вы можете подключить свои ключи для существующих маршрутизаторов, таких как ваш ключ Anthropic, Codex и т. д. Еще одна вещь, о которой я могу поговорить, это пользовательские маршрутизаторы. Это то, что мы настроили в Warp, и это довольно здорово. Э-э, я перейду к своим настройкам, чтобы показать вам, что это такое. Так что в профилях, на самом деле нет, я думаю, это в агенте Warp. Вы можете сделать эту пользовательскую вещь, называемую пользовательскими маршрутизаторами. И это позволяет вам решать, какие модели вы хотите использовать, в зависимости от сложности или даже письменных правил вашей задачи. Я еще не достиг такого уровня сложности. Мы только что выпустили это на прошлой неделе, но это очень интересно. Так что, если вы хотите, например, разумно изменить уровень рассуждений в зависимости от вашего запроса. Мы предоставляем вам некоторые автоматические модели, которые вы можете использовать. О, я полагаю, вы не можете использовать автоматические модели здесь. Имеет смысл. Э-э, но мы предоставляем вам некоторые встроенные маршрутизаторы. Если вы хотите создать свой собственный, вы можете сказать: «О, я хочу использовать Grok medium по умолчанию». Это имеет смысл. А затем, возможно, у меня будут правила для изменения используемой модели. Так что, например, для повседневных задач кодирования он просто будет использовать это. Для задач scoped PR review, таких как рассмотрение комментариев к PR, я могу решить, если что-то нечетко совпадает с чем-то в этом роде, и мы используем LLM, чтобы решить, к чему направить. Я мог бы сказать, что хочу направить это именно на Grok low. А затем, возможно, для режима планирования общей картины, возможно, у меня есть ключ Entropic, и я хочу направить его на Claude. Или, возможно, я хочу продолжить с моей настройкой Grok и немного повысить уровень рассуждений до чего-то вроде high. Я мог бы сделать что-то вроде этого. И теперь мы можем сохранить это, если хотим. Так что мы могли бы сказать мой маршрутизатор, если я просто хочу использовать это для всех задач. Почему бы и нет? Так что теперь у меня настроен пользовательский маршрутизатор, и я могу подключить его сюда. Так что вместо использования этого я мог бы изменить свой маршрутизатор на мой маршрутизатор. Вот так. Так что теперь, когда мы начнем говорить с этим парнем, он будет переключать уровень рассуждений с маршрутизатором впереди, который решает, какая модель лучше всего подходит для любого вашего вопроса. Так что, если я переключусь на /plan, например, а затем скажу /plan очистку наших журналов предупреждений. Я просто посмотрю, вызовет ли это что-нибудь. Может быть, может быть, нет, потому что это небольшой план, но давайте посмотрим. Давайте посмотрим, что он сделает. Итак, здесь мы начали говорить с агентом, и я собираюсь его убить, чтобы увидеть, к чему он был направлен. О, мы также предоставляем вам пользовательский интерфейс для вопросов. Как насчет этого? Всегда предупреждайте шаблон, хорошо, ладно. Понизить до отладки и трассировки. Дайте мне более точное условие. Да, это кажется правильным. Я не делаю ничего, кроме использования рекомендованного. Так что vape cancel, давайте посмотрим, что он использовал. Почему бы и нет? Да, он переключился на высокий уровень рассуждений для нас. Как насчет этого? Так что он разумно изменил уровень рассуждений, потому что мы вошли в режим планирования. Так что теперь вам не нужно делать это вручную. Это автоматическое направление. Это новая функция, которую мы добавили в нашу небольшую оболочку. Так что, если вы когда-либо хотели смешивать и сопоставлять модели в зависимости от задачи, вы можете сделать это сейчас. Очень круто. Э-э, хорошо, так что это было глубокое погружение в агента Warp. Э-э, вы можете принести все, что хотите, и вы также можете настроить пользовательские маршрутизаторы. Э-э, есть ли что-нибудь еще, о чем вы, ребята, задавались вопросом об агенте Warp? Так что это «принеси свой собственный ключ», но не обязательно «принеси существующие подписки». Это важный момент. Так что вы можете принести подписку Grok конкретно. Так что, если у вас есть подписка на нее, вы можете. Для Codex и Claude они блокируют это за дверями. К сожалению, мы пока не можем этого сделать. Но это приводит меня к использованию CLI, о чем я могу поговорить. Э-э, так что, если вы хотите использовать Claude Code или подписку на код конкретно, вам нужно будет обратиться к их CLI. И мы поможем вам с этим. Так что позвольте мне перейти к проекту и показать вам, как выглядит использование, например, CLI Claude Code в Warp. Э-э, так что я перейду к этому примеру проекта здесь, и я просто запущу его, чтобы показать вам, что это такое. Э-э, это проект на Rust, так что я запущу cargo run. Вот так. И это TUI, которое я создал для навигации по проблемам GitHub. И мы попросим агента исправить некоторые ошибки в этом, чтобы протестировать его. Э-э, так что, если мы развернем этот парень на весь экран, кстати, забавный совет, это то, что я показал Шаши на конференции. Во-первых, вы можете создавать разделенные панели в Warp с помощью команды D. Я пропустил это, но это способ создать разделенную панель. И вы также можете развернуть панель на весь экран, если хотите просто посмотреть на нее на мгновение. Так что, если вы нажмете точки наверху, у вас есть опция максимизировать панель с помощью сочетания клавиш. Команда Shift Enter развернет это для любой работы, которую вы пытаетесь сделать. Так что, например, здесь я развернул ее на весь экран. Я вижу, что есть некоторые проблемы с контрастом текста. Нажму команду Shift Enter снова, чтобы скрыть это, и я попрошу Claude решить это для меня. Прямо здесь. Так что теперь мы будем использовать Claude Code для этой сессии. И я собираюсь развернуть Claude на весь экран. Так что команда Shift Enter. Теперь мы разворачиваем Claude на весь экран, и мы можем переключаться туда и обратно, если хотим. Да, эти сочетания клавиш очень полезны. О, и еще одна вещь, которую я покажу для организации вашей установки. Одно — это создание разделенных панелей, как это, и их максимизация с помощью сочетания клавиш. Другой вариант, который вы можете сделать, это перетащить их во вкладки, если хотите, и сгруппировать их. Так что вы можете нажать, удерживая клавишу Shift, по нескольким вкладкам, щелкнуть правой кнопкой мыши и нажать «создать группу». Так что эта задача будет заключаться в исправлении ошибок в нашем э-э, в нашем э-э, твике. Как насчет этого? И теперь эти группы сгруппированы для удобной навигации. Так что, если вам нужно что-то, что немного менее похоже на клавиатурного воина, но все же позволяет вам сворачивать это и видеть все, что происходит. Например, вы все еще можете видеть, как Claude работает внутри. Вы можете сделать это тоже. И если вы задаетесь вопросом, да, вы можете изменить имена вкладок. Так что дважды щелкните, и вы можете переименовать вкладку. Так что, если мы хотим переименовать вкладки, мы можем сделать это тоже. Это все, что вам нужно сделать. Так что у нас есть группы, у нас есть вкладки, которые вы можете переименовать. У нас также есть разделенные панели, если это тот поток, который вы предпочитаете. Есть всевозможные способы делать вещи в Warp. Эта настройка здесь — мой предпочтительный способ делать это. Просто чтобы мне не пришлось управлять кучей разделенных панелей на экране ноутбука, я люблю группировать свои вкладки и давать им имена, если я делаю какую-то конкретную задачу. Я обычно не называю сами вкладки, я просто называю группу, но делайте все, что хотите. Я также могу упомянуть, что если вы хотите раскрасить вещи для легкого поиска, вы можете щелкнуть правой кнопкой мыши и изменить цвет. Я лично этого не делаю, потому что мы предоставляем вам значки, но если вы любите такие вещи, у нас есть цвета. Хорошо, давайте попросим агента поработать над некоторыми советами, теперь, когда наша установка готова. Ба. >> [смех] >> Очень интересно, почему это происходит. Ба ба ба, мы вернулись. Итак, контраст текста. Вы можете даже не видеть его на своем компьютере, но у нас есть некоторый текст здесь и здесь, и внизу, но в темном режиме он теряется. Другая проблема заключается в том, что если вы удерживаете клавишу со стрелкой, положение прокрутки не обновляется. Так что мы попросим агента сделать обе эти вещи. И мы можем сделать это, просто набрав это во ввод, но также есть встроенный голос. Что? Внутри Warp. И встроенный голос будет использовать Whisper Flow, и это ничего вам не стоит. Мы даем его вам бесплатно. Так что вы получаете сверхточную транскрипцию голоса, либо удерживая клавишу функции, либо нажимая на маленький микрофон где угодно в Warp. Неважно, что вы делаете, вы можете удерживать клавишу функции с командой оболочки, вы можете удерживать ее с Claude Code, где угодно, это работает. Так что здесь я скажу: «Я хочу исправить пару ошибок здесь. Во-первых, контраст текста не работает в темном режиме. Мы должны использовать затемненную версию системного шрифта. Во-вторых, я заметил, что положение прокрутки боковой панели не обновляется, когда я нажимаю стрелки». Дайте этому транскрибироваться. И вы заметите, что он также форматирует списки. Очень круто. Так что я отправлю это. И мы дадим агенту приготовиться к этому. И пока это работает, я займусь второй задачей. Это то, где я могу говорить о рабочих деревьях, что является второй вещью, с которой Warp вам помогает. Также сверните это. Почему бы и нет? Э-э, наверху у нас есть эта опция не только создавать новую вкладку терминала, но и сохранять конфигурации вкладок. Так что думайте об этом так: я хочу открыть вкладку, а затем выполнить серию команд, чтобы настроить меня для всего, что я пытаюсь сделать. Распространенный пример этого — я хочу открыть новую вкладку и автоматически создать рабочее дерево, не делая этого самостоятельно. Мы называем это конфигурациями вкладок. В Code X они называются локальными средами. Есть много названий. Но мы называем их конфигурациями вкладок. Если вы хотите создать новую, вы можете создать ее из шаблона. Например, здесь, если вы хотите создать настройку для постоянного создания рабочего дерева из проекта, вы можете сделать это прямо отсюда. Или вы можете нажать «новая конфигурация вкладки» и просто начать набирать. И это похоже на YAML-файл, который вы можете редактировать, чтобы описать, что именно должно открываться в терминале, когда вы нажимаете «новая вкладка». Так что, если это вроде: я хочу открыть терминал, я хочу установить зависимости в проекте, который меня интересует, я хочу создать новое рабочее дерево, а затем я хочу открыть Claude Code. Вы можете последовательно выполнить все это. Мы проверим это через минуту. Вы можете последовательно выполнить все это в этом небольшом массиве команд. Так что вы можете сказать, например, я хочу перейти в проекты/Warp. Правильно? Я хочу создать рабочее дерево, а затем я попрошу агента настроить эту часть. Я не знаю полной команды. А затем я хочу запустить Claude внутри. Что-то вроде этого. Вы можете настроить свои команды вот так. Мы можем назвать это «открыть Warp с Claude». И теперь у нас это сохранено. О, и вы также можете просто установить свой каталог, так что это может быть. Так что позвольте мне перейти и назвать это project/Warp и удалить это из массива команд. И все. Так что, как только вы создадите конфигурацию вкладки, она просто станет доступной. Так что наверху есть «открыть Warp с Claude». Если я нажму на это, мы окажемся в Warp, и теперь мы запускаем Claude. Готово. Очень легко. И, конечно, вы можете сделать это более сложным, если хотите. Так что я создал несколько более сложных. Ах, боже. И сложные были написаны агентами, можете себе представить. Поскольку это файл на вашем компьютере, вы можете просто попросить агента настроить для меня конфигурацию вкладки. Так что я настроил одну для работы над нашим тестовым проектом. По крайней мере, я так думаю. Нахожусь ли я сейчас в Черт, мне жаль, что это продолжает скрываться. Я действительно не знаю, что происходит с общим экраном прямо сейчас. Но мы будем продолжать возвращать его. Что происходит? Черт, мне, возможно, придется спросить агента, почему мой экран постоянно исчезает. Интересно, это какая-то проблема с разрешениями браузера или что-то в этом роде. Я не могу исправить это, не закончив стрим, в этом проблема, так что, думаю, мы будем продолжать бороться с этим. Я не знаю. Я не знаю. Но мы продолжим. Продолжим. Итак, возвращаясь к этому терминалу. Что я делал? Я показывал вам конфигурации вкладок. Точно. Так что я на самом деле поместил его в мою другую сборку Warp. Я только что понял, что я все время был не в той версии. Но это нормально. Я могу вернуться и показать вам, как это выглядит. Так что здесь я создал еще одно рабочее дерево, еще одну конфигурацию вкладки, которая настраивает новые рабочие деревья для меня в этой папке. Вы можете видеть, что использует конфигурация. Так что эта немного сложнее. Вы также можете максимизировать ввод учетных данных. У нас есть просмотрщик файлов, кстати. Забавный факт, Warp имеет редактор файлов. Я даже не упоминал об этом, но у нас есть, просто для удобства. Но мы можем видеть здесь, да, у нас есть набор команд, которые мы запускаем. Здесь мы создаем каталог рабочего дерева, и я устанавливаю его в эту папку. Вы можете делать все, что хотите. Мы добавили Git. Мы идем в эту папку. Мы получаем зависимости cargo, потому что это Rust. А затем мы запускаем Claude. И мы также запрашиваем имя рабочего дерева. Это еще одна классная функция. Так что, если вы хотите настроить, например, прежде чем открыть эту вкладку, я хочу заполнить небольшую форму всех моих предпочтений, вы можете сделать это здесь. Позвольте мне показать вам, что это делает, когда я открываю ее. Так что, если я нажму на рабочее дерево, он спросит меня имя рабочего дерева из-за этого свойства params там. Я мог бы сказать SQLite кэширование, потому что это то, что я собираюсь реализовать. И, бум. Теперь он запустится О, боже. О, он уже существует. Это имеет смысл. Ну, что он здесь сделает? Он предложил это, что интересно. Хм. Да, это не очень хорошие. Но позвольте мне сделать это. Удалить существующий рабочий каталог и добавить его снова. Это имеет смысл. Я, вероятно, мог бы сделать это вручную, но просто чтобы показать вам, когда вы сталкиваетесь с проблемами в терминале, вы можете просто попросить агента помочь вам. Так что мы сделаем это. И, пока это готовится, я могу вернуться к нашему другому окну терминала, чтобы посмотреть, что сделал Claude. Так что в наших уведомлениях мы видим, что Claude закончил. Так что я нажму на это. И наш Claude немного поработал. Немного поработал. Похоже, он исправил контраст текста. И я не знаю, исправил ли он также положение прокрутки, но мы узнаем. Давайте посмотрим. Так что вы можете нажать на этого парня прямо здесь. Это панель просмотра изменений. И это панель обзора кода, которую мы также встроили в Warp. Так что, если мы нажмем на это, вы увидите, что мы предоставляем вам полный diff всего, что сделал агент, в удобном графическом интерфейсе. Так что это не просто ленивый Git или что-то в этом роде. Это полностью интерактивно. Это похоже на приложение Codex, на самом деле. Это моя любимая часть использования Codex или Visual Studio Code — иметь панель обзора, и именно поэтому мы потратили несколько месяцев на создание ее в терминале, просто чтобы вы могли иметь ее для всего. Так что, если вы работаете с Claude Code, вы работаете над чем-то, и вы хотите видеть изменения, которые он сделал, у вас есть это прямо здесь. Вы также можете максимизировать его. То же сочетание клавиш, что и для всего остального. У вас есть дерево файлов справа, если вы хотите посмотреть все измененные файлы. И вы можете просто прокручивать diff. Так что мы видим ряд сделанных вещей. Он добавляет модификатор dim. Это хорошее исправление. Мне нравится. Мы видим некоторые комментарии, которые, вероятно, излишни. Так что, поскольку это редактируемо, я могу просто удалить их. Вам не нужно тратить токены, спрашивая агента обо всем. Если есть лишние изменения, которые вы хотите внести, часто изменение навыков markdown или удаление ненужных комментариев, вы можете просто протянуть руку и отредактировать их, и агент будет знать об этом, читая файл, если его нужно отредактировать. И также, если я захочу оставить какие-либо комментарии к этому, я могу. Так что, если я захочу оставить комментарий агенту, здесь есть небольшая подсказка при наведении, где я могу сказать: «Вынеси утилитарную функцию». Что-то вроде этого. Если вы нажмете «отправить агенту», это приведет к запросу в поле, описывающему это изменение. Вот как мы сделали его агностическим к любому терминалу, который вы используете. Так что вы можете видеть здесь, он просто говорит ему рассмотреть эти комментарии к обзору кода и предоставить весь необходимый контекст, а затем агент может внести это изменение. Довольно просто, верно? Если кто-то говорит вам, что вам нужен пользовательский инструмент для обзора кода, вам действительно не нужен. Это довольно легко сделать. И мы также видим, что здесь применяется dim. Это слишком много. Так что я просто отредактирую это. Удалю это, и теперь все готово. Готово. И мы также можем протестировать работу, если хотим. Так что помните, это текущая вкладка. Мы перейдем к версии этого, которая работает. И мы посмотрим, работает ли она. Кстати, не стесняйтесь задавать вопросы, если что-то непонятно, если у вас есть последующие действия о том, как настроить это в вашем редакторе, дайте мне знать. И похоже, что он исправил все. Неудивительно. Это простые запросы. Это умные модели. Но да, он сделал довольно чертовски хорошую работу. Возвращаясь к нашему другому окну, кстати. Извините, есть два окна, но я хотел показать вам, как вы можете настроить рабочие деревья и все такое. Так что здесь, чтобы воссоздать с нуля, что это делает? Он потерпел неудачу, потому что каталог существует, использовать как есть или воссоздать с нуля. Имеет смысл. Он не хотел выполнять деструктивную операцию. Ну, это еще одно удобство: вы можете просто нажать на любую предложенную команду и просто запустить ее в терминале сразу. Вам не нужно копировать и вставлять ничего, если он дает вам инструкции. Круто. Так что теперь мы исправили наше рабочее дерево. И если мы хотим снова запустить рабочее дерево, оно должно работать, я полагаю. О, я думаю, он на самом деле удалил и добавил его. Так что позвольте мне удалить его вот так, а затем снова запустить. Так что мы создадим новое рабочее дерево SQLite кэширование. Давайте выясним. Что? О, это потому, что ветка уже существует. get branch -d. Ах, он не предлагал вещи. Вы не выглядите очень круто прямо сейчас. И это имеет смысл как следующая команда, но я удалю. И он предложил принудительное удаление. Это тоже имеет смысл. Хорошо. Так что он удален. Прекрасно. Это автодополнение для вас. Теперь мы сделаем SQLite кэширование. Я знаю, вы наблюдаете, как я неуклюже работаю в терминале. Я просто показываю вам, что это своего рода полезно видеть все это. И вот как мы можем это настроить. Так что теперь у меня есть опция быстрого набора, если я хочу создать рабочее дерево, которое открывается в Cloud Code для работы над моей следующей задачей. Все это сохранено в моей настройке рабочего дерева для работы над следующей вещью. Довольно круто. Довольно круто. Хорошо, так что мы охватили много тем, я думаю. Мы говорили о рабочих деревьях. Мы говорили о конфигурациях вкладок. Мы говорили о Cloud Code и панели обзора кода и взаимодействии между ними. Мы также много говорили об агенте Warp. Мне не нужно об этом говорить. Так что это оставляет нам много места, если мы хотим поговорить о чем-то еще. И я думаю, что это может быть хорошим использованием времени, если мы хотим поговорить о программных фабриках. Кто готов поговорить о программных фабриках? Давайте получим немного энергии в чате. Кто готов поговорить о программных фабриках? Давайте получим конфетти. Давайте получим волнение. Давайте начнем. Я перейду к настоящей программной фабрике. Никто не в восторге. Вы просто спрашиваете меня о других вещах. Боже. Давайте сделаем это. Вот так. Вот так. Все мертвы там. Либо вы AFK, едите обед, что я полностью уважаю, либо вы следите за 50 агентами прямо сейчас. В любом случае, я продолжу. Но я буду говорить о программных фабриках больших и малых. Просто чтобы дать вам представление о том, как это работает, потому что это новая концепция, на самом деле. Управление агентами не из интерактивных задач терминала, как использование Claude Code, как мы делали раньше, а управление ими из внешних триггеров. Так что именно об этом я и буду говорить. Так что, я думаю, я мог бы спросить перед началом, дайте мне единицу, если вы знаете, что такое программная фабрика, и двойку, если нет. Все здесь знают, что такое программная фабрика? Единица, если знаете, двойка, если нет. О, все конфетти приходят с задержкой. Да, я забыл, что между тем, что я говорю, и тем, что появляется в разделе комментариев YouTube, проходит 20-30 секунд. Это займет время. Хорошо, у нас есть кто-то, кто не знает. У нас есть один, кто прочитал меморандум. Хорошо, у нас есть много ресурсов, которые я вам отправлю в конце. В основном нет. Это имеет смысл. Так что я определенно расскажу, что это такое. И если вы уже знаете, поделитесь в чате своим определением. Знаете? Посмотрим.

Посмотрим, совпадаем ли мы. Эм, но если вы двое, я с радостью вам покажу. Итак, я на самом деле открою визуальный ресурс, который мы собирали, а затем покажу вам несколько примеров из приложения. Как насчет этого? Итак, я перейду к нашим статьям. Это наш генеральный директор, кстати, мистер Зак Ллойд. И он делился множеством ресурсов, диаграмм и других вещей, которые укрепляют то, над чем мы работали внутри компании, и то, что мы понимаем под программными фабриками. Итак, я вернусь сюда. Посмотрим, какая диаграмма будет наиболее полезной. Я бы подумал, что не совсем петли самосовершенствования, но спектр и разработка довольно полезны. Давайте посмотрим, будет ли эта полезной. Если нет, я начну рисовать свою собственную диаграмму. Да, это блок-схема всего, чем может стать программная фабрика. Но чтобы поговорить о том, что это такое, я знаю, что диаграмма есть в одной из них. Позвольте мне немного пройтись. Да-да-да. Не та. Возможно, эта. И эта тоже нет. Хорошо, я, возможно, перейду к простому наброску на доске. И мне жаль, что демонстрация экрана постоянно отключается. Я не знаю почему. Я просто не знаю, потому что у меня есть разрешение. Это очень странно. Надеюсь, это исправится. Ну, вот диаграмма, которую я искал. Это наш более предвзятый взгляд на то, что такое программная фабрика, но грубо говоря, это идея автоматизации системы, которая может принимать задачи и выполнять эти задачи до завершения без какого-либо вмешательства человека. Это своего рода версия "Золотого штата" или "Северной звезды" того, что такое программная фабрика. И эта диаграмма хорошо это отражает. Идея в том, что вы вводите идеи продукта, отчеты об ошибках и т. д. сверху, используя какую-либо доску задач. Возможно, GitHub, возможно, Jira, возможно, Linear. Для личных проектов, вероятно, GitHub. На работе, вероятно, Linear и Jira. А затем у вас есть агент, который принимает эту необработанную информацию и пропускает ее через фабрику агентов. Все настроено, как вы можете себе представить, через автоматизацию и триггеры, когда все становится реальностью. Например, когда поступает проблема, вы можете захотеть, чтобы агент посмотрел на эту проблему и решил, достаточно ли в ней деталей, чтобы начать работу. Если да, возможно, мы можем передать ее агенту по спецификациям или реализации, чтобы продолжить работу. Если деталей недостаточно, возможно, мы пометим владельца кода и попросим его доработать ее для нас. Таким образом, агент сортировки является своего рода входной дверью, чтобы сказать, достаточно ли она доработана, чтобы отправить ее на фабрику? Если да, мы отправим ее дальше. Если нет, мы вернем ее с некоторыми результатами исследований, владельцами кода и всем, что поможет вам запустить ее на сборочной линии. Во-вторых, у вас есть агенты по спецификациям и реализации. Агент реализации довольно прост. Это означает, что что-то достаточно проработано, чтобы вы могли передать его агенту и получить его реализованным до обзора PR, который человек захочет просмотреть сам. То есть, не просто он может написать код, который выполняет одноразовое действие. Нет, мы имеем в виду агента реализации, который может работать над задачей. У него достаточно деталей для этого. Он может проверить свою работу, вероятно, с использованием компьютера или других опций, которые он может нажимать до конца, а затем передать что-то, готовое к отправке. Вы, вероятно, представляете себе этап проверки кода посередине, где агент фактически выполняет качественную работу, готовую для человеческих глаз, а не просто одноразовые действия. Агент реализации предназначен для того, чтобы быть тщательным, полезным рабочим инструментом, который может довести задачи до состояния, пригодного для проверки. Все это автоматизировано, как вы можете себе представить. Второе — это спецификация, так что это своего рода промежуточный агент, и есть мнения о том, где должен находиться этот парень, но идея в том, что вы можете захотеть пройти через необработанный отчет об ошибке или идею продукта и превратить ее в более подробную спецификацию, которая описывает, как это будет работать в продукте, шаг за шагом, я машина состояний, пытающаяся пройти через нее. Как это будет работать? И это также описывает технический аспект. Какие функции он затронет? Какова архитектура системы? Как это будет реализовано в кодовой базе? Вот что делает спецификация. Она переходит от чего-то более серого к чему-то более черному и белому. Таким образом, когда вы передаете это для реализации, у него есть все необходимые детали. И это проходит по линии, чтобы продолжать выпускать новые функции. Итак, идея в том, что вы больше не загружаете все в сеанс облачного кода, который вы контролируете на своей машине. Теперь вы управляете всем через доску задач и позволяете агентам, работающим в облаке или на вашем оборудовании, просто подбирать эти задачи, как только они поступают, выполнять некоторую работу над ними, сортировать их, специфицировать, реализовывать, проверять, что это стоит человеческого обзора, а затем вы решаете отправить ли это. Это продуктовая фабрика. Есть также другой аспект: может ли фабрика улучшать себя без вмешательства человека? И я оставлю это как своего рода вторичную исследовательскую фазу программной фабрики. Но в идеальной "Северной звезде" это идея. Вы просто вводите вещи сверху, и получаете продукт, который со временем улучшается сам. Очевидно, мы далеки от совершенства. Человек будет вмешиваться на многих этапах этого процесса, когда вы попытаетесь его развернуть. Мы сами работаем над этим, но это своего рода идеальная идея "Северной звезды" того, чем может стать программное обеспечение. Вы вводите задачи, получаете продукт. Это становится сборочной линией. Надеюсь, это имеет смысл как определение. И вот как вы можете свести это к блок-схеме того, как все взаимосвязано. Итак, вы вводите задачу, запускается агент сортировки. Вы можете решить предоставить ввод и вернуть ее, или вы можете решить на основе результата сортировки доработать ее спецификациями, передать ее напрямую для реализации, потому что она уже специфицирована. А затем, после реализации, запускается агент проверки кода и проверяет. Возможно, вы пройдете через цикл, где один агент оставляет комментарии, другой агент их устраняет, и когда все будет готово для вмешательства человека, он решит, отправлять ли это. И CI/CD происходит где-то там. Это не имеет большого значения. У вас все равно будет CI и CD, конечно, для проверки всей вашей работы. А затем, возможно, у вас будет мониторинг на другом конце, чтобы увидеть, хорошо ли работает ваша фабрика, хорошо ли работает ваш продукт и т. д. И тогда цикл продолжается. Цикл продолжается. Итак, это в общих чертах. Вот что такое программная фабрика. Я думаю, сейчас полезно поговорить о том, как ее построить. И у меня скоро сядет батарея, поэтому я очень быстро подключу что-нибудь, чтобы запустить это. Извините, кстати, потому что у меня недостаточно портов на этом компьютере, поэтому я на секунду переключусь на худший звук, пока делаю это. Хорошо. Я справился. Я подключил его прямо перед звонком. >> [смех] >> Ох, боже. Да, это было близко. Это было близко. Позвольте мне переключить его в режим низкого энергопотребления, чтобы убедиться, что мы не переусердствуем. Черт, это было гораздо ближе, чем я думал. Извините за это. Позвольте мне убедиться, что он заряжается сейчас. Думаю, да. Думаю, мы в порядке. При переключении между изменениями, как вы перемещаетесь между файлами на клавиатуре? Я не уверен, что понимаю этот вопрос, если вы могли бы перефразировать. Это отличное описание. Можете ли вы углубиться в роль инженера в этой новой парадигме? Это просто решение отправить? Отличный вопрос. Роль инженера прямо сейчас — строить фабрику. Послушайте, я не собираюсь притворяться, что эта система просто существует и работает, потому что это не так. Роль инженера прямо сейчас — строить саму фабрику. Это понять, какие навыки должны лежать в основе каждого этапа этого. И с какими проблемами вы сталкиваетесь, когда вам нужно снять ее со сборочной линии, так сказать, и отладить проблему, с которой вы столкнулись. И есть много решений, которые вам нужно принять. Например, все это будет поддерживаться агентами с навыками, описывающими, как работает ваш продукт и как работает ваша кодовая база. Вам нужно будет со временем дорабатывать их. Они также должны поддерживаться моделями, поэтому вы будете дорабатывать уровни рассуждений. Вы будете решать использовать разные модели в зависимости от стоимости токенов. Все это то, на чем инженеры начнут фокусироваться, я думаю. Откуда берутся идеи, но задача инженера — обеспечить бесперебойную работу этого парня. И я думаю, что в ближайшие год-два это будет основная роль инженеров, которые уже признали, что интерактивные агенты полезны. Итак, если вы уже являетесь командой, ориентированной на код Claude, и вы уже используете агентов, это следующий шаг. Как нам запускать агентов, не открывая вручную ноутбуки и не делая этого? Как агент может проактивно отвечать нам? Это время инженера для построения фабрики. Вот и все. И я полагаю, если вы спрашиваете, когда вся эта работа сделана и фабрика существует, какова роль инженера? >> [хмыкает и смеется] >> Зависит. Я думаю, это будет больше связано с продуктовой стороной. Я думаю, если мы перейдем в антиутопическое будущее через 5-10 лет, продуктовое инженерное проектирование сольется, и более основные навыки начнут смешиваться. Вероятно, так и будет. Я также думаю, что для некоторых систем, которые очень сложны и очень устарели, всегда будут места для инженеров, чтобы продолжать улучшать фабрику, потому что построить что-то эффективное займет больше времени. Например, в некоторых отраслях эта идея будет равномерно распределена в течение 10-20 лет. В других отраслях это займет 1-2 года, а затем инженеры будут больше заниматься продуктом. Это действительно зависит. Но прямо сейчас мы строители фабрик. Вот что, я думаю, мы делаем. Если ваша компания уже решила: мы используем агентов. Что дальше? Это, по сути, "что дальше". Хорошо, понимая это, я хочу немного поговорить о том, как мы сейчас строим фабрики для наших собственных продуктов. Так что один из них будет личным проектом, над которым я работаю. А другой будет более масштабным проектом, которым является кодовая база Warp. Итак, вот кодовая база Warp. Позвольте мне начать с более простого, прежде чем мы перейдем к сложному. Итак, это проект, который я сделал, чтобы, простите. Он называется Hubble. Это приложение для заметок, основанное на базе знаний, которое я разрабатываю. Суть в том, что оно похоже на Apple Notes. Оно основано на Markdown и позволяет просматривать визуализации, написанные на HTML. Таким образом, вы можете делать все, от ведения заметок до создания приложений, в одном и том же интерфейсе. И это очень крутой проект, вам стоит попробовать. hubble.md. Но в рамках этого я подумал: "Хорошо, у нас есть сообщество с открытым исходным кодом, у меня есть основная группа из примерно пяти контрибьюторов, которые несколько раз внесли свой вклад, и я хотел начать автоматизировать некоторые из наших действий". Итак, я сказал: "Как я могу начать принимать эти проблемы GitHub, которые поступают, и пусть агенты работают над ними для меня, верно?" Итак, первый шаг, который я сделал, — это реализовал первую часть этой круговой диаграммы. Итак, это сортировка. И это руководство о том, как вы можете самостоятельно настроить агент сортировки. Так что это входная дверь, о которой мы говорили, верно? Всякий раз, когда проблема появляется на фабрике, она определяет уровень детализации, а затем возвращает ее, если требуется обсуждение, или передает ее в "готов к реализации", если она готова к работе. Итак, видя это здесь, вы заметите, что у меня есть некоторые метки GitHub, и это метки, которые я использую, чтобы отслеживать, где она находится на фабрике. Итак, например, на этом парне он помечен как "требуется обсуждение". Так что это был вопрос о добавлении возможности сервера MCP. И у нас был облачный агент, который также использует Warp, кстати. Warp помогает вам настраивать облачные раннеры в GitHub Actions. И если у вас открытый исходный код, мы также поможем вам с затратами на токены. Упоминаю это. Итак, это был агент, который я настроил, где всякий раз, когда что-то поступает на вход, я хочу, чтобы он, знаете ли, поговорил с создателем проблемы, был вежлив и немного рассказал о том, что не решено. Так что здесь говорится: у нас нет одобрения мейнтейнеров, как вы отметили. Неясно, как должен работать узел поиска. Есть некоторые проблемы с синхронизацией в облаке, поэтому он фактически просмотрел мою кодовую базу и мои проблемы GitHub, чтобы увидеть, есть ли связанные вещи и связанные рабочие потоки, чтобы нам было о чем поговорить здесь. А затем он говорит о правах на чтение и запись. Так что это больше о дизайне API. А затем я задал уточняющие вопросы. А затем мейнтейнер пришел и ответил на них. Так что, когда я пришел как мейнтейнер, я сказал: "Хорошо, я понимаю все, что у нас происходит на фабрике. Я вижу, что происходит в кодовой базе, и могу ответить". В данном случае я просил демо, потому что лично я не уверен, нужен ли нам MCP. Это был просто мой результат для этого, но вы можете видеть, насколько это было полезно. Это подняло некоторые важные вопросы и также вызвало обсуждение, даже без моего вмешательства. Потому что у меня нет времени отвечать на каждую проблему сразу. Это способ просто начать разговор. Так что, когда я смотрю на фабрику, я думаю: "О, вы уже обсуждали это с агентом. Отлично. Ну, об этом гораздо легче говорить". Еще один забавный пример. Это было о навигации вперед и назад в приложении. Это я записывал, и у меня не было достаточно деталей об этом, когда я писал проблему. Итак, он решил, что это готово к написанию технической спецификации. И это правило, которое вы можете описать, вы можете настроить свой агент сортировки как угодно. Это мое. Но я сказал: "Вот некоторые проблемы, которые нам, вероятно, следует решить. Какова модель истории? Каковы крайние случаи? И как мы будем определять объем сочетаний клавиш?" А затем это мейнтейнер, который просто заинтересован в этой функции, и он говорит: "Вот идея. Я думаю, если бы вы решали это для меня, вот что бы я хотел сделать". И к тому времени, когда я посмотрел на эту проблему, я подумал: "Это потрясающе". Я просто перешел от идеи, которую я напечатал, я буквально сказал Claude: "Можешь ли ты создать проблему, которая просто говорит, что я хочу навигацию по клавиатуре?" И с другой стороны, у меня есть полностью специфицированная версия со всеми перечисленными компромиссами, включающая как агента, так и заинтересованных мейнтейнеров, что очень полезно. Затем я изменил ее на "готов к реализации". И агент пошел и написал это. Посмотрите. Итак, я написал документ со спецификациями. Я на самом деле написал это вручную, прокручивая вверх, немного назад. Я написал свой собственный документ со спецификациями на основе обсуждения, потому что я хотел участвовать в этом этапе. А затем я пометил его как "готов к реализации". И я, честно говоря, забыл, я — агент. Я настроил его вчера вечером. Так что в данном случае мейнтейнер не смог вмешаться и поработать над этим, но эй, у меня был агент, который просто написал мне первоначальный черновик, и он был довольно хорош. Мне пришлось скачать его и исправить. Я заметил, что он не справился с пользовательским интерфейсом, потому что компьютерное использование сейчас сломано в моей среде. Так что снова, это роль инженера. Вам нужно отлаживать. Итак, ваш агент реализации пришел и написал какой-то паршивый код. Почему он написал паршивый код? Была ли это ошибка модели? Были ли это инструменты, которые были ему доступны? Я думаю, в данном случае у него не было инструментов, чтобы фактически проверить свою работу до конца. Он открывал идеи проектов и перемещался. Так что, видимо, он это сделал. Просто он не сделал очень качественную работу. Он выяснил, как это сделать. Так что это круто. Он действительно проверил, что смог добиться результатов. Но теперь мне нужно отладить. Почему это было немного ниже среднего? Возможно, мне нужно добавить больше навыков для проверки. Возможно, потребовать от него делать скриншоты своей работы. Многое из того, что я могу улучшить. Но в этом и идея, верно? Я надеюсь, это довольно простой краткий обзор того, как вы можете начать настраивать этих парней. И если вы скажете: "Хорошо, крутые GitHub Actions, чувак. Что это такое? Как мне добавить один из них в свой проект?" Ну, я укажу вам на этот пост в блоге. И я также дам вам версию, которой нет в Твиттере, потому что у некоторых людей нет учетной записи Твиттера, и это нормально. Это пост в блоге, который мы написали, чтобы помочь вам самостоятельно настроить агент сортировки. Я помог написать этот навык. Зак Ллойд написал первоначальную версию. Я также устранил некоторые проблемы безопасности. Так что он хороший и безопасный. Но ниже у нас есть навык, который вы можете установить, который настроит облачную фабрику, действительно базовую, которая просто использует раннеры GitHub Action внутри любого проекта с открытым исходным кодом, который у вас есть. Так что, если вы запустите этот навык, он просто настроит его для вас, используя раннеры Warp и облачную настройку. Вы можете использовать все, что захотите. Вы также можете использовать Codeax или Cloud code, если хотите использовать эти токены. Я знаю, что стоимость токенов всегда является вопросом, на который нужно ответить. Но если вы хотите простую версию, используя эту настройку, вы можете. И это руководство для этого. И если вы хотите участвовать в программной фабрике, вы также можете просто присоединиться к моему репозиторию. И помогите мне работать над проблемами или отмечать проблемы с фабрикой. Потому что все, что происходит здесь, поддерживается навыками. Так что я даже не упомянул, но, например, то, как работает фабрика, заключается в том, что она использует навыки агентов, описывающие, что делать. Так что здесь у меня есть навык сортировки. Это то, что поддерживает этого агента, которого вы только что видели. И вы можете видеть, что это метки, которые я использую. Требуется обсуждение или готов к реализации. И я могу добавить больше автоматизации оттуда. Пока что я сделал агент сортировки, который довольно хорош. Я только что добавил агент реализации. Ему нужна доработка. Я добавил агент спецификаций. Я убрал его, потому что он работал не очень хорошо. Так что я в настоящее время строю свою собственную фабрику. Я работаю над шагами, но сортировка — отличный способ начать. Просто добавьте агент сортировки к вашей существующей доске задач на GitHub и просто пусть он доработает некоторые детали, проведет некоторое исследование для вас, а затем сообщит обратно. И я настроил это как рабочий процесс GitHub внутри этого тоже. Так что, если я перейду к рабочим процессам, вы увидите прямо там, у нас есть сортировка проблем. Вот оно. Так что это фактически запустится. Он добавит некоторые метки. Это ряд улучшений, которые я вносил со временем. Так что это сложнее, чем первоначальная версия. И это наше приложение GitHub, которое помогает вам настроить агента внутри GitHub Action. Но если вы хотите использовать Claude для управления вашими GitHub Actions или какой-либо другой службой, вы можете. Эта часть взаимозаменяема. Я приглашаю вас использовать настройку Warp, если хотите. Если вы хотите использовать любую модель, а не только одну. Но если вы хотите использовать свои подписки, вы тоже можете это сделать. Итак, да, это программная фабрика. Вот как она работает. И просто для обзора того, насколько большими они могут быть, это наш репозиторий Warp с открытым исходным кодом, в котором гораздо больше проблем, чем запросов на слияние. Если вы посмотрите на Open Claw, там еще хуже, кстати. И вот как вы можете масштабировать это до чего-то более крупного. Итак, у нас есть собственная система маркировки, которую мы находим. Так что вы можете видеть, что у нас также есть "готов к спецификации" и "готов к реализации". Так что ядро очень похоже. Но идея в том, что вы можете добавить больше функций. У нас также есть пользовательские модели компьютерного использования. Вы также можете видеть, что у нас есть агент сортировки, который выводит вещи для мейнтейнера в более структурированной форме. Мой немного более свободный. Но вы можете делать все, что хотите. Ядро — это просто сортировка, реализация, спецификация, проверка, отправка. Я сказал это не по порядку, но, но это то, как вы это делаете. Хорошо, мне нужно поговорить о программных фабриках. Извините, что у нас не было времени на многоагентную оркестрацию. Такое случается. Если вы интересуетесь многоагентной системой, я могу отправить вас на наш YouTube, где у нас есть записи всех наших прямых трансляций и множество других ресурсов. Я думаю, закрепленное видео сейчас об оркестрации. Хорошо, может быть, нет, но вот хорошее видео. Если вы интересуетесь многоагентной оркестрацией, это своего рода общий обзор. А затем это очень круто для низкоуровневого понимания того, как это работает. Так что, если вы пришли за этим, я сожалею, но вы можете посмотреть это, если хотите получить больше информации. Вы строите программную фабрику, пока смотрите это. Вот что мы хотим. >> [смех] >> Вот что мы хотим сделать. Я хочу увидеть хотя бы одну программную фабрику в дикой природе. И это приглашение, кстати. Вы можете присоединиться к нашему каналу Slack, если хотите задать вопросы или поделиться тем, что вы строите. Так что для вас, Melancholy Sky, я хотел бы видеть вас в нашем Slack-канале. Как только вы построите программную фабрику, расскажите нам, как она идет. И если это открытый исходный код, я хотел бы внести свой вклад. Так что поделитесь своим путешествием там. Мы все строим программные фабрики прямо сейчас. Мы пытаемся понять, если мы все строим программные фабрики, как выглядит хорошая? Что вы находите? Что вы узнаете? Именно поэтому я строю свою собственную вне Warp, просто чтобы увидеть, например, как бы выглядела фабрика, если бы это был маленький проект? Потому что Warp огромен. Как если бы он был маленьким? >> [смех] >> Как мы можем это изменить? Каковы различные ограничения и требования? Это забавная задача. Хорошо, я отпускаю вас. Возможно, я нашел небольшой баг в Hubble. Да, сообщите об ошибке. Есть много ошибок. Я нашел три ошибки сегодня, которые мне было слишком лень записывать. Я, вероятно, сделаю это после этого. Так что, да, много ошибок. Пожалуйста, сообщите об одной. И да, если вы хотите внести свой вклад в Hubble, он там. Вы можете установить его. Вы можете попробовать. Но да, это было здорово, ребята. Я надеюсь, вы узнали что-то о Warp, о фабриках. И, возможно, Warp поможет вам на каждом этапе пути. Так что, заходите в следующий раз. У нас на самом деле будет прямая трансляция, которая немного больше расскажет о облачной платформе Warp. Эта будет, признаюсь, немного более предвзятой, немного более продажной, но мы постараемся сохранить ее максимально универсальной. Но это наша следующая прямая трансляция, если вы хотите присоединиться. Она будет с одним из наших ведущих инженеров, Сафией. Она та, кто настроил программную фабрику Warp. Она пионер, которая настроила первую программную фабрику. Я не знаю, первая ли она вообще, но это первая, которая у нас была. Это будет отличная трансляция. Она будет всего 30 минут. Она состоится через две недели, 21 июля. Так что заходите. В остальном, наслаждайтесь остатком дня. Спасибо, что зашли.