📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Agent Skills полный разбор - как научить агента всему

Alexey Andreevsky1:03:45

Transcription

Привет. Сегодня мы разберёмся, что такое agent skills, скилы агентов, зачем они вообще нужны, как их можно использовать и для чего они могут вам пригодиться.

Сразу скажу, что эта тема актуальна не только для разработки кода, но и если вы просто используете неронки либо и агентов, то вам тоже это будет полезно. Всё, как обычно, с меня годнота, с вас лайк и подписка. И мы начинаем.

Для того, чтобы рассказать вам про Agent Skills, я подготовил презентацию. Вы видите её на экране. Сделал я её, во-первых, с помощью нейронки, с помощью клода. Во-вторых, я использовал скилл для создания презентации, который сам же и сделал минут за пять, сгенерировал его точно так же с ней неронкой. Про это мы обязательно поговорим чуть позже. Про то, как создавать скилы, как их использовать, всё будет в этом видео.

Но для начала давайте разберёмся, что вообще такое agent skills. Agent skills переводится как навыки агентов. И это открытый формат, который придумала компания Anropic, и теперь он поддерживается в большинстве EИ инструментов, который позволяет передать EИ агенту какую-то экспертизу. Ну, в некотором процессе, так можно сказать. В общем, давайте разберёмся поподробнее.

Agent Skills - это такой формат, ну или стандарт, можно сказать, по которому можно создавать скилы, которые будут воспринимать и и агенты. Скил, в свою очередь, это некоторые инструкции, которые мы можем описать и потом и и агенты будут им следовать. То есть в скилах мы описываем какие-то процессы, как их выполнять. После чего и агент когда сталкивается с задачей, связанной с вот этим процессом, начинает выполнять задачу по заданным нами инструкциям.

И это решает ряд проблем. Я думаю, у большинства тех, кто пользовался ИИ агентами, да или даже просто чатом с нейронкой, возникали ситуации, когда приходится несколько раз описывать нейронки одно и то же. Это может быть какая-то повторяющаяся задача, например, проверка кода, генерация отчётов, написание поста в соцсети, resarch, то есть поиск информации. И каждый раз для выполнения этой задачи нам приходится писать как минимум запрос, чтобы Неронка сделала нам эту задачу. Но и очень часто приходится писать какие-то дополнительные инструкции и требования к тому, как эта задача должна быть выполнена.

Также, если говорить про разработку или какие-то другие задачи, которые могут повторяться внутри команды, то агент, естественно, не знает всех требований, которые у вас есть к выполнению этих задач. И также приходится каждый раз это всё описывать. После того, как мы описали все эти требования и инструкции в одном чате, в другом чате агент этого уже не помнит, и нам приходится заново всё это объяснять. И как раз вот эти проблемы Agent Skills очень хорошо решает. То есть с помощью скилов мы можем один раз написать какие-то инструкции и после этого Неронка каждый раз будет ими руководствоваться, когда будет выполнять вот определённую задачу.

Что из себя представляет skill под капотом? По большому счёту это папка с файлом skill.m. Всё остальное уже опционально. То есть в этой папке со скилом могут быть какие-то другие папки, например, с референсами, либо какими-то асетами, какими-то изображениями, либо шаблонами.

Что из себя представляет скил? Как он вообще выглядит под капотом? Skill - это папка с файлом skill.m. Всё остальное уже опционально, но в этой папке со скилом могут быть другие папки и файлы, которые содержат, например, какие-то референсы либо асеты, например, шаблоны или изображения. Также там могут содержаться скрипты, то есть код, который будет выполнять Нейронка для выполнения задачи, для которой, собственно, и написан этот скилл. Конкретные примеры мы с вами чуть позже разберём.

Но не нужно этого пугаться. То есть сам по себе skкил, он должен быть достаточно понятным. То есть skill.m он вообще пишется обычным человеческим языком. Это главный файл вообще скила. Его можно открыть, прочитать, и вы должны понять, что этот скилл делает, потому что он пишется, ну, на обычном человеческом языке, русском, английском либо каком-то ещё. Лучше, конечно, писать на английском, но, в принципе, другие языки тоже будут поддерживаться.

Скилы могут быть разные сложности. Например, это может быть один файл skill.m и в нём 10 строк текста. Но и более сложными они, очевидно, тоже могут быть. То есть, во-первых, там сам skill. MD может быть больше. Во-вторых, папка со скилом может содержать много разных скриптов, которые помогают неронке выполнить какую-то задачу. Может быть много каких-то референсов либо асетов. Так что да, скилы могут быть достаточно объёмными и содержать много разных файлов. Но в конечном счёте это просто файлы. Их можно загружать в гит, делиться с командой, форкать, то есть копировать какие-то чужие скилы, дорабатывать и использовать их в своей работе. Поэтому пугаться их не стоит.

Ещё одно классное свойство скилов. За счёт того, что это открытый стандарт, он используется в разных программах. одинаково. То есть вы можете один и тот же скилл использовать как в клодкоде, так и в курсоре, так и там в антигравити, в кодексе, в GitHub Капайте и так далее. То есть один и тот же скилл будет должен, по крайней мере, одинаково хорошо работать в разных программах с разными и и агентами. Ну, конечно, многое от моделей тоже зависит, но в целом сам формат, он универсальный и подходит ко всем инструментам, которые поддерживают agent skills.

Если вы раньше сталкивались с разработкой, с вайп-кодингом, то вы, скорее всего, слышали про правила. И когда скилы только появились, было неочевидно, чем они вообще отличаются от правил. Ну, мне, по крайней мере, было неочевидно. Кто-то, может быть, сразу понял, но я получал много вопросов и сам в этом не сразу разобрался. Сейчас, конечно, я понимаю, но поначалу может быть не очевидно. Так что я думаю, будет полезно прояснить разницу между скилами и правилами.

Перед тем, как мы перейдём к табличке, которую вы видите на экране, и будем детально разбирать разницу между скилами и правилами, я хочу отметить следующее. Правила поддерживаются в основном программами для разработки. То есть это курсор, клодкод, антигравити, кодекс и так далее. В свою очередь, скилы поддерживаются не только программами для разработки кода, но и классическими программами для работы с ней неронками для обычных людей неразработчиков. То есть, например, в десктопной версии клода поддерживаются скилы, а правила не поддерживаются. Я это к тому, что правила они как бы более узконаправленные, они подходят для разработки, классно там используются. А скилы - это как будто более глобальная какая-то и универсальная история, которая подходит не только для разработки, но и в целом для взаимодействия с и агентами, в принципе, с нейронками.

О'кей, давайте посмотрим на табличку и сравним скилы и правила по нескольким параметрам. Режим загрузки в контекст нейронки имеется в виду. У правил есть несколько вариантов режима загрузки. Первый вариант - это всегда. То есть всё содержимое правило отправляется в контекст неронки и, ну, занимает там, соответственно, какое-то количество токенов в контексте. Второй вариант - это по desкрипtion. Есть у правил, также как и у скилов, метаданные с описанием этого правила, ну или скила. Чуть позже мы подробнее посмотрим, как это выглядит. Ну, пока что абстрактно. Давайте про это поговорим. То есть по описанию правила. В таком случае в контекст нейронки отправляется только описание правила, и нейронка сама решает, нужно ей применять это правило или нет по, собственно, описанию. Если ситуация похожа на то, что написано в описании, нейронка подкачает полностью это правило. У скилов третий вариант загрузки у правил - это по расширению файла, например, при работе там с Markу файлами, либо с текстовыми файлами, либо с jon файлами, ну неважно. То есть по типу файла. Если тип файла соответствует, значит подкачивается правило. И четвёртый вариант - это вручную. То есть надо явно это правило указать в контексте чата, чтобы оно использовалось в нейронкой.

