agent
October 1

Навыки агента

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

Для наглядности рассказывать буду на примере мобильной разработки.

Как было до агентов

Большинство задач требуют навыков у конкретного разработчика, чтобы их решить:

  • Нужно что-то сверстать? Нужно уметь верстать с определенным подходом. Не умеешь - нужно научиться и применить навык.
  • Нужно сделать запрос к серверу? Нужно уметь это делать, иначе придется учиться … чтобы потом применить этот навык.

Можно привести много примеров, но суть, надеюсь, уже понятна: если навык у конкретного человека есть, его можно и нужно использовать, а если его нет, то нужно либо найти подходящего человека (с навыками), либо научить назначенного на задачу исполнителя (уважение всем компаниям, которые вырастили сеньоров с нуля).

Никто ведь не будет спорить, что нам (людям) наши навыки критично важны не только для работы, но и в целом по жизни? Вопрос риторический)

Как стало с агентами

Все помнят хайп при релизе очередной «мега-модели» от гипер-популярной конторы?

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

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

Без навыков

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

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

Теперь про код.

Кто-то может сказать: «У меня есть AGENTS.md/CLAUDE.md! Это же и есть правила, которые агент должен соблюдать!»

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

В простых задачах кому-то может быть некритичным получить спагетти-код (нейрослоп), и никто не пострадает. Но мы тут собрались не для обсуждения простых задач.

Как выглядит работа без навыков.

Пишешь промпт и отправляешь, ждешь ответ агента, проверяешь результат (если вообще проверяешь), и пишешь следующий промпт.

Ах да, писать промпт нужно вручную, ну на худой конец у кого-то может быть есть «библиотека промптов», откуда можно скопировать текст и вставить в чат агенту. Но много ли у вас таких промптов, которые можно давать агенту в конкретных ситуациях, да еще и чтобы эти промпты учитывали специфику проекта/ситуации? Может быть, но с навыками ситуацию можно сильно улучшить.

(кстати, при ручном вводе промпта уходит время еще и на набор этого текста, а вряд ли у нас тут все печатают очень быстро и без опечаток)

С навыками

В зависимости от задачи вызываешь нужный навык, и дописываешь ему мини-промпт для уточнения задачи. Когда агент возвращается с результатами, вызываешь следующий навык для проверки результатов (вообще без дополнительного промпта, просто навык).

Больше всего внимания и времени тратишь не на формулировку общих вещей и базовых правил работы, а именно на задачу.

Пример реального рабочего процесса.

Мне нужно сделать экран приложения для отображения статистики тренировок, и я описываю только этот экран и как он должен работать по моему мнению куда-нибудь в заметку, но не пишу базовые для проекта вещи (что план задачи должен включать обновление документации, падающие тесты, успешные тесты, соблюдение правил проекта, вызов других обязательных инструментов, проверку неиспользуемого кода и т.д.) - просто пишу описание задачи, а потом вызываю навык типа /make-plan и вставляю описание задачи -> enter.

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

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

Потом открываю новую сессию в opencode, выбираю другую модель и даю ей задачу /review-plan + путь к документу с планом из предыдущей сессии, и получаю ревью по всем важным для меня критериям всегда в одном и том же формате.

Копирую результаты ревью, возвращаюсь в предыдущую сессию и вызываю команду /review-and-fix-fair-notes + вставляю результаты ревью.

Все, агент проходит по всем замечаниям, разбивает их на субагентов (если замечаний много), проверяет повторно каждое замечание и вносит правки в документ с планом, а по спорным замечаниям задает мне вопросы и предлагает варианты решения.

Будет ли агент ошибаться? Да, будет. Что в такой ситуации делать? Повторять этапы ревью и исправления ошибок. И так с любой моделью.

Где брать навыки

Где хочется - в интернете полно чужих навыков, есть много разных сайтов с готовыми навыками, при этом я настоятельно рекомендую писать навыки самостоятельно. Предварительно, конечно, нужно почитать про структуру навыка (SKILL.md, референсы и т.д.), можно почитать чужие навыки, но лучше вас никто не знает, что именно написать в навыках вашего агента.

Когда создавать навыки

При повторении одной задачи больше двух раз, да и вообще при регулярном повторении любых действий на работе.

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

Заключение

В чем же преимущество навыков? Они снижают уровень неопределенности, повышают предсказуемость результата. Не гарантируют идеальный результат, но снижают когнитивную нагрузку, чтобы не вспоминать каждый раз кучу нюансов, которую можно "завернуть" в конкретный навык и использовать регулярно.

С правильным набором навыков ваш рабочий процесс становится удобным, простым для применения, однообразным (не нужно изобретать колесо каждый день), и предсказуемым.

И еще раз про ошибки: все модели ошибаются регулярно, поэтому важно вложиться в навыки своего агента как можно раньше, чтобы дальше было проще.