Навыки агента
В этой статье расскажу про роль навыков агента при работе с агентами. Почему на мой взгляд это важно? Потому что на навыках строится весь процесс работы с нейросетью.
Для наглядности рассказывать буду на примере мобильной разработки.
Как было до агентов
Большинство задач требуют навыков у конкретного разработчика, чтобы их решить:
- Нужно что-то сверстать? Нужно уметь верстать с определенным подходом. Не умеешь - нужно научиться и применить навык.
- Нужно сделать запрос к серверу? Нужно уметь это делать, иначе придется учиться … чтобы потом применить этот навык.
Можно привести много примеров, но суть, надеюсь, уже понятна: если навык у конкретного человека есть, его можно и нужно использовать, а если его нет, то нужно либо найти подходящего человека (с навыками), либо научить назначенного на задачу исполнителя (уважение всем компаниям, которые вырастили сеньоров с нуля).
Никто ведь не будет спорить, что нам (людям) наши навыки критично важны не только для работы, но и в целом по жизни? Вопрос риторический)
Как стало с агентами
Все помнят хайп при релизе очередной «мега-модели» от гипер-популярной конторы?
Половина статей про невероятную мощь новой модели на опыте блогеров, половина - бенчмарки с «неоспоримыми» цифрами, которые доказывают преимущество этой новой модели над старыми.
Но для простых пользователей это фигня, на которую не нужно покупаться. Дальше расскажу почему.
Без навыков
Есть важный нюанс: модель без навыков - это как играть в казино и полагаться на чистую удачу. И очень часто при работе без навыков агент будет нарушать подход к написанию кода в проекте, потому что он не знает и не умеет соблюдать несуществующие правила.
Простому пользователю для общения на повседневные вопросы в чате с «ИИшкой» не важны эти бенчмарки и какие-то там правила - большинство ответов будут нормальными, потому что общение в чате без строгих правил не требует «умную» модель, и настроек никаких не нужно.
Кто-то может сказать: «У меня есть AGENTS.md/CLAUDE.md! Это же и есть правила, которые агент должен соблюдать!»
И я скажу очевидное, что нет никаких гарантий соблюдения ваших правила из этих файлов. Потому что это не свод законов, а рекомендации. Причем рекомендация не для человека, а для языковой модели, которая вообще не имеет никакого сознания и понимания «правильного».
В простых задачах кому-то может быть некритичным получить спагетти-код (нейрослоп), и никто не пострадает. Но мы тут собрались не для обсуждения простых задач.
Как выглядит работа без навыков.
Пишешь промпт и отправляешь, ждешь ответ агента, проверяешь результат (если вообще проверяешь), и пишешь следующий промпт.
Ах да, писать промпт нужно вручную, ну на худой конец у кого-то может быть есть «библиотека промптов», откуда можно скопировать текст и вставить в чат агенту. Но много ли у вас таких промптов, которые можно давать агенту в конкретных ситуациях, да еще и чтобы эти промпты учитывали специфику проекта/ситуации? Может быть, но с навыками ситуацию можно сильно улучшить.
(кстати, при ручном вводе промпта уходит время еще и на набор этого текста, а вряд ли у нас тут все печатают очень быстро и без опечаток)
С навыками
В зависимости от задачи вызываешь нужный навык, и дописываешь ему мини-промпт для уточнения задачи. Когда агент возвращается с результатами, вызываешь следующий навык для проверки результатов (вообще без дополнительного промпта, просто навык).
Больше всего внимания и времени тратишь не на формулировку общих вещей и базовых правил работы, а именно на задачу.
Пример реального рабочего процесса.
Мне нужно сделать экран приложения для отображения статистики тренировок, и я описываю только этот экран и как он должен работать по моему мнению куда-нибудь в заметку, но не пишу базовые для проекта вещи (что план задачи должен включать обновление документации, падающие тесты, успешные тесты, соблюдение правил проекта, вызов других обязательных инструментов, проверку неиспользуемого кода и т.д.) - просто пишу описание задачи, а потом вызываю навык типа /make-plan и вставляю описание задачи -> enter.
Кстати, писать предварительный промпт в заметку - это тоже классный прием. Несколько раз терял весь промпт из-за какой-нибудь левой комбинации клавиш и бага в чате с агентом.
В результате получаю новый md-документ, который всегда имеет одинаковую структуру (которая мне нужна), и учитывает нюансы данного проекта. И это работает с любым проектом и языком программирования, т.к. навык универсальный.
Потом открываю новую сессию в opencode, выбираю другую модель и даю ей задачу /review-plan + путь к документу с планом из предыдущей сессии, и получаю ревью по всем важным для меня критериям всегда в одном и том же формате.
Копирую результаты ревью, возвращаюсь в предыдущую сессию и вызываю команду /review-and-fix-fair-notes + вставляю результаты ревью.
Все, агент проходит по всем замечаниям, разбивает их на субагентов (если замечаний много), проверяет повторно каждое замечание и вносит правки в документ с планом, а по спорным замечаниям задает мне вопросы и предлагает варианты решения.
Будет ли агент ошибаться? Да, будет. Что в такой ситуации делать? Повторять этапы ревью и исправления ошибок. И так с любой моделью.
Где брать навыки
Где хочется - в интернете полно чужих навыков, есть много разных сайтов с готовыми навыками, при этом я настоятельно рекомендую писать навыки самостоятельно. Предварительно, конечно, нужно почитать про структуру навыка (SKILL.md, референсы и т.д.), можно почитать чужие навыки, но лучше вас никто не знает, что именно написать в навыках вашего агента.
Когда создавать навыки
При повторении одной задачи больше двух раз, да и вообще при регулярном повторении любых действий на работе.
Если вы научились что-то делать определенным образом, можно переложить это знание в навык агента и снять с себя нагрузку, чтобы ... делать больше интересного, а не рутинного.
Заключение
В чем же преимущество навыков? Они снижают уровень неопределенности, повышают предсказуемость результата. Не гарантируют идеальный результат, но снижают когнитивную нагрузку, чтобы не вспоминать каждый раз кучу нюансов, которую можно "завернуть" в конкретный навык и использовать регулярно.
С правильным набором навыков ваш рабочий процесс становится удобным, простым для применения, однообразным (не нужно изобретать колесо каждый день), и предсказуемым.
И еще раз про ошибки: все модели ошибаются регулярно, поэтому важно вложиться в навыки своего агента как можно раньше, чтобы дальше было проще.