А скилы, в свою очередь, у них есть только один вариант. режимы загрузки в контекст. Это по desкрипtion, аналогично второму варианту управил. В файле скила обязательно нужно задавать поле description, то есть описание этого скила. И когда неронка понимает, что она выполняет какую-то задачу, которая соответствует описанию какому-то скила, например, она выполняет задачу проверки кода. И в описании скила написано, что это скилл для проверки кода. В таком случае неронка берёт этот скилл уже полностью в контекст, начинает на него смотреть и, соответственно, руководствоваться этими инструкциями.

Для чего нужны скилы и правила? Правила нужны для каких-то глобальных ограничений. Делай так, так не делай. То есть там можно описать какой-то стиль кода, какие-то запреты, либо обязательные действия. Но правила должны быть более короткие и ёмкие, в то время как в скеле описываются пошаговос. То есть первый пункт, что надо сделать, второй пункт, что надо сделать и так далее. Кроме того, в скеле может быть не только один файл, а дополнительные файлы, например, с референсами либо с какими-то скриптами, то есть кодом, который запускается для выполнения задачи. То есть скилы - это что-то более объёмное и подробное.

Потом следующий пункт - это места, где хранятся правила и скилы. Ну, здесь особо останавливаться я не буду, просто, да, это разные папки, в которых находятся скилы и правила. В общем-то, добавить тут особо нечего, да, просто в разных местах они хранятся. И последний пункт, про который я на самом деле в первую очередь сказал, что правила в основном используются в инструментах для разработки. Может быть, они есть где-то ещё, но в основном они используются в инструментах для разработки. Ну а в скилы, в свою очередь, используются не только в инструментах для разработки, хотя там тоже, но и в каких-то обычных чат-интерфейсах.

Если ваш инструмент поддерживает и правила, и скилы, вот вам простой принцип, как выбрать, что вам использовать. Правила использовать для каких-то коротких и ёмких ограничений, ну либо правил. Сорян за тавтологию, а скилы нужно использовать для описания каких-то процессов. На самом деле, на примерах, я думаю, всё станет достаточно очевидно. Когда мы будем говорить про примеры скилов, будет понятно, что в правило это не очень-то удобно засовывать.

О'кей, двигаемся дальше. Как работает загрузка в контекст у скила? На первом шаге мы отправляем там какой-то запрос в нейронку, и в неё также попадает метаинформация, то есть имя и описание скила. Они занимают, ну, приблизительно 50-100 токенов. Ну, в зависимости от того, конечно, сколько там написано текста. Ну, в общем, говоря, немного. После чего нейронка начинает выполнять какую-то задачу. И если задача совпала с описанием какого-то скила, она уже читает полный skill.m из папки скила. Если в этом файле skill.md указаны какие-то другие файлы, например, референсы или сеты или скрипты, она их также задействует. То есть, если в инструкциях skill.md MD написано, что нужно запустить какой-то скрипт, и там дана ссылка на скрипт в этом скиле, то Нейронка, соответственно, запустит этот скрипт и там будет с его результатами дальше что-то делать. Собственно, это третий шаг выполнения инструкции из файла skill.md. Если он ссылается на какие-то дополнительные файлы, то, соответственно, неронка их тоже задействует.

Такой подход на самом деле очень удобный. То есть надо просто грамотно написать описание скила, чтобы неронка хорошо понимала, в какой момент его нужно использовать. И таким образом мы можем хранить достаточно много скилов у себя в библиотеке, и они не будут забивать контекст, а будут использоваться тогда, когда это действительно нужно. И, соответственно, задача совпала с описанием какого-то скила. Так что у нас нет каких-то жёстких ограничений по объёму содержания скила. Ну, естественно, в пределах разумного, там не нужно книгу писать внутри одного скила, но файлы скила будут подкачиваться динамически, поэтому основной контекст чата они забивать не будут, как, например, это происходит с MCP. То есть MCP-сервера при подключении к нейронке, они, как правило, занимают достаточно много контекста. MCP сервера, конечно, есть разные, но тем не менее многие из них действительно занимают много контекста, и приходится их отключать, когда мы их не используем. В случае же со скилами отключать их не обязательно, потому что в контекст нейронки автоматически загружается только описание скила. Оно занимает немного токенов, и остальная информация и инструкции скила подкачиваются только тогда, когда это действительно нужно.

Давайте посмотрим на формат файла skill.m. Как я уже говорил ранее, минимум, что нужно для создания скила - это создать папку скила и файл skill.m в этой папке. Всё, это минимальный набор скила. Всё остальное опционально. Так вот, Skill.md, он, во-первых, имеет метаданные. Вот эта метаинформация, она здесь обособляется вот в три дефиса. В начале и в конце метаданных. После этого идут уже сами инструкции с описанием выполнения какой-то задачи, какого-то процесса.

Давайте посмотрим на поля, которые есть в метаданных. Тут есть два обязательных поля. Это name, то есть имя скила. Оно, как правило, должно совпадать с именем папки, в которой находится этот файл skill.m. Например, здесь имя файла deployчекеer. Ну, проверка деплоя. И папка со скилом должна называться также. Для наименования папки и, собственно, имени скила используется формат кебабке casйс, то есть пишется всё строчными буквами, слова разделяются дефисами, поэтому желательно придерживаться такому формату наименования.

Затем идёт поле description - это самое важное поле в файле skill.m, потому что именно по нему нейронка будет понимать, когда использовать этот скилл. И если вы напишете его плохо, то, соответственно, неронка скил будет использовать не во всех случаях, когда вам этого бы хотелось. Если вы замечаете, что неронка почему-то не использует ваш скилл в ситуации, когда она должна использовать, это значит, что вам нужно подредактировать описание скила так, чтобы неронка использовала этот скилл в случае, когда это действительно нужно.

А затем идут необязательные поля, их можно заполнять, можно не заполнять. поле лицензия, в котором можно указать условия использования, если вы публикуете куда-то этот скилл. В поле compaбиility можно написать э требования к использованию скила, например, э чтобы был установлен Python версии 3,11 и позже. Либо написать, что этот скилл сделан для клодкода, либо нужен доступ к интернету. Но большинству скилов, на самом деле это не нужно. То есть, в принципе, я думаю, что не обязательно писать это поле, но если вы хотите явно указать требования, которые нужны для использования этого скила, то в этом поле можно это сделать.

Затем поле Tools - это поле, в котором можно указать инструменты, которые мы разрешаем использовать, и агенту, который запускает этот скрипт. Например, выполнение башкоманд, то есть, ну, терминальных команд, либо запуск каких-то других инструментов. Это поле ещё экспериментальное. так написано в документации, и разные инструменты могут поддерживать его по-разному. Поэтому будьте внимательны. Если вы заполнили это поле и в одном инструменте это работает, не факт, что это будет работать в другом. Возможно, нужно поменять формат этого поля, ну либо другой инструмент, может быть, вообще его не поддерживает. Поэтому, да, имейте это в виду.

И последнее поле - это метадата. Здесь можно указать произвольную какую-то информацию в формате ключ значения. То есть вот автоor platform версия 1.3. Это никак не повлияет на поведение агента. Но если вы загружаете свои скилы, например, в GitHub, делаете их публичными, доступными, то таким образом вы можете поддерживать версионирование скила, явно указывать конкретную версию скила. И, соответственно, другие пользователи, которые будут видеть ваш скилл, могут посмотреть на версию, сравнить со своей, если нужно обновить или там наоборот откатить. В общем, здесь можно писать произвольные параметры.

Сейчас мы поговорили про формат метаданных. которые указываются в файле skill.m. Давайте теперь посмотрим, как выглядит скил изнутри уже с инструкциями. Вот пример скила. Файл находится в следующей директории. Папкаagents, в ней Skills, в ней папка со скилом, который называется Commit Formatтер, и в ней файл skill.m. Обратите внимание, здесь используется папка. Это не папка. Вот не папка точка курсор, это отдельная папка. Может располагаться, во-первых, в корне проекта, во-вторых, в пользовательской папке. И если мы сохраняем скилл внутри папки тоs, то этот скилл сразу будет доступен в разных инструментах. Например, он будет доступен и в клодкоде, и в курсоре, и в других инструментах, которые используют скилы. И это очень удобно. То есть мы можем создавать скилы, нам не нужно их дублировать в разные папки разных инструментов. Мы можем хранить все скилы в папке то agents, и они будут универсальны и переиспользуемы в разных инструментах. Это достаточно удобно, но опять же, если вам это хочется. Если нет, вы можете также сохранять скилы в папке инструмента, например, там точка курсор, токакcло и так далее. внутри папки инструмента, ну, например, точка курсор также будет создаваться папка skills. В ней будут папки со скилами, внутри которых будут уже сами файлы скилов.

Вот, обратите внимание, здесь имя скила Commit Forо formatтер и название папки также Commit Format. После этого идёт rip tion с описанием того, когда этот скилл нужно применять. После этого никаких дополнительных здесь полей не идёт. Тут заполнены два обязательных поля. других здесь нет. После чего идёт инструкция выполнения какого-то процесса, в данном случае форматирование комта. Пишутся эти инструкции в формате Markу. Здесь указан формат комта, то есть сначала идёт тип, после этого scope и description. Также указаны допустимые типы. Это фит, fix, docs, ну, то есть новая функциональность, исправление бага, только документация, рефакторинг и правило, что максимум 72 символа в первой строке. Описание в повелительном наклонении. add вместо ed не ADS. И ещё раз уточню, что это просто пример скила, не обязательно так делать.

Как это работает? При запуске и агента, когда он начинает каку какие-то задачи выполнять, он подкачивает себе только имя и описание. Потом, когда он сталкивается с задачей закоммитить какое-то изменение, он видит, что описание скила соответствует этому процессу, загружает в контекст полностью все инструкции из файла skill. MD. Ну и следует этим инструкциям, то есть пишет сообщение комиту в следующем формате. И за счёт того, что этот скилл находится в папке agents, мы можем его использовать в разных инструментах, например, в клодкоде, в курсоре и так далее. При этом мы можем загрузить этот скилл в гиIT и пользоваться там, допустим, всей командой, чтобы у всей команды были одинаковые сообщения комитов в одном формате.

Давайте теперь немножко отойдём от темы разработки и поговорим, в принципе, про то, какие существуют скилы. Это, на самом деле, очень интересно. Anтроopic был первым пользователем, в общем-то говоря, своего же стандарта. После того, как Antropic создали Agent Skills, они встроили его в клод. Были внедрены четыре скила. Это скилл для работы с Экселем, скилл для работы с PowerPoint презентациями, скилл для работы с документами Врда формата DocX и скил для работы с PDF файлами. Я хочу здесь прямо акцентировать на этом моменте ваше внимание. Это не просто указание того, как написать какое-то сообщение в гиIT. Это скилы для работы с таблицами, презентациями и документами. То есть это достаточно сложные процессы у каждого из этих форматов, ну там таблицы, презентации, документы, ворда. У них есть куча своих нюансов и тонкостей для работы, формирования этих документов и файлов. И с помощью скилов антропику получилось научить нейронки работать с этими форматами. Это круто. И, соответственно, это показывает вообще масштабы скилов, что можно с ними делать. не просто писать там какие-то инструкции по формату сообщений, а писать инструкции по взаимодействию вообще с разными форматами файлов, которые изначально не поддерживаются неронкой. Это очень круто. И это далеко не всё. Это вот первые скилы, которые были внедрены антропиком.

На самом деле скилов сейчас очень много уже создано абсолютно для разных задач. И где их посмотреть, поискать, мы тоже скоро поговорим. Но пока мы здесь, хочу отметить следующее, что все эти скилы, они находятся в открытом доступе, и можно посмотреть на их код, как они устроены под капотом. То есть в этом нет никакого секрета, никакой магии. В этом можно разобраться и писать свои аналогичные скилы для нужных вам задач. В частности, здесь вот есть ссылка на репозиторий в Гитхабе от Антропика. Ну давайте я её открою для примера, покажу. Сильно углубляться пока что в это не будем, но в качестве примера, я думаю, будет интересно. Это репозиторий на GitHubбе, то есть здесь, собственно, находятся все эти файлы скилов в папке Skills. Их уже достаточно много, ну, точнее, больше, чем четыре явно. Давайте посмотрим, например, на XLSX. Это скилл для работы с таблицами. Обратите внимание, здесь также есть skill.m. Ну, файл лицензии, о'кей, да, но он на работу агентов влиять вроде как не должен. Что нам интересно? Fileskill.md. Обычный markкdown файл. Здесь текстом написано там бла-бла-бла-бла-бла, как работать с таблицами. Но, э, очевидно, да, что здесь не просто текстом написано. Здесь помимо файла skill.md здесь есть папка scripts. В этой папке scriptриts код питона. И вот как раз с помощью питона, с помощью вот этих файлов скриптов, которые здесь написаны в папке scriptриts, неронка может запускать эти скрипты и взаимодействовать с таблицами. ну, там создавать таблицы, редактировать и так далее. Здесь их достаточно много. Я не буду сейчас подробно всё это разбирать. На самом деле, все вот эти скрипты для работы с таблицами можно также написать с неронкой. Ну, в принципе, да. Не обязательно всё это руками писать. И skill.m неронками писать. Скоро мы к этому перейдём. Я к тому, что не нужно пугаться, что здесь есть не только Markдаун файлы с текстом, который можно легко прочитать, но и какой-то код. Этот код можно также писать с ней неронками, ничего страшного. Но с технической точки зрения скилы - это очень мощный инструмент. И с помощью как раз скриптов внутри скилов можно делать великие вещи.

О'кей, идём дальше. Вот примеры скилов, которые ещё есть, с которыми можно также ознакомиться. И вообще все ссылки, которые были в этой презентации, ну, во-первых, вы найдёте в Telegram-канале, во-вторых, у меня на сайте, если у вас там с телегой какие-то проблемы, и в-третьих, в ВК группе. Я их тоже туда скину. Поэтому все ссылки будут в описании на эти источники, но все ссылки из презентации туда пихать будет перебор. Переходите на тот ресурс, где вам удобнее воспринимать эту информацию. Возможно, я даже эту презентацию куда-то себе на сайт закину, и вы сможете её покликать и посмотреть. Также здесь будут работать все эти ссылки, поэтому смотрите в описании, там найдёте источники, куда у меня получилось всё это загрузить.

Так вот, примеры скилов. Первый - это Rollл Dйс. В общем, бросаем кубик. и получаем рандомное число. Это скилл из примера на официальном сайте agent skills. То есть у этого стандарта есть официальный сайт, в котором написано, как им пользоваться. Так что да, это серьёзный стандарт. О'кей. И здесь, в общем-то, простой пример того, как использовать скрипт в скеле. Причём здесь, насколько я помню, там даже никакого файла не создаётся. То есть здесь есть просто вот этот скил roll di нём файл skill.md. И в нём просто написаны команды, которые нужно выполнить для того, чтобы, ну, бросить кубик, получить какое-то рандомное число. Но кроме того, что здесь можно указать вот так вот команды, здесь, естественно, можно и сослаться на какой-то файл скрипта, в котором гораздо больше кода может быть. А, есть такой пример. Ну, дальше я открывать их, наверное, не буду. Давайте просто идейно пройдемся, да, какие скилы бывают. кодрев, то есть скилл, в котором описан процесс анализа и проверки кода CSV аналайзеer, то есть скилл, в котором описано, как анализировать CSV форматы с какой-то статистикой, таблицами и так далее. Git анаalйer, скил, в котором написаны инструкции для анализа репозиториев, комитов, изменённых файлов и которые генерирует отчёты по истории. скилл, который называется skill creator. И это официальный скилл от нтропика. То есть с помощью этого скила мы можем создавать свои скилы. И это на самом деле очень удобно. То есть мы используем какой-то скилл, в котором описан процесс создания скила. Нам нужно только написать, что мы хотим, чтобы этот скилл делал. И благодаря тому, что сам процесс создания скила уже описан в этом скиле, ээ нам Неронка создаёт качественный скилл. Это круто. Я им пользовался, чтобы создать скилл для создания презентации вот этой. Ещё один интересный скилл - это MCP сервергенератор. То есть скилл, с помощью которого можно создавать MCP сервера, которые будут взаимодействовать с какой-то внешней опишкой. Например, это может быть опишка как вашего сервиса, так и другие какие-то открытые апи. Тоже очень прикольный скилл.

Также хочу сказать, что есть GitHub репозиторий, который называется Awesome Agent Skills, в котором собрано больше 1.000 скилов от крупных компаний. И здесь можно поискать что-то интересное от, так сказать, проверенных производителей. Здесь есть скилы от Клода, от вольтйджента, скилы от Супабейза, скилы от гугла, скилы от Страйпа. Это прикольно. То есть вот здесь собрано достаточно много скилов, и можно здесь поискать то, что может вам пригодиться. И, кстати, пока мы говорим про примеры скилов, хотел ещё кое-что показать. Это скилл для флатера, то есть для для языка программирования. По сути, это набор скилов для разработки нативных приложений. Если вы разрабатываете приложение на флаттере, то можете посмотреть на вот этот набор скилов. Он может вам пригодиться. Благодаря нему нейронки, скорее всего, будут сильно лучше писать вам код. Но это опять же по теме разработки кода. На самом деле скилы имеют гораздо более широкое применение не только в

разработке программного обеспечения. То есть вы можете в скилах описать вообще любые процессы, которые вы проходите с нейронкой. Написание там постов, создание презентаций, поиск какой-то информации, анализ там какой-то информации. То есть любой процесс, который вы регулярно проделываете с нейронкой, и каждый раз вам приходится описывать, как этот процесс нужно сделать, всё, берёте скилл, создаёте, и вам не нужно каждый раз это всё описывать.

Давайте теперь поговорим про лучшие практики, которые помогут вам писать хорошие скрипты.

Первое, наполняйте скилы реальными знаниями. Не нужно придумывать это содержимое скила. Если вы уже проделывали какой-то процесс и дошли до хорошего результата, вы можете просто попросить нейронку создать вам скилл, основываясь на том, что вы с ней сделали, чтобы в дальнейшем этот процесс переиспользовать. И нейронка создаст вам скилл. Круто. Допустим, вы делали какую-то презентацию, писали какой-то текст, вносили в процессе какие-то правки, и вы можете упаковать этот процесс, сказать нейронке: "Напиши скилл" с инструкциями, как делать этот процесс. Либо у вас есть какие-то файлы в проекте, которые хорошо написаны, и вы можете также дать их как референсы нейронке, сказать, что вот мне нужно написать скилл для создания файлов вот в таком формате, допустим, так.

В скилах имеет смысл указывать то, что агент не знает. То есть, очевидно, нейронки обучаются на огромном объёме информации из интернета, и они уже в курсе, что такое деплой, что такое презентация, что такое python и так далее, но они не знают про ваши процессы и как они у вас устроены. Поэтому имеет смысл описывать ваш подход, который вы применяете в своих процессах. Но объяснять, что такое презентация, смысла никакого нет.

Также полезно фиксировать в скилах какие-то неочевидные детали проекта. Ну это относится уже, да, к разработке. Допустим, у вас в базе данных поле пользователя называется user ID. В авторизации там какая-то переменная или параметр, который приходит, называется UID, где-то в билинге находится там переменная там с ключом аккаунт ID и так далее. То есть вот это всё имеет смысл указывать. то, что нейронкам может сходу не понять или запутаться.

Также полезно приводить примеры шаблона вывода. Это эффективнее, чем писать описание. Если у вас вывод предполагается в каком-то заданном формате, приведите пример этого формата. Это будет полезно.

Также полезно указывать какие-то чек-листы в скилах. Это делается также в текстовом формате, в формате маркдауна. Просто пишется вот чек-лист, проверь, что ты всё из этого сделал. И дальше можно списком указать чек-лист по размеру и структуре. Каких-то жёстких ограничений нету, но желательно ограничивать skill MD до 500 строк текста. Если вам нужно дать больше информации, вы можете вынести какую-то информацию в отдельные файлы, например, в папку references, которую создадите в папке со скилом, и ссылаться на эти файлы, собственно, в файле skill.m. MD.

Также в скилах нужно указывать шаги, а не правила. Правила мы пишем в правилах, а в скилах мы описываем пошагово, как нужно выполнять какой-то процесс. Здесь есть пример, что проверять безопасность - это, ну, плохое указание скила. Хорошее содержание скила - это списком написать, как это нужно делать. То есть первое, найди SQL запросы. Второе, проверь входные данные. Третье - убедись, что секреты не попали в логи. Ну, например, да. Соответственно, напишите эту последовательность действий так, как вам это нужно для вашей задачи.

Следующий пункт относится не только к скилам, но и, в принципе, вообще к пронтам нейронки, но к скилам тоже относится. Вместо того, чтобы давать какой-то выбор нейронке, лучше указывать ей какое-то конкретное дефолтное значение. Вместо того, [фыркает] чтобы писать можно X, Y или Z, то есть можно сделать так или так или так, лучше написать конкретно. И, в принципе, любые пронты, чем конкретнее вы пишете, тем лучше. То есть пишем: "Используй X для того-то, использую Y для там того-то, для сканирования PDF, не знаю ещё для чего-то. То есть даём больше конкретики. Чем конкретнее, тем лучше.

Затем это скорее звоночек, что вам нужно создать скрипт. Если вы делаете какие-то повторяющиеся операции и вам нужно указывать логику процесса выполнения этих операций, то оформляем это как скрипт. И больше указывать нам это не надо. Просто нейронка будет смотреть на скрипт.

