Расследование инцидента состоит из цепочки взаимосвязанных решений. Сначала нужно определить, когда началась проблема, затем понять, какие системы она затронула, проверить исходную гипотезу по метрикам, логам или трейсам и, наконец, свести все собранные данные воедино, чтобы установить наиболее вероятную первопричину.
Мы построили агентный воркфлоу по той же схеме. Каждый этап отвечает за свою часть расследования и передаёт результат следующему.
Такая структура работает хорошо, пока итоговый ответ не оказывается неверным. И тогда по нему почти невозможно понять, на каком этапе всё пошло не так. Первый этап мог выбрать неправильный временной интервал. Следующий — поставить на первое место не того подозреваемого. А один из последующих этапов мог пропустить обязательный запрос и всё равно выдать вполне правдоподобное резюме.
Именно с этим мы столкнулись при тестировании многоэтапного агентного воркфлоу для расследования инцидентов. Полный запуск пайплайна показывал, что где-то произошёл сбой, но не позволял понять где. Кроме того, каждый такой запуск занимал много времени, расходовал токены на всех этапах и от раза к разу давал разные результаты.