Loading...
  • Erstellen
  • Admin
  • Modelle & Preise
  • Client-SDKs
  • API-Referenz
Search...
⌘K
Log in
Ticket-Routing
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
Erstellen/Anwendungsfälle

Ticket-Routing

Dieser Leitfaden zeigt, wie Sie Claudes fortgeschrittene Fähigkeiten zum Verstehen natürlicher Sprache nutzen können, um Support-Tickets im großen Maßstab basierend auf Kundenabsicht, Dringlichkeit, Priorisierung, Kundenprofil und mehr zu klassifizieren.

Was this page helpful?

  • Entscheiden Sie, ob Sie Claude für das Ticket-Routing verwenden möchten
  • Erstellen und implementieren Sie Ihren LLM-Support-Workflow
  • Verstehen Sie Ihren aktuellen Support-Ansatz
  • Definieren Sie Benutzerabsichtskategorien
  • Erfolgskriterien festlegen
  • Wählen Sie das richtige Claude-Modell
  • Erstellen Sie einen starken Prompt
  • Implementieren Sie Ihren Prompt
  • Evaluieren Sie Ihren Prompt
  • Erstellen Sie eine Evaluierungsfunktion
  • Führen Sie Ihre Evaluierung durch
  • Leistung verbessern
  • Verwenden Sie eine taxonomische Hierarchie für Fälle mit 20+ Absichtskategorien
  • Verwenden Sie Vektordatenbanken und Ähnlichkeitssuche-Retrieval für hochvariable Tickets
  • Berücksichtigen Sie speziell erwartete Grenzfälle
  • Integrieren Sie Claude in Ihren größeren Support-Workflow

Entscheiden Sie, ob Sie Claude für das Ticket-Routing verwenden möchten

Hier sind einige wichtige Indikatoren dafür, dass Sie ein LLM wie Claude anstelle traditioneller ML-Ansätze für Ihre Klassifizierungsaufgabe verwenden sollten:


Erstellen und implementieren Sie Ihren LLM-Support-Workflow

Verstehen Sie Ihren aktuellen Support-Ansatz

Bevor Sie mit der Automatisierung beginnen, ist es entscheidend, Ihr bestehendes Ticketsystem zu verstehen. Beginnen Sie damit, zu untersuchen, wie Ihr Support-Team derzeit das Ticket-Routing handhabt.

Berücksichtigen Sie Fragen wie:

  • Welche Kriterien werden verwendet, um zu bestimmen, welches SLA/Serviceangebot angewendet wird?
  • Wird Ticket-Routing verwendet, um zu bestimmen, an welche Support-Ebene oder welchen Produktspezialisten ein Ticket weitergeleitet wird?
  • Gibt es bereits automatisierte Regeln oder Workflows? In welchen Fällen versagen diese?
  • Wie werden Grenzfälle oder mehrdeutige Tickets behandelt?
  • Wie priorisiert das Team Tickets?

Je mehr Sie darüber wissen, wie Menschen bestimmte Fälle behandeln, desto besser können Sie mit Claude zusammenarbeiten, um die Aufgabe zu erledigen.

Definieren Sie Benutzerabsichtskategorien

Eine gut definierte Liste von Benutzerabsichtskategorien ist entscheidend für eine genaue Support-Ticket-Klassifizierung mit Claude. Claudes Fähigkeit, Tickets effektiv in Ihrem System weiterzuleiten, ist direkt proportional dazu, wie gut die Kategorien Ihres Systems definiert sind.

Hier sind einige Beispiele für Benutzerabsichtskategorien und Unterkategorien.

Neben der Absicht können Ticket-Routing und Priorisierung auch von anderen Faktoren wie Dringlichkeit, Kundentyp, SLAs oder Sprache beeinflusst werden. Stellen Sie sicher, dass Sie andere Routing-Kriterien beim Aufbau Ihres automatisierten Routing-Systems berücksichtigen.

Erfolgskriterien festlegen

Arbeiten Sie mit Ihrem Support-Team zusammen, um klare Erfolgskriterien zu definieren mit messbaren Benchmarks, Schwellenwerten und Zielen.

Hier sind einige Standardkriterien und Benchmarks bei der Verwendung von LLMs für das Support-Ticket-Routing:

Hier sind einige häufige Erfolgskriterien, die unabhängig davon nützlich sein können, ob ein LLM verwendet wird:

Wählen Sie das richtige Claude-Modell

Die Wahl des Modells hängt von den Kompromissen zwischen Kosten, Genauigkeit und Antwortzeit ab.

Viele Kunden haben claude-haiku-4-5-20251001 als ideales Modell für das Ticket-Routing gefunden, da es das schnellste und kostengünstigste Modell der Claude 4-Familie ist und dabei hervorragende Ergebnisse liefert. Wenn Ihr Klassifizierungsproblem tiefes Fachwissen oder eine große Anzahl von Absichtskategorien mit komplexem Reasoning erfordert, können Sie sich für das größere Sonnet-Modell entscheiden.

Erstellen Sie einen starken Prompt

Ticket-Routing ist eine Art Klassifizierungsaufgabe. Claude analysiert den Inhalt eines Support-Tickets und klassifiziert es in vordefinierte Kategorien basierend auf dem Problemtyp, der Dringlichkeit, dem erforderlichen Fachwissen oder anderen relevanten Faktoren.

Lassen Sie uns einen Ticket-Klassifizierungs-Prompt schreiben. Unser erster Prompt sollte den Inhalt der Benutzeranfrage enthalten und sowohl die Begründung als auch die Absicht zurückgeben.

Probieren Sie den Prompt-Generator auf der Claude Console aus, um Claude einen ersten Entwurf für Sie schreiben zu lassen.

Hier ist ein Beispiel-Prompt für die Ticket-Routing-Klassifizierung:

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.
        """

Lassen Sie uns die wichtigsten Komponenten dieses Prompts aufschlüsseln:

  • Wir verwenden Python-f-Strings, um die Prompt-Vorlage zu erstellen, sodass der ticket_contents in die <request>-Tags eingefügt werden kann.
  • Wir geben Claude eine klar definierte Rolle als Klassifizierungssystem, das den Ticket-Inhalt sorgfältig analysiert, um die Kernabsicht und die Bedürfnisse des Kunden zu bestimmen.
  • Wir weisen Claude auf die richtige Ausgabeformatierung hin, in diesem Fall seine Begründung und Analyse innerhalb von <reasoning>-Tags bereitzustellen, gefolgt von dem entsprechenden Klassifizierungslabel innerhalb von <intent>-Tags.
  • Wir geben die gültigen Absichtskategorien an: "Support, Feedback, Complaint", "Order Tracking" und "Refund/Exchange".
  • Wir fügen einige Beispiele (auch bekannt als Few-Shot-Prompting) ein, um zu veranschaulichen, wie die Ausgabe formatiert werden soll, was die Genauigkeit und Konsistenz verbessert.

Der Grund, warum wir möchten, dass Claude seine Antwort in verschiedene XML-Tag-Abschnitte aufteilt, ist, dass wir reguläre Ausdrücke verwenden können, um die Begründung und die Absicht separat aus der Ausgabe zu extrahieren. Dies ermöglicht es uns, gezielte nächste Schritte im Ticket-Routing-Workflow zu erstellen, z.B. nur die Absicht zu verwenden, um zu entscheiden, an welche Person das Ticket weitergeleitet werden soll.

Implementieren Sie Ihren Prompt

Es ist schwer zu wissen, wie gut Ihr Prompt funktioniert, ohne ihn in einer Test-Produktionsumgebung zu implementieren und Evaluierungen durchzuführen.

Lassen Sie uns die Implementierungsstruktur aufbauen. Beginnen Sie damit, die Methodensignatur für den Aufruf von Claude zu definieren. Wir nehmen die Methode, die wir bereits begonnen haben zu schreiben, die ticket_contents als Eingabe hat, und geben jetzt ein Tupel aus reasoning und intent als Ausgabe zurück. Wenn Sie eine bestehende Automatisierung mit traditionellem ML haben, sollten Sie stattdessen dieser Methodensignatur folgen.

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

Dieser Code:

  • Erstellt eine Client-Instanz mit Ihrem API-Schlüssel.
  • Definiert eine classify_support_request-Funktion, die einen ticket_contents-String entgegennimmt.
  • Sendet den ticket_contents zur Klassifizierung an Claude unter Verwendung des classification_prompt
  • Gibt das reasoning und den intent des Modells zurück, die aus der Antwort extrahiert wurden.

Da wir warten müssen, bis der gesamte Begründungs- und Absichtstext generiert wurde, bevor wir ihn parsen, setzen wir stream=False (der Standard).


Evaluieren Sie Ihren Prompt

Prompting erfordert oft Tests und Optimierungen, bevor es produktionsreif ist. Um die Bereitschaft Ihrer Lösung zu bestimmen, bewerten Sie die Leistung anhand der Erfolgskriterien und Schwellenwerte, die Sie zuvor festgelegt haben.

Um Ihre Evaluierung durchzuführen, benötigen Sie Testfälle, auf denen Sie sie ausführen können. Der Rest dieses Leitfadens setzt voraus, dass Sie bereits Ihre Testfälle entwickelt haben.

Erstellen Sie eine Evaluierungsfunktion

Unsere Beispielevaluierung für diesen Leitfaden misst Claudes Leistung anhand von drei Schlüsselmetriken:

  • Genauigkeit
  • Kosten pro Klassifizierung

Möglicherweise müssen Sie Claude je nach den für Sie wichtigen Faktoren auf anderen Achsen bewerten.

Um dies zu beurteilen, müssen wir zunächst das von uns geschriebene Skript modifizieren und eine Funktion hinzufügen, um die vorhergesagte Absicht mit der tatsächlichen Absicht zu vergleichen und den Prozentsatz der korrekten Vorhersagen zu berechnen. Wir müssen auch Kostenkalkulations- und Zeitmessungsfunktionalität hinzufügen.

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

Lassen Sie uns die vorgenommenen Änderungen aufschlüsseln:

  • Wir haben den actual_intent aus unseren Testfällen in die classify_support_request-Methode eingefügt und einen Vergleich eingerichtet, um zu beurteilen, ob Claudes Absichtsklassifizierung mit unserer goldenen Absichtsklassifizierung übereinstimmt.
  • Wir haben Nutzungsstatistiken für den API-Aufruf extrahiert, um die Kosten basierend auf verwendeten Eingabe- und Ausgabe-Tokens zu berechnen.

Führen Sie Ihre Evaluierung durch

Eine ordnungsgemäße Evaluierung erfordert klare Schwellenwerte und Benchmarks, um zu bestimmen, was ein gutes Ergebnis ist. Das obige Skript gibt uns die Laufzeitwerte für Genauigkeit, Antwortzeit und Kosten pro Klassifizierung, aber wir benötigen noch klar festgelegte Schwellenwerte. Zum Beispiel:

  • Genauigkeit: 95% (von 100 Tests)
  • Kosten pro Klassifizierung: 50% Reduzierung im Durchschnitt (über 100 Tests) gegenüber der aktuellen Routing-Methode

Diese Schwellenwerte ermöglichen es Ihnen, schnell und einfach im großen Maßstab und mit unparteiischer Empirie zu erkennen, welche Methode für Sie am besten geeignet ist und welche Änderungen vorgenommen werden müssen, um Ihre Anforderungen besser zu erfüllen.


Leistung verbessern

In komplexen Szenarien kann es hilfreich sein, zusätzliche Strategien zu berücksichtigen, um die Leistung über standardmäßige Prompt-Engineering-Techniken und Strategien zur Implementierung von Guardrails hinaus zu verbessern. Hier sind einige häufige Szenarien:

Verwenden Sie eine taxonomische Hierarchie für Fälle mit 20+ Absichtskategorien

Mit zunehmender Anzahl von Klassen wächst auch die Anzahl der erforderlichen Beispiele, was den Prompt möglicherweise unhandlich macht. Als Alternative können Sie die Implementierung eines hierarchischen Klassifizierungssystems mit einer Mischung von Klassifikatoren in Betracht ziehen.

  1. Organisieren Sie Ihre Absichten in einer taxonomischen Baumstruktur.
  2. Erstellen Sie eine Reihe von Klassifikatoren auf jeder Ebene des Baums, um einen kaskadierenden Routing-Ansatz zu ermöglichen.

Zum Beispiel könnten Sie einen Top-Level-Klassifikator haben, der Tickets grob in "Technische Probleme", "Abrechnungsfragen" und "Allgemeine Anfragen" kategorisiert. Jede dieser Kategorien kann dann ihren eigenen Unterklassifikator haben, um die Klassifizierung weiter zu verfeinern.

  • Vorteile - größere Nuancierung und Genauigkeit: Sie können verschiedene Prompts für jeden übergeordneten Pfad erstellen, was eine gezieltere und kontextspezifischere Klassifizierung ermöglicht. Dies kann zu verbesserter Genauigkeit und einer nuancierteren Behandlung von Kundenanfragen führen.

  • Nachteile - erhöhte Latenz: Beachten Sie, dass mehrere Klassifikatoren zu erhöhter Latenz führen können, und wir empfehlen, diesen Ansatz mit unserem schnellsten Modell, Haiku, zu implementieren.

Verwenden Sie Vektordatenbanken und Ähnlichkeitssuche-Retrieval für hochvariable Tickets

Obwohl das Bereitstellen von Beispielen der effektivste Weg zur Leistungsverbesserung ist, kann es schwierig sein, genügend Beispiele in einem einzigen Prompt einzuschließen, wenn Support-Anfragen sehr variabel sind.

In diesem Szenario könnten Sie eine Vektordatenbank verwenden, um Ähnlichkeitssuchen aus einem Datensatz von Beispielen durchzuführen und die relevantesten Beispiele für eine gegebene Anfrage abzurufen.

Dieser Ansatz, der in unserem Klassifizierungs-Cookbook detailliert beschrieben wird, hat gezeigt, dass er die Leistung von 71% Genauigkeit auf 93% Genauigkeit verbessert.

Berücksichtigen Sie speziell erwartete Grenzfälle

Hier sind einige Szenarien, in denen Claude Tickets möglicherweise falsch klassifiziert (es kann andere geben, die für Ihre Situation einzigartig sind). In diesen Szenarien sollten Sie explizite Anweisungen oder Beispiele im Prompt bereitstellen, wie Claude den Grenzfall behandeln soll:


Integrieren Sie Claude in Ihren größeren Support-Workflow

Eine ordnungsgemäße Integration erfordert, dass Sie einige Entscheidungen darüber treffen, wie Ihr Claude-basiertes Ticket-Routing-Skript in die Architektur Ihres größeren Ticket-Routing-Systems passt. Es gibt zwei Möglichkeiten, dies zu tun:

  • Push-basiert: Das von Ihnen verwendete Support-Ticket-System (z.B. Zendesk) löst Ihren Code aus, indem es ein Webhook-Ereignis an Ihren Routing-Service sendet, der dann die Absicht klassifiziert und weiterleitet.
    • Dieser Ansatz ist web-skalierbarer, erfordert aber, dass Sie einen öffentlichen Endpunkt bereitstellen.
  • Pull-basiert: Ihr Code ruft die neuesten Tickets basierend auf einem bestimmten Zeitplan ab und leitet sie zum Abrufzeitpunkt weiter.
    • Dieser Ansatz ist einfacher zu implementieren, kann aber unnötige Aufrufe an das Support-Ticket-System machen, wenn die Abrufhäufigkeit zu hoch ist, oder kann übermäßig langsam sein, wenn die Abrufhäufigkeit zu niedrig ist.

Für beide Ansätze müssen Sie Ihr Skript in einen Service einbetten. Die Wahl des Ansatzes hängt davon ab, welche APIs Ihr Support-Ticketing-System bereitstellt.


Klassifizierungs-Cookbook

Besuchen Sie unser Klassifizierungs-Cookbook für mehr Beispielcode und detaillierte Evaluierungsanleitungen.

Claude Console

Beginnen Sie mit dem Aufbau und der Evaluierung Ihres Workflows auf der Claude Console.