Loading...
    • Construir
    • Administración
    • Modelos y precios
    • SDKs de cliente
    • Referencia de la API
    Search...
    ⌘K
    Primeros pasos
    Introducción a ClaudeInicio rápido
    Construir con Claude
    Descripción general de funcionesUsar la API de mensajesGestionar razones de parada
    Capacidades del modelo
    Pensamiento extendidoPensamiento adaptativoEsfuerzoModo rápido (beta: vista previa de investigación)Salidas estructuradasCitasMensajes en streamingProcesamiento por lotesResultados de búsquedaRechazos en streamingSoporte multilingüeEmbeddings
    Herramientas
    Descripción generalCómo funciona el uso de herramientasHerramienta de búsqueda webHerramienta de recuperación webHerramienta de ejecución de códigoHerramienta de memoriaHerramienta BashHerramienta de uso del ordenadorHerramienta de edición de texto
    Infraestructura de herramientas
    Búsqueda de herramientasLlamada programática de herramientasStreaming detallado de herramientas
    Gestión del contexto
    Ventanas de contextoCompactaciónEdición de contextoCaché de promptsConteo de tokens
    Trabajar con archivos
    Files APISoporte de PDFImágenes y visión
    Skills
    Descripción generalInicio rápidoMejores prácticasSkills para empresasSkills en la API
    MCP
    Servidores MCP remotosConector MCP
    Ingeniería de prompts
    Descripción generalMejores prácticas de promptsHerramientas de prompts en Console
    Probar y evaluar
    Definir el éxito y crear evaluacionesUsar la herramienta de evaluación en ConsoleReducir la latencia
    Reforzar las barreras de seguridad
    Reducir alucinacionesAumentar la consistencia de salidaMitigar jailbreaksReducir la filtración de prompts
    Recursos
    Glosario
    Descripción generalEnrutamiento de ticketsAgente de atención al clienteModeración de contenidoResumen legal
    Notas de versión
    Claude Platform
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Casos de uso

    Enrutamiento de tickets

    Esta guía explica cómo aprovechar las capacidades avanzadas de comprensión del lenguaje natural de Claude para clasificar tickets de soporte al cliente a escala según la intención del cliente, urgencia, priorización, perfil del cliente y más.

    Was this page helpful?

    • Define si usar Claude para el enrutamiento de tickets
    • Construye e implementa tu flujo de trabajo de soporte con LLM
    • Comprende tu enfoque de soporte actual
    • Define las categorías de intención del usuario
    • Establece criterios de éxito
    • Elige el modelo de Claude adecuado
    • Construye un prompt sólido
    • Implementa tu prompt
    • Evalúa tu prompt
    • Construye una función de evaluación
    • Ejecuta tu evaluación
    • Mejora el rendimiento
    • Usa una jerarquía taxonómica para casos con 20+ categorías de intención
    • Usa bases de datos vectoriales y recuperación por búsqueda de similitud para manejar tickets altamente variables
    • Considera específicamente los casos extremos esperados
    • Integra Claude en tu flujo de trabajo de soporte más amplio

    Define si usar Claude para el enrutamiento de tickets

    Aquí hay algunos indicadores clave de que deberías usar un LLM como Claude en lugar de enfoques tradicionales de ML para tu tarea de clasificación:


    Construye e implementa tu flujo de trabajo de soporte con LLM

    Comprende tu enfoque de soporte actual

    Antes de sumergirte en la automatización, es crucial comprender tu sistema de tickets existente. Comienza investigando cómo tu equipo de soporte maneja actualmente el enrutamiento de tickets.

    Considera preguntas como:

    • ¿Qué criterios se utilizan para determinar qué SLA/oferta de servicio se aplica?
    • ¿Se utiliza el enrutamiento de tickets para determinar a qué nivel de soporte o especialista de producto va un ticket?
    • ¿Hay reglas o flujos de trabajo automatizados ya implementados? ¿En qué casos fallan?
    • ¿Cómo se manejan los casos extremos o los tickets ambiguos?
    • ¿Cómo prioriza el equipo los tickets?

    Cuanto más sepas sobre cómo los humanos manejan ciertos casos, mejor podrás trabajar con Claude para realizar la tarea.

    Define las categorías de intención del usuario

    Una lista bien definida de categorías de intención del usuario es crucial para la clasificación precisa de tickets de soporte con Claude. La capacidad de Claude para enrutar tickets de manera efectiva dentro de tu sistema es directamente proporcional a qué tan bien definidas estén las categorías de tu sistema.

    Aquí hay algunas categorías y subcategorías de intención del usuario de ejemplo.

    Además de la intención, el enrutamiento y la priorización de tickets también pueden verse influenciados por otros factores como la urgencia, el tipo de cliente, los SLA o el idioma. Asegúrate de considerar otros criterios de enrutamiento al construir tu sistema de enrutamiento automatizado.

    Establece criterios de éxito

    Trabaja con tu equipo de soporte para definir criterios de éxito claros con puntos de referencia, umbrales y objetivos medibles.

    Aquí hay algunos criterios estándar y puntos de referencia al usar LLMs para el enrutamiento de tickets de soporte:

    Aquí hay algunos criterios de éxito comunes que pueden ser útiles independientemente de si se usa un LLM:

    Elige el modelo de Claude adecuado

    La elección del modelo depende de las compensaciones entre costo, precisión y tiempo de respuesta.

    Muchos clientes han encontrado que claude-haiku-4-5-20251001 es un modelo ideal para el enrutamiento de tickets, ya que es el modelo más rápido y rentable de la familia Claude 4 y aún ofrece excelentes resultados. Si tu problema de clasificación requiere una profunda experiencia en la materia o un gran volumen de categorías de intención con razonamiento complejo, puedes optar por el modelo Sonnet más grande.

    Construye un prompt sólido

    El enrutamiento de tickets es un tipo de tarea de clasificación. Claude analiza el contenido de un ticket de soporte y lo clasifica en categorías predefinidas según el tipo de problema, urgencia, experiencia requerida u otros factores relevantes.

    Escribamos un prompt de clasificación de tickets. Nuestro prompt inicial debe contener el contenido de la solicitud del usuario y devolver tanto el razonamiento como la intención.

    Prueba el generador de prompts en la Claude Console para que Claude escriba un primer borrador por ti.

    Aquí hay un ejemplo de prompt de clasificación para enrutamiento de tickets:

    def classify_support_request(ticket_contents):
        # Define the prompt for the classification task
        classification_prompt = f"""You will be acting as a customer support ticket classification system. Your task is to analyze customer support requests and output the appropriate classification intent for each request, along with your reasoning.
    
            Here is the customer support request you need to classify:
    
            <request>{ticket_contents}</request>
    
            Please carefully analyze the above request to determine the customer's core intent and needs. Consider what the customer is asking for has concerns about.
    
            First, write out your reasoning and analysis of how to classify this request inside <reasoning> tags.
    
            Then, output the appropriate classification label for the request inside a <intent> tag. The valid intents are:
            <intents>
            <intent>Support, Feedback, Complaint</intent>
            <intent>Order Tracking</intent>
            <intent>Refund/Exchange</intent>
            </intents>
    
            A request may have ONLY ONE applicable intent. Only include the intent that is most applicable to the request.
    
            As an example, consider the following request:
            <request>Hello! I had high-speed fiber internet installed on Saturday and my installer, Kevin, was absolutely fantastic! Where can I send my positive review? Thanks for your help!</request>
    
            Here is an example of how your output should be formatted (for the above example request):
            <reasoning>The user seeks information in order to leave positive feedback.</reasoning>
            <intent>Support, Feedback, Complaint</intent>
    
            Here are a few more examples:
            <examples>
            <example 2>
            Example 2 Input:
            <request>I wanted to write and personally thank you for the compassion you showed towards my family during my father's funeral this past weekend. Your staff was so considerate and helpful throughout this whole process; it really took a load off our shoulders. The visitation brochures were beautiful. We'll never forget the kindness you showed us and we are so appreciative of how smoothly the proceedings went. Thank you, again, Amarantha Hill on behalf of the Hill Family.</request>
    
            Example 2 Output:
            <reasoning>User leaves a positive review of their experience.</reasoning>
            <intent>Support, Feedback, Complaint</intent>
            </example 2>
            <example 3>
    
            ...
    
            </example 8>
            <example 9>
            Example 9 Input:
            <request>Your website keeps sending ad-popups that block the entire screen. It took me twenty minutes just to finally find the phone number to call and complain. How can I possibly access my account information with all of these popups? Can you access my account for me, since your website is broken? I need to know what the address is on file.</request>
    
            Example 9 Output:
            <reasoning>The user requests help accessing their web account information.</reasoning>
            <intent>Support, Feedback, Complaint</intent>
            </example 9>
    
            Remember to always include your classification reasoning before your actual intent output. The reasoning should be enclosed in <reasoning> tags and the intent in <intent> tags. Return only the reasoning and the intent.
            """

    Analicemos los componentes clave de este prompt:

    • Usamos f-strings de Python para crear la plantilla del prompt, permitiendo que ticket_contents se inserte en las etiquetas <request>.
    • Le damos a Claude un rol claramente definido como sistema de clasificación que analiza cuidadosamente el contenido del ticket para determinar la intención y necesidades principales del cliente.
    • Instruimos a Claude sobre el formato de salida adecuado, en este caso para proporcionar su razonamiento y análisis dentro de las etiquetas <reasoning>, seguido de la etiqueta de clasificación apropiada dentro de las etiquetas <intent>.
    • Especificamos las categorías de intención válidas: "Support, Feedback, Complaint", "Order Tracking" y "Refund/Exchange".
    • Incluimos algunos ejemplos (también conocido como prompting de pocos ejemplos) para ilustrar cómo debe formatearse la salida, lo que mejora la precisión y consistencia.

    La razón por la que queremos que Claude divida su respuesta en varias secciones de etiquetas XML es para que podamos usar expresiones regulares para extraer por separado el razonamiento y la intención de la salida. Esto nos permite crear próximos pasos específicos en el flujo de trabajo de enrutamiento de tickets, como usar solo la intención para decidir a qué persona enrutar el ticket.

    Implementa tu prompt

    Es difícil saber qué tan bien funciona tu prompt sin implementarlo en un entorno de producción de prueba y ejecutar evaluaciones.

    Construyamos la estructura de implementación. Comienza definiendo la firma del método para envolver nuestra llamada a Claude. Tomaremos el método que ya hemos comenzado a escribir, que tiene ticket_contents como entrada, y ahora devolveremos una tupla de reasoning e intent como salida. Si tienes una automatización existente usando ML tradicional, querrás seguir esa firma de método en su lugar.

    Python
    import re
    
    # Create an instance of the Claude API client
    client = anthropic.Anthropic()
    
    # Set the default model
    DEFAULT_MODEL = "claude-haiku-4-5-20251001"
    
    
    def classify_support_request(ticket_contents):
        # Define the prompt for the classification task
        classification_prompt = f"""You will be acting as a customer support ticket classification system.
            ...
            ... The reasoning should be enclosed in <reasoning> tags and the intent in <intent> tags. Return only the reasoning and the intent.
            """
        # Send the prompt to the API to classify the support request.
        message = client.messages.create(
            model=DEFAULT_MODEL,
            max_tokens=500,
            temperature=0,
            messages=[{"role": "user", "content": classification_prompt}],
            stream=False,
        )
        reasoning_and_intent = message.content[0].text
    
        # Use Python's regular expressions library to extract `reasoning`.
        reasoning_match = re.search(
            r"<reasoning>(.*?)</reasoning>", reasoning_and_intent, re.DOTALL
        )
        reasoning = reasoning_match.group(1).strip() if reasoning_match else ""
    
        # Similarly, also extract the `intent`.
        intent_match = re.search(r"<intent>(.*?)</intent>", reasoning_and_intent, re.DOTALL)
        intent = intent_match.group(1).strip() if intent_match else ""
    
        return reasoning, intent

    Este código:

    • Crea una instancia del cliente usando tu clave de API.
    • Define una función classify_support_request que toma una cadena ticket_contents.
    • Envía el ticket_contents a Claude para su clasificación usando el classification_prompt
    • Devuelve el reasoning e intent del modelo extraídos de la respuesta.

    Dado que necesitamos esperar a que se genere todo el texto de razonamiento e intención antes de analizarlo, establecemos stream=False (el valor predeterminado).


    Evalúa tu prompt

    El prompting a menudo requiere pruebas y optimización para estar listo para producción. Para determinar la preparación de tu solución, evalúa el rendimiento basándote en los criterios de éxito y umbrales que estableciste anteriormente.

    Para ejecutar tu evaluación, necesitas casos de prueba en los que ejecutarla. El resto de esta guía asume que ya has desarrollado tus casos de prueba.

    Construye una función de evaluación

    Nuestra evaluación de ejemplo para esta guía mide el rendimiento de Claude a lo largo de tres métricas clave:

    • Precisión
    • Costo por clasificación

    Es posible que necesites evaluar a Claude en otros ejes dependiendo de los factores que sean importantes para ti.

    Para evaluar esto, primero tenemos que modificar el script que escribimos y agregar una función para comparar la intención predicha con la intención real y calcular el porcentaje de predicciones correctas. También tenemos que agregar funcionalidad de cálculo de costos y medición de tiempo.

    Python
    import re
    
    # Create an instance of the Claude API client
    client = anthropic.Anthropic()
    
    # Set the default model
    DEFAULT_MODEL = "claude-haiku-4-5-20251001"
    
    
    def classify_support_request(request, actual_intent):
        # Define the prompt for the classification task
        classification_prompt = f"""You will be acting as a customer support ticket classification system.
            ...
            ...The reasoning should be enclosed in <reasoning> tags and the intent in <intent> tags. Return only the reasoning and the intent.
            """
    
        message = client.messages.create(
            model=DEFAULT_MODEL,
            max_tokens=500,
            temperature=0,
            messages=[{"role": "user", "content": classification_prompt}],
        )
        usage = message.usage  # Get the usage statistics for the API call for how many input and output tokens were used.
        reasoning_and_intent = message.content[0].text
    
        # Use Python's regular expressions library to extract `reasoning`.
        reasoning_match = re.search(
            r"<reasoning>(.*?)</reasoning>", reasoning_and_intent, re.DOTALL
        )
        reasoning = reasoning_match.group(1).strip() if reasoning_match else ""
    
        # Similarly, also extract the `intent`.
        intent_match = re.search(r"<intent>(.*?)</intent>", reasoning_and_intent, re.DOTALL)
        intent = intent_match.group(1).strip() if intent_match else ""
    
        # Check if the model's prediction is correct.
        correct = actual_intent.strip() == intent.strip()
    
        # Return the reasoning, intent, correct, and usage.
        return reasoning, intent, correct, usage

    Analicemos las ediciones que hemos realizado:

    • Agregamos el actual_intent de nuestros casos de prueba al método classify_support_request y configuramos una comparación para evaluar si la clasificación de intención de Claude coincide con nuestra clasificación de intención de referencia.
    • Extrajimos estadísticas de uso para la llamada a la API para calcular el costo basado en los tokens de entrada y salida utilizados

    Ejecuta tu evaluación

    Una evaluación adecuada requiere umbrales y puntos de referencia claros para determinar qué es un buen resultado. El script anterior nos da los valores en tiempo de ejecución para precisión, tiempo de respuesta y costo por clasificación, pero aún necesitaríamos umbrales claramente establecidos. Por ejemplo:

    • Precisión: 95% (de 100 pruebas)
    • Costo por clasificación: Reducción del 50% en promedio (en 100 pruebas) del método de enrutamiento actual

    Tener estos umbrales te permite decir de manera rápida y fácil a escala, y con empirismo imparcial, qué método es mejor para ti y qué cambios podrían necesitar hacerse para adaptarse mejor a tus requisitos.


    Mejora el rendimiento

    En escenarios complejos, puede ser útil considerar estrategias adicionales para mejorar el rendimiento más allá de las técnicas estándar de ingeniería de prompts y las estrategias de implementación de barreras de seguridad. Aquí hay algunos escenarios comunes:

    Usa una jerarquía taxonómica para casos con 20+ categorías de intención

    A medida que crece el número de clases, el número de ejemplos requeridos también se expande, lo que potencialmente hace que el prompt sea difícil de manejar. Como alternativa, puedes considerar implementar un sistema de clasificación jerárquica usando una mezcla de clasificadores.

    1. Organiza tus intenciones en una estructura de árbol taxonómico.
    2. Crea una serie de clasificadores en cada nivel del árbol, habilitando un enfoque de enrutamiento en cascada.

    Por ejemplo, podrías tener un clasificador de nivel superior que categorice ampliamente los tickets en "Problemas técnicos", "Preguntas de facturación" e "Consultas generales". Cada una de estas categorías puede tener entonces su propio subclasificador para refinar aún más la clasificación.

    • Pros - mayor matiz y precisión: Puedes crear diferentes prompts para cada ruta padre, lo que permite una clasificación más específica y contextual. Esto puede llevar a una mayor precisión y un manejo más matizado de las solicitudes de los clientes.

    • Contras - mayor latencia: Ten en cuenta que múltiples clasificadores pueden llevar a una mayor latencia, y recomendamos implementar este enfoque con nuestro modelo más rápido, Haiku.

    Usa bases de datos vectoriales y recuperación por búsqueda de similitud para manejar tickets altamente variables

    A pesar de que proporcionar ejemplos es la forma más efectiva de mejorar el rendimiento, si las solicitudes de soporte son muy variables, puede ser difícil incluir suficientes ejemplos en un solo prompt.

    En este escenario, podrías emplear una base de datos vectorial para realizar búsquedas de similitud desde un conjunto de datos de ejemplos y recuperar los ejemplos más relevantes para una consulta dada.

    Este enfoque, descrito en detalle en nuestra receta de clasificación, ha demostrado mejorar el rendimiento del 71% de precisión al 93% de precisión.

    Considera específicamente los casos extremos esperados

    Aquí hay algunos escenarios donde Claude puede clasificar incorrectamente los tickets (puede haber otros que sean únicos para tu situación). En estos escenarios, considera proporcionar instrucciones explícitas o ejemplos en el prompt de cómo Claude debe manejar el caso extremo:


    Integra Claude en tu flujo de trabajo de soporte más amplio

    Una integración adecuada requiere que tomes algunas decisiones sobre cómo tu script de enrutamiento de tickets basado en Claude encaja en la arquitectura de tu sistema de enrutamiento de tickets más amplio. Hay dos formas en que podrías hacer esto:

    • Basado en push: El sistema de tickets de soporte que estás usando (p. ej., Zendesk) activa tu código enviando un evento webhook a tu servicio de enrutamiento, que luego clasifica la intención y la enruta.
      • Este enfoque es más escalable en la web, pero necesitas exponer un endpoint público.
    • Basado en pull: Tu código extrae los últimos tickets según un horario determinado y los enruta en el momento de la extracción.
      • Este enfoque es más fácil de implementar, pero podría hacer llamadas innecesarias al sistema de tickets de soporte cuando la frecuencia de extracción es demasiado alta o podría ser excesivamente lento cuando la frecuencia de extracción es demasiado baja.

    Para cualquiera de estos enfoques, necesitas envolver tu script en un servicio. La elección del enfoque depende de qué APIs proporciona tu sistema de tickets de soporte.


    Receta de clasificación

    Visita nuestra receta de clasificación para obtener más código de ejemplo y orientación detallada sobre evaluación.

    Claude Console

    Comienza a construir y evaluar tu flujo de trabajo en la Claude Console.