📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Как тестировать промпты, skills и Claude Code: AI Tester

Просто о сложном. CutCode21:38

Transcription

Коллеги, я вас приветствую на канале Каткод. Сегодня мы с вами поговорим на важные темы. У меня, на самом деле, есть хорошая и плохая новость. И в целом за последние 3 месяца, за мой последний опыт взаимодействия с Eи кое-что изменилось. Особенно для тех, кто смотрит мои стримы. Я думаю, особенно будет интересно это мнение. И помимо всего прочего, мы с вами ещё сегодня посмотрим на интересный новый проект, который тоже меняет правила разработки с ИИ.

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

Что касается хороших новостей, если вы не эксперт, если у вас нет фундаментальных знаний, если вы не понимаете, что такое базы данных, что такое do, race conditionition, открытые порты наружу и так далее, то вам в продакшн разработке с делать нечего. Да, вы можете мне сейчас сказать о том, что вот у меня нет никаких знаний, но я сделал то-то, сделал это. Да, друзья, какие-то мvpпишки вы можете сделать, они 100% все дырявые. И самое важное, они не продакш. То есть такие решения вы не сможете продавать. Вы сможете их доставить, получить кучу проблем. И если вдруг у вас проект будет интересный и у вас будут определённые продажи, то вы всё равно первым шагом придёте к тому, что вовлечёте в этот проект эксперта, который вот эту дырявость всю исправит и сделает из вашего непонятного проекта рабочий, который действительно можно продавать, доставлять до конечного клиента. Собственно, других вариантов здесь нет.

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

Итак, я думаю, эти новости понятны. Плохая и хорошая. Хорошая говорит о том, что, друзья, фундаментальные знания имеют ценность как никогда раньше. И я сейчас уже, глядя прошлое, понимаю, насколько я правильно выстраивал процессы обучения у себя. Были при этом ребята, которые жаловались: "Много воды, зачем нам эти основы? Зачем мы там лазием по спекам? Зачем мы смотрим кишки там всех этих фреймворков, разбираясь, как это всё работает? Давайте нам весёлые картинки, давайте нам всякие инструменты." И, соответственно, эти ребята сейчас все оказываются за бортом. А любопытные, те, которые двигались в направлении изучения основ, будут, соответственно, в будущем на коне.

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

А что касается плохой новости о том, что писать код руками 100% больше не нужно. Давайте немножко отмотаем время назад. Буквально полгода назад у меня был стрим по презентации Муншайна. Мне задавали вопросы про ИИИ, где я отвечал в духе, что сейчас я уже все новые проекты пишу с помощью лмок. Но есть ещё огромное количество старых проектов, где полностью крафтовый код, где яишки я ещё ничего не доверяю. Плюс я тогда сказал про Moншайн, сказал, что точно в Moуншайн я не пущу яишку. Да, яишка там никак не разберётся. Огромная кодовая база. И на тот момент я думал, что вообще без шансов в ближайшее будущее подобные open sourсы останутся исключительно крафтовыми.

И тогда ещё я начал презентовать проект befrost Headless Mounhine. Мы искали инвесторов. Мы понимали, что это сложный проект, что там не обойдётся без инвестиций, так как меня одного разработчика не будет хватать. Очень большой объём работы, нужно найти разработчиков. Плюс там, не знаю, 99-100% разработчиков, которые сейчас присутствуют в экосистеме Laravel среди Rруu aудитории, они вообще не подойдут, они не справятся с таким проектом. А те, кто справится, ну, соответственно, здесь и ценник будет гораздо выше.

Что же произошло сейчас, друзья? Сейчас я вообще не пишу код нигде, ни в новых, ни в старых проектах. Moonshin все фичи, которые сейчас выходят, также генерируются лмкой. А теперь самое важное. Я практически закончил этот проект Moonshine Headless, Moonshine Befrost, потратил на это месяц, и там уже практически рабочий концепт. То есть мне ещё пару месяцев, и это будет готовый проект, который ещё полгода назад я не мог реализовать без инвестиций и без дополнительной команды разработчиков. Ну, точнее, мог, но потратил бы на это гораздо больше времени.

А теперь, друзья, ещё такой момент. Многие из вас говорят: "Вот там в нашем страшном сложном проекте яишка не разберётся". И при этом, как правило, те, кто это говорит, они даже ещё не достигли уровня, когда они пишут собственные open source проекты. Да, я не говорю, что это какой-то там высокий уровень. Просто у нас у разработчиков есть определённые этапы, и в какой-то момент мы выходим на этапы разработки собственных соурсов. Далее, этап поддержания определённых open source проектов, которые достигают отклика у аудитории, становятся интересными и которые нужно поддерживать. Это тоже определённый труд и этап.

А теперь давайте обратим внимание на продуктивность. За последние, буквально, месяц-два я разработал с помощью EИ полностью AI Factory, где уже версия 2.0, второй мажорный релиз, девять контрибьюторов, постоянные шью, постоянные пуреквесты, 500 звёзд и так далее, активное развитие. Следом я представил вам проект HLV на Расти, который также развивается. И это вот в промежуток месяц тире два. Далее был выпущен A Workspace. После пришёл AF. Я вам его показывал. Там вообще сумасшедший проект. Я думаю, безишки я бы его делал год, и он бы даже спустя такое время не оброс тем функционалом, каким он оброс сейчас. Я многое сейчас ещё забуду. Да, у нас ещё есть MCP юнит для тестирования ваших MCP на качество, безопасность и так далее. И, соответственно, инструмент, о котором мы сейчас с вами поговорим, AI тестер.

Но прежде чем мы начнём с вами разговор, хочется ещё немножечко затронуть судьбу Он СОрса. Для меня это очень болезненная тема, друзья. 4 года я занимался Муншайном. Ну давайте для тех, кто не знает, также его откроем, чтобы он был перед нами. Это популярный проект, уже четвёртая версия. более 1.сячи звёзд, 48 контрибьюторов. 4 года я жил этим проектом. Я постоянно делал стримы, постоянно делал релизы, тратил на него огромное количество энергии. Сейчас, друзья, я понимаю, что в Он Сорсе такие проекты будут умирать. Они уже не имеют смысл. Сейчас всё уходит к тому, что мы будем изобретать велосипеды яишкой под себя. Зачем? Чтобы контролировать каждый шаг, чтобы каждая инструкция была под нашим контролем. не просто брать инструмент с какими-то готовыми инструкциями, а либо с возможностью их переопределить под себя, под свои пайплайны, либо контролировать каждый токен, понимать, что вообще происходит, это будет суперважно.

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

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

Что оно из себя представляет? Давайте взглянем на AI Factory. По сути, это библиотека, которая состоит исключительно из скилов, ну и из субагентов. Его основа - это инструкции. И со временем я прихожу к тому, что инструкции поддерживать не проще, чем код. Они также разрастаются, их становится больше, больше. Каждая инструкция, в принципе, на 500-600 токенов. И они также улучшаются. Скажем, есть инструкция AV plan по планированию, да, в рамках SDD, RPI, Research, Planing, Impмен, и мы добавляем какие-то инструкции внутри в этот скилл. И то же самое, как с кодом, друзья. Какая-то инструкция может дать галлюцинации лэмки, и какой-то этап будет пропущен. Нам необходимо тестировать поведение. Каким образом я его тестировал до этого? Ну, соответственно, я запускал клод где-то в тестовом проекте и пытался эти скилы прогонять и смотрел, что при этом происходит, точно ли были заданы вопросы, точно ли были сгенерированы артефакты, вызван тот или иной тулинг. В особенности с приходом Handof, когда у нас ещё появился Handof MCP, нужно менять режимы, это стало особенно сложно, и контролировать эти моменты стало непросто.

Соответственно, таким образом я пришёл к инструменту AI- тестер. Вот мы уже видим, у нас есть скилы. И на уровне скила присутствует директорияs. Давайте перейдём в неё и увидим Ял. Ял, который тестирует поведение. Смотрите, что здесь за интересные инструкции. Мы говорим, какой скилл тестируем, какие аргументы мы по дефолту передаём. Далее настраиваем, какую модельку мы будем при этом использовать. Я специально не использую здесь OPUS 4,7, чтобы моделька была послабее. И, соответственно, если моделька послабее, значит, инструкции на более сильной модельке будут выполнены ещё лучше. Вместе с AI-стер можно запустить фикстуры. То есть сами тесты, они поведенческие, они под капотом запустят либо кодекс, либо клод, runтай, может быть, какой угодно, вы можете сюда добавлять, но агент будет выполнять те же самые действия, а мы будем каждый этап тестировать. При этом, если у нас есть скилл, возможно, ему потребуются и какие-то тестовые данные, фикстуры. Соответственно, мы можем сразу инициализировать Git IT с определённой веткой. Мы можем создать набор файлов, как строкой указать его контент, так и сразу передать путь до файла либо директории, чтобы он там у нас развернулся.

И здесь мы уже с вами тестируем поведение. К примеру, смотрите, это тестовый ял для AVE Plan. И мы с вами тестируем, что в процессе должен быть задан вопрос: какой режим нам необходим, полный либо быстрый. и наш выбор, что будет присутствовать вопрос наличия тестов, где мы ответим да y, соответственно, всё остальное. В процессе мы делаем такие же асёрты, как и притестирование кода, что был вызван тулинг. Какой именно тулинг? WR записи. Что именно за файл? Да, вот здесь мы видим регулярко, что план MD был создан, что внутри в контенте будут присутствовать чек-листы. Вес мы указываем для приоритета, если несколько тулингов одинаковых. Но проверить нужно разное. То есть мы здесь просто проверяем, что файл создан, а здесь мы проверяем наличие в нём определённого контента. Также мы проверяем, что в процессе у нас был создан на уровне фастплана именно план MD, а не в Pls было записано. И что немаловажно, в особенности для тех, кто переживает за безопасность, что мы остались внутри СНБА, что Ллэмка не пыталась выйти за границы директории, не использовала никакие дополнительные тулинги. На уровне AI-тестера вы сможете в своей компании тестировать скилы, которые используете и которые добавляете, возможно, извне, что они никуда не ходят во внешний мир, что они не передают, скажем так, ключи кому-то. Всё это поведение вы можете контролировать.

В итоге таким способом я пришёл к этому фреймворку. Это фреймворк-тестирования. Здесь множество правил, которые вы можете использовать. Тестировать вы сможете не только скилы, вы можете тестировать и просто промты, создавать сценарии, создавать тесты. Их может быть сколько угодно. Вы можете фильтровать эти сценарии при запуске AI-тестера. И, соответственно, прямо в Ридме вы найдёте кучу рецептов и различных осёртов, чтобы качественно всё протестировать. Я прямо сюда в Ридме, а, вынес и примеры с безопасностью, то, о чём часто говорят, чтобы ваши там ключи и всё остальное никуда не были переданы. В коробке сейчас есть клод и кодекс и система рантаймов, как их в Handof. Вы можете спокойно добавлять новые рантаймы, если вы используете какой-то агент у себя внутренний, написали под него runтай и, соответственно, тестируете через него. Есть drй run, чтобы просто проверить, что всё о'кей. Соответственно, множество настроек.

И давайте сейчас мы с вами посмотрим, как это выглядит. После того, как вы установили глобально либо в проект AI теester на уровне AI Factory, я его установил сюда вот в рамках проекта в дев зависимость. Вот он, AI Tester, версия 0.2. и позже запустил команду AI tester init. После чего у меня появился вот такой вот yam файл. Зачем он нужен? Чтобы мы по дефолту указали, где у нас располагаются скилы либо промты, какую модельку использовать и какие у нас дефолтные пермишены. Соответственно, зная, где у нас директория Skills, мы можем работать по конвенции либо другими опциями в Ридме указать, где именно располагаются тесты. по конвенции прямо внутри скила директория тест и внутри сценария. Их может быть сколько угодно, если вы сейчас запустите просто ран, ну не вы, а точнее мы, aтеester автоматически пройдёт по всем скилам, отыщет директорию тест и запустит все сценарии. Либо через опцию сценарии, либо скилов, вы можете этот момент тоже контролировать.

Давайте запустим тесты в A Factory Aester Run, чтобы посмотреть, как это всё работает. Вот мы с вами видим, что сценарий Fast Creates Plan запущен, видим стартовый промт и, соответственно, начало сессии. И в процессе мы видим с вами тулинг, который вызывается агентам. Соответственно, вот всё это поведение мы с вами можем на уровне AI-ester проверять, что именно читалось, как читалось, какие ошибки возникали. Также на уровне fast create планов мы можем здесь с вами указывать опцию, сколько именно вызовов Макns было и множество других фич. Помимо этого будет писаться история ранов. Мы сейчас с вами её также взглянем. Запускается изолированно в СНТбоксе. Чуть позже я ещё добавлю а запуск в Докере.

Но давайте, пока у нас происходят поведенческие тесты, поговорим ещё кое- о чём. Для кого всё-таки эта библиотека в первую очередь? Я думаю, всё-таки она не для бытового использования, хотя тоже почему бы и нет, но больше для open source проектов и для работы в команде, в компании. Когда у вас есть собственные скилы, вы их постоянно пишите, они для вас важны, они влияют на весь ваш workflow. Возможно, вы притаскиваете какие-то скилы извне, тоже их тестируете. Эта библиотека также вам будет полезна. Мы уже здесь в процессе видим, что даже был зависание у CLI клода, и AI-стер сделал респаун. Мы видим, что возникали квешены, они у нас проходили на проверку. И, соответственно, в процессе все правила, которые были внутри нашего сценария, прошли. И мы с вами видим Sumary с зелёным итоговым тестом. Время выполнения этого сценария. То есть оно не ускорено, это не мог. Оно выполняется точно так же, как если бы вы вызывали этот скилл. Всё поведение соблюдается.

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

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

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

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

Ну и раз уж пошла речь о менторстве, также напоминаю вам про Workshop. Вторая часть, он уже более продвинутый, более интересный. Как раз мы там говорим про workflow, про SD, работаем с AI Factory, работаем с AI Workspace, Save Handof, обсуждаем MCP Unit. В общем, все те инструменты, которые я сейчас разрабатываю и без которых не могу жить. Я без них, как без рук. Каждый мой день я использую все эти инструменты. Они постоянно пополняются, потому что правила игры меняются. Они меняются чуть ли не каждый день. Нужно адаптироваться, да, сложно, но и при этом очень интересно.

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

На этом всё, друзья. Всем спасибо. Увидимся в следующем ролике на канале Каткод. Так.