Transcription
Привет всем, мы очень рады видеть вас здесь. Это мультиагентные паттерны в VS Code. Вы будете учиться по документации, но что более важно, это живое соревнование по кодированию. И прежде чем мы начнем, это мой блестящий соведущий, мистер Кент Си Доддс. Привет. Всем привет, все в порядке, и у вас есть упражнение. О да, точно. Так что, пока люди заканчивают приходить, каждый раз, когда я выступаю с докладом, я люблю, чтобы люди разогрелись, потому что это хорошо для вашего мозга, так вы будете лучше учиться. Поэтому я хотел бы пригласить всех встать. Если вы физически способны, пожалуйста, встаньте здесь. Я отойду в сторону, чтобы они могли наблюдать, что мы собираемся делать. Вытяните руки вот так. Присядьте, встаньте обратно. Это называется упражнение. Мы сделаем 12 вместе, и вы встанете. Встаньте обратно. Вы должны считать вслух. Это была просто тренировка. Итак, начнем с готовности 1-2. Вы должны считать вместе со мной. Посмотрите на это 340. У вас получается так хорошо. Похоже, вы 7, и вы можете опуститься очень глубоко, если вам действительно нужно, или просто немного. Я сбился со счета. 110 Ладно, одиннадцать нет, и 12 Ладно. Потянитесь вверх и в одну сторону, и в другую. Хорошо. Отлично. Спасибо. Спасибо. Хорошо, чувствуете себя хорошо. Все проснулись. Хорошо, добро пожаловать. У нас есть живое. Что мы собираемся делать здесь сегодня, ребята, это живое соревнование по кодированию. В прошлом году. Кто, кто, кто смотрел это в прошлом году? Ваша способность смотреть это, несколько человек. Так что в прошлом году, позвольте мне просто, позвольте мне просто установить для вас базовый уровень, где мы находимся в истории человечества. В прошлом году в это время OpenAI только что выпустила GPT 4.1. Хорошо. Это было 12 месяцев назад, я думаю. И в прошлом году мы сделали Frogger. Каждый человек сделал свою собственную версию Frogger. И затем вы проголосовали за ту, которая вам понравилась больше всего. Они сделали это с нуля в этом году, верно? В этом году все намного иначе. У нас теперь гораздо более способные модели, и поэтому в этом году, О нет, это мой блестящий. В этом году у нас есть Кент Си. Итак, Кент, вы были плодовиты столько, сколько я живу, как и Эдди. Расскажите немного о себе и. Да, да. Я разработчик программного обеспечения, в основном JavaScript, и веб — это мое. И я полный рабочий день преподаватель, и я учу людей создавать отличный пользовательский опыт. В наши дни вам не нужно знать, как на самом деле выполнять часть строительства, столько же. И поэтому я сосредоточен на обучении людей тому, что строить. Так что, если вы устали строить неправильные вещи, тогда поговорите со мной, хорошо? Так что мы получим бесплатную, я получу бесплатную инструкцию от Кента, пока эти ребята кодируют вживую. Но в прошлом году мы построили Frogger. В этом году мы поднимем планку. Так что мы думали, да, что нам следует заставить их построить? Halo 1. Я серьезно, что они собираются строить, ребята? О нет, ИИ может сделать что угодно. Это будет правильно #2 GTA. Нет, GTA никогда не будет #2, извините. Нет, мы на самом деле не будем давать это. Мы не можем этого сделать, мы не можем этого сделать. Теперь, что мы могли бы сделать, это, что, если бы мы решили реальную проблему с помощью ИИ, ребята, вместо того, чтобы строить змейку? Я видел, как кто-то написал это в X, и они сказали: Есть ли что-то вроде Google Docs, но для markdown? Мне нужен облачный совместный редактор markdown, пожалуйста. Так что, угадайте, что мы собираемся построить сегодня? Мы собираемся построить облачный совместный редактор markdown. Это вызов. Позвольте мне представить наших участников здесь. Во-первых. У нас есть Джулия из команды VS Code. Привет. Привет. Джулия Джулия будет использовать VS Code и локальный агент в VS Code. Здесь у нас со всей Великобритании. Абсолютно. Мистер Крис Реддингтон. Всем привет. Крис будет кодировать вручную. Удачи. Запишите, Крис. Крис будет использовать Copilot CLI для выполнения задачи. Дальше по этому пути, еще 50 ярдов по полю. Здесь у нас мистер Пирс Боггин, PM в команде VS Code, и вы будете использовать приложение Copilot сегодня. Новое приложение Copilot. Новое приложение Copilot. А здесь мистер Гарольд Киршнер, который будет использовать агентское приложение, новое агентское приложение. Итак, у нас 4 разных, да. У нас достаточно приложений для разработки агентов? Хорошо, возможно, нам нужно больше. У всех есть своя работа. Бро. А затем, пока они это делают, мы с Кентом собираемся создать приложение для голосования, чтобы вы могли голосовать за победителя. И Кент будет инструктировать меня и учить меня, как это делать правильно. Итак, с этим, ваш первый инструктаж Гарольд. Гарольд, убери руки с палубы. Видел это? Ставки здесь очень высоки. Да, ваша первая задача — просто ввести этот запрос в агент. Мне все равно, куда вы пойдете дальше, но вы должны начать оттуда. Да, я знаю о продукте, который, вероятно, уже существует, но мы все равно собираемся его построить, потому что он еще не был построен здесь. Хорошо. Так что, пока они это делают, у нас есть еще слайды? Должны ли мы сказать "На старт, внимание, марш"? Я думаю, некоторые из них уже пошли. На старт, внимание, марш. Хорошо, официально началось. Так что я не думаю, что у нас есть еще слайды. Да, нет. Мы сделаем это так. Хорошо, если хотите, Стив, Стив, принеси мой компьютер, вот этот. Так что мы с Кентом собираемся создать, создать, создать опыт голосования для этого, и мы будем использовать GitHub code space для этого. Теперь причина, по которой мы это делаем, заключается в том, что агенты довольно опасны. Единственный действительно продуктивный способ работы с агентом — это включить режим "разрешить все" или " YOLO" и просто позволить ему делать свое дело. Но многие организации не позволят вам этого сделать, потому что это по своей сути небезопасно. И поэтому мы будем находиться в code space, что означает, что это не на нашей машине. И в code spaces есть специальные защиты, чтобы ваши ключи не были украдены, поэтому вы можете безопасно позволить агенту работать без ограничений, и нам не придется об этом беспокоиться. Да, это будет потрясающе. Хорошо. И мы можем даже заставить его запустить сервер и сделать его общедоступным, чтобы все вы могли голосовать и тому подобное. И он говорит прямо с code space. Довольно круто. Правильно. Да, мы будем. Вы будете подключаться напрямую к нашей среде разработки, и ничего не пойдет не так. Мы все спасены, да. Абсолютно. Хорошо. Итак, Кент, где? Где мы начинаем? Мы здесь, да, у нас все настроено. Я не знаю, я думаю, мы в основном используем. Ну, нет, это то, как вы предпочитаете разрабатывать, с помощью CLI. Правильно? Хорошо, в Visual Studio Code это мой отложенный метод во вкладке редактора. Да, идеально. Так что я думаю, я, я не знаю, давайте просто сделаем что-то для голосования, без ошибок, верно? И тогда мы сможем просто поиздеваться над этими ребятами. Сделать что-то для голосования. Не делать ошибок. Нет, не говори так, но нет, я шучу. Ну, давайте подумаем, как продуктовый инженер. Это эпично. Продуктовый инженер — это мое. Что на самом деле должен делать продукт? Хорошо, это должна быть веб-страница. Так что это модальность, люди должны иметь возможность голосовать. Им, вероятно, нужно знать, за что они голосуют. Так что я предполагаю, может быть, дать вам числа, такие как 1-2, три или четыре. Это должно визуально показывать в реальном времени, каков счет по каждому из этих пунктов. И это должно, я полагаю, как-то отображать победителя, либо мы говорим, как "финализировано", или. Мы, да, мы нажимаем на это или что-то в этом роде. Хорошо. Так что я хочу разбить это на "отгружаемые" части, потому что ставки высоки. У нас осталось 36 минут, поэтому нам нужно добраться до точки, где, хорошо, это будет работать, если мы застрянем с этим, и тогда мы сможем зафиксировать и продолжать добавлять к этому. Так почему бы нам просто не начать с домашней страницы, которая говорит, что это такое, и все. Хорошо, так что просто пустая. Так что, хорошо, давайте посмотрим. Я думаю, у меня есть голосовой режим? У меня нет. И мы также хотим, давайте действительно развернем это. И как только это будет развернуто на этой машине, тогда следующее, что мы можем сделать, это получить QR-код, чтобы они могли фактически получить доступ. Доступ к нему. Хорошо. Так что я спрашиваю здесь? Давайте скажем, что мы строим платформу для голосования для соревнования по кодированию. Давайте начнем с чего-то простого. Что вы используете? Давайте сделаем домашнюю страницу. Я использую веб-арт. И посмотрим, что получится. Это, вы видели этот визуальный образ, где у вас есть жизненный цикл разработки продукта, где вы строите эту машину, и со временем в конечном итоге это то, что хотел клиент. И есть, есть, вот водопадный подход, где это ничего похожего на то, что вы хотите. И затем, наконец, это то, что вы хотите. И затем гибкий подход — это самокат, а затем или это скейтборд, затем самокат. И затем он полностью меняется по мере движения. Как это то, на чем можно итерировать с помощью ИИ. Это как будто начинается с этой мега-машины со всеми этими разными функциями, которые вам не нужны, а затем вы незаметно избавляетесь от этих вещей. И поэтому это одно из преимуществ использования ИИ и просто свободы. Как это, вы просто говорите, я буду очень расплывчатым, а затем мы будем отсекать и итерировать по тому, что создано. Хорошо. Итак, что мы делаем здесь? Какой у нас стек? Вау. Хорошо, да. Так что это режим планирования, я полагаю. И он думает, я не хочу принимать решение. Я только что сделал это. Хорошо, так что вы никогда не заставите этого парня использовать Nextj. Да, мы можем поговорить об этом позже, если хотите. Я думаю, что это, так что у нас есть некоторое время реального времени и другие вещи в нем. Так что вы можете подумать, хорошо, мне нужен настоящий фреймворк для этого. Я построил довольно удивительные вещи с помощью ИИ, используя только ванильный код, и, честно говоря, для одной страницы, как у нас, давайте просто сделаем ванильный код. Думаете, мы сможем это сделать? О да. Хорошо. Хорошо. Вот, давайте посмотрим. Хорошо. Он создает домашнюю страницу. Круто то, что в этом тоже, как мы, это приложение не станет таким большим, что нам понадобится какой-то сложный процесс сборки с отсечением дерева или что-то в этом роде. Так что это будет отлично, потому что нам не придется беспокоиться о сборке или чем-то еще. Да. Действительно приятно. Да, мы не будем иметь горячую замену модулей или что-то в этом роде, но я не думаю, что нам это нужно. Так что да, я скучаю по тем временам, когда можно было просто писать HTML и JavaScript и создавать веб-страницу. Мы довольно далеко от этого, но да, так интересно. Так что мы начинаем с чего-то минимального, самого минимального. Я заметил, что вы как бы пропустили планирование. Или вы? О да, я не делаю. Я на самом деле не планирую, как, как, как, как разговор — это план. И вы итерируете по нему, чтобы получить конечный результат. Теперь, как мы начинаем совершенно новую вещь. И поэтому она будет отличаться от сотен или миллионов строк сотен тысяч или миллионов строк кода, с которыми вы работаете. Но идея довольно похожа: когда я, когда я создаю новую функцию в большом приложении, я буду разговаривать с агентом. И я скажу, например, сначала я задам вопросы, на которые я на самом деле уже знаю ответ, потому что я хочу, чтобы агент получил ответы на эти вопросы в контексте архитектуры, систем, примитивов. А затем мы итерируем по этому. И как только этот разговор будет заполнен тем, что я хочу, я скажу, отлично, иди. Хорошо, у нас есть это выглядит так, как будто ИИ создал людей, думающих, да, мы доберемся до этого через секунду. Фиолетовый и темный. Да, это. Должны ли мы остановиться? Должны ли мы остановиться на этом и пойти поиздеваться? Я как бы, я как бы заинтригован. Да, я думаю, когда мы доберемся до 30 здесь. Хорошо, спуститесь, дайте 3 минуты, дайте им сердце, у вас есть 3 минуты, и тогда мы придем вас беспокоить. Да. Хорошо, куда мы идем отсюда? У нас есть, мы получаем. Теперь мы. Я думаю, нам нужен QR-код, чтобы люди могли фактически. Да, да. Так что я вижу здесь кучу вещей, от которых я хочу избавиться, что мы сделаем позже. Например, я хочу избавиться от входа и тому подобного. Нам это не нужно, но давайте просто получим QR-код, чтобы люди могли подключиться к нему со своих телефонов. Так что я буквально скажу, люди будут подключаться к этому или голосовать через свои телефоны. Так что давайте разместим QR-код на домашней странице для страницы, и я. Он не будет знать URL-адрес, поэтому я введу его. Я думаю, на самом деле не давай ему этого, просто скажи window.location, он получит его. Правда. Да, вы можете сделать QR-код в браузере, вы говорите ему window.location, он получит его. Правда. Я этого не знал. О. Да, конечно. Так что. Он просто будет динамически получать, использовать JavaScript на лету для создания. Хорошо, я с ним. Мне любопытно, потому что мы используем чистый HTML, CSS и JavaScript, это не будет. Я имею в виду, есть механизмы, которые он мог бы использовать, чтобы получить библиотеку для этого, но я задаюсь вопросом, действительно ли он просто реализует ее сам, что было бы довольно, это было бы. Просто добавлю это с нуля. Да, мне интересно, что он говорит, что он делает. Хорошо, ну, эй, он. Добавил QR code JS, да. Хорошо, вот оно. Он, вероятно, получает его из, да, CDN. Ага. Давайте посмотрим. Хорошо, давайте посмотрим здесь. А затем я хочу, чтобы вы все отсканировали это, если это сработает. Это не сработало. Может быть, Devtools покажет нам что-нибудь, или мы можем сказать агенту. Вы можете просто сказать, что агент не сработал. Как открыть его на Mac? Я парень с ПК. Command option I. Вот оно. Вот оно. Да. Так что у нас есть QR-код, который не определен. Я предполагаю, что если вы зайдете в сеть, вы увидите, что запрос на файл JavaScript не удался. Не удалось. Вероятно, он получил неправильный, да, 404. Да, это нормально. Так что мы можем пойти. Вот это. Это может быть. Одна вещь, которую я бы сделал, это просто сказать ему использовать on package вместо этого. Хорошо, так что используйте on PKG вместо этого. Так что для тех, кто не знаком, Unpackaged — это бесплатный сервис, где вы просто даете URL-адрес, название пакета, и вы можете дать ему любую версию, и он разрешится до основного модуля этого пакета. Так что это довольно круто. Я не знаю, есть ли у них SLA. Так что используйте на свой страх и риск. Мы рискуем всем прямо сейчас. Что случилось? Я не знаю. Я даже не вижу входа, который я не знал, что он исчез, и определенно нет. Это иногда случается. Что он сделал? Интересно, он просто сказал, что переключился. Здесь, давайте посмотрим. Давайте сделаем просмотр исходного кода. Хорошо. Помните те дни, когда вы могли просматривать исходный код? Ну, мы используем ванильный код, так что мы можем просматривать исходный код. О, вы хотите просмотреть исходный код? Да, я как бы хочу просто просмотреть исходный код. Я так давно этого не делал. Хорошо, так что если вы нажмете на QR-код, чувак, это должно разрешиться. Нет. Все еще не найдено? Так что? Да, это наша проблема. Почему? Почему бы вам на самом деле не открыть его обратно? U Окей, и есть способ на unpackaged посмотреть содержимое пакета O обновить URL и удалить все U до того, где написано build, но оставить слэш. Все до того, где написано build. Да, так что оставьте так. Нет, нет, до или после этого, после всего после этого и оставьте слэш, и это даст нам страницу просмотра для этого. И теперь мы можем фактически увидеть, хорошо, что происходит? Может быть, они выпустили новую версию и изменили. О нет, это было два года назад. Но да, давайте, может быть, пойдем к Бену, может быть, QR-код. Что за TET stream? У него даже нет расширения. Вау. Я скажу вам, я позволю вам поработать над этим, хорошо? Проверьте этих ребят внизу. Ваша задача — я исправлю QR-код, чтобы он работал. Хорошо, я здесь с этим. Хорошо, Стив, дай мне, давайте выведем машину Джулии. Привет, Джулия. Привет. Как дела? Хочешь, я пройдусь по тому, что я сделал? Да, давай посмотрим. Ты закончила? Нет, мой агент все еще работает. Что происходит? Покажи мне, что у тебя есть. Хорошо, так что, как вы сказали, я должен использовать режим Azure и локальный режим в VS Code. Я выбрал GBD 5.5. Хорошо, высокий уровень рассуждений. Высокий уровень рассуждений, интересно, потому что я поддерживаю многие запуски моделей в VS Code, и одна из вещей, над которыми мы очень тесно работаем с поставщиками моделей, и OpenAI упомянул, что они видели слишком много фронтенд-интерфейсов Opus, поэтому они действительно хотели улучшить свои последние модели в разработке фронтенда. Поэтому я хотел протестировать GBD 5.5 с моим приложением, которое было здесь создано. И вот, да, я использовал высокий уровень рассуждений, и он создал файл idea MD. Так что давайте перейдем и посмотрим, что получилось. Немного о том, что могут делать пользователи. И после этого я сказал ему: хорошо, отлично, давайте просто выполним это на основе этой идеи. И, как видите, он все еще работает. Так что я не знаю, как это будет выглядеть, но я в восторге. Ты просто собираешься сделать все за один раз. Мне нравится. Хорошо, Крис. Привет. Привет, как дела? Довольно хорошо. Как дела? Да, я отлично. Отлично провожу время. Ты закончил? Нет, хорошо. Что у тебя пока есть? Итак, у нас есть что-то вроде наброска, у нас есть текстовое поле, как это здорово, верно? Это. Довольно хорошо. Поддерживает ли он markdown? Вероятно, возможно, он работает над этим. Так что я сделал, мы запустили что-то вроде оркестратора. Так что это своего рода паттерн, который я обычно использую: есть кто-то, кто планирует и строит это, а затем у вас есть субагенты. Что вы используете для оркестрации? Просто флот. Нет, так что я просто использую некоторые подсказки. Так что я. Говорю тебе использовать это? Да, именно это. И я заметил, что у тебя полноэкранный режим, и ты переключаешься, чтобы увидеть. Это твой обычный способ работы? Да, у меня обычно открыто несколько вкладок. Но вы используете рабочие пространства специально для. Да, да, именно. Интересно. И да, так что у нас есть Opus в качестве планировщика, так что более мощная модель. Так что вы выбрали Opus? Ага, вы выбрали GPT 5. Но затем я заставляю кодексы заниматься реализацией. О, правда? О, кодексы, мульти-мультимодель. Хорошо, кстати, ребята, специальный раунд аплодисментов для Джулии. Джулия выпускает все новые модели в Visual Studio Code, и Copilot говорит, что когда вы их увидите, это Джулия. Можем ли мы поаплодировать Джулии? Это много поздних ночей, много поздних ночей. Хорошо, хорошо, парни, что у нас есть? Здесь я. Я очень зол на тебя, Берт. Почему? Потому что я размышлял над твоим запросом. Итак, вы хотите редактирование markdown, совместное, совместное, в реальном времени, в реальном времени. И я думал, как человек, работающий над продуктом, с которым вы отчасти знакомы, это буквально то, что. Как буквально это называется BS code и live share. Я буквально уже сделал это. Я закончил. Вещь, которую вы должны построить. Это уже существует. Не поощряйте его. Прекратите. Так что я начал с плана в приложении GitHub Copilot. Так что мы начали в режиме плана. GPD 55 High был своего рода отправной точкой. Мы разработали план. Я был немного расстроен, что Plan Mode не рекомендовал Monaco в качестве основы. Не так ли? Кстати, Monaco — это редактор, который лежит в основе Visual Studio Code. Что он вам дал? Code Mirror. Он дал мне еще 5 вещей. Мне ничего из этого не нужно. Так что план режим начал свое дело. Он работает прямо сейчас, и я думаю, что мы приближаемся. О, вау. Но это все подделка. Как я перешел сюда, и это не то же самое, что это. Так что нам предстоит работа. Ну, в реальном времени должно быть легко. Это решенная проблема. Просто сделайте так, чтобы она работала. Хорошо, Гарольд, что? У тебя есть? Последний, но не менее важный, ты мой любимый. Кстати, не говори этим. Спасибо. Большое спасибо. Хорошо. Я начал с исследования того, что есть. Это было мое первое. Я просто пошел на исследовательский запрос в одной сессии. Например, какие редакторы markdown уже работают? Есть отчет об исследовании, они собираются украсть все идеи или выбрать лучшее на основе того, что уже сделано. Да, особенно если вы хотите выпустить продукт в течение 45 минут, а затем я действительно запустил исследование дизайна, где у меня есть три вещи, которые я хочу попробовать. Есть одна идея здесь, не просто получение представления о том, как это могло бы выглядеть. Что у нас есть? C У нас есть B C. Это ваши макеты того, как это может выглядеть. Да, просто отправьте агент дизайна и позвольте ему показать мне, как мы управляем сессией, или другое — это скорее рациональное проектирование, чтобы сделать обзор проще и как бы развивать сессию, и как работает редактирование, потому что всем нам нужно управлять этими сессиями. Так что мне нужен гораздо больший контекст, когда вы возвращаете меня к плану. Мы, как думаем, что у ИИ есть маленький стикер, прикрепленный к нему. Так где же маленький? Стикер. Это B, и пока что просто мой любимый, но этот не очень хорошо помещается на экране, так что это на самом деле не стикер. Я хочу этого. Так что я хочу, хорошо, каждый тип комментария, когда они будут стикером. Так что удачи, ребята. Выглядит хорошо. Давайте вернемся сюда и посмотрим, как Кент справляется с нашим QR-кодом. Все, что нам нужно, это QR-код. Насколько это может быть сложно? Эй, давайте. Раунд аплодисментов для. Ну, если это не впечатляет, я не знаю, как впечатлить вас. Хорошо, так что вы можете отсканировать это, если хотите сделать это сейчас, и тогда у вас будет доступ к этому приложению по мере продвижения. Вам нужно будет нажать на маленький дисклеймер, который гласит, что вы подключаетесь к code space. Не беспокойтесь об этом, это нормально, просто нажмите на него. Хорошо, мы оставим это здесь на секунду, я вижу, что некоторые телефоны все еще подняты. Так что я удалил страницу входа. Я сделал его светлым режимом, потому что светлый режим — лучший режим. Светлый режим — лучший режим. Извините, Кент, не могу спорить. И поэтому прямо сейчас он фактически работает над этим, меняя пару вещей, потому что здесь он как бы предполагал, что мы хотим сделать несколько вызовов. Мы делаем только один, верно? И поэтому мы просто сделаем его одностраничным. Так что он может быть готов. Я предполагаю, что большинство людей, которые хотят его, получили его. Так что здесь он задает вопрос. Хорошо, за что будут голосовать люди? Название команды, названия проектов или заполнители на данный момент. О, давайте. Пойдем, возьмем имена. Имена людей. Имена людей, да, вот. Мы представили наших участников, так что позвольте мне ввести. Позвольте мне дать вам имена. Хорошо, давайте посмотрим здесь. Хорошо, давай, Джулия, Крис, Пибокс и Гарольд. Хорошо. Отлично. И как только мы закончим с этим, нам нужно будет показать какой-то график того, сколько голосов они накопили. Правильно. И теперь могут ли эти люди голосовать более одного раза? Это интересный вопрос. Может быть, это как я действительно, действительно, действительно, действительно люблю. Как будто вы можете просто нажать на него и. Снова и снова. Верно? Я не знаю, давайте. Но что вы все думаете? Хотите ли вы иметь возможность голосовать более одного раза? Кто хочет голосовать? Что? Вы все как бы. Слишком справедливо. Да. Вот оно. Вот оно. Иногда этого достаточно. Давайте сделаем это. Весело, потому что тогда это как бы, ты любишь. Кому это так важно? Кто-то напишет скрипт. Не делайте этого. Они не посмотрят на этих людей, все они достойны. Да, ну, они и так не хотели голосовать более одного раза, так что да. Они злятся на это, хорошо. Кроме той женщины сзади, которая подпрыгивает. Она сейчас пишет скрипт. Так что, так что интересно. Я дал ему имена, и он готовит их уже некоторое время. О, потому что он обновляется, да. Он строит целую. Мы довольно много болтаем, я заметил, что вы использовали Opus 4.6, намеренный выбор. Это по умолчанию. Когда вы входите. Так что я не менял его. Я ждал, пока вы мне скажете. Да, да. Я обычно использую GPT 5.5 или в курсоре я также использую composer 2.5, который основан на Kimi, но я посмотрел, и здесь был GPT 5.4. Так что я подумал, давайте просто останемся с Opus. 55 здесь. О, он есть. Ну, давайте начнем с моего 5, конечно, а затем мы скажем ему, чтобы он убрал беспорядок Opus. Шучу. О, я задаюсь вопросом, почему. Нет, я задаюсь вопросом, почему я в code space. О, я не думаю, что я вошел в продуктовый аккаунт, вот почему. К сожалению, его нет. Ничего страшного. Opus 4-6. Это просто небольшой привет из прошлого. Давай, всего два месяца назад. У меня есть мысли об Opus 46 против 47 против 48, которыми я поделюсь, когда мы не будем в прямом эфире. Хорошо, поговорите со мной об этом. Поговорим позже. Хорошо, хорошо. Так что, пока он закончил, давайте посмотрим. Хорошо. Хорошо, теперь мы говорим. Голосуйте за своего любимого. Выберите запись. Хорошо. Так что происходит? Мы здесь отзывчивы? Давайте посмотрим. Мы увеличили масштаб. О да. Как это выглядит на телефоне? Да, это так. Это может быть, мы собираемся исправить это через секунду. Да, да. Хорошо. Так что. Что происходит, если вы нажмете, обновите страницу? Что происходит? Это? Нет, там нет, да, нет постоянства, так что. Давайте поговорим о следующем шаге. Это, вероятно, самое важное. Просто давайте добавим постоянство, а затем мы сможем сделать графики и тому подобное. Так что это работает в code space. Есть файловая система. Мы можем просто сделать это как JSON-файл, или мы можем сделать. Ну, как я собирался сказать, мы могли бы сделать SQLite, но это не даст нам особого преимущества перед JSON-файлом, и это необходимо. Обновляется на экране всех. Да. Так что нам понадобится какая-то система уведомлений, как при записи, затем что-то вроде pub sub. Так что нам понадобятся веб-сокеты. Хорошо. Да, я бы просто сделал так, чтобы ИИ сказал, давайте, давайте, ну, нам нужен серверный модуль, хорошо, который отвечает за, на самом деле, нет, мы хотим сохранить это в файле. Так что скажем, у нас будет модуль, который отвечает за сохранение голосов в JSON-файл. И этот модуль также будет отвечать за отслеживание изменений. А затем мы скажем, например, мы подключим это к веб-сокету, сделаем это позже. У нас 18 минут. Да, я думаю, я думаю, у нас есть шанс. Сможем ли мы это сделать? Я думаю, возможно. Это 18 минут всего или 18 минут до оценки? Что это? Я думаю, что это 18 минут. Всего 18 минут. Вау. Черт. Хорошо. Так что у нас действительно есть, как. 15 минут меньше, да, около 12 минут. Не так много. Хорошо. Да, Node. Node — это нормально. Теперь нам просто нужно YOLO. Нам нужно идти. Да, я думаю, мы сделаем это. Я чувствую уверенность. Мы сделаем это. Когда останется 5 минут, мы скажем "закончить, без ошибок", и посмотрим, что произойдет, и. Вероятно, это сработает, а не все шаги рабочего процесса, которые мы предприняли, чтобы это произошло. Так что просто из любопытства, сколько людей в аудитории используют Visual Studio и работают с агентами? Хорошо, Visual Studio, Visual Studio Code. Эй, вот оно. Давайте. Кто-нибудь использует новое приложение GitHub? GitHub Copilot. Я использовал его вчера. Довольно много рук. Это верно. Давайте. А как насчет агентского приложения в Visual Studio Code? Есть ли кто-нибудь, кто его использует? Несколько рук там? CLI. Где мои люди из CLI? Хорошо, очень хорошо. Хороший микс людей здесь. Эй, у нас что-то есть. Хорошо, так что данные сохраняются, хорошо. Обычно я бы хотел. Это однопользовательский эмиттер событий, так что любые будущие веб-сайты, именно так я бы это сделал. Хорошо, один выстрел. И поэтому я сказал, что мы подключим это к веб-сокетам, чтобы он знал, хорошо, мне понадобится какой-то вид публикации событий. Хорошо, давайте, я не знаю, я думаю, мы на том этапе, когда мы можем сказать нет, давайте просто запишем голос. Так что мы пока не будем использовать веб-сокеты. Когда я нажму, это должно записать голос или сделать запрос на запись. Должен сделать запрос на запись событий. Да. И в качестве дружеского напоминания, я не использую голосовой режим, потому что мы находимся в code space, и я не сделал должной проверки, чтобы установить голосовой режим. Но если вы печатаете агенту, вам не нужно исправлять опечатки. Я не знаю, заметили ли вы, но как бы, это едва ли слова иногда, это не имеет значения. ЛОЛы чрезвычайно хороши в языке. Это то, что они делают. Так что вы не. Если вы, как бы, возвращаетесь назад, прекратите это делать. Вам не нужно получать это правильно. И если ваш английский — второй язык, просто говорите с ним на своем родном языке, это удивительно. Да, я тоже могу это сделать. Это действительно хорошо. Знаете, я смотрел документальный фильм об ИИ, где они говорили о том, как в будущем ИИ начнет общаться на языке, который мы не понимаем, потому что это более эффективно. И это заставило меня задуматься, какой язык наиболее эффективен для общения ИИ? Это, конечно, не английский. Кто-нибудь знает? У кого-нибудь есть предположения, какой язык наиболее эффективен для общения ИИ? Вы можете высказать горячее мнение, это нормально. Эсперанто, что? Что вы сказали? Мандарин. Мандарин. Это один из них. Это не самый лучший. Это как бы #2 нет, нигде в списке. Подождите, у вас есть ответ? Да, я знаю ответ. О, хорошо. Это английский, и причина в том, что английский — это очень семантически тяжелый язык, верно? Например, если я использую слово "буколичный", это много значит для агента, а также из-за обучающих данных. Это имеет смысл. В настоящее время это язык. Я просто подумал, что это интересно. Это интересно, да. Я просто пытаюсь заполнить время. Ребята, пойдемте со мной? Хорошо, давайте проверим наших участников, пока мы это делаем. Вы собираетесь? Я скажу вам, вы проверяете, я собираюсь. Хорошо, да. Привет, Джулия. Привет. Так как дела? Ты в порядке? Вероятно, 10 минут. Как ты себя чувствуешь? Я уверен. Мне пришлось переключить модель между тем. Хорошо, на что вы переключились? Я переключился на Opus 1. Opus. Хорошо. И поэтому GPT 5.5 отлично справился, а затем он немного испортил мой UI. Так что мне пришлось войти, и я позволил немного UI закончить, знаете ли, Opus 4.6. И вот что у меня есть. Так что сладко. Как видите, два окна, разделенные окна. Это окно пользователя, и вы видите, эй, оно замечает пользователей. Я могу войти, и я могу что-то напечатать, надеюсь. Приятно и отзывчиво. Это быстро. Одна вещь, которую я заметил, это то, что я хочу обновить имя пользователя, потому что сейчас оно выглядит так, как будто это только один пользователь, но оно должно быть два. Мне нравится функция "поделиться ссылкой". Мне это тоже нравится. Я хочу немного покопаться в том, что вы можете сделать здесь, но да, пока что я, по сути, сделал это за один раз. О, я впечатлен. Да, мне это нравится. Отлично. Хорошо, давайте посмотрим. Это, извините, это Крис, верно? Это так. Извините, я не. Я просто хотел перепроверить это. Так что вы работаете в CLI. Мы есть, и вот оно. Это так. Я чувствую, что смотрю на markdown для Google Docs. Да. Так что, вы знаете, идите и вставьте. Вау, у нас есть наши вещи там. Очевидно, это еще не так красиво. Но. Я имею в виду, вы преобразуете markdown в что-то отображаемое. Я впечатлен этим. Да, отличная работа. Продолжайте делать это. Хорошо. Что происходит, Пирс? Хорошо, так что я в браузере здесь, в приложении GitHub. У нас есть небольшой предварительный просмотр редактора для markdown, и если я перейду сюда, у меня есть некоторая реальная реакция, у меня есть некоторая реальная синхронизация. Так что дальше для меня, у меня есть эмодзи. Любой демо-код не будет полным без. Так что что-то вроде двоеточия улыбка: верно? А затем я хотел что-то вроде VS Code pets, но в этом редакторе. Так что я собираюсь сделать это. А затем я чувствую себя амбициозным. Я также собираюсь просто сгенерировать этот документ для меня, чтобы я мог еще больше погрузиться. Я использую SDK Copilot, так что у нас сейчас что-то происходит. Я немного нервничаю. Это много, но посмотрим, где мы окажемся. Мне нравится амбициозность, и вы просто, вы подкрадываетесь ко всем нам прямо сейчас. Это именно так. Мне нравится, Пирс. Хорошо, Гарольд, как дела? Это уже сделано. Это вау. Вау, действительно? Это прототип, основанный на трех предыдущих прототипах, я выбираю и выбираю эти функции, которые я хочу, сделай мне комбинацию 1. А затем я дал этому прототипу. Он также провел анализ того, какой должна быть архитектура. Это был своего рода отдельный исследовательский запрос, который я запустил, а теперь объединяю исследование плюс прототип, и теперь у меня есть три агента, которые делают это. Разные деревья работы, и, возможно, один из них победит. Хорошо. Эй. Так что у них у всех были немного разные запросы, например, 1 был "построй это на основе моих сессий Copilot CLI и просто извлеки все планы". Другой у меня был другой поворот, так что у меня просто больше агентов. Да, вы. Чтобы добраться до, возможно, лучшего победителя. Я пробовал в прошлый раз тоже, и я думаю, я выиграл. Я не выиграл. Но в душе ты выиграл. Знаете что? В душе ты можешь выиграть на этот раз тоже. Ты не очень чувствителен к затратам, я замечаю. Ты просто почему? Почему 3? Почему не 12? Но. Два из них работают на GPT, а другой на 4/6. Так что кто-то соревнуется и с моделями. Хорошо. Да, да. Посмотрим, что лучше. Мне нравится, я в восторге от того, что получится. Хорошо, но. 111 закончил. Давайте. Посмотрим. О, эй, вот оно. Я был крышей. Давайте посмотрим. Теперь мы идем. Работает. Так что у вас есть. На самом деле уже выходит из моих сессий. Так что это полный, как полный продукт. Другие люди создают функции продукта, но вы делаете все это. Нет, нет, нет. Но мой HMD явно говорит, не создавайте продукт, который мы строим, иначе это как делать миграции. Правильно, вы знаете, что я хочу. Что, если я сменю направление, нам нужно будет все выбросить, верно? Да, вы хотите сделать это как можно более грязным. Этот. Этот — моя любимая вещь, которую я говорю. Сколько из вас сделали Agents MD? Да, я не сделал. О, вы тоже сделали Agents MD. Отлично. Ну, круто. Я с нетерпением жду, когда увижу это, Гарольд. Удачи. Удачи всем. Как дела? Сможем ли мы проголосовать за это, или нам придется вернуться к поднятию рук? Я. Не знаю. Я не знаю. Так что я смог, это интересно. Это 127. Это, о, потому что это еще не публично. В любом случае, так что я смог сделать так, чтобы при нажатии он записывался в JSON-файл. И поэтому Джулия получила один голос. А затем я сказал "реализовать веб-сокет". Он сказал, что сделал это. Так что теоретически теперь, если бы у нас было два таких экземпляра открыты. Могу ли я просто обновить тот, что там? Должен быть способ сделать это на Mac, верно? Вы можете расположить окна на Mac, не так ли? Вот оно. Так что этот здесь, давайте просто обновим. Так что в теории, давайте убедимся, что это тоже обновлено. Мы должны, да. О, хорошо. Мы закончили? Давайте просто попробуем. Можем, да. Вам придется. Ну, нет, я должен сделать это публичным сначала. Это еще не публично, так что давайте вернемся сюда. Это будет. Чтобы быть ясным, для всех, вы знаете, технических людей в комнате, это пробный запуск. Это не финальное голосование, мы тестируем сейчас. Хорошо, так что тест перед тем, как мы перепроектируем, потому что мы собираемся сделать это приложение эффектным. Что вы хотите сделать? Давайте сделаем его эффектным. Хорошо, мы еще не тестируем его. Так что вот что мы собираемся сделать. Я собираюсь использовать Opus 4/6, и я использую навык, который я создал, который знает о моей эстетике дизайна. И эта эстетика называется "плакат". Это просто то, что я называю. И она определяет цветовую палитру, определяет типографику и говорит ИИ избегать определенных вещей. Так что я собираюсь сказать, дайте мне 10 макетов для этого сайта. Поместите их в тот же файл. Используйте эстетику плаката. Можете ли вы также сказать ему запустить несколько субагентов, чтобы сделать это, чтобы он не делал это по одному? Да, мы можем. Так что мы, ну, пока он пишет тот же файл, я скажу вам, что мы попробуем. Так что мы скажем "использовать эстетику плаката". И я просто укажу на это, потому что у меня нет этого установленного здесь. Обычно это навык, но я просто дам ему суть. И тогда, если мы хотим использовать несколько субагентов, все, что нам нужно сделать, это Ctrl A, чтобы перейти к началу. Это так. Это просто флот. Так что есть команда, и задача CLI не в том, чтобы выяснить, какую работу можно распараллелить здесь. Можем ли мы действительно это сделать? И вот что мы собираемся сделать. Я делаю это часто, когда занимаюсь дизайном. Я говорю: дайте мне 10 дизайнов. Я выберу тот, который мне больше всего нравится, а затем я буду итерировать по нему и говорить: дайте мне еще 10, и как бы сужать, пока я не получу что-то довольно хорошее. И просто чтобы вы знали, к чему мы стремимся. Например, если мы пойдем. Так что давайте перейдем к не городу ИИ. Это был веселый эксперимент, но вот некоторые из моих проектов, вот как будет выглядеть дизайн, верно? Это то же самое, что и любой из моих проектов, все выглядят одинаково. Вот еще один, верно? У них всех есть эта похожая эстетика, некоторые светлые, некоторые темные, те же цветовые схемы. Так что это. Вот что мы делаем. У вас есть способ, которым вы любите это делать, и мне это нравится. Да, у меня есть своя собственная система дизайна, и я просто постоянно использую ее везде, и все выглядит несколько похоже. Кто-нибудь еще делает то же самое? Я нет, и я думаю, это здорово. Я собираюсь, я собираюсь позаимствовать это. Это здорово. Я никогда не был достаточно талантлив, чтобы сделать это раньше, но теперь я могу. Теперь я дизайнер. Да, вы просто итерируете с ним, как. Мне не нравится, как это выглядит. Попробуй еще раз. Именно. Хорошо, так что он фактически сделал. Он отправил запрос агенту. Он использует универсальный, так что похоже, что он не смог распараллелить или решил, что не может. Вероятно, потому что он идет в тот же файл. Я думаю, но мне нравится, чтобы он был в том же файле, чтобы вы могли видеть их все. Выберите тот, который нам больше всего нравится. У нас 7 минут. Уф, близко. Приближается. Хорошо, что мы делаем сегодня вечером, ребята? Есть вечеринка или что-то еще? Куда мы идем? Мы все вместе. Теперь, есть ли фильм, на который мы должны пойти? Да. Есть ли какие-нибудь захватывающие фильмы, которые выходят прямо сейчас? Нет. Ничего. Никто ничего не делает сегодня вечером. Вы шутите? Давай. Что ты сделал вчера вечером, ушел из The Chainsmokers? Я даже не видел, было ли это хорошо. Это было качающе. Было громко. Техническая проверка, было ли громко? О, это было здорово. Да, это было весело. Я не знаю, сколько из вас были впереди, прямо рядом с. Вы слышали, как я это сказал? Я не знаю. Было так громко, но я чувствовал это в груди. Я даже не был снаружи на части этого, и я подумал, что происходит? Это дико. Я понятия не имел, что они собираются быть здесь. И поэтому во время основной речи я был за кулисами, и я стою там у лестницы, разговаривая с Кейлой, и там толпа людей вокруг этих двух парней. И я смотрю, и я думаю, кто эти два парня, стоящие прямо там? А затем они вышли на сцену, и как бы The Chainsmokers. Что? Я мог бы дать им Wi-Fi. Да, мы могли бы. Сделать селфи. Я мог бы быть знаменитым сейчас. Хорошо, это эпоха, в которой мы живем, где мы просто наблюдаем, как агенты готовятся. Да. Это то, что мы делаем сейчас. Должны ли мы разработчики? Должны ли мы просто надеяться и молиться, чтобы это сработало, и позволить им фактически провести свои демонстрации? О. Это сработает. Так что мы можем протестировать. Давайте протестируем. Смотрите, так что давайте сделаем это. Давайте сделаем это публичным. Что-то происходит. Очень интересно. Давайте сделаем это публичным, видимость порта. Публичные code spaces потрясающие, потому что вы можете, это так легко. Хорошо. А затем нам понадобится URL-адрес, потому что он будет немного отличаться. А затем мы дадим вам новый QR-код. Хорошо, так что вы все хотите попробовать это. Давайте увеличим масштаб. О, Джулия уже получила голос. Нам, вероятно, лучше отменить голос. Как мы? Я полагаю, нам придется. Редактировать. О нет, мы об этом не думали. Или, возможно, коробки. Посмотрите, кто-то очень любит Гарольда. Это работает. Что? Происходит. Это работает на ваших телефонах? Как бы, обновляются ли цифры для вас? Получаю ли я "да"? Да, вам нужен. Вам нужна лучшая визуализация. Вау, Джулия. Но как бы, Джулия, вы не можете голосовать за себя. Это вы? Можете ли вы голосовать несколько раз? Я, я ставлю, что они не позволят вам голосовать несколько раз. Да, я задаюсь вопросом. Если вы обновите страницу, вы, вероятно, сможете проголосовать снова. Не делайте этого, нет. Нет, я уверен, что вы можете голосовать. Вы можете просто сидеть там и есть. Просто иди. Просто иди. Хорошо, так что теперь давайте вернемся сюда и посмотрим, есть ли у нас там макеты. Нам придется сбросить, как только они смогут представить свои решения. Он все еще работает? О, и вот оно. О, хорошо, так что у нас есть макеты. HTML имеет макет. Вау, что случилось? О, это здесь, я вижу. Можем ли мы открыть это? Мы должны иметь возможность. Я справа или слева? Я слева. Где файл? Он говорит, что он создал его. Можете ли вы приказать мне? Я не вижу. О, что случилось? Он перезагрузился, не перезагрузился. Что происходит в моем терминале? Что происходит? Далеко, далеко старый, чтобы идти. О, подождите. О, извините, так что я должен быть в состоянии. Вот оно. Оно прямо там, хорошо. Просто потребовалось минута, чтобы появиться. Нам нужно. 4 минуты, да. Так что давайте посмотрим здесь. Так что это макеты, которые у нас есть. Может быть, может быть, пожалуйста, откройте, откройте. Я не знаю, что делает эта кнопка. Она должна открыть предварительный просмотр, но она не работает. Хорошо, мы, возможно, просто придется работать с тем, как есть. Давайте посмотрим. Мы могли бы перезагрузить редактор. Как это вообще может пойти не так? Знаете, что я бы сказал, это просто. Я бы сказал, выберите тот, который вам больше всего нравится. Реализуйте его. О да, потому что мы, мы не на 3 минутах. Мы должны идти. Да, должны ли мы представить свои идеи? Хорошо, 20 секунд. 20 секунд, ребята. Начнем с Джулии. Хорошо, Джулия, брось. Голосование.
Давайте посмотрим, что у нас получилось. Итак, очень простой минималистичный пользовательский интерфейс. У меня он в разделенном экране, так что вы можете переименовать свои работы, что угодно, что угодно, что вы хотите сделать, вы можете легко добавить новый файл. И самое интересное, что я реализовал: вы хотите изменить свое имя, вы также хотите добавить что-то вроде того, чтобы привнести атмосферу и изменить разные эмодзи, которые у вас есть. Я также последнюю, как последнюю функцию, которую я реализовал, я хочу отслеживать изменения. Так что, если. Вы нажимаете на это. Я хочу видеть, кто внес эти изменения и как. А затем, последнее, но не менее важное, вы можете легко поделиться ссылкой. Это здорово. Джулия здесь. Давайте поаплодируем Джулии. Отлично. Хорошо, Крис, что у нас здесь сейчас? Итак, у нас есть редактор, у нас также есть небольшая боковая панель, так что мы можем перейти и сделать несколько дополнительных файлов. Вот так. Мы видим, что начинаем новый файл там, и, знаете, у нас есть наш редактор типа "что видишь, то и получаешь" здесь тоже, и начали делать его немного похожим на тему GitHub. Так что, используя библиотеку GitHub Primer. Так что, наполовину пройдя это, у меня есть агент, использующий Playwright в фоновом режиме, чтобы начать оценивать, как они выглядят. Так что они могут как бы оценить, хм, мы, вероятно, пропустили какой-то пакет где-то по пути. Так что нам нужно пойти. Я ношу носки Playwright, верно? Вот так. Так что это круто. Да. И у нас есть эти маленькие плитки наверху, чтобы представить каждого из пользователей. И мы начинаем в фоновом режиме, чтобы получить что-то вроде пользовательских аватаров там тоже. Люблю это, отличная работа, Крис. Давайте поаплодируем Крису. Привет, Пирс, как дела? Знаете что? Я только что понял, что должен был начать с Гарольда, потому что каждый раз, когда он был последним, у него было все это время на подготовку. Я знаю. Ну и ладно. Ну, говоря о времени на подготовку. Ты пытался предупредить меня, Кент. Ты пытался предупредить меня. Ты хотя бы сделал коммит, чтобы можно было вернуться? О, теперь работает. О, мой API наконец-то загрузился. Буквально, когда ты разговаривал с Крисом, он вообще не работал. Я сказал: "Я добавил эмодзи и регрессировал всю функциональность". Так что посмотрите на этот UX. Вы можете выбрать текст, и вы тоже можете прокрутить страницу наполовину вниз и нажать на то, что вам нравится, а затем прокрутить. Назад. О, хорошо, у нас есть комментарии. Так что у нас есть, мы приближаемся. У нас есть комментарии, но, знаете, я не получаю никаких наград за дизайн здесь. Да, ну, вы знаете, Крис, ему помогает библиотека дизайна GitHub и все такое. Правда. Ты, наверное, мог бы вмешаться с этим. Я не знаю, я думаю, это выглядит. Это пригодно для использования. Это пригодно для использования. Отличная работа. Давайте поаплодируем Пирсу и Гарольду, осталась одна минута. У вас 20 секунд. Что у нас? Это работает, моя питч-проверка прямо сейчас. Так что, если вы хотите быть смешными, мы в Сан-Франциско, так что. Да, тебе нужно продать это. История присутствия. Нет, на самом деле, позвольте мне показать. Итак, у нас 22 версии. Так что с одной стороны, читальный зал, работающий на всем плане MD, который у меня уже есть локально. Так что он просто обнаруживает это, на самом деле, если я обновлю, мы увидим, что он читает все сессии. Это на самом деле работает. Так что это на самом деле план, который построил этот прототип. Так что я смотрю на план и перехожу в режим редактирования. Так что я думаю, что живое редактирование в Google Docs, я больше не хочу редактировать markdown. Я хочу, чтобы мой агент редактировал markdown. Так что это больше про быстрые действия и комментирование. Другой прототип на самом деле закончился так, что у вас есть комментирование и журнал активности, больше похожий на Google Docs исторически. А затем вы можете быстро комментировать и делать это ярким, что я менеджер по продукту, так что у меня нет слов, но он также может делать быстрые промпты, и у него есть встроенные предложения. Так что это. Это полнофункционально. И ни один из этих репозиториев не существует, но это скорее прототип. Круто, и у вас есть две реализации, но у вас было три человека, работающих над этим. Один из них просто не прошел. Это хороший вопрос. Я думаю, что три дизайна в итоге были объединены в один. Один был другим прототипом, который у меня есть. Некоторые открыты тоже. Да, так что это круто. Да, ну, давайте поаплодируем Гарольду, всем. Отлично. Хорошо, у нас осталось -23 секунды. Мы закончили. Время голосовать. Я вижу, люди уже голосуют. Я пытаюсь открыть это здесь. Давайте посмотрим, если мы перейдем к моим портам. Это публично. Он перейдет на порт 4000 здесь. Загружается. Вау. Хорошо. О, Гарольд. Гарольд. Гарольд лидирует. Откуда мы знаем? Когда мы остановим это? Я должен дать вам, люди приходят. Вы уходите, когда готовы уйти, когда вам меньше всего хочется, чем другим людям, которые хотят. Крис, я тебя очень люблю, чувак, но иди проголосуй за Криса, ребята. Я чувствую, что нет. Хорошо, кто? Кто сделал сценарий? Объявите победителя на этом. Точка. Я думаю, нам придется сказать, что это был Гарольд. Он победил в своем сердце и голосами. Очень приятно. Поаплодируйте нашим участникам. Нелегко кодировать перед обожающими фанатами. Спасибо всем большое, что были здесь. У нас есть пара сессий, о которых вы, возможно, захотите узнать дальше. Что у нас есть здесь онлайн, лично? Что у нас есть? MCP GitHub copilot. Еще GitHub copilot, верно. Каждый раз, когда вы слышите слово "copilot", делайте что-нибудь. Я не знаю. Хорошо, я надеюсь увидеть вас всех сегодня вечером. Я надеюсь, мы делаем что-то веселое. Спасибо, что были с нами сегодня. И да, несколько рекомендуемых ресурсов для вас. Спасибо большое. Ценю вас всех. До свидания.