И последний пункт, который больше как рекомендация и просто подсветить вам этот момент, что первый вариант скила может быть не идеальным. То есть вы создаёте какой-то скилл, тестируете его, смотрите, насколько хорошо он работает. Если работает недостаточно хорошо, его нужно подредактировать. То есть создание скила - это может быть итеративный процесс. Вы создали первую версию, посмотрели, оценили, как он насколько хорошо работает. Если вас что-то не устраивает, корректируйте скилл, проверяете и так пока он не будет работать идеально так, как вам этого нужно.

Ещё пару слов скажу про поле description. Ещё раз отмечу, что это ключевое поле. Поэтому полю нейронка будет понимать, когда нужно задействовать соответствующий скилл. И, соответственно, писать его нужно достаточно подробно. Вместо там одного предложения лучше написать более развёрнутое описание того, когда нужно использовать этот скилл. Вот. И протестировать его можно следующим образом. То есть придумать 20 каких-то текстовых запросов. Можно их также сгенерировать с нейронкой, на самом деле, и прогнать их в чате с нейронкой, посмотреть, что на все там 20 запросов был выполнен этот скилл. Ну, это так, если вам потестить захочется. То есть для проверки того, что описание работает, можно придумать 20 текстовых запросов каких-то, 20 промтов в нейронку. Их можно также с нейронкой, на самом деле, и сгенерировать. 20 там разных вариаций, потом прогнать их собственно через нейронку, отправить эти 20 промтов, посмотреть, всегда ли у вас для всех промтов вызывается нужный скилл. И, соответственно, если он вызывается не всегда, когда это нужно, то подредактировать описание.

Для оценки качества скила можно придумать какой-то вот тестовый промт, либо даже несколько тестовых промтов, либо взять их там из предыдущего пункта, то, что мы говорили, и запустить их со скилом и без, и сравнить результат. Вот со скилом, очевидно, результат должен быть лучше и больше соответствовать вашим ожиданиям. В идеале у вас должны быть какие-то конкретные критерии оценки. То есть не просто, что, ну, вроде всё о'кей, а конкретно вы проверяете там, что файл создан, график там отображается корректно, у осей есть подписи. Ну, это, допустим, если мы график создаём, да, с помощью скила, либо, ну, если презентация, вы там проверяете по качеству презентации, по критериям, которые для вас важны.

Если результат вас не устраивает, можете посмотреть на логику размышления агента при включенном ризонинге, то есть включенном режиме, когда нейронка, ну, типа думает, да, в процессе, и посмотреть, как она вообще рассуждала при выполнении вашей задачи. При этом скилл для создания скилов, который называется skill creator, который я до этого упоминал, он есть в официальном репозитории Anthropic. Он автоматизирует весь этот процесс. Там в самом скиле написано, что нужно после того, как нейронка создаст этот скилл, прогнать его по каким-то тестам и выдать отчёты в качестве результата. Создание скила с помощью скила skill creator мы тоже разберём в этом видео, просто чуть-чуть попозже.

Давайте поговорим про скрипты в скилах. Скрипты - это какие-то файлы с кодом, например, на Питоне. Либо это могут быть команды, которые выполняются в терминале. Также скрипты могут быть написаны на джаваскрипте запускаться с помощью Node JS. В общем, это код, который нейронка сможет запустить. Файлы скриптов стоит закидывать в папку script, которая будет находиться внутри вашего скила. Ну, считайте, что это стандарт. Теоретически вы, конечно, можете использовать какую-то другую папку, но лучше пользоваться вот устоявшимся уже форматом, чтобы соответствовать стандартам.

Если вы будете углубляться в эти скрипты, то важно понимать, что скрипт должен работать без остановок. Он не должен спрашивать какие-то вопросы в процессе. Нужно, чтобы он запускался, выполнялся и выдавал что-то в ответе. А в процессе никаких вопросов и уточнений он не задавал. Например, не должно быть такого, что нейронка запускает скрипт, скрипт выполняет какой-то код, и потом он спрашивает там в терминале какой-то вопрос. Нейронка на эти вопросы, скорее всего, не ответит. Большинство ИИ агентов, они запустят скрипт, подождут, пока он выполнится до конца. Если там будет какой-то вопрос, то нейронка скорее просто зависнет либо потом закроет выполнение этого процесса.

Далее, в самих скриптах нужно обрабатывать ошибки и выводить какие-то понятные сообщения об ошибке, чтобы нейронка понимала, что конкретно не сработало. Потому что если скрипт просто выполнится и закончится с ошибкой, с сообщением произошла ошибка, нейронка не поймёт, в чём дело. И да, она может, конечно, посмотреть на сам скрипт, но это будет гораздо сложнее и дольше, и не факт, что вообще получится. Если бы скрипт конкретно говорил какую ошибку, например, на вход не была подана какая-то информация, и нейронка тогда поймёт, что нужно дать просто на вход какой-то параметр с информацией и сделает это в результате скрипта.

То есть после выполнения скрипта на выходе в идеале нужно давать какие-то информацию в каком-то структурированном формате. Например, это может быть JSON. Ну, в принципе, это может быть какой-то другой формат, который понимает нейронка, желательно текстовый, потому что тексты и ИИ агенты лучше всего понимают, ну, XML это может быть или CSV, например. Вот. И агенту гораздо проще будет воспринимать именно такие форматы в ответе. Но на самом деле, если вы выдадите в результате скрипта просто сообщение, что всё сработало корректно, в некоторых случаях этого тоже будет достаточно. Просто если вам нужно выдавать какую-то информацию в результате, лучше её выдавать в каком-то структурированном виде.

И последний пункт, может быть, он очевидный, но всё равно скажу, что запуск скрипта дважды, он не должен ничего ломать. То есть скрипт должен выполняться многократно. Ну, очевидно, этот скрипт заложен в скиле. Скилл вы будете запускать много раз. И не должно быть такого, что скрипт отрабатывает, например, там только первый раз, а во второй раз там, не знаю, по какой-то причине он не отрабатывает. То есть он должен быть переиспользуемый, и нужно иметь возможность запускать его многократно.

Теперь давайте поговорим про то, как, собственно, создавать эти скилы. Есть по большому счёту два варианта, два способа. Это создать скилл вручную. Просто создаём папку в соответствующей директории. Например, ну вот как мы обсуждали раньше, в папке tool создаём папку skills, а в ней создаём папку с названием скила, в которой, в свою очередь, создаём файл skill.md. Ну и всё, в принципе, skill у вас готов. Но а гораздо проще создавать скилы с помощью ИИ агентов. Такие скилы или команды, они на самом деле заложены уже во многие инструменты для разработки. Ну или в принципе где эти скилы используются. Например, в Cursor есть такая команда, в Claude Code есть такая команда. И даже в Claude Desktop, на который мы тоже скоро посмотрим, есть скилл, который, в общем-то, как он там назывался, skill creator, да, который помогает создавать эти скилы. И гораздо проще вызвать там соответствующую команду или задействовать соответствующий скилл для создания скила, чтобы нейронка автоматически создала этот скилл. Дальше вы его, конечно, можете поправить, но это проще и быстрее, чем писать его руками с нуля. Мы сегодня с вами посмотрим на skill creator. Это вот тот скилл, который создаёт другие скилы. Посмотрим на него в Claude. Но аналогичные инструменты есть и в других программах. Skill creator, в свою очередь, работает следующим образом. То есть мы описываем задачу, Skill Creator создаёт скилл, тестирует его и потом выдаёт нам результат тестирования. Вот это на самом деле классно, очень удобно. Не нужно руками потом скилл тестировать.

Кто уже поддерживает скилл? Да, на самом деле, очень много инструментов, и здесь перечислены далеко не все. Ну, очевидно, Claude Code, в принципе, Claude десктопная версия тоже, потому что Anthropic сам этот стандарт придумали. Cursor поддерживает Code Gemini CLI и вообще подавляющее большинство ИИ инструментов, особенно которые заточены на разработку, но и не только. То есть с agent skills достаточно много где поддерживается. Ну, посмотрите просто там для вашего конкретного инструмента, поддерживается он или нет. И большая вероятность, что будет поддерживаться.

Давайте пару слов скажу про структуру директорий. Скилы можно создавать в папке проекта, и тогда эти скилы будут доступны только в проекте. Также их можно создавать в папке пользователя, и тогда эти скилы будут доступны во всех проектах, где бы вы не вызвали там свой инструмент с ИИ агентом. Папка пользователя - это, ну, очевидно, папка пользователя, да, в Finder на Маке она подсвечивается по дефолту вот здесь в location. Если вы её там, я не знаю, может быть, скрыли или удалили из этой панельки, вы можете открыть терминал. По умолчанию терминал открывается в папке пользователя и выполни следующую команду Open пробел точка и у вас откроется эта папка. Ну, то есть сейчас она у меня уже открыто, но если бы она не была открыта, то открылся бы Finder в этой папке. Вот. И, соответственно, здесь мы можем создавать папку tool agents, либо сохранять скилы в папке нашего инструмента, там, допустим, в папке tool code или в папке tool cursor. При этом обратите внимание, что здесь по умолчанию у вас скрытые папки отображаться не будут. Чтобы их отобразить, нужно нажать на комбинацию клавиш Command, Shift и точка. Тогда здесь появится гораздо больше файлов, которые скрыты, потому что они начинаются с точки. И вот, допустим, здесь есть папка Claude. можно в неё перейти. И здесь есть папка skills. Вот. В этой папке можно создавать скилы. Также можно здесь создать папку tool agents, и тогда, э, созданные в этой папке скилы будут доступны во всех инструментах, не только там в Claude или там в Code Gemini или в Cursor. Ну, в общем, я надеюсь, понятно. Пользовательская папка на винде. Ну, она вроде тоже здесь в проводнике отображается. на имя пользователя, на своё тыкаете, у вас открывается папка пользователя. Ну, не знаю, на крайняк загуглите, в этом ничего сложного нету, чтобы найти папку пользователя. И здесь, собственно, есть там вот эти два примера, где мы храним скилы в папке tool agents, которые переиспользуются в разных инструментах, либо в папке там tool code для того, чтобы создать скилы конкретно для Claude. Здесь, кстати, на user levels возможна опечатка, потому что, по-моему, Claude сейчас не в папке config располагается. То есть мы сейчас с вами смотрели, э, папка tool code, она находится прямо в папке пользователя, как и папка cursor и tool agents. И, соответственно, нужно переходить в неё и внутри неё уже скилы создавать. Поэтому, да, скорее всего, здесь опечатка, имейте [фыркает] это в виду. Но в конце концов вы можете там загуглить, открыть документацию, и там актуальная информация будет написана.

Также нужно понимать, что если создано два одинаковых скила с одинаковым именем в папке проекта и в папке пользователя, то в приоритете будет файл, который, ну, скилл, который создан в папке проекта. Вот поэтому если у вас два одинаковых скила, то будет использоваться именно из папки проекта Skill.

Также уточню, что файл skill.md создаётся один на весь скил. То есть, эээ, в одной папке со скилом только один файл skill.md. Ну а другая вложенность папок, там ограничений нет. В принципе, внутри папки скила можете создавать сколько угодно там папок. Ну, естественно, в пределах разумного.

Ну, и, в принципе, всё. На этом презентация кончается. Давайте теперь посмотрим на практики, как создавать скилы, как с ними работать. И начну я, пожалуй, с Claude Desktop, а потом покажу процесс создания в Cursor. Ну и по аналогии, я думаю, вы разберётесь. То есть показывать абсолютно все инструменты - это, конечно, перебор. По аналогии во всех других инструментах точно также всё это происходит.

Я открыл десктопную версию Claude. И сейчас я нахожусь в вкладке Chat. То есть это стандартный интерфейс взаимодействия с чатом, с нейронкой. Здесь в левой панели есть вкладка Customize. Если у вас вдруг её нет, скорее всего, у вас просто очень старая версия Claude, вам нужно обновить и она появится. Нажимаем на эту вкладку, открывается соответствующий раздел. И здесь есть ещё одна вкладка внутри, которая называется Skills. Очевидно, нам нужно на неё нажать. Дальше, что мы здесь видим? Во-первых, здесь есть примеры. Это готовые скилы от Anthropic. По умолчанию они могут быть выключены, как у меня сейчас большинство скилов. Чтобы активировать скилл, чтобы он, ну, мог использоваться, да, нейронкой, нужно на него нажать и вот здесь вот этот переключатель включить. чтобы он был включен тогда нейронка будет использовать этот скилл, когда будет необходимо, то есть когда задача будет подходить под описание этого скила. Вот. А сейчас у меня здесь из заранее заготовленных примеров активно два скила. Это, собственно, skill creator, с помощью которого можно создавать скилы, да и нужно, на самом деле, это очень удобно. Кроме того, здесь есть canvas design. Ээ, я его включал просто поинтересоваться, как он работает. У меня он не очень-то изображение создал, но с помощью него типа можно создавать изображение. У меня оно было немного, ну, глючным, что ли. Там какие-то полоски лишние были непонятные. Да, это как артефакты. Вот. Не знаю, всегда ли он так создаёт или нет, но один раз я попробовал и потом не игрался.

Также здесь есть персональные скилы. Вот в этом разделе. Это скилл для создания презентаций, который я как раз создал, чтобы сделать эту презентацию. Вот, заняло это там несколько минут, и сейчас я покажу, как это делается. А напротив скилов, вот здесь в заголовке есть кнопочка плюсика. Давайте на неё нажмём. И чтобы создать скилл, нужно выбрать один из нескольких вариантов. А, создать скилл с Claude, написать инструкции, ну, самостоятельно, либо загрузить скилл. Если у вас есть какой-то скачанный скилл, вы можете выбрать загрузить скил, но сейчас я нажму создать с Claude. Это очень удобно, и сейчас вы сами в этом удостоверитесь. В общем-то, что происходит? У нас просто открывается новый чат, в котором ничего сверхъестественного, просто промт, в котором написано: "Помоги мне создать скилл с использованием skill creator. Сначала спроси меня, что этот скилл должен делать вообще". Мы можем просто вот так его отправить и всё. Сейчас Claude спросит нас, в общем-то, что мы хотим от скила, и мы ему что-нибудь попросим сделать.

Чтобы выбрать задачу, которую должен решать скилл, на самом деле можно просто подумать, зачем вы используете инструмент, в котором вы хотите создать скил. Ну, в данном случае Claude. И я часто использую Claude для какого-то research, то есть поиска информации. И также прошу его объяснить мне какие-то непонятные статьи или какую-то непонятную другую информацию простым языком, чтобы я в этом разобрался. Researcher сейчас я делать не очень хочу, а для примера я хочу сделать как раз скилл, с помощью которого Claude будет мне простым языком и наглядно объяснять, как что-то работает. Допустим, я буду скидывать ему какую-то документацию, а он мне будет создавать, ну, допустим, HTML-файл, то есть веб-страничку, которая открывается в браузере, в которой наглядно с какими-то схемками и простым языком будет объяснять, как это что-то работает. И давайте сейчас ему скажем об этом. Я хочу, чтобы ты создал скилл, который будет решать следующую задачу. Я буду скидывать какую-то информацию, например, ссылку на статью, может быть, какой-то текстовый файл или документ в формате PDF или в каком-то другом формате. и агент должен мне объяснить простым языком, как, э-э, это работает вообще содержимое рассказать простым языком вот этой информации, которую я скидываю, и при этом наглядно какие-то схемы и диаграммы мне написать. Итоговый результат я хочу получать в формате HTML-файла, чтобы открыть это в браузере и наглядно посмотреть и разобраться в теме по, собственно, результату в этом HTML-файле. Давайте остановимся на этом. Сейчас я прямо детально углубляться в это не буду. В принципе, задачу я ему описал, и, я думаю, он должен понять. Естественно, чем конкретнее и детальнее вы будете описывать то, что вы хотите получать в результате использования этого скила, тем лучше будет результат. Но в любом случае, вот я ему как-то это написал. Сейчас он мне вот, во-первых, он мне задаёт наводящие вопросы, потом он сделает этот скилл, я на него посмотрю, и если что, мы можем его отредактировать. То есть всё нормально. Это скилл не делается раз и навсегда. Делается первая версия, потом можно сделать вторую версию, которая будет работать лучше.

Давайте ответим на его вопросы. Для кого объяснение это влияет на уровень простого языка? Я хочу, чтобы мне вообще, как полному новичку, это всё объясняли супер максимально просто. Какие диаграммы и схемы хочешь видеть в HTML? Я думаю, я вообще всё хочу видеть. Блок-схемы я хочу видеть, иерархии хочу видеть сравнительные таблицы тоже хочу видеть. Таймлайны тоже пускай будут. Я вообще всю информацию наглядно хочу видеть. Итоговый HTML-файл я хочу получать на русском. Всё, отправляем ему эти ответы на вопросы, и сейчас он будет делать нам скилл.

Claude задаёт нам ещё один вопрос, то есть как мы будем тестировать этот скилл? Скинуть любую ссылку, файл. Возьму готовую тему. Возьму готовую тему. Бла-бла-бла. Давайте скинем любую ссылку, файл. Вот так вот. А скинь, я не знаю, может, он сам её придумает. Ну, в любом случае, он её, если нужно будет, наверное, а, ну вот, да, он подбирает нам URL для тестирования. Я вообще не против. Пускай. О том, как работает ДНС, прекрасно, ээ, не очевидная тема. Пускай он опишет её максимально простым языком. И пока он здесь что-то там делает, давайте посмотрим на интерфейс Cursor, как создаются скилы в Cursor. А здесь я открыл пустую папку. В ней у нас пока что ничего нету. И чтобы создать скил, нам нужно перейти в настройки. Здесь вот шестерёночка. Дальше нажимаем Settings. Здесь нам нужно выбрать вкладку Rules Skills Subagents. Здесь у нас есть вот здесь заголовок Skills. Нажимаем напротив него на кнопку New. У нас открывается новый чат с Cursor, в котором вызывается команда, которая встроена в Cursor. Я её не писал, это дефолтная команда Cursor. Create skill. Help me create skill for Cursor. Короче, помоги нам сделать скилл для Cursor. И дальше нам нужно описать, какой, ну, скилл мы хотим сделать. Давайте напишем здесь, ну, какой-то аналогичный промт, типа объяснять код. А я хочу, чтобы ты сделал скилл, который будет простым языком объяснять код и простым языком объяснять, какие там есть проблемы и недочёты в этом коде, если они там есть и если я этого попрошу. А если не попрошу, то просто то, как этот код работает. Допустим, так. Всё. В режиме агента мы ему это отправляем, чтобы он мог редактировать нам файлы. Здесь, кстати, у него есть несколько вариантов. Он может создать скилл, как в пользовательской папке. А, ну вот он, кстати, спрашивает об этом и молодец. Не всегда он на самом деле это спрашивает. Иногда он не задаёт этот вопрос. Может быть, сам решает, что нужно для конкретного скила. Но в данном случае задал, да, где мы хотим располагать наш скилл в папке проекта или в пользовательской папке. В данном случае я выберу всё-таки папку проекта потому что это для примера делается. Но, в принципе, такой скилл можно было бы и в пользовательской папке создать, чтобы он был доступен в других проектах тоже. И на каком языке я хочу получать ответ? Пускай на русском. Всё, continue отправляем. Пускай он сейчас создаёт скилл.

Пока мы посмотрим, что у нас тут происходит в Claude. А в Claude тем временем у нас уже был сделан скилл. И дальше нам он предложил пример того, ну, какого-то результата. Собственно, в сообщении он нам это и сказал. Вот тестовый результат. Открой файл в браузере и посмотри, там есть. Ну и вот, собственно, содержимое этого файла. Кроме того, что мы можем его открыть в этом в браузере, можно открыть его прямо вот здесь в Claude, как он по умолчанию его и открыл. Когда мы скажем ему, что результат хороший, ну, допустим, нам он понравится, либо он нам не понравится. Для примера, кстати, скажем, что не понравится, скажем, что нам надо другую тему, там, не светлую, а тёмную выбрать. Он его переделает, покажет нам другой результат. И когда мы скажем, что типа всё о'кей, он нам напишет скилл. Это вообще очень прикольно, очень удобно. И прям снимая шляпу перед Anthropic. Классно сделали. Вот, собственно, объяснение того, что такое DNS, как он работает. То есть, по сути, мы получаем, можем, давайте в браузере даже откроем его. Вот наш итоговый результат. То есть мы получаем, ну, как бы лендинг, да, презентацию, не знаю, объяснение того, как что-то работает. Скинули какую-то непонятную документацию, он нам вообще классно графически всё расписал простым языком. Ну, я сейчас не буду в это вчитываться. Суть в том, что, да, вот он сделал какие-то схемки. Кстати, можно указать ему, что текст на схемках сливается. Давайте это укажем. Светлая тема здесь меня, в принципе, устраивает. Давайте скажем, что текст сливается на диаграммах. И пускай он это подправит. Пишу ему: "Всё круто", но на диаграммах текст ливается с фоном. Всё, отправляю.

Вернёмся пока в Cursor. Здесь Cursor создал нам скил. То есть он создал в папке Cursor соответствующий. там папку skills и папку со скилом. Вот она. Explain code. Здесь, собственно, скил. Он написал его на русском. В принципе, можно было бы попросить его перевести на английский, но, в общем-то, и всё. То есть скилл готов. Дальше мы в этом проекте, если будем просить ээ описать какой-то код, он вызовет этот skills. Во-первых, его можно вот так вызывать. То есть если мы здесь напишем explain code, всё, мы можем явно указать ему, что нужно использовать этот скилл. Это, кстати, прикольно, да, но, вообще говоря, по описанию, вот по этому он должен сам понимать, когда нужно этот скилл задействовать. Если не понимает, нужно редактировать описание. Ладно, давайте всё-таки на Claude всё это разберём дальше, да, как им пользоваться. Здесь по созданию, я думаю, понятно. По использованию, да, даже не знаю, что здесь ещё прокомментировать. То есть просто в чате будем просить объяснить какой-то код. Ну, для примера давайте я попрошу его создать какой-нибудь проект. Я не знаю, попробуем задействовать этот скилл. Я попросил его создать игру Змейка в формате веб-страниц. Потом мы проверим на этом коде, как он объяснит это, будет ли он использовать скил. Ну а давайте вернёмся пока в Claude, посмотрим, что он здесь сделал. Обратите внимание, теперь текст у нас с фоном не сливается. Давайте скажем ему: "Да, теперь всё круто". Всё, подтверждаем, что нас устроил результат. И теперь Claude будет делать скилл. И пока он это делает, я ещё пару слов скажу, что эти скилы у вас будут доступны не только в разделе чата, но и в коворке тоже. Здесь тоже есть раздел customize. Ну, и, в общем-то, все те же самые скилы. Новый скилл мы пока что сюда не добавили, но те, которые у нас уже были, они здесь отображаются. И в Claude Code, по-моему, тоже он здесь должен их видеть. Да, здесь также есть customize skills, так что и в Claude Code тоже он может работать со скилами, которые мы создали там даже в чате. Это очень классно, на самом деле. То, как Claude обновляет вот своё десктопное приложение, мне очень нравится. Claude Code. Теперь вот так вот можно прямо в приложении использовать для разработки Cork для работы с какими-то файлами в проекте. Очень удобно комбинировать его с Obsidian, то есть работать с файлами здесь, в Obsidian, там, например, просматривать. Супер классно. Можно также скилы сделать для создания там или редактирования каких-то вот файлов markdown, которые мы храним в Obsidian. Ну, в общем, тут всё зависит от ваших фантазий. Можете посмотреть на примере скилов там по ссылкам, которые были в презентации и будут где-то указаны там в описании, либо придумать там свои какие-то примеры.

Смотрите, сейчас Claude сделал нам скил. Вот он. Можем его открыть, посмотреть. Здесь у нас обычный Markdown файл. Если мы перейдём в режим просмотра как код, то обратите внимание, здесь также вот внутри блока, который находится внутри вот этих трёх дефисов, которые там в начале и в конце, также указаны вот эти метаданные description, в котором находится описание, когда нужно этот скилл использовать, и имя скила. О'кей. Чтобы добавить теперь нам этот скилл в Claude, можно просто нажать на кнопку copy to your skills либо нажать на вот эту кнопку. Нажимаем. Также можно его скачать и, например, добавить в какой-то другой инструмент. Кстати, можно скилы разрабатывать и генерировать в Claude Desktop, потому что это действительно удобно. И потом качать, добавлять в какие-то другие инструменты. Вообще супер круто, они прекрасно переиспользуются. Вот после того, как мы нажали на кнопку copy to your skills, можем перейти теперь в раздел customize skills и видим, что у нас здесь есть skill explain to HTML. И можем теперь попросить объяснить какую-то документацию. Давайте для этого выберем документацию Agent Skills. Вот так вот просто берём, копируем официальную документацию, ну, ссылку на официальную документацию Agent Skills и пишем "Объясни простыми словами". И скидываем ссылку. Всё, отправляем. Сейчас посмотрим, задействует ли он этот скилл. Обратите внимание, что здесь появился статус у Claude. Что он сейчас делает? Он читает этот скилл содержимое. Он понял, что нужно его задействовать. Сейчас он посмотрит на эту ссылку и предоставит нам какое-то простое объяснение в формате веб-страницы. Вот он уже начал её генерировать. При этом кстати, что можно было бы здесь добавить, это то, что нужно переходить по каким-то внутренним ссылкам, потому что мы скинули только одну страницу, а в документации-то там информации больше. Но это по необходимости. То есть если вы хотите, чтобы он полностью там документацию просматривал, то можно было бы добавить. Если хотите, чтобы он наоборот не ходил по этим ссылкам дополнительным, да, и объяснял только ту страницу, которую вы ему указали, то можно это не указывать. Либо ээ дополнить скилл, что если указано, то переходи, если не указано, не переходи. Ну либо можно даже не дополнять, а просто вот здесь в чате это написать, да, там пройдись по всем вложенным там страницам, например, и всё.

Пока Claude генерирует нам страницу с объяснениями, давайте я пока что делаю, наконец-то эту змейку. Кстати, Cursor её решил открыть в браузере, проверить, но нас это сейчас мало интересует. Нам интересно больше объяснение его, как это всё работает. Вот. Но вообще змейка работает прекрасно. Всё супер. О'кей, давайте пока я закрою это всё и попросим теперь объяснить в общем-то, как это работает. Объясни, как работает этот код. И скидываем сюда файл со змейкой. Всё, отправляем. Посмотрим, будет ли он использовать скил для нашего запроса. Да, он использовал it explain code. Explain code - это название нашего скила. И вот он, собственно, простым языком начал объяснять. Ну, понятно, что здесь тяжело оценить, потому что, ну, простым языком, не простым языком, но явно видно, что он изучил наш скилл и использовал его. Поэтому дальше тут уже полёт фантазии. Как вы хотите, чтобы этот скилл работал, просто редактируйте его и всё. Чтобы его отредактировать в Cursor, можно просто его сюда закинуть, вот этот файл, и сказать: "Отредактируй этот скилл, сделай там то-то, то-то, то-то". Либо можно, в принципе, просто так в этом промте написать что-нибудь типа отредактируй скилл для объяснения кода, добавь туда там что-нибудь ещё новое. Вот и всё. Даже так он по идее должен понять, какой скилл ему нужно редактировать. Ну, если не понял, просто вот в контекст ему кидаем и всё хорошо.

Э, Claude тем временем сгенерировал нам страничку, в которой объяснил, что такое Agent Skill, как дать ИИ агентам суперсилы. Ну, прикольно. Вот и всё. Можно здесь почитать. При этом можно задать в сам скил какой-то формат тона, в котором он должен вам писать по-дружески, там или, я не знаю, с матами или ещё как-то, как вам больше нравится, и будете получать там, допустим, объяснения со схемами в нужном вам формате. Всё. Вот так это и работает. Вот. Agent Skills. Понятно, что это простые скилы, которые содержат внутри себя только файлы, ну, с skill.md, в которых только инструкции. Я не показал сейчас про скрипты, но делаются они аналогично. То есть Claude или какой-то другой инструмент, которым вы пользуетесь для создания скилов, может также и скрипты написать, которые будут запускаться. То есть принцип создания этих скилов вообще никак не отличается. Вот. Можете, конечно, сами руками писать, но я настоятельно рекомендую попробовать сделать это с ИИ-агентами. Мне кажется, это быстрее и проще. Вот, собственно, и всё. Надеюсь, у меня получилось доступным языком рассказать вам, что такое Agent Skills. Все ссылки вы найдёте в описании. Если вам понравилось это видео, ставьте лайк, чтобы YouTube рекомендовал вам больше полезного контента. Подписывайтесь на Telegram-канал Годный Вайт-кодинг. В нём я публикую полезные материалы по вайт-кодингу. И на ВК группу, кстати, тоже подписывайтесь. Она у нас сейчас как резервная на всякий случай. Подписывайтесь на YouTube канал, чтобы не пропустить новые видео. Если у вас остались какие-то вопросы, пишите их в комментарии. А на этом я с вами прощаюсь. Всем годного кода и до скорых встреч. y