Скилл для создания скиллов в Spark: чиним то, что сломал Google
В прошлом посте я жаловался, что Spark создаёт скиллы отвратительно - лепит один голый
SKILL.md без папок, эвалов и README, а при обновлении нормального скилла сносит всю структуру к чертям. Обещал выложить свои скиллы. Начну с самого важного - скилла, который
заставляет Spark создавать,
адаптировать и стоить новые скиллы по-человечески.
Спойлер: собирал я его практически вручную, итераций десять, на разных операциях, после которых разбирал и логи, где он спотыкается.
1. Чего я хотел дрбиться
Моей задачей было собрать мета-скилл, который навязывает агенту правильный процесс: сначала спросить, потом разложить по папкам, потом упаковать и получить нормальный скилл с древовидной структурой
2. Что заложил внутрь
• Интервью перед сборкой. По умолчанию Спарк спешит закрыть задачу и ничего не уточняет. Теперь он обязан сначала задать вопросы - триггеры, входы, формат выхода, интерактивный скилл или фоновый - и согласовать план. Только потом пишет.
•
Полную структуру вместо огрызка. Жестко прописал, скилл - это директория, а не один файл.
SKILL.md + references + assets + evals, и сверху zip-архив. Если скилл наследует знания о среде - они копируются внутрь, чтобы он был самодостаточным.
• Всю подкапотную базу про Spark, которую успел узнать. Эфемерная VM, которая стирается между ходами и гонит агента в бесконечные лупы. Баги Drive-тулов (папки создаются только с костылём
text_content=" ",
parentId в create вообще нет, перемещение файлов отваливается). Флаги chromium, без которых рендер висит 5 минут и падает по таймауту. Маскирование путей VM, чтобы агент не светил юзеру
/working_dir/.
• Защиту от лупов. Главная боль Spark. Лечится state-файлом на Google Drive как единственным источником правды + правилом “сначала проверь, что уже сделано, потом делай”. Локальный
task.md платформы живёт в VM и умирает при перезагрузке - поэтому при сбросе агент идёт за состоянием на Диск и продолжает с места обрыва, а не строит заново.
• Вшитую интерактивность. Если скилл интерактивный - он интерактивный всегда, даже в фоне он не фабрикует за тебя подтверждение, а останавливается и ждёт. А фоновые по своей сути (проверка почты, дайджесты) спокойно крутятся без тебя.
3. Эвалы
Заложил тесты не на happy path, а ровно на те грабли, на которые Spark наступал в логах: не свалил ли файлы в корень Диска, не создал ли две одинаковые папки после сброса VM, не пропустил ли молча валидацию, не ушёл ли в луп, спросил ли вообще что-нибудь перед сборкой.
В целом, сделал со своей стороны максимум. чтобы следующие скиллы под Spark не пришлось собирать теми же десятью итерациями. Скилл сам себя дисциплинирует - и навязывает дисциплину тем скиллам, что создаёт. Не стоит воспринимать его как волшебную таблетку, итерации вам все равно понадобятся, но не 10, а 2-3 (что нормально)
Репо:
https://github.com/vladkor97/spark-skill-builder (поставьте звездочку в гитхаб, буду благодарен)
Забирайте, тестируйте, пишите что ломается. В следующих постах - доменные скиллы, которые на нём собраны.
🚀 Влад Корнышев про AI и создание AI-продуктов
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram