В прошлых постах на тему харнессов мы разобрали теорию: контекст, а также скиллы, инструменты и оркестрацию.
В них же я обещал рассказать, как это реализовано у нас в компании.
Что ж, смотрите схему.
Она построена по пути задачи: от постановки до публикации результатов. Всего пять этапов: 1. Постановка задачи 2. Определение способа решения 3. Решение задачи 4. Оценка результатов 5. Публикация и обновление артефактов харнесса
1. Постановка задачи
Все задачи сейчас заходят через сессию с агентом, но могут иметь разный формат: карточка в трекере Kaiten, сообщение в мессенджере или скриншот или описание задачи в сессии с агентом.
В любом случае её всегда подхватывает скилл task-groomer. Его работа - выжать из запроса конкретику: что считаем, на какой выборке, что считаем за результат и по каким критериям его принимаем.
Если в постановке дыра, он останавливается и задает пользователю уточняющие вопросы.
Далее определяем способ решения задачи.
2. Определение способа решения
Состоит из двух подэтапов: 1. Определение домена, к которому определена задача 2. Определение агента, который будет эту задачу решать
Сначала task-router смотрит, к какому направлению относится задача.
Если направление ещё не активировано в репозитории (это управляется отдельным флагом админом репозитория), он говорит об этом и предлагает активировать. Писать в неактивное направление он не станет: оно доступно только на чтение.
Потомподключается domain-agent.
Он знает нюансы своих данных: где какие косяки, что с чем нельзя складывать, какие таблицы врут. Он же выбирает исполнителя и передаёт ему все необходимые детали вместе с описанием задания.
3. Решение задачи 🔬
За решение задач отвечает несколько агентов.
ab-lead отвечает за эксперименты и определяет, какой это тип теста (клиентский, квази, свитчбэк) и что надо сделать (задизайнить, оценить результаты, сделать пост-анализ). Далее он отдаёт задачу одному из шести скиллов (пример скиллов: дизайн клиентского теста, дизайн свитчбэка, оценка клиентского теста и тд).
bi-analyst собирает дашборды в Superset и Databricks. Если ему нужны пайплайны или витрины - идёт за этим к data-engineer.
researcher ведёт исследования, debugger разбирается, почему числа в дашбордах или витринах не сходятся, metadata-specialist отвечает, что значит таблица и когда обновлялась, local-specialist работает под уникальные задачи направления (пример: парсинг цен).
4. Оценка результатов
Перед публикацией результат уходит к reviewer.
Он не видел, как считали, и получает только результат с доказательствами.
Дальше смотрит глазами скептика: откуда взялась выборка, повторяются ли числа, что осталось за скобками.
Вердикт он отдаёт в сессию, и если нужны правки, агент направления перезапускает того же специалиста с замечаниями.
5. Публикация и обновление артефактов харнесса
Когда ревью пройдено, включается report-agent. Он пишет отчёт по единому шаблону, и он единственный, кому разрешено писать в базу знаний.
Кроме того, раз в неделю запускается librarian и идёт по всей базе.
Ищет все, что лежит в репозитории не на своих местах: устаревшие факты, неописанные таблицы, устаревшие скрипты или ссылки и тд. Далее он складывает находки в пулл-реквест и отдаёт владельцу направления.
Ускорило ли это мою работу?
Однозначно да.
Хотя, по-началу я очень много времени тратил на настройку, проверки, корректирование ошибок и тд.
Но со временем, харнесс настроился под мои задачи и теперь я практически не могу без него: задачи можно выполнять параллельно встречам или работать сразу над несколькими проектами.
Порой такая многозадачность выжигает мне мозг. Об этом писал в посте «Многозадачность - это ложь».
Но отказаться я уже не могу.
На этом я планировал закончить серию постов про харнессы, но если хотите узнать какие-то детали, то ставьте 🔥 и пишите вопросы в комментах. Могу детальнее рассказать про конкретные скиллы, инструкции и тд.
В этом посте были ссылки, но мы их удалили по правилам Сетки