Transcription
Большинство скиллов выглядит примерно так. А могут вот так. Если мы не скачиваем, а создаем свои скиллы, то многие создают их как один текстовый файл. Кинул инструкцию, наговорил побольше, и вроде работает. Да что уж там, я и сам такой. И лишь немногие собирают из скилла целую мини-систему с отдельными файлами для источников, для логики, для правил. И эта система, например, ходит в Notion и пишет в Telegram. Ну и так далее. Разница не в коде. Никакого кода писать не надо. Разница в архитектуре.
Это новый выпуск серии Inside Cload, где я разбираю клод изнутри. Прошлый раз было про MCP. Сегодня 4 апгрейда, которые превращают банальный скилл, состоящий из одного файла, в собранный инструмент, которым легко работать, легко модернизировать и удобно читать. Погнали разбираться.
Если попали сюда впервые, на канале я разбираю инструменты искусственного интеллекта для обычных людей, для программистов. Прошлый выпуск был про MCP сервере Тамы. Чуть-чуть глянули в код, а сегодня вообще без кода. Ну, почти. Ну, потому что клод сейчас и сам отлично пишет код. А вот архитектура — это то, что отличает бывалое от словаги.
Смотрите, ваш скилл может выглядеть так: один файл, в нем вся логика, все правила, все источники, все в перемешку. Работает? Работает. Но любая правка — это риск что-то сломать. А может выглядеть вот так: главная инструкция — короткая. Источники отдельно. Логика собрана отдельно. Правила в своей папке. В общем, каждый файл отвечает за свое. Меняешь источник — правишь только источник. Остальное вообще не затрагивается. Это, собственно, и есть архитектура.
Итак, вкратце пробежимся по тому, что нас сегодня ждет. Начнем мы с базового скилла. Это одна главная инструкция. А дальше нас ждет 4 апгрейда. Апгрейд 1. Мы вынесем ресурсы из нашего главного файла. Во втором апгрейде мы вынесем логику, спрячем ее в соответствующую папку. В третьем апгрейде мы вынесем правила. И в четвертом свяжем это все, так сказать, с внешним миром.
Важные замечания. Все эти апгрейды можно сделать одним большим промптом. Я в конце дам вам этот готовый шаблон. А можно идти по очереди, наращивая. Я покажу второй вариант, потому что так просто более нагляднее. И еще, файлы и папки, которые вы увидите, это всего лишь примеры. В вашем случае может быть больше файлов или меньше файлов, других типов. Главное — принцип.
Открываем мой главный экран для этого видео. Сейчас он пустой, но здесь будет растущий промпт, и мы будем его наполнять прямо у вас на глазах. Базовый скилл — это просто папка с одной инструкцией. Мы пишем в скилле просто то, что он делает, дальше, когда запускаться, что делать пошагово, и в самом низу всегда просить готовый скилл для установки. А я напоминаю, что вот здесь вот в левой части мы как бы собираем из основных частей огромный промпт, благодаря которому мы сгенерируем наш правильный skill с крутой архитектурой. А вот здесь вот справа я сделал вот такие простые объяснения, которые просто объясняют, про что должна быть эта часть. Так как промпт, по сути своей, у вас может, конечно же, отличаться. Для примера я буду собирать skill, который будет искать и новости, и собирать мне их вот в такой небольшой дайджест. По сути, это и есть уже наш базовый промпт, благодаря которому мы можем сгенерировать наш skill с самого начального уровня.
Давайте это проверим. Захожу в новый чат в клод и вставляю тот промпт, который у нас получился. Обратите внимание, я здесь в конце добавил, чтобы он упаковал этот skill для установки в клод одним кликом. То есть, чтобы у нас файл был с расширением .skill. Нажимаем "Отправить".
Итак, сгенерировал нам клод наш skill, кстати, с расширением skill. Про эти все расширения, как скачивать и как сохранять — я уже рассказывал в своих видео. Посмотрите, кто не смотрел. Получилось достойно. И благодаря этому мы можем этот skill установить буквально в один клик. Нажимаем вот сюда вот "Save Skill". Итак, skill сохранился. Чтобы проверить, работает ли он, нам нужно зайти в новый чат. Давайте создадим новый чат и спросим здесь: "Быстро и коротко, что нового в искусственном интеллекте?". Нажимаем "Отправить".
Как видите, сразу подхватил этот новый skill AINU DigitSkill. И у нас спрашивает: "За день или за неделю?". За день. Если вам интересно, какую программу я использую для диктовки, про это я тоже снимал видео. Посмотрите по ссылочке. Вот видите, идет в интернет, собирает источники и начинает оформлять даже. В общем, работает.
Давайте посмотрим, как выглядит наш скилл. Итак, заходим в Customize Skills. И вот, есть. Как видите, вот, я на него кликаю. Это один файл, в котором прописаны все эти правила, которые клод сгенерировал благодаря нашему промту. Достаточно неплохо, честно говоря, но непрофессионально. Я и сказал, наш скилл работает, но есть проблемы. Источники клод выбирает каждый раз заново. Другими словами, если я захочу зафиксировать список сайтов, которых он ищет информацию для меня, то мне нужно править саму инструкцию, заходить в этот skill и там вручную это прописывать. Ну а заходить и вот так вот вручную копаться, искать в этом скеле, где и что нужно поправить, где он здесь конкретно говорит об этих источниках, есть не так, чтобы и удобно. Здесь непосредственно не редактируется. Это нужно отдельно заходить, редактировать, нажимать — в общем, не наглядно и не совсем удобно.
Итак, возвращаемся к нашему промту, базовому промту для базового скилла, и апгрейд первый. Самая частая практика в любом проекте — это выносить ресурсы в отдельный файл. Списки, данные, конфигурации, источники — в общем, все в этом духе. Есть, логика достаточно простая. Когда все в одном файле, то каждое изменение — это риск что-то сломать. А когда разнесено, то меняешь одно, и остальное вообще не задевается. Итак, в нашем примере в первом блоке — это список сайтов вынести в отдельный файл. И мы здесь не говорим, в каком формате. По умолчанию клод это делает в JSON. Это его стандарт. Вот вторая важная фраза: "Перед сбором новостей сначала прочитай файл с источниками". Эту фразу нужно запомнить: "Сначала прочитай файл". На английском это называется Progressive Disclosure, по-нашему — постепенное раскрытие. Другими словами, skill не держит все в голове, а достает информацию из файла, когда нужно. Это один из главных принципов архитектуры.
Давайте быстро покажу, что будет, если мы сейчас вставим вот такой вот промпт. То есть, вот это все, что мы здесь наговорили, с помощью этого мы сгенерируем скилл. Для этого захожу в чат, и давайте для чистоты эксперимента удалим этот наш скилл, Installe. Зайдем в новый чат и вставляем сюда то, что у нас было, плюс вот этот апгрейд 1. Нажимаем "Отправить".
Итак, сгенерировал нам клод наш скилл, и выглядит он вот так. Вот, как видите, здесь наша общая инструкция, и в отдельном файле вынесены наши ресурсы. Вот здесь внизу, смотрите, даже добавил инструкцию, как добавить источник. Удобно, наглядно. Да, я думаю, лучше, чем было в первой версии. Идем дальше.
Апгрейд второй. Самый важный технический момент в нашем видео. Для объяснения я подготовил отдельный слайд. Итак, в предыдущих апгрейдах у нас, значит, был просто скилл, потом мы отдельно добавили ресурсы. А теперь мы вот эту саму работу, которую он исполнял, да, то есть ходил по сайтам и собирал для нас информацию, выносим в отдельный файл. Делается это для того, чтобы он это всегда делал правильно и одинаково, и предсказуемо для нас. Кстати, еще это ест меньше токенов, потому что клод не делает это, так сказать, руками, а просто запускает скрипт.
Возвращаемся к нашему промту, и тут возникает вопрос: как я не специалист, попрошу написать такую программу, собственно, вот этот скрипт? То есть, другими словами, чтобы спросить, нужно знать, что спрашивать. А я настолько не знаю всех этих технических слов. Но сейчас я вам покажу мой любимый метод — метапромтинг. Возможно, для кого-то это звучит страшно, но не пугайтесь. Шаг 1. Я просто говорю клод: "Помоги мне составить промпт для генерации чего-то". Во втором шаге клод выдает мне готовый prompt уже с правильными техническими словами. И шаг 3. Я это все копирую и вставляю в новый.
Итак, в нашем случае метапромт выглядит вот так: "Помоги мне написать промпт для генерации исполняемого файла внутри моего скилла". То есть, я ему описываю ровно то, что я знаю и могу описать своими. Клод мне это уже поможет сделать более технически. Нажимаем "Отправить". И вот. Посмотрите, как клод нам помог. Вот. Он так и пишет. Скопирую это и встав в новый чат в клод. То есть, он понял, для кого мы спрашиваем, что мы хотим, какая будет структура, и смотрите. Написал здесь и код, и все. Я просто беру, копирую полностью этот ответ. Открываю новый чат. Вставляю это все. И нажимаю "Отправить".
Вот. Клод начал создавать нам, и смотрите, как пишет: "Создаю Fetcher.py, сразу напрямую в нужную директорию". Вот он здесь проверяет. Работает, создает. И смотрите. Он говорит мне: "Положить его в директорию". То есть, это нужно в системе заходить, искать скрытые папки и так далее. Есть, вот он рассказывает, как это все работало. И говорит, что нужно сделать. И дает мне этот файл Python. Да, как видите. Вот код. Но я его тут же прошу: "А может мне этот скрипт сам положить в нужное место в нужный skill, чтобы все корректно работало?". То есть, "Может ли ты отредактировать skill?". Ну, и он попробовал и говорит, что да, что все. ОК. Все на месте, все работает. Есть. Создал файл, обновил сам skill. И теперь наш skill запускает вот такой вот файл. И смотрите, внизу, кстати, он пишет то, что я говорил. То есть, когда мы спросим, что нового, клод запустит скрипт одной команды, получит JSON заголовки все, и потратит веб-фэч только на углубление в нужные статьи, а не на обход каждого сайта с нуля. Это то, что я говорил про использование токенов.
Давайте зайдем, проверим, как выглядит наш skill теперь. Skills. Итак, не видно здесь файла с нашим скриптом, но клод убеждает меня в том, что это ограничение UI. И что он есть на месте, но просто мы его здесь не видим. И советуют нам спросить про новости в новом чатте. Хорошо, давайте попробуем. Новый чат. "Что нового в искусственном интеллекте?". Нажимаю "Отправить" и посмотрим, что он будет делать. Итак, запускает skill. За сегодня. Итак, читает список с ресурсами. Итак, запустился наш скрипт, собрал нам новости. Но мне этого недостаточно, чтобы убедиться, что работало именно через наш файл — наш скрипт. А проверить мы это можем вот так. Смотрите, вот таким простым промтиком. Я его прошу непосредственно запустить наш файл и показать именно JSON, которые он возвращает. Нажимаю "Отправить".
Итак, честно говоря, за кадром я проводил хороший час, разбираясь с этим всем. Дело в том, что с уровня чата нельзя дописать файл в уже существующий скилл. Поэтому нужно делать так, как мы делали в начале нашего видео: полностью удалить весь skill и заново его пересобрать, и тогда все эти файлы там получаются. Иначе получается полная ерунда. Итак, я полностью пересобрал этот файл. И теперь у меня в скиллах. Вот у меня есть skill, как бы главная инструкция, эти референсы — ресурсы. И вот этот файл, собственно, сам скрипт, который ищет новости. То, что мне клод объяснял, что здесь просто UI его не показывают. Ну, это сами понимаете. Причем сегодня вышел последняя версия OPUS 4.8, и тоже мне городил там в три короба. По большому счету, я думаю, вряд ли вы будете вот так вот частями собирать скилл, как это демонстрирую я, просто для того, чтобы было более понятно, как это работает. И скорее всего, вы будете генерировать скилл просто за один раз, за один промпт, и это правильно.
Если до этого момента было полезно, то ставьте лайк и подписывайтесь. Это помогает и мотивирует. А мы идем дальше.
Итак. Апгрейд третье. К этому моменту главная инструкция начинает разрастаться. Там и триггеры, и правила фильтрации, и шаблоны оформления. Решение для этого всего — выносим правила в отдельные файлы внутри отдельной папки. Есть, в своем примере я сделаю всего лишь две вещи: это будет файл с правилами фильтрации и шаблон финального вида. Но это мой пример, а в вашем скеле в папке может быть 3, 5, 10 файлов разных видов. Правила про перевод, про даты, про обработку ошибок, но принцип такой же. И главная мысль третьего апгрейда — что главный файл скилла должен быть картой, а не энциклопедией.
И еще одна важная вещь в этом третьем апгрейде нашего промпта. Да, очень... важно прописать, чтобы он сами правила в главной инструкции не дублировал. Они должны жить только в своих файлах. Это важно прописать. Без этой фразы клод по привычке все скопирует обратно, на всякий случай, и вся архитектура развалится. Эту фразу всегда добавляйте, когда выносите что-то отдельно. Ну, и, как вы уже поняли, модернизация готового скилла — это так себе затея, поэтому я покажу следующий четвертый апгрейд, и потом заново пересоберу полностью весь skill.
Итак, здесь у нас появляются связи с внешним миром. Ох, как звучит. Итак, благодаря вот такой структуре промта у нас появятся две новые связи. Какие именно, сейчас покажу вам вот в этом слайде. Значит, первая связь работает так: после готового дайджеста skill пишет его в Notion через коннектор, создает страницу в какой-нибудь моей базе в Notion, там с тегами и с текстом. А вторая — спрашивает меня, не сделал мне пост в Telegram. Есть, я это описываю вот здесь. И, если да, то вызовет мой второй skill, который умеет писать Telegram-посты в моем стиле. Этот skill у меня уже есть. Другими словами, вот такой вот простой просьбой мы связали свой новый skill уже с тем, который существует. Ну а Notion и коннектор — он, как бы, всегда был.
Итак, давайте я за кадром удалю наше старый skill и пересоберу в соответствии со всеми новыми правилами наш новый skill, и посмотрим, как он будет работать.
Итак, пересобрал я свой skill. Вот так он сейчас у меня выглядит. То есть, вот он, главная инструкция скилл, да, карта, как мы уже сказали. Вот здесь в конце — это вот эти шаги про связи. Мне должен предложить про Telegram, про пост в Telegram. Вот здесь вот из предыдущего апгрейда — фильтры. Здесь ничего сложного, просто что нужно брать в дайджест, а что отсеивать. Вот и все. И темплейт, то есть, в каком формате это все подавать. Вот и все. Потом у нас идет скрипт, который выполняет поиск, и у нас идут ресурсы.
Ну что ж, давайте проверим, как это работает. Создадим новый чат. Ну, и давайте спросим: "Что нового в мире искусственного интеллекта?". За сегодня. Да, когда я его заново собрал, он мне дал ему новое название AINews CollectorSkill. Steak, кстати, лимит в этом своем последнем промке. Видите, читает Digest Template. И сразу сохраняет в Notion. То есть, базу новости не нашел, и создаст как отдельную страницу. Это даже. Ну, хорошо. Позволим. Итак, пишет, что даже сохранен в Notion. Пишет его название. И говорит, что два источника недоступны. И вкратце перечисляет новости. И спрашивают про Telegram. Ну, я, честно говоря, не знаю, получится ли у меня здесь, потому что мне видит, что я пишет, что я достиг лимита. Давайте попробуем. Да, хочу. И, как видите, без проблем. В моем стиле. Кто подписан на мой Telegram, тот знает, что вот в таком стиле я выкладываю новости. То есть, вот эти характерные иконки с номерами. Есть, он прочитал мой skill и создал пост для Telegram.
Давайте еще для верности проверим в Notion, где там наша база. И вот так выглядит наш Digest в Notion. Очень красиво с исходными ссылками. Понятно, что это можно сохранить в базу данных и проверять по дате, чтобы новости не повторялись.
И главный бонус. Весь этот растущий промпт, который вы видели, я собрал готовый шаблон. Вот он. Скачивайте, открываете, и вместо квадратных скобок вставляете вашу задачу. Обязательно, конечно же, про новости. Это может быть и отслеживание цены, еженедельные отчеты, напоминания, да, что угодно. Ну и самое главное, если вам не нужен какой-нибудь апгрейд, то вы просто его удаляете. Не обязательно для всех задач использовать Python скрипты и какие-то правила и сортировки. В общем, все это будет в Telegram, а ссылочка, как всегда, в описании под видео.
Если видео вдохновило и было полезным, то ставьте лайк и подписывайтесь на канал. И, конечно же, пишите в комментариях, какими скиллами чаще всего пользуетесь и какие больше всего вам помогают. Стараюсь отвечать практически на все ваши комментарии. А самые интересные и качественные комментарии, конечно же, вложатся в основу новых видео. Спасибо вам, что смотрите и поддерживаете. Цените себя. Цените свой опыт. Пока.