¿Cómo descomponer el problema?
Podríamos dividirlo en problemas de software, dudas de usuario y errores.
¿Es posible reconocer patrones en las solicitudes?
Pienso que si ya que problamente se centre es preguntas sobre problemas del software y problemas de usuario por desconocimiento.
¿Qué tipo de abstracciones se pueden crear para simplificar el flujo?
Que el usuario al momento de hacer su solicitud deba seleccionar entre esas tres categorías descritas en la primera pregunta, y así tener un mejor enfoque en lo que quiere el usuario sin tener que adivinar.
¿Es viable crear un algoritmo para manejar cada tipo de solicitud?
Puede ser que si , pero primero deberíamos saber que es lo que mas solicita el usuario, así poder tener en cuenta esas notas en nuestras respuestas.