Transcription
[музыка] [музыка] [музыка] Ура! [музыка] Жара! Ух! [музыка] [музыка] [музыка] [музыка] Ух! Ух! [музыка] [музыка] Ух! [музыка] [музыка] >> [музыка] >> Добро пожаловать обратно всем на праздничный выпуск Let It Cook. Это наша последняя готовка в этом году. Мы взяли небольшой перерыв от готовки, но мы вернулись. Это шоу здесь, на канале VS Code, где мы разбираем все последнее в области разработки агентов внутри вашего любимого редактора кода, VS Code. К нам присоединяются люди со всего мира, и Джонас ненавидит вступительную музыку, и мы обязательно исправим это однажды. Это точно. Люди со всех концов света смотрят. Я очень взволнован сегодня, потому что команда и сообщество только что выпустили агентские навыки повсюду, и со мной сегодня два самых удивительных человека в мире, чтобы все это разобрать. Мистер Гарольд и Тим, как дела, ребята? >> Привет, как дела? >> Все идет отлично. У нас тут происходит праздничное мероприятие, и я не знаю, мне это нравится, и я [смех] я не уверен, как я к этому отношусь, но мне это нравится. Мы от этого избавимся. Не волнуйтесь. Мы вернемся к классическим стримам. Итак, у нас есть что-то вроде тропического снега. О, вы даже не видите тропического снеговика. Давайте посмотрим. Мы вытащим кое-что. У нас здесь что-то вроде уютной ночи. Вау, это здорово. У нас здесь Streamyard просто сходит с ума от всего этого. Так что, э-э, О, у нас есть День подарков. Это звучит как что-то, чего я не знаю, но звучит здорово. Похоже, Тим об этом знает. >> Не волнуйтесь об этом. [смех] >> Праздник. Хорошо, мы вернемся к классическому VS Code здесь. Это здорово. Я надеюсь, у всех отличный декабрь. Я не могу поверить, что уже конец декабря, и я отказываюсь уходить на перерыв. И это потому, что Гарольд и Тим не дают мне этого сделать, честно говоря, потому что они говорят: "Эй, мы выпускаем кучу всего классного, и нам нужно попробовать это везде. Джентльмены, я должен знать, что такое агентский навык. [смех] Я понятия не имею." Итак, вы просто все, вы только что выпустили это на нас, и я подумал: "Хорошо, Элеонор, за которой я давно слежу в Твиттере, была таким огромным сторонником агентских навыков. Я не особо за ними следил, потому что я слишком занят написанием пользовательских инструкций и и [смех] и и [смех] и агентских MD и всего остального. Так что же такое агентские навыки и почему они должны быть интересны людям? Начнем с Гарольда. Да, я могу попробовать. Я думаю, да, и Элеонор, и Саймон, и наше сообщество инфлюенсеров очень активно говорят о них. Саймон написал хорошие статьи о том, почему они так хорошо работают для него, и Элеонор тоже. Так что я думаю, что ажиотаж заключается в том, что существует множество агентских примитивов. Как вы можете настраивать своих агентов, и агентские навыки действительно стали очень простым и эффективным способом, который просто работает для людей, и его легко понять. Его легко создать, и, по сути, они представляют собой файл markdown в папке skill.mmd с описанием, которое говорит агенту, когда его использовать. И это означает, что агент, когда он видит, что это описание говорит мне, что я должен посмотреть на это, когда я думаю о фронтенд-разработке, он загружает навык, но затем магия заключается в том, что это один аспект прогрессивного раскрытия агентов, который они могут выяснить, что им нужно во время выполнения, а затем загрузить. И это то, что агентские навыки имеют как примитив. Но есть и другое прогрессивное раскрытие, которое вы можете фактически иметь в папке, дополнительные файлы, на которые этот файл markdown также может указывать, и это могут быть скрипты, это может быть просто документация, это могут быть даже изображения, и просто что-либо, что агент затем извлекает на основе описания навыка и может углубиться. Так что очень легко упаковать это в минимальное описание, а затем немного расширить его в подсказке, когда он загружает файл skill.mmd, а затем даже, о, теперь у вас есть полный рабочий процесс, и вы можете посмотреть на все эти другие файлы. Так что это то, что такое агентские навыки. Они очень близки к существующим примитивам, которые у нас уже есть, но они имеют эту сладкую точку приятного распространения через эту систему папок. >> Приятно. Как вы их видите, Тим? >> Да, полностью согласен. Я думаю, что больше всего меня волнует в агентских навыках то, что Гарольд упомянул, то, что это, по сути, позволяет вам более эффективно использовать ваше контекстное окно. Знаете, [кашляет] >> Я уверен, что многие люди, которые смотрят это, очень хорошо знакомы с этой идеей, но, по сути, контекстное окно означает, что вы можете отправить агенту и модели только определенное количество информации. И после этого вам придется начать обрезать вещи, усекать вещи и обобщать вещи. И до сих пор, вероятно, знаете, если бы вы хотели научить агента делать что-то, решение, к которому вы, вероятно, прибегли бы, было бы поместить кучу всего в ваши пользовательские инструкции. Но тогда вы в конечном итоге делаете так, что каждый раз, когда вы делаете что-либо в этом проекте, вы загрязняете контекстное окно кучей всего, что просто не имеет отношения к тому, что вы пытаетесь сделать прямо сейчас. В то время как с агентскими навыками я могу создавать эти маленькие пакеты, эти маленькие коробки, которые затем загружаются в контекстное окно, когда мне это действительно нужно. Так что я могу эффективно балансировать между двумя. Так что для меня я бы использовал пользовательские инструкции для вещей, которые, по сути, будут актуальны каждый раз, когда я использую агента. А затем агентские навыки отлично подходят для вещей, которые немного более специализированные. Знаете, вроде рутины или советов или рабочих процессов, которые будут полезны иногда, но не всегда. >> Это имеет смысл. Итак, вы говорите, Тим, что мои пользовательские инструкции, которые у меня здесь есть, которые очень... они как бы построены за год, если хотите. Они продолжаются. Это не лучшая практика. [смех] Да, я думаю, до сих пор так получались пользовательские инструкции для многих из нас. И я думаю, что здесь есть куча вещей, которые вы, вероятно, захотите сохранить в своих пользовательских инструкциях. Так что, когда вы прокручивали, был раздел о руководствах по кодированию. Это, вероятно, что-то, что я бы все еще соблазнился сохранить в пользовательских инструкциях, потому что это так... широко полезно для многих, многих, почти для каждого действия, которое вы собираетесь выполнить со своим агентом. В то время как, когда дело доходит до более специализированных вещей, знаете, говоря, я думаю, был раздел о том, как вы делаете CSS, например, эта вещь может быть хорошим вариантом для навыка, потому что, когда агент входит в режим, вроде: "Эй, теперь моя работа - писать CSS", он может затем загрузить этот соответствующий контекст, и вы можете помочь лучше сбалансировать то, что постоянно доступно модели, и то, что доступно модели часть времени. Но это не точная наука. Мы все будем вместе разбираться, и сообщество будет разбираться, как мы разделяем эти разные примитивы. И знаете, это очень ново. Так что, если вы... если прямо сейчас у вас есть этот огромный файл пользовательских инструкций, не чувствуйте себя плохо. У меня есть такой. У многих наших проектов на GitHub есть такие. И мы все можем использовать праздничный перерыв, чтобы разобраться, как разделить эти вещи и разобраться с этим спагетти. >> Полностью. Да, я думаю, это имеет большой смысл. Я думаю, что еще одна вещь, которая была действительно увлекательной, я строил некоторые навыки прошлой ночью, заключалась в том, что у меня было много информации в моих пользовательских инструкциях, которые касались запуска CLI или, знаете, приложений на моей машине. Например, у меня есть этот веб-сайт visualstudio wallpapers.com. Это очень красивый веб-сайт, на котором можно переключаться между фиолетовым и синим. Но я закодировал это. И у вас есть все эти разные обои для рабочего стола со всеми разными вещами внутри для этих 50 миллионов пользователей, верно? Так что у вас есть все эти разные темы VS и VS Code, что очень круто. И все это закодировано. Но у меня есть все эти супер высококачественные изображения здесь. И у меня на самом деле было это в моих пользовательских инструкциях прошлой ночью, которое использовало Image Magic для всего моего изменения размера изображений, но я передавал этот контекст каждый раз, когда я просто вносил изменения в CSS. Так что я поместил это в навык, верно? Вот как вы используете Image Magic. Вот как вы делаете эти скрипты PowerShell, которые я запускаю, чтобы фактически выполнять разное изменение размера, и когда я их создаю, он должен сам разобраться. Он должен разобраться, как я хочу, чтобы это было сделано, и разные руководства здесь. И это, как вы только что сказали, было застряло в моих пользовательских инструкциях, весь этот 150 строк, может быть, 100 строк кода или markdown были застряли в моих пользовательских инструкциях. Это просто жаль тратить это контекстное окно. Так это открытый стандарт, верно? Это не что-то вроде вещи от Microsoft. Правильно. >> Да. Это в настоящее время, так что... изначально создано Anthropic, это были облачные навыки, которые существуют с октября. Это то, что интересно в хронологии. Люди были в восторге от этого в октябре, а теперь декабрь, и это уже то, что сообщество в целом принимает как то, что мы все должны делать как лучшую практику, потому что мы были так взволнованы. Так что это открытый стандарт, который определяет самые основы просто файлов. Я думаю, что это рано. Так что я думаю, что это то, на что я хочу обратить внимание: есть больше вопросов о том, может ли быть общая папка для всех этих... какова история для среды выполнения скриптов? Прямо сейчас многие навыки Anthropic не будут работать из коробки в любом другом клиенте, потому что они оптимизированы для виртуальной машины, на которой работает cloud.AI, потенциально. Так что есть много предположений, которые люди делают при создании этих навыков о том, где они запускаются и как они запускаются. Так что, вероятно, есть больше в этой сумке или связанных работ, чтобы сделать его проще, чтобы просто создать один раз и поделиться им. >> Очень круто. Да. И выглядит так, что здесь есть какая-то фронтенд-материя. Так что имя, описание. Я предполагаю, что модели используют это, чтобы понять, что они вызывают. Это правильно? >> Да. Да, по сути, что у вас есть, когда у вас есть список навыков, о которых знает агент, это означает, что они просто находятся в системной подсказке, своего рода в оболочке агента. Copilot или Claude дали агенту список: "Вот все ваши навыки". >> Он формулирует это так, что как только вы начинаете, прежде чем начать задачу, проверьте этот список, если вам нужно что-то вроде этих специализированных знаний, которые сделают вас лучше, пожалуйста, посмотрите на это. Проблема создания подсказок и всего остального, чтобы действительно, действительно посмотреть на это. >> И тогда основная информация, которую он имеет, это, по сути, описание того, когда и как его использовать. Это то, о чем вы должны думать, когда вы создаете подсказку. А затем он получает имя и местоположение skill.md. Это своего рода основные точки входа. >> Очень круто. >> Да. Мой опыт игры с этим до сих пор заключается в том, что все обычные приемы создания подсказок, к которым мы все привыкли, по-прежнему очень важны. Так что, знаете, описание, которое вы даете в этой фронтенд-материи, будет иметь большое значение для того, решит ли ваш агент загрузить навык в то время, когда вы хотите его загрузить. А затем инструкции, которые у вас есть внутри, также будут иметь огромное влияние. Так что, когда я играл с навыками, я обнаружил, что если вы просто пишете это как своего рода совет, то я обнаружил, что агент иногда решал: "Я буду слушать, иногда я просто буду игнорировать тебя". В то время как написание этого четко как: "Ты должен сделать X, вот процесс, которому ты должен следовать", тогда я увидел гораздо больше успеха. Так что все, что вы узнали о создании подсказок для LLM или написании пользовательских инструкций, будет работать здесь очень хорошо. Вот что я сделал прошлой ночью: я скопировал этот URL-адрес спецификации и зашел в VS Code, и я сказал: "Эй, я открыл это довольно широко и увеличил масштаб. Вот как я кодирую. Я сказал: "Эй, я хочу, чтобы ты... я хочу, чтобы ты извлек навыки в мою папку навыков и использовал спецификацию, вы знаете, использовал ссылку на спецификацию, по сути, проанализировал мои пользовательские инструкции, посмотрел, есть ли у меня навыки, а затем разбил их на навыки." По сути, [смех] вот что я сделал прошлой ночью, и это было на самом деле довольно полезно, потому что, как вы сказали, Тим, я думаю, что мне нравится здесь, я чувствую, что эта документация была почти написана для потребления моделями, потому что как хорошо, плохо, вы знаете, что я имею в виду, как требуется, не требуется, вы знаете, это очень [смех] очень, очень хорошо то, что он собирается сделать, и хороший пример этого, который, я думаю, восхитителен. У нас есть своя документация. Я дам ссылку туда для всей кастомизации. Так что люди задавали много вопросов о пользовательских агентах и инструкциях, которые своего рода являются файлами правил и файлами подсказок и всем таким прочим. Там есть все это, что круто. Так что вы можете погрузиться в это, что здорово, и мне нравится, что это как навыки против пользовательских инструкций. Когда бы вы их использовали? Когда бы вы их не использовали? Вы знаете, вы можете расширить эту таблицу. Это быстрый факт для вас. Очень приятно. Так что всевозможные вещи, и наши навыки могут жить в облачных навыках или навыках GitHub, что приятно. Мы поговорим об этом тоже. Прежде чем мы перейдем к демонстрации, также укажите на Awesome Copilot, который является отличным... GitHub, и теперь я видел, я не знаю, вы это сделали, Гарольд? Это был ты, Гарольд, который сделал... навык >> это был я? Да, я сделал это за день до этого, а затем... замечательные люди из Awesome Copilot помогли мне быстро внести это. >> Очень приятно. У нас есть навык тестирования веб-приложений. Мы рассмотрим это тоже, но давайте просто начнем. Гарольд, я знаю, что у тебя есть крутая, крутая демонстрация. Это вроде как... давайте сделаем что-то вроде "привет, мир". Многие люди спрашивают, как... где это находится в VS Code? Можете ли вы включить это в VS Code? И Тим покажет CLI и облачного агента тоже. Так что я очень взволнован этим. Но да, давайте... вы хотите, чтобы я вывел ваш экран? >> Да. >> Хорошо. Мне всегда нравится... мне всегда нравится спрашивать сначала. >> тебе нужно это сделать. >> Ты в порядке. Хорошо, ты в порядке. Пожалуйста, появись. >> Там. Вот. Мои силы. >> Да, так мы... это инсайдеры. Так что это действительно важно отметить... последнее и величайшее из агентских навыков. То, что называется агентскими навыками, находится в инсайдерах. Если вы откроете стабильный VS Code, который имеет синий значок, то у вас все еще будут облачные навыки. Так что это просто скорость разработки, которая здесь происходит. Вероятно, мы внедрим это в стабильную версию в начале января, чтобы сделать его проще в использовании. Так что вы увидите, что это происходит. Так что, по сути, это... эта настройка "использовать агентские навыки" должна быть отмечена, и затем мы посмотрим, по сути. Сайт GitHub, навыки, папка co-edited и новая пользовательская папка, и все еще посмотрим на облачные навыки, потому что это своего рода экосистема, где люди сейчас имеют навыки, это просто папка, и это то же самое для кодирующего агента и CLI. И мы также ссылаемся на наши полезные документы, которые я также написал. Так что, да, как только вы включите это, по сути, это попадает в список вещей, которые агент уже просматривает. Так что агент уже имеет... в данном случае у меня открыт мастер-класс, который вы можете найти на YouTube две недели назад, и он использовал все примитивы, которые у нас есть. Так что у нас есть подсказки для... одна из них просто для настройки репозитория, которая является действительно крутой подсказкой. >> У нас есть агенты. >> Управление, можешь сделать это для меня один раз? >> плюс. >> команда плюс. >> там. О, отлично. Ах, теперь я могу это прочитать. Спасибо. Просто просто кричи и руки, хорошо? >> Хорошо, так у нас есть эти... эти агенты, эти инструкции... и затем подсказки, и... что-нибудь еще, и да, я думаю, у нас нет файла инструкций в целом, который был частью мастер-класса, создайте один, так что вы можете представить себе такой, но у меня есть этот, который действительно крутой. Это на самом деле основано на статье Саймона от Anthropic, которая называется "Улучшение фронтенд-дизайна с помощью навыков", и они, по сути, имеют... и мы все с этим сталкивались. Как только мы переходим в режим VIP-кодирования с облаком, вы получите фиолетовые градиенты, если не будете осторожны. [смех] Так что просто сделайте мне красивый веб-сайт, он будет фиолетовым и будет иметь градиенты, и тогда вы действительно сможете увидеть эстетику дизайна моделей через некоторые из этих... дизайнерских решений, которые он принимает. Так что это просто скопировано из этой статьи. И мне нравится этот стиль подсказки, вроде "полезная подсказка, следующее утро, эй, ты склонна сходиться к общему результату и фронтенд-дизайну. Это люди называют AI-шлаком. Простите, но вы это делаете. И это действительно крутая система. Но теперь, когда у нас есть навыки, это... это может быть навык. Это не то, что вам обязательно нужно иметь инструкцию. Это не описывает ваш код. Это просто "вот как вы пишете лучший код в целом". Это может использоваться, возможно, при проверке кода. вроде того, как агент проверки кода на сайте GitHub может увидеть, о, на самом деле, я не должен использовать избыточные шрифтовые семейства, и тогда, как только я увижу дизайн с этим, вроде "ты не должен использовать Inter Roboto здесь", может быть, выбери что-то более другое, но это не обязательно проверка кода, это скорее проверка дизайна. Так что давайте сделаем это навыком. Так что вы возьмете все это, вы уже видите, что у этого есть имя, описание, так что, и это то, что пользовательские инструкции и Copilot уже дали вам... так что мы можем сделать это здесь, мы можем просто... скопировать этот файл и сделать его. Мы находимся в GitHub, так что мы можем оставаться здесь и создать новую папку skills и скопировать это сюда. Теперь нам нужно переименовать это в frontend-design/skill.md, и у нас есть навык. >> Вау. Навык создан. >> Навык создан. Да, это теперь только для агентов GitHub Copilot. Так что, если вы хотите иметь его для всех других агентов, которых мы используем. Мы хотим, возможно, поместить это в облако. Вот где сейчас большинство смотрят, и, надеюсь, в будущем будет одно место, где можно будет их разместить, или я могу поместить их в свою пользовательскую папку. У меня также есть... это на самом деле способ, которым я работаю в своей пользовательской папке для облачных навыков. Я просто, по сути, имею это в VS Code. Так что, если я просто открою это, у меня открыто здесь, сбоку. Это все своего рода облачные навыки, с которыми я играл. Так что один из них - это фактически создатель навыков. Это то, что вы сделали. Просто укажите на веб-сайт, чтобы создать навык. Есть навык для создания большего количества навыков. Так что, но это один из способов управления этим. Так что, но чтобы посмотреть, как... теперь я могу фактически войти... и спросить, какие навыки у вас есть? Классический вопрос. >> У него есть куча идей, какие навыки у него есть. Он понимает свои инструменты как навыки и кое-что еще. Но есть раздел навыков, и я... так что теперь у него есть фронтенд-дизайн, который мой, а затем остальное, что у меня есть из пользовательской папки, верно? И способ теперь заглянуть за кулисы немного... это журнал отладки чата, который вы можете включить в режиме инспекции, верно? Это вид, если я нажму на него, мы можем кратко заглянуть за кулисы, чтобы увидеть навыки здесь. Так что так это выглядит в подсказке. Это просто список навыков: имя, описание. Так что, как сказал Тим, описание действительно важно, чтобы убедиться, что оно используется в нужное время. И, как я сказал, для фронтенд-дизайна это вроде: "Используйте этот навык, когда пользователь просит дизайн, вроде... дайте ему контекст, когда его использовать и что он предоставляет, чтобы агент мог понять, как его использовать". Да. Так что это основы простого навыка. Здесь нет дополнительного контекста. Я мог бы загрузить, возможно, руководство по дизайну в файле markdown, если он действительно хочет углубиться. Возможно, некоторые примеры. Но это... это своего рода базовая версия skill.md. >> Это действительно круто. Мне нравится, что у вас были своего рода пользовательские элементы, вроде: "Эй, я делаю это все время в разных областях, и я хочу, чтобы эти навыки были доступны". И раньше, даже пользовательские инструкции могли делать это. Но опять же, это много накладных расходов по сравнению с тем, что я действительно понимаю от вас и Тима, это действительно просто понимание этой фронтенд-материи метаданных. Так что контекст действительно сжат до очень малого, по сути. >> Да. Да. Эти... эти вещи не должны быть необходимы, а также сделать их переносимыми, верно? Вы можете иметь Tailwind для навыка. Я могу переместить это сейчас. Это в основном о том, как писать. Я думаю, это все еще дискуссия, которую мы должны провести. >> Как использовать инструкции против навыков. Я чувствую, что инструкции по-прежнему более полезны, когда они чисто сосредоточены на том, как писать хороший код, потому что тогда они могут помочь вам загрузить его, например, при проверке кода. >> Так что любой агент, связанный с кодированием. >> Если у вас есть хороший набор пользовательских инструкций, который имеет, скажем, файл инструкций для домена и файл инструкций для конкретного домена для репозитория. Вы все еще можете автоматически загружать их, потому что у меня также есть эти "применяется к системам" в... во фронтенд-материи и говорить: "О, вы написали тесты, позвольте мне посмотреть мои инструкции по тестам и затем проверить, что эти... проходят". Вы не хотите обязательно иметь навык, который описывает, как, по сути, писать лучшие тесты в этой папке. Это, вероятно, должна быть пользовательская структура на данный момент. А затем навык может говорить о том, как думать о тестах, как иметь рабочий процесс для написания хороших тестов. Может быть, это о разработке, управляемой тестами. Так что есть еще... вероятно, некоторое сближение происходит в этом пространстве примитивов, чтобы понять, что это... это правильные пути на данный момент. Определенно, если вы думаете об одном варианте использования, вы, вероятно, найдете решение для этого варианта использования четырьмя разными способами. >> Очень круто. Отлично. Как... как он знает, как запускать навыки? Так что вы поместили его в подпапку frontend-design/skill.md, как... как он знает, как фактически запускать их? >> Это то, что я показал здесь, журнал для... подсказки. Это, по сути, говорит вам, когда пользователь просит вас выполнить задачу... >> используйте инструмент чтения файлов. Так что это то, что происходит здесь. >> Если я зайду сюда и попрошу его, например, переделать приложение в дизайн уютной кофейни. >> О, мне это нравится. Это мое. [вздохи и ахи] >> Так что он получает контекст. >> Он зажжет эту левую сторону. Сделай ее яркой. >> И он должен посмотреть на навык. >> Так что мы предполагаем здесь, что, как и раньше, мы загружаем кучу пользовательских инструкций, что он будет... [кашляет] теперь понимать, эй, вот навыки, которые у меня есть, а затем вот навыки, которые я собираюсь применить, по сути, как... это не как... это не как скрипт, который он запускает. Я хотел бы... иногда я думаю, когда я впервые увидел навыки, я подумал: "О, он собирается запустить этот скрипт". Это не то, что он делает, верно? Это не скрипт, который он запускает. Это набор... это могут быть скрипты, это может быть информация об этом, но это набор всего, вроде: "Вот как это сделать", а затем интегрировать это в ваше контекстное окно. Это правильно? >> Да, это больше... это больше в... или, по крайней мере, из коробки, это больше контекст, чем скриптинг. В некоторых случаях это очень скриптово. >> Например, другой пример, который я хотел бы показать, который имеет смысл, это где мой тестовый навык? Этот, возможно, легче понять, в некотором смысле, что... >> Так что вы можете просто спросить его... как только вы установите навык, просто спросите его. Я отредактировал навык, можешь ли ты сделать что-нибудь крутое с ним, и это действительно... самый базовый пример. Вам не обязательно прикреплять навык, но это просто естественный язык. Есть навык, посмотрите на описание, загрузите его и сделайте что-нибудь с ним. И это также способ, которым я люблю использовать MCP server иногда. Я просто устанавливаю MP server, я не хочу смотреть на все инструменты, я просто хочу спросить LM. Это скорость над... что он может, потому что инструменты часто описывают конкретные рабочие процессы и конкретные... используйте этот инструмент сначала, а затем этот инструмент, и агент может разобраться в этом, а затем иметь гораздо более приятное знакомство с MCP по сравнению с тем, что я бы сделал. Так что в данном случае мы можем видеть, по сути, он загружает навык on D, который находится в моей папке, и это интересный пример описания навыка. А. Он очень длинный, он огромный. Так что это своего рода полный... по сути, как сделать мастер-класс по алгоритмическому искусству в документе markdown. Это вроде как вы... вы читаете, вы думаете о философии алгоритмического творчества, затем вы выражаете это с помощью p5 js. Так что вы бы не стали, если бы вы... это то, о чем, я думаю, люди должны быть осторожны. Если вы просто представляете, о, это крутой навык, который просто описывает, как делать p5 js, это не так. Это полный алгоритмический арт-майндсет в коробке. Так что вам нужно быть... это то, что делает навыки сложными, так же, как вы делаете пользовательских агентов сложными. Вам нужно понимать, что стоит за подсказкой и как она предназначена для работы. Но это глубоко аналитическое понимание... группы философии... концептуального семени. Но затем оно очень практично, потому что оно также имеет этот пример просмотрщика файлов здесь, а также просто стартовый шаблон, чтобы начать. >> И именно поэтому в итоге так хорошо его создавать, потому что у него есть хороший стартовый шаблон. >> У него есть этот подход к рассуждению и как создавать интересные примеры, а затем, поскольку у него есть файлы и контекст, и рабочий процесс, он просто создает что-то действительно крутое. >> Очень круто. Я думаю, Билл здесь в чате сказал: "Мы должны думать об этом больше как о метакогнитивном рецепте, вроде... вы знаете, как вы говорите, вот рецепт, как что-то сделать, вроде... вы знаете, я думаю, что один из нас сказал, как вы думаете об этом, вот как думать о обработке PDF, вот как думать о создании алгоритмического искусства, это своего рода рецепт?" Я думаю, это то, куда движутся многие примеры навыков для Anthropic. Это больше... >> это больше о том, что LM не мог сделать раньше. Агент не мог создавать PDF раньше, агент не мог создавать PowerPoint раньше, а затем навык, по сути, говорит: "Вот скрипт для создания этих вещей. Если у вас есть это здесь". Так что теперь он загрузил это, мы собираемся запустить сервер. Так что это было... он создает файл. Он запускает сервер HP из Python для предварительного просмотра. И теперь он фактически откроет предварительный просмотр в редакторе, чтобы показать нам. >> Вау, круто. >> И вот наши... [вздохи] прекрасные биолюминесцентные глубины. >> Да. Так что, как раньше, если бы у вас не было этого навыка, модель, будь то Opus или GPT или любая другая модель, верно, она бы посмотрела на свой корпус данных или... поняла бы его и попыталась бы выяснить, что она интерпретирует, верно? Но то, что мы делаем, это своего рода ограждения и как думать и как конструировать. Но если вы строите и вы находитесь в этом репозитории, я думаю, важная часть - это то, что вы говорите, это приложение будет делать тысячу разных вещей. Но если вы все это поместите в свои пользовательские инструкции, это будет анализироваться каждый раз, как бы раздувая ваше контекстное окно для этого, где теперь мы говорим: "Эй, мы делаем эту конкретную вещь, мы создаем это искусство. Так что давайте развернем эту одну вещь. Давайте загрузим эту одну вещь в контекстное окно, а затем сделаем это". Я думаю, это то, что Тим говорил раньше. Так что я думаю, что разбивая это, как мы разбили пользовательские инструкции на... эй, вот как я хочу свой C#, вот как я хочу свой CSS, вот как я хочу эту вещь, но теперь это вроде: "Вот как я хочу, чтобы вы думали о CSS в целом, но не делайте этого, если вы на самом деле не занимаетесь CSS". >> Да. Да. Это... это определенно склоняется к чему-то. Так что же такое возможности агента на самом деле означают? >> И это может быть что-то, что агент обычно делает неправильно или не может сделать вообще. Например, если вы попросите его сделать PDF, он, вероятно, найдет 10 разных способов как-то сделать PDF, и, возможно, один из них будет успешным, или все они потерпят неудачу. Но это своего рода... в данном случае есть... это репозиторий навыков Anthropic на GitHub, и он имеет, по сути, все скрипты, которые доказали свою работоспособность с правильной зависимостью, правильными пакетами, уже встроенными. Так что это просто повышает шанс с одного из 10 до 10 из 10, что он сделает это правильно. Как только вы попросите его сделать PDF, это вроде: "У меня есть этот навык. Давайте поищем его в моей... в моей базе данных навыков, моих возможностях", и он найдет ровно столько информации, ровно столько скриптов, чтобы сделать это, верно? >> Это круто. И, как вы говорите здесь, есть не только файлы markdown, но и больше кода. Например, вы можете иметь файлы скриптов, например, файлы скриптов C#, файлы скриптов Python, файлы скриптов JavaScript, и они своего рода крошечные вспомогательные утилиты для развертывания. Тим качает головой. Я правильно понимаю. Если Тим... если Тим одобряет, тогда я чувствую себя... я чувствую себя умным внезапно. Спасибо. Я правильно понимаю, Тим? >> Ты прав. [смех] >> Мне это нравится. Круто. Это потрясающе. Да, я думаю, что это... это здорово видеть. И я надеюсь, что Awesome Copilot вырастет в это, и это здорово просто видеть облачные навыки там. Это потрясающе. Отлично. Это Гарольд. Это фантастика. Должны ли мы перейти к Тиму, чтобы увидеть это в CLI и облаке, или у тебя есть еще, Гарольд? Ты в порядке? >> Нет, это все, что у меня было. Мы все >> Круто. >> Это гораздо, гораздо круче. >> Ну, это Тим. Так что мои ожидания высоки. Говард... Говард установил для меня очень высокие ожидания, что опасно, но я постараюсь изо всех сил соответствовать этим высоким ожиданиям. Так что, позвольте мне просто... поделиться своим экраном. Так что я начну с показа некоторых вещей в Copilot CLI. Если вы еще не использовали Copilot CLI, то обязательно попробуйте. Его очень легко установить. Вы можете просто установить его, запустив npm install-g github/copilot, и тогда вы получите его. >> Что такое Copilot CLI? Это довольно просто. Это как агент, который у вас есть в VS Code, за исключением того, что вместо запуска в IDE, он запускается в вашем терминале. Я бы не сказал, что он лучше или хуже, чем то, что у вас есть в вашей IDE. Я думаю, это просто сводится к тому, что разные люди любят разные вещи, и это нормально. Мы не все должны любить использовать одно и то же, и мы можем иметь разные... разные продукты, разные инструменты для разных людей и... как они любят работать. >> И пример, который я хочу показать сегодня, может быть немного интересным и немного странным в том смысле, что я признаюсь, что я не только использую Copilot CLI для кодирования. Я использую его для других вещей тоже, потому что полезно иметь агента, который может использовать мой компьютер и делать вещи для других видов задач. Так что одна из вещей, которую я делаю относительно часто, потому что я, знаете ли, делюсь демонстрациями и... делюсь примерами использования моих продуктов, это редактирование видео и их нарезка. Так что я делаю запись экрана, которая, возможно, занимает пять минут, а затем я хочу взять конкретные 20 секунд из нее или конкретную минуту из нее или что-то в этом роде и поместить ее в отдельный файл, чтобы я мог поделиться ею. И если вы когда-либо использовали ffmpeg, который является очень популярным инструментом для выполнения этих видов видеомонтажных вещей в командной строке, вы будете знать, что аргументы командной строки довольно безумны и запутанны и их трудно выучить. Так что, хотя я делаю эти видеомонтажные вещи относительно часто, я не делаю это достаточно часто, чтобы на самом деле помнить, как их использовать. Так что каждый раз в старые времена я шел в Google, чтобы получить совет о том, как использовать этот инструмент? Какие аргументы? Так что я оказывался на Stack Overflow. Но теперь я использую OM для этого. Я использую агента, чтобы помочь мне сделать это. Но одна из вещей, которую я часто обнаруживал, делая это, заключается в том, что модели, как модели OpenAI, так и модели Anthropic, совершают некоторые распространенные ошибки с моей точки зрения в том, как они используют ffmpeg, и они... каждый раз, когда вы используете его, совершают одни и те же ошибки, которые портят ваше видео. И один пример, который у меня есть, это то, что я на самом деле не понимаю, как все это работает, но в видео есть такая вещь, как ключевые кадры. И я обнаруживаю, что когда я пытаюсь вырезать видео, в начале и в конце будут странные черные участки. И каждый раз, когда я прошу агента сделать это, он всегда делает это неправильно, что очень раздражает. Но я не обязательно хочу помещать это в свои пользовательские инструкции, потому что, знаете ли, редактирование видео составляет 0,1% того, что я делаю со своим агентом, и это просто... по сути, мусор в контекстном окне, который не полезен большую часть времени. Так что это отличный пример того, как я могу использовать навык, чтобы помочь мне делать вещи лучше. И я собираюсь использовать немного другой пример, чем тот, который мы видели с Гарольдом. Так что Гарольд показал, как иметь навыки внутри вашего репозитория, но с C-Pilot CLI, и я думаю, что это скоро появится и в VS Code, у нас также есть возможность иметь навыки, которые живут в вашей домашней директории. Так что вместо того, чтобы иметь это для одного репозитория, вы можете просто иметь навык для... для вас как человека. Так что для Copilot CLI мы храним их в... Copilot в домашней директории, и у нас есть Copilot skills, и там я создал навык под названием video editing, и я могу перейти в него, и вы можете увидеть, что он очень, очень простой. Это просто тот файл skill.md, о котором мы уже говорили. Так что, если я просто открою его, мы увидим, как этот файл выглядит и работает. Так что у него есть простое имя. У него есть описание. Так что здесь я... у меня была эта вещь, где говорится: "Вызовите этот навык всякий раз, когда вас попросят отредактировать видео", потому что я обнаружил, что когда я использовал это, если я не добавлял что-то вроде этого, он часто просто игнорировал меня и не делал то, что я хотел. Затем у меня есть куча инструкций, которые, по сути, объясняют, как вы справляетесь с этой проблемой ключевых кадров, как вы делаете эту нарезку видео таким образом, чтобы не было странных результатов. И у него есть еще несколько советов о том, как ускорять и замедлять видео. Я, как ни удивительно, использовал Copilot для написания этого навыка. Так что я говорил о вещах, которые я хотел бы делать, и проблемах, с которыми я сталкивался, и просил его помочь мне написать навык для этого. Так что это своего рода настройка. И теперь я собираюсь перейти в Copilot CLI, чтобы фактически увидеть это в действии. Так что я собираюсь запустить Copilot. Мне нравится запускать его с баннером или, потому что тогда вы получаете приятную анимацию, когда он загружается, и мне нравится видеть это, особенно если я делаю демонстрацию. И, честно говоря, мне нравится видеть это каждый раз. Так что я... у меня есть это. И затем в последней версии CLI у нас есть команда SLS skills list. Мы можем быстро увидеть, какие навыки у нас установлены. И она покажет мне личные навыки, которые предназначены для моего пользователя. И она также покажет мне навыки в моем проекте. И теперь я знаю, что он там, я могу попытаться использовать его. Так что я скажу Copilot: "Можешь ли ты вырезать... можешь ли ты взять последние 20 секунд из movie.mpp4 и поместить их в выходной файл output.mpp4". Так что до этого мне приходилось идти в Google или Slack Overflow, чтобы узнать, как это сделать, а затем... взламывать и пробовать кучу вещей, а теперь Copilot может сделать это для меня. Так что в CLI у нас есть такой опыт, что когда навык вызывается, мы просто показываем небольшую вещь во временной шкале, так что вы можете видеть, что навык был загружен в контекст, чтобы просто дать вам понимание того, что происходит. >> Затем первое, что он делает в моей подсказке, я сказал последние 20 секунд, и чтобы сделать это, первое, что ему нужно выяснить, это... сколько на самом деле длится это видео, которое вы мне дали? Так что он собирается запустить команду, чтобы сделать это, и я скажу "да", хорошо, давайте сделаем это. Мы видим здесь, что он выяснил, что это 40,27 секунды. Очень точно. Мне нравится, что у него шесть десятичных знаков, чтобы убедиться, что мы действительно уверены в том, как долго будет видео. И тогда он знает, как долго оно длится. И теперь я могу запустить команду, чтобы фактически сделать этот монтаж для меня. И поскольку у него есть навык, он не сделает эту раздражающую ошибку с ключевыми кадрами и не оставит меня с... странной черной частью в начале видео. Он даст мне именно то, что я хотел. Вот оно. Он делает это сейчас. Закончено. Готово. Я извлек его. Так что это приятный... я думаю, действительно практичный пример использования навыка. Знаете, это не то, что я делаю все время, поэтому, вероятно, нет смысла иметь это в моих пользовательских инструкциях, но он может загрузить его и добавить дополнительный контекст, когда я хочу сделать такую задачу. И, возможно, это не актуально для вас. Вы, вероятно, не такой странный человек, как я, который... использует Copilot CLI для... редактирования видео, но, вероятно, есть и другие примеры, которые могут быть немного похожи на это, которые полезны для вас. Ну, я думаю, это очень круто, потому что это как бы доходит до примера, который у меня только что был, который как бы изменение размера изображений. Я постоянно создаю приложения для iOS и постоянно создаю веб-сайты. Мне нужно изменять размер изображений. Мне нужно работать с SVG все время, которые очень сложны. И я... тот веб-сайт с обоями просто... как часто я добавляю обои? Ну, не так часто, но когда я это делаю, мне нужно, чтобы он очень хорошо понимал, как я изменяю размер и куда я помещаю файлы и куда я все делаю. Как вы говорите, вы можете работать над... видео-сайтом, верно? И это может быть основной функциональностью, где вы буквально размещаете различные брендовые активы и вещи повсюду. И теперь у вас есть этот навык, он с вами все время, куда бы вы ни пошли. >> Да. >> Это очень круто. Мне нравятся некоторые из... приятностей CLI. Я уверен, что... Гарольд и команда VS Code украдут некоторые из приятностей того, какой навык был запущен и когда он был проанализирован, и мы получим /skills. Гарольд, займись этим. >> Да, уже тонны обратной связи. Одна из них для инструментов, вы можете красиво выбрать, какие инструменты доступны во время выполнения. Так что для навыков вы, возможно, также в конечном итоге достигнете точки, когда у меня установлено 50 навыков, я не хочу... и тогда вы находитесь в моей пользовательской папке, потому что иногда я хочу извлечь видео, но затем внезапно вы говорите о... другом видео на вашем веб-сайте, и тогда внезапно он всегда читает другой навык, и поскольку это все контекст, и особенно в этом случае это может быть также большой документ, как я показал с вычислительным искусством. >> Так что будет интересно, как... по сути, сделать так, чтобы навыки работали в масштабе, не постоянно корректируя описание, чтобы... о, он сработал, потому что я говорил об искусстве, мне нужно просто... не используйте это, когда я просто говорю об искусстве или что-то в этом роде. Так что это будет... все еще... контрольный уровень для пользователей. >> будет интересно. Также, я думаю, в этой демонстрации подчеркивается, что я думаю, что один вопрос, который я получаю... я получаю много вопросов о... два вопроса: как это отличается от всего остального, вроде инструкций, и я думаю, мы говорили об этом, но как это отличается от MCP? Я думаю, это интересный вопрос, потому что есть этот контрольный уровень во всех агентах, что вы все еще получаете выполнение скриптов, вы вроде как выполнение команд, и вы можете подтвердить это. Так что это действительно... хороший контрольный уровень для понимания того, что выполняется из-за навыка, а затем все еще быть в charge, а не... >> многие навыки... запускают скрипты в виртуальных машинах и других местах, где у вас может даже не быть контроля над... когда он запускается, как он запускается, какие входные данные, но это... думаю, некоторые из этих контроллеров помогут сделать навыки более доступными, чтобы вы могли просто попробовать навыки, потому что вы все еще отвечаете за нажатие "да", выполните это в... в данный момент, и что делает их также более компонуемыми, чем, возможно, другие примитивы. >> Это круто. Теперь, что мне здесь нравится до сих пор, это то, что эти же самые навыки, вы можете просто взять этот навык где угодно, верно? В VS Code, но также и в облачном агенте, верно, Тим? >> Потому что я не знаю, знаете ли вы, Тим, быстрая скромная похвальба. Я уберу ваш экран, чтобы вы могли вывести свой другой. >> Облачный агент, когда выходил Mission Control, они связались со мной и сказали: "Эй, Джеймс, я вижу, что ты опытный пользователь облачного агента. Мы хотели бы, чтобы ты продемонстрировал этот пузырь и... или... попробовал некоторые новые функции." Я не буду скромно хвастаться, что, возможно, я использую облачный агент все время, но я
Есть такая философия: перед тем как закончить рабочий день, я назначаю что-то облачному агенту. Перед тем как лечь спать, я назначаю что-то от облачного агента. И когда я просыпаюсь утром, я назначаю что-то облачному агенту, и знаете, когда вы, например, в душе, и ваши лучшие идеи появляются там, я не знаю почему, но душ как будто открывает магию идей. Ну, знаете, у нас есть наши мобильные телефоны. Я просто открываю мобильное приложение GitHub и всегда что-нибудь назначаю. Так что это вроде как: вышел из душа, появилась идея, назначил ее. И крутая часть вчерашнего дня: у меня отключили электричество на пять часов, и я пошутил с Пирсом, потому что он спросил, все ли в порядке? Я ответил: я не знаю, написал ли я больше кода в своей жизни, когда электричество было отключено в течение 5 часов, потому что у меня сейчас 18 текущих задач в облачном [смех] агенте, и я их просматриваю, объединяю, а затем просто скачиваю новые сборки моего iOS-приложения. Я сижу здесь и создаю совершенно новую систему достижений. Я начал ее до начала трансляции, потому что зачем тратить час? >> Да. >> Когда я мог бы писать код в то же время. Так что я большой поклонник облачного агента. Если кто-то меня знает, то моя любимая демонстрация на сцене — это разговор с моим телефоном, и к концу сессии я просматриваю этот код в VS Code, что потрясающе. И Тим, многие люди знают вас и из сферы облачных агентов. Но могу ли я использовать эти навыки и там? >> Да, можете. И спасибо, что являетесь послом кодирующего агента в облаке. Всегда приятно иметь поклонников. Это супер крутой инструмент. Я должен это сказать, учитывая, что я над ним работаю, но я использую его все больше и больше каждый день. И приятно слышать от других людей, что они тоже его используют. Так что, если вы не знакомы, Copilot coding agent — это, по сути, агент, который работает в облаке в фоновом режиме. Так что вместо того, чтобы иметь запущенный VS Code на вашей машине или открытый CLI, вы можете начать задачи, а затем просто закрыть ноутбук, отключиться от интернета, полностью отключить его, и он все равно будет работать в фоновом режиме. Вы можете параллельно выполнять множество задач. Так что в моем обычном рабочем дне, вероятно, Copilot работает над двумя или тремя задачами одновременно большую часть времени, и я могу управлять этим процессом. И, чтобы дополнить VS Code и CLI, мы добавили поддержку для этого. Мы добавили поддержку навыков агента здесь. И я собираюсь показать быструю демонстрацию того, как это работает на практике, и хороший пример использования навыков для кодирования. Это один из моих open source проектов. Это просто простой API, созданный на Typescript, и в настоящее время он использует Express.js, который является популярным, но, возможно, немного старомодным фреймворком для создания API. В нем нет ничего плохого, но это не самый производительный или современный вариант для таких вещей. Так что я думал об этом, и я часто слышу от разработчиков, которые хотят использовать агентов, что они хотят, чтобы им помогали с миграциями, обновлениями и тому подобным. Так что этот проект не лучший пример, потому что он очень маленький. Но если у вас есть большой API, скажем, вы работаете в GitHub, и у вас есть GitHub API, у вас тысячи, возможно, десятки тысяч API. И если вы собираетесь перейти на новый инструмент или новый стек, это будет большая работа, и вам придется следовать процессу много раз. И я думаю, что это отличный сценарий использования для навыка. Так что я создал навык под названием "миграция с express на fastify". И его цель — научить Copilot мигрировать с express, который является фреймворком, который я использую сейчас, на другой, более производительный, более современный фреймворк под названием fastify. Так что у меня есть этот навык, который объясняет процесс, который нужно пройти для этого обновления. Он довольно структурирован: начинается с проверки того, какие API существуют. Затем есть бенчмарк, чтобы понять, какова производительность до и после, чтобы вы могли видеть улучшения, которые вы делаете. И, что важно, он также включает шаг по обеспечению того, чтобы API не изменился при миграции, потому что это то, о чем вы должны быть очень осторожны при миграции: не сломали ли вы что-нибудь или оставили ли вы все так же, как было раньше? И я снова проделал много итераций с Copilot, чтобы написать этот навык, потому что, когда я написал его в первый раз, я обнаружил, что он, по сути, сказал: "О, возможно, вы захотите сделать это так". Но я обнаружил, что он просто проигнорировал это и сделал шаг один, а затем сразу перешел к шагу шесть, и не сделал бенчмарк и не сделал проверки, чтобы убедиться, что API не изменился. Так что я спросил Copilot: "Чувак, почему ты меня проигнорировал?" И он предложил другую версию, вроде "обязательный рабочий процесс". Вы должны пройти каждый этап по порядку. И это версия, которую мы в итоге использовали и которая работает. Это навык. Давайте посмотрим, как мы его запускаем. Для этого я собираюсь использовать то, что у нас есть на GitHub сейчас, под названием "панель агентов". И это просто окно, которое мы можем открыть где угодно на GitHub, чтобы давать облачные задачи облачному агенту. Есть и другие способы сделать это. Вы можете назначить задачу Copilot. У нас есть интеграция с VS Code, о которой я говорил раньше в VS Code Live, и множество других способов. Он подключен к Slack и GitHub mobile и многим другим вестам. И теперь мы просто вводим наш запрос в это поле. Я скажу: "Преобразовать" или, на самом деле, я скажу: "Мигрировать API с express на fastify". Я собираюсь использовать Claude Opus, потому что это моя любимая модель на данный момент. А затем я нажму "начать pull request". И теперь это запускает задачу, которая будет выполняться в фоновом режиме, и Copilot сделает свое дело. А затем, когда он закончит, он откроет pull request для меня и попросит меня его просмотреть. Неудивительно, что это займет некоторое время. Так что, вместо того чтобы использовать этот пример, я вернусь к одному, который я сделал раньше, потому что мы не хотим просто смотреть, как Copilot работает часами. Итак, если мы пройдемся по этому, у нас есть куча логов от Copilot, где я попросил его выполнить эту задачу. И очень рано в процессе у нас есть момент, когда он говорит: "активировать навык миграции с express на fastify". Так что он быстро определяет, что этот навык хорошо подходит для моей задачи, и включает его в контекстное окно, и теперь он может следовать этому процессу, который я ему дал. Он делает инвентаризацию, что является первым шагом, который я даю ему в навыке. То есть, выясняет, какие API существуют. Затем он фиксирует все ответы API, которые есть сейчас, чтобы в конце можно было их сравнить. Он запускает бенчмарк. Так что мы получаем информацию о производительности API до миграции, а затем он проходит и фактически вносит изменения в файлы и тому подобное. Знаете, как агент в CLI и в VS Code, он умный. Он запускает ваши тесты и линтер и тому подобное, чтобы вносить изменения. И именно здесь мы действительно видим магию в этом рабочем процессе: он фактически следовал тем шагам, которые я установил в своем навыке. Так что в конце он проверяет, не сломал ли он API и не внес ли изменения, которые он не хотел менять, и запускает бенчмарк в конце, и где-то дальше вы можете увидеть здесь. Он отмечает, что улучшил количество запросов в секунду на 73% благодаря этой миграции, что является довольно большим улучшением от простого переключения фреймворка. Одна из вещей, которая мне очень понравилась, заключается в том, что при проведении бенчмаркинга он столкнулся с проблемой, потому что обнаружил, что он достигает лимитов скорости в API при попытке провести бенчмаркинг, что довольно забавно. Итак, что он делает? Он решает просто временно удалить лимиты скорости, чтобы провести бенчмаркинг, что на самом деле является совершенно разумным действием для тестирования производительности. Это был еще один забавный случай. Я хотел показать два примера сегодня: один — что-то не связанное с кодированием, мой пример с редактированием видео, и один — пример работы Copilot с кодом. И если мы нажмем "просмотреть pull request", мы увидим pull request, созданный Copilot. Он написал мне хороший текст для pull request, а затем, когда закончил, попросил меня его просмотреть, и я могу просто просмотреть его так же, как я бы просмотрел pull request, созданный человеком. >> Это очень круто. Это потрясающе. У нас тут был хороший вопрос, потому что мне нравится, что мы можем использовать их везде. Маршалл спрашивал: заменяют ли навыки GitHub навыки облака при использовании Copilot? Можно ли использовать любой из них? Например, будет ли облачный агент CLI искать где-нибудь? В чем тут особенность? И, возможно, Гарольд, начнем с VS Code. Может быть, они все работают по-разному. Я не знаю. Как работает VS Code, Гарольд? Мы стараемся согласовать логику навыков между CLI и VS Code. Мы, по сути, сначала смотрим на ваши навыки GitHub в репозитории. Мы смотрим на ваши пользовательские навыки Copilot на вашей машине, а затем смотрим на навыки облака и, возможно, на другие места. Мы посмотрим, какая экосистема является основным местом, где пользователи собирают свои навыки прямо сейчас. Так что это, по сути, наше основное место, где мы знаем о навыках, а затем мы дедуплицируем по имени в конце. Так что поле имени является обязательным. Так что, надеюсь, у вас есть хорошо определенное имя, которое мы затем можем использовать, чтобы выяснить, например, если у вас есть они в разных местах, возможно, вы начали как новый пользователь, а затем переместили его в свой проект и немного доработали. Так что, надеюсь, этот порядок соответствует ожиданиям. Отлично. Тим, а как насчет CLI и облачного агента? Да, та же ситуация. CLI работает так же, как Гарольд только что описал для VS Code. Кодирующий агент в облаке немного отличается, потому что у него нет домашнего каталога. Так что у нас нет этой части, но он будет загружать то, что находится в вашем репозитории, и поддерживает как путь к навыкам GitHub, так и путь к навыкам облака. Так что мы стараемся быть широкими. Мы стараемся быть, знаете ли, наш общий подход здесь — быть очень широкими в этом отношении. И, знаете ли, почему мы должны поддерживать только одно место и только один вид пользовательских инструкций? Мы хотим сделать использование Copilot действительно простым, даже если вы иногда используете другой инструмент. Так что широкая совместимость — это то, чем мы занимаемся. >> Да, мне это нравится. Имеет большой смысл. В коде довольно легко сказать: "проверь здесь или здесь". Просто небольшое логическое "или". Хотя это становится неуправляемым, если мест для проверки слишком много. Я знаю, Тим, что для пользовательских агентов мы внедрили, возможно, для бизнеса и корпоративных клиентов, возможно, только для корпоративных клиентов, агентов на организационном уровне. Например, если у меня есть агент для WinForms, агент для C#, а затем у меня есть агент для WPF, потому что я .NET разработчик, я люблю агентов, которые помогают создавать такие типы приложений, особенно с облачным агентом. Есть ли организационные навыки или инструкции для облачного агента? Для облачного агента у нас есть организационные инструкции, но у нас нет организационных навыков на данный момент. Так что это то, что мы собираемся добавить в ближайшем будущем как для организаций, так и для предприятий. Похоже, это очевидно, что люди могут управлять этими вещами на разных уровнях и делиться ими со своей командой. Очевидно, больше дедупликации, но приятно, что для этих, как сказал Гарольд, у них есть имя, и мы можем использовать это для дедупликации. Пока люди используют разумно уникальные имена, мы не хотим отправлять одну и ту же задачу модели 10 раз, потому что это будет просто запутанно. Но пока мы можем разделить их и сохранить уникальными, это будет работать хорошо, и мы сможем делиться всем. >> Очень круто. Это потрясающе. Мне это очень нравится. Я еще раз поделюсь своим экраном, потому что Гарольд показывал это в начале. Так что, если вы используете VS Code, вам нужно обновить его как минимум до вчерашней или сегодняшней версии. Я покажу свой экран, и Тим, я полагаю, что CLI просто обновляется, а облачный агент автоматически активируется для этого? Да, для VS Code вам нужно зайти и просто набрать "skills". Вы можете сделать это с "s". Должно быть "s", а не "z". Я думаю, Берк сделал "z" и это не появилось. Так что вы набираете "skills", и там есть agent.mmds, agent.mmd файлы, вроде как инструкции, но затем вы увидите "use agent skills experimental". Это то, о чем мы говорим. Он ищет навыки GitHub, навыки Copilot, навыки облака или навыки облака в корневом пространстве имен, где они находятся. Так что вы можете узнать о них больше. И они также доступны в инструменте read, если они есть. Это круто. Очень, очень круто. Так что, если вы еще не включили его, проверьте его в инсайдерской версии. Гарольд упомянул, что он, вероятно, появится в стабильной версии в начале января. Так что, небольшой новогодний подарок, но я просто запускаю. Мы провели опрос. Я много использую опросы YouTube. Мы провели опрос, и почти 55% людей, смотрящих на YouTube, используют либо инсайдерскую версию, либо обе. Так что Rocket Insiders, это как просыпаться каждое утро. Не только облачный агент >> закончил для вас кучу кода, но и дополнительно у вас есть новое обновление VS Code каждый день с приятными бонусами. А если вы скажете: "О нет, что-то пошло не так". Вы можете просто перейти на стабильную версию. Но я всегда использую инсайдерскую версию VS. >> Да, инсайдеры — это люди с навыками прямо сейчас. >> Как навыки агента. Стабильная версия имеет навыки облака. >> Вау. >> Это название просто такое сладкое. Теперь у нас есть проблемы с навыками, которые люди сообщают. Это будет очень весело. >> Хорошо. На этой ноте, я думаю, мы можем закончить год на высокой ноте с навыками агента. Тим, Гарольд, спасибо вам большое, что пришли, показали все это. Я очень ценю это. Для меня большая честь и привилегия быть на этом стриме с вами двумя. >> Спасибо, что пригласили. >> Спасибо всем, кто смотрел в этом году. Столько новых приятных вещей. Я считаю, что Берк и Пирс записывают последний подкаст VS Code Insiders лично где-то в Америке. Я понятия не имею, что там будет. Так что обязательно зайдите на VS Code podcast.com. Бросьте ссылку в чат сюда и подпишитесь на подкаст VS Code Insiders. Вы получите подробный взгляд изнутри на инженерные и PM команды, которые создают самые удивительные инструменты в мире. На этом мы закончим этот выпуск. Так что до следующего года, счастливого [музыка]