Skills и Tools в AI: в чём разница, если вы вообще не понимаете о чём речь
Пришло время разобраться с ними, чтобы понять, как устроена вся эта заварушка с ИИ
Согласно детским учебникам начнём с абсолютно дурацкого примера:
Представим себе повара (да-да, обычного повара на кухне)
У нашего повара в арсенале есть ложка, венчик и весы — это его инструменты (tools)
Но наличие ложки, венчика и весов ещё не означает, что он умеет печь тортики. Сначала он должен понять:
- какие ингредиенты понадобятся
- в какой последовательности их добавлять
- сколько времени выпекать бисквит
- как понять, что бисквит готов
- что делать, если что-то пошло не так
Это уже навык (skill)
Так мы пришли к ответу на вопрос «в чём различие?»:
Tools дают возможность что-то сделать
Skills объясняют, как решить конкретную задачу
Допустим, вы спрашиваете у любого чат-бота:
«Какие встречи по календарю у меня сегодня?»
Чтобы ответить, ему нужен доступ к вашему календарю, чтобы его открыть. Такой доступ — tool
То есть tool — это буквально инструмент в руках ИИ
А теперь другая задача:
«Подготовь меня к сегодняшним встречам»
Тут просто открыть календарь уже недостаточно — нужно понять, какие встречи и какой у них приоритет, найти связанные с ними письма/документы, определить незакрытые вопросы и собрать всё это в нормальный файлик для подготовки — вот это уже skill, то есть инструкция о том, как именно выполнять такую задачу
Причём один skill может использовать сразу несколько tools:
Skill «Подготовить к встрече» → открыть календарь → найти встречу → найти письма/документы → просмотреть письма/документы → собрать краткий файл для подготовки
И здесь главное не запутаться:
Skill — это не более навороченный Tool, он вообще может существовать без tools — они отвечают за разные вещи
Tool говорит:
«Я умею открывать календарь»
Skill говорит:
«Я знаю, что делать с информацией из календаря, чтобы нормально подготовить тебя к встрече»
Например, skill «Проведи UX-критику интерфейса» может просто содержать инструкцию: сначала определить пользовательскую задачу, затем проверить иерархию, понятность действий и только потом давать рекомендации
Никакой внешний сервис для этого может быть не нужен
Или возвращаясь к нашему несчастному повару:
Дать человеку нож — это tool
Научить его печь торт — это skill
А как выглядит skill на практике?
Здесь под skills мы понимаем Agent Skills — готовые наборы инструкций и материалов, которые помощник может использовать для определённых задач
Основа такого skill — текстовый файл SKILL.md. В нём описано, для чего нужен skill и как выполнять работу
Подключение такого SKILL.md не означает, что модель заново обучили. Она лишь получает инструкции, к которым может обратиться во время работы
Возвращаясь к повару, тут: мы дали ему рецепт, по которому можно готовить
А зачем вообще всё это различать?
Потому что дальше почти любая более сложная ИИ-система собирается примерно из этих же деталей: сначала мы решаем, что AI должен уметь делать → и даём ему нужные tools, а потом объясняем, как именно он должен выполнять работу → и создаём skills
А уже дальше можно усложнять эту конструкцию: соединять несколько skills в цепочки, давать ИИ возможность самому выбирать следующий шаг и постепенно приходить к агентам
Но это уже следующая серия нашей заварушки!