Loading...
    • Guia do Desenvolvedor
    • Referência da API
    • MCP
    • Recursos
    • Notas de lançamento
    Search...
    ⌘K
    Recursos
    Visão geralGlossárioPrompts do sistema
    Visão geralRoteamento de ticketsAgente de suporte ao clienteModeração de conteúdoResumo jurídico
    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
    • Catalog
    • 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
    • Catalog
    • 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

    Roteamento de tickets

    Este guia apresenta como aproveitar as capacidades avançadas de compreensão de linguagem natural do Claude para classificar tickets de suporte ao cliente em escala com base na intenção do cliente, urgência, priorização, perfil do cliente e muito mais.

    Defina se deve usar Claude para roteamento de tickets

    Aqui estão alguns indicadores-chave de que você deve usar um LLM como Claude em vez de abordagens tradicionais de ML para sua tarefa de classificação:

    • Defina se deve usar Claude para roteamento de tickets
    • Construa e implante seu fluxo de trabalho de suporte LLM
    • Entenda sua abordagem de suporte atual
    • Defina categorias de intenção do usuário
    • Estabeleça critérios de sucesso
    • Escolha o modelo Claude certo
    • Construa um prompt forte
    • Implante seu prompt
    • Avalie seu prompt
    • Construa uma função de avaliação
    • Execute sua avaliação
    • Melhore o desempenho
    • Use uma hierarquia taxonômica para casos com 20+ categorias de intenção
    • Use bancos de dados vetoriais e busca de similaridade de recuperação para lidar com tickets altamente variáveis
    • Considere especificamente os casos extremos esperados
    • Integre Claude em seu fluxo de trabalho de suporte maior

    Construa e implante seu fluxo de trabalho de suporte LLM

    Entenda sua abordagem de suporte atual

    Antes de mergulhar na automação, é crucial entender seu sistema de ticketing existente. Comece investigando como sua equipe de suporte atualmente lida com o roteamento de tickets.

    Considere perguntas como:

    • Quais critérios são usados para determinar qual SLA/oferta de serviço é aplicada?
    • O roteamento de tickets é usado para determinar qual nível de suporte ou especialista em produto um ticket vai?
    • Existem regras ou fluxos de trabalho automatizados já em vigor? Em quais casos eles falham?
    • Como os casos extremos ou tickets ambíguos são tratados?
    • Como a equipe prioriza os tickets?

    Quanto mais você souber sobre como os humanos lidam com certos casos, melhor você será capaz de trabalhar com Claude para fazer a tarefa.

    Defina categorias de intenção do usuário

    Uma lista bem definida de categorias de intenção do usuário é crucial para classificação precisa de tickets de suporte com Claude. A capacidade do Claude de rotear tickets efetivamente dentro de seu sistema é diretamente proporcional ao quão bem definidas estão as categorias do seu sistema.

    Aqui estão algumas categorias e subcategorias de intenção do usuário de exemplo.

    Além da intenção, o roteamento e priorização de tickets também podem ser influenciados por outros fatores, como urgência, tipo de cliente, SLAs ou idioma. Certifique-se de considerar outros critérios de roteamento ao construir seu sistema de roteamento automatizado.

    Estabeleça critérios de sucesso

    Trabalhe com sua equipe de suporte para definir critérios de sucesso claros com benchmarks, limites e objetivos mensuráveis.

    Aqui estão alguns critérios e benchmarks padrão ao usar LLMs para roteamento de tickets de suporte:

    Aqui estão alguns critérios de sucesso comuns que podem ser úteis independentemente de um LLM ser usado:

    Escolha o modelo Claude certo

    A escolha do modelo depende dos trade-offs entre custo, precisão e tempo de resposta.

    Muitos clientes descobriram que claude-haiku-4-5-20251001 é um modelo ideal para roteamento de tickets, pois é o modelo mais rápido e mais econômico da família Claude 4, enquanto ainda oferece excelentes resultados. Se seu problema de classificação requer expertise profunda em assuntos ou um grande volume de categorias de intenção com raciocínio complexo, você pode optar pelo modelo Sonnet maior.

    Construa um prompt forte

    O roteamento de tickets é um tipo de tarefa de classificação. Claude analisa o conteúdo de um ticket de suporte e o classifica em categorias predefinidas com base no tipo de problema, urgência, expertise necessária ou outros fatores relevantes.

    Vamos escrever um prompt de classificação de tickets. Nosso prompt inicial deve conter o conteúdo da solicitação do usuário e retornar tanto o raciocínio quanto a intenção.

    Tente o gerador de prompt no Claude Console para ter Claude escrever um primeiro rascunho para você.

    Aqui está um exemplo de prompt de classificação de roteamento 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.
            """

    Vamos decompor os componentes-chave deste prompt:

    • Usamos f-strings do Python para criar o modelo de prompt, permitindo que ticket_contents seja inserido nas tags <request>.
    • Damos ao Claude um papel claramente definido como um sistema de classificação que analisa cuidadosamente o conteúdo do ticket para determinar a intenção e necessidades principais do cliente.
    • Instruímos Claude sobre formatação apropriada de saída, neste caso para fornecer seu raciocínio e análise dentro de tags <reasoning>, seguidas pelo rótulo de classificação apropriado dentro de tags <intent>.
    • Especificamos as categorias de intenção válidas: "Support, Feedback, Complaint", "Order Tracking" e "Refund/Exchange".
    • Incluímos alguns exemplos (também conhecidos como few-shot prompting) para ilustrar como a saída deve ser formatada, o que melhora a precisão e consistência.

    A razão pela qual queremos que Claude divida sua resposta em várias seções de tags XML é para que possamos usar expressões regulares para extrair separadamente o raciocínio e a intenção da saída. Isso nos permite criar próximos passos direcionados no fluxo de trabalho de roteamento de tickets, como usar apenas a intenção para decidir para qual pessoa rotear o ticket.

    Implante seu prompt

    É difícil saber como seu prompt funciona bem sem implantá-lo em um ambiente de produção de teste e executar avaliações.

    Vamos construir a estrutura de implantação. Comece definindo a assinatura do método para envolver nossa chamada ao Claude. Pegaremos o método que já começamos a escrever, que tem ticket_contents como entrada, e agora retornaremos uma tupla de reasoning e intent como saída. Se você tiver uma automação existente usando ML tradicional, você vai querer seguir essa assinatura de método.

    import anthropic
    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:

    • Importa a biblioteca Anthropic e cria uma instância de cliente usando sua chave de API.
    • Define uma função classify_support_request que recebe uma string ticket_contents.
    • Envia ticket_contents para Claude para classificação usando classification_prompt
    • Retorna o reasoning e intent do modelo extraído da resposta.

    Como precisamos esperar que todo o texto de raciocínio e intenção seja gerado antes de analisar, definimos stream=False (o padrão).


    Avalie seu prompt

    O prompting frequentemente requer testes e otimização para estar pronto para produção. Para determinar a prontidão de sua solução, avalie o desempenho com base nos critérios de sucesso e limites que você estabeleceu anteriormente.

    Para executar sua avaliação, você precisará de casos de teste para executá-la. O resto deste guia assume que você já desenvolveu seus casos de teste.

    Construa uma função de avaliação

    Nossa avaliação de exemplo para este guia mede o desempenho do Claude ao longo de três métricas-chave:

    • Precisão
    • Custo por classificação

    Você pode precisar avaliar Claude em outros eixos dependendo de quais fatores são importantes para você.

    Para avaliar isso, primeiro temos que modificar o script que escrevemos e adicionar uma função para comparar a intenção prevista com a intenção real e calcular a porcentagem de previsões corretas. Também temos que adicionar funcionalidade de cálculo de custo e medição de tempo.

    import anthropic
    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

    Vamos decompor as edições que fizemos:

    • Adicionamos actual_intent de nossos casos de teste ao método classify_support_request e configuramos uma comparação para avaliar se a classificação de intenção do Claude corresponde à nossa classificação de intenção dourada.
    • Extraímos estatísticas de uso para a chamada de API para calcular o custo com base nos tokens de entrada e saída usados

    Execute sua avaliação

    Uma avaliação adequada requer limites e benchmarks claros para determinar o que é um bom resultado. O script acima nos dará os valores de tempo de execução para precisão, tempo de resposta e custo por classificação, mas ainda precisaríamos de limites claramente estabelecidos. Por exemplo:

    • Precisão: 95% (de 100 testes)
    • Custo por classificação: Redução de 50% em média (em 100 testes) do método de roteamento atual

    Ter esses limites permite que você diga rápida e facilmente em escala, e com empirismo imparcial, qual método é melhor para você e quais mudanças podem precisar ser feitas para se adequar melhor aos seus requisitos.


    Melhore o desempenho

    Em cenários complexos, pode ser útil considerar estratégias adicionais para melhorar o desempenho além das técnicas padrão de engenharia de prompt & estratégias de implementação de guardrails. Aqui estão alguns cenários comuns:

    Use uma hierarquia taxonômica para casos com 20+ categorias de intenção

    Conforme o número de classes cresce, o número de exemplos necessários também se expande, potencialmente tornando o prompt incontrolável. Como alternativa, você pode considerar implementar um sistema de classificação hierárquica usando uma mistura de classificadores.

    1. Organize suas intenções em uma estrutura de árvore taxonômica.
    2. Crie uma série de classificadores em cada nível da árvore, permitindo uma abordagem de roteamento em cascata.

    Por exemplo, você pode ter um classificador de nível superior que categoriza amplamente os tickets em "Problemas Técnicos", "Perguntas de Faturamento" e "Consultas Gerais". Cada uma dessas categorias pode então ter seu próprio subclassificador para refinar ainda mais a classificação.

    • Prós - maior nuance e precisão: Você pode criar prompts diferentes para cada caminho pai, permitindo classificação mais direcionada e específica do contexto. Isso pode levar a melhor precisão e tratamento mais nuançado de solicitações de clientes.

    • Contras - latência aumentada: Esteja ciente de que múltiplos classificadores podem levar a latência aumentada, e recomendamos implementar essa abordagem com nosso modelo mais rápido, Haiku.

    Use bancos de dados vetoriais e busca de similaridade de recuperação para lidar com tickets altamente variáveis

    Apesar de fornecer exemplos ser a forma mais eficaz de melhorar o desempenho, se as solicitações de suporte forem altamente variáveis, pode ser difícil incluir exemplos suficientes em um único prompt.

    Neste cenário, você pode empregar um banco de dados vetorial para fazer buscas de similaridade a partir de um conjunto de dados de exemplos e recuperar os exemplos mais relevantes para uma determinada consulta.

    Esta abordagem, descrita em detalhes em nossa receita de classificação, foi mostrada para melhorar o desempenho de 71% de precisão para 93% de precisão.

    Considere especificamente os casos extremos esperados

    Aqui estão alguns cenários onde Claude pode classificar incorretamente tickets (pode haver outros que são únicos para sua situação). Nestes cenários, considere fornecer instruções explícitas ou exemplos no prompt de como Claude deve lidar com o caso extremo:


    Integre Claude em seu fluxo de trabalho de suporte maior

    A integração adequada requer que você tome algumas decisões sobre como seu script de roteamento de tickets baseado em Claude se encaixa na arquitetura de seu sistema de roteamento de tickets maior. Existem duas maneiras que você poderia fazer isso:

    • Baseado em push: O sistema de tickets de suporte que você está usando (por exemplo, Zendesk) dispara seu código enviando um evento webhook para seu serviço de roteamento, que então classifica a intenção e a roteia.
      • Esta abordagem é mais escalável na web, mas requer que você exponha um endpoint público.
    • Baseado em pull: Seu código puxa os tickets mais recentes com base em um cronograma determinado e os roteia no momento do pull.
      • Esta abordagem é mais fácil de implementar, mas pode fazer chamadas desnecessárias para o sistema de tickets de suporte quando a frequência de pull é muito alta ou pode ser excessivamente lenta quando a frequência de pull é muito baixa.

    Para qualquer uma dessas abordagens, você precisará envolver seu script em um serviço. A escolha da abordagem depende de quais APIs seu sistema de ticketing de suporte fornece.


    Livro de receitas de classificação

    Visite nosso livro de receitas de classificação para mais código de exemplo e orientação de avaliação detalhada.

    Claude Console

    Comece a construir e avaliar seu fluxo de trabalho no Claude Console.