Я думаю, что вам может не хватать понимания Управление состоянием бота . Эта ссылка дает обзор типов состояния (пользователь против разговора), а также мест, в которых вы можете хранить состояние (например, память, Azure хранилище BLOB-объектов и т. Д. c). ). Имейте в виду, что предложенная в статье Cosmos DB может оказаться дорогостоящим вариантом из-за высокого состояния чтения ботов (каждый ход приводит к чтению, которое является частью того, на чем основана цена Cosmos), поэтому, например, MongoDB может быть другой возможный вариант.
Еще один подход к «состоянию» - это концепция «диалогов», где существует определенный «управляемый диалог», через который может проходить пользователь. Например, в сценарии бронирования рейса вам понадобится место отправления, пункт назначения, дата, время и т. Д. c., Так что это многооборотный «мини-разговор», и диалоговые окна выполняют свое собственное управление состоянием в этом контексте. См. « Диалоги в Bot Framework ».
Кроме того, подход «массива», который вы используете, похож на опцию состояния в памяти, но требует от вас чтобы управлять вещами на 100%, его нелегко масштабировать (со встроенным состоянием состояний легко переключать память на другую опцию), и он может быть не многопользовательским (в зависимости от того, как вы работаете с массив, если вы сохраняете по одному на пользователя или около того).
Надеюсь, это поможет