Loading...
    • Entwicklerleitfaden
    • API-Referenz
    • MCP
    • Ressourcen
    • Versionshinweise
    Search...
    ⌘K
    Ressourcen
    ÜbersichtGlossarSystem-Prompts
    ÜbersichtTicket-RoutingKundenservice-AgentContent-ModerationRechtliche Zusammenfassung
    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
    Anwendungsfälle

    Ticket-Routing

    Diese Anleitung zeigt, wie Sie Claudes fortgeschrittene Fähigkeiten zum Verständnis natürlicher Sprache nutzen können, um Kundenservice-Tickets in großem Maßstab basierend auf Kundenabsicht, Dringlichkeit, Priorisierung, Kundenprofil und mehr zu klassifizieren.
    • Entscheiden Sie, ob Sie Claude für Ticket-Routing verwenden sollten
    • Erstellen und bereitstellen Sie Ihren LLM-Support-Workflow
    • Verstehen Sie Ihren aktuellen Support-Ansatz
    • Definieren Sie Kategorien der Benutzerabsicht
    • Etablieren Sie Erfolgskriterien
    • Wählen Sie das richtige Claude-Modell
    • Erstellen Sie einen starken Prompt
    • Stellen Sie Ihren Prompt bereit
    • Evaluieren Sie Ihren Prompt
    • Erstellen Sie eine Evaluierungsfunktion
    • Führen Sie Ihre Evaluierung durch
    • Verbessern Sie die Leistung
    • Verwenden Sie eine taxonomische Hierarchie für Fälle mit 20+ Intent-Kategorien
    • Verwenden Sie Vektor-Datenbanken und Ähnlichkeitssuche-Abruf, um hochvariable Tickets zu handhaben
    • Berücksichtigen Sie speziell erwartete Grenzfälle
    • Integrieren Sie Claude in Ihren größeren Support-Workflow

    Entscheiden Sie, ob Sie Claude für Ticket-Routing verwenden sollten

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


    Erstellen und bereitstellen Sie Ihren LLM-Support-Workflow

    Verstehen Sie Ihren aktuellen Support-Ansatz

    Bevor Sie sich in die Automatisierung stürzen, ist es entscheidend, Ihr bestehendes Ticketing-System zu verstehen. Beginnen Sie damit, zu untersuchen, wie Ihr Support-Team derzeit Ticket-Routing handhabt.

    Berücksichtigen Sie Fragen wie:

    • Welche Kriterien werden verwendet, um zu bestimmen, welche SLA/welches Service-Angebot angewendet wird?
    • Wird Ticket-Routing verwendet, um zu bestimmen, welche Support-Stufe oder welcher Produktspezialist ein Ticket erhält?
    • Gibt es bereits automatisierte Regeln oder Workflows? In welchen Fällen schlagen sie fehl?
    • Wie werden Grenzfälle oder mehrdeutige Tickets behandelt?
    • Wie priorisiert das Team Tickets?

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

    Definieren Sie Kategorien der Benutzerabsicht

    Eine gut definierte Liste von Benutzerabsicht-Kategorien ist entscheidend für eine genaue Support-Ticket-Klassifizierung mit Claude. Claudes Fähigkeit, Tickets effektiv in Ihrem System zu routen, ist direkt proportional zu der Qualität der Definition Ihrer Systemkategorien.

    Hier sind einige Beispiel-Benutzerabsicht-Kategorien und Unterkategorien.

    Zusätzlich zur Absicht kann Ticket-Routing und Priorisierung auch durch andere Faktoren wie Dringlichkeit, Kundentyp, SLAs oder Sprache beeinflusst werden. Berücksichtigen Sie unbedingt andere Routing-Kriterien beim Aufbau Ihres automatisierten Routing-Systems.

    Etablieren Sie Erfolgskriterien

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

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

    Hier sind einige allgemeine 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 Ticket-Routing befunden, da es das schnellste und kostengünstigste Modell in der Claude 4-Familie ist und gleichzeitig hervorragende Ergebnisse liefert. Wenn Ihr Klassifizierungsproblem tiefes Fachwissen oder eine große Anzahl von Absicht-Kategorien 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, erforderlichem Fachwissen oder anderen relevanten Faktoren.

    Schreiben wir einen Ticket-Klassifizierungs-Prompt. Unser anfänglicher Prompt sollte den Inhalt der Benutzeranfrage enthalten und sowohl die Begründung als auch die Absicht zurückgeben.

    Versuchen Sie den Prompt-Generator auf der Claude Console, um Claude einen ersten Entwurf schreiben zu lassen.

    Hier ist ein Beispiel für einen Ticket-Routing-Klassifizierungs-Prompt:

    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 Schlüsselkomponenten dieses Prompts aufschlüsseln:

    • Wir verwenden Python f-Strings, um die Prompt-Vorlage zu erstellen, die es ermöglicht, dass ticket_contents in die <request>-Tags eingefügt wird.
    • Wir geben Claude eine klar definierte Rolle als Klassifizierungssystem, das den Ticket-Inhalt sorgfältig analysiert, um die Kernabsicht und Bedürfnisse des Kunden zu bestimmen.
    • Wir weisen Claude die richtige Ausgabeformatierung an, in diesem Fall seine Begründung und Analyse in <reasoning>-Tags bereitzustellen, gefolgt von der entsprechenden Klassifizierungsbezeichnung in <intent>-Tags.
    • Wir geben die gültigen Absicht-Kategorien an: "Support, Feedback, Complaint", "Order Tracking" und "Refund/Exchange".
    • Wir fügen einige Beispiele (auch bekannt als Few-Shot-Prompting) ein, um zu zeigen, wie die Ausgabe formatiert werden sollte, was 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 Absicht separat aus der Ausgabe zu extrahieren. Dies ermöglicht es uns, gezielte nächste Schritte im Ticket-Routing-Workflow zu erstellen, wie z.B. die Verwendung nur der Absicht, um zu entscheiden, an wen das Ticket weitergeleitet werden soll.

    Stellen Sie Ihren Prompt bereit

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

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

    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

    Dieser Code:

    • Importiert die Anthropic-Bibliothek und erstellt eine Client-Instanz mit Ihrem API-Schlüssel.
    • Definiert eine classify_support_request-Funktion, die einen ticket_contents-String annimmt.
    • Sendet die ticket_contents an Claude zur Klassifizierung mit dem classification_prompt
    • Gibt das reasoning und die intent des Modells zurück, die aus der Antwort extrahiert werden.

    Da wir warten müssen, bis der gesamte Reasoning- und Intent-Text generiert ist, bevor wir ihn analysieren, setzen wir stream=False (die Standardeinstellung).


    Evaluieren Sie Ihren Prompt

    Prompting erfordert oft Tests und Optimierung, um produktionsreif zu sein. Um die Bereitschaft Ihrer Lösung zu bestimmen, evaluieren Sie die Leistung basierend auf den Erfolgskriterien und Schwellwerten, die Sie zuvor etabliert haben.

    Um Ihre Evaluierung durchzuführen, benötigen Sie Testfälle, um sie auszuführen. Der Rest dieser Anleitung geht davon aus, dass Sie bereits Ihre Testfälle entwickelt haben.

    Erstellen Sie eine Evaluierungsfunktion

    Unsere Beispiel-Evaluierung für diese Anleitung misst Claudes Leistung entlang von drei Schlüsselmetriken:

    • Genauigkeit
    • Kosten pro Klassifizierung

    Sie müssen Claude möglicherweise auf anderen Achsen bewerten, je nachdem, welche Faktoren für Sie wichtig sind.

    Um dies zu bewerten, müssen wir zunächst das Skript, das wir geschrieben haben, 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 Kostenberechnungs- und Zeitmessfunktionalität hinzufügen.

    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

    Lassen Sie uns die Änderungen aufschlüsseln, die wir vorgenommen haben:

    • Wir haben die actual_intent aus unseren Testfällen in die classify_support_request-Methode hinzugefügt und einen Vergleich eingerichtet, um zu bewerten, ob Claudes Intent-Klassifizierung unserer Golden-Intent-Klassifizierung entspricht.
    • Wir haben Nutzungsstatistiken für den API-Aufruf extrahiert, um die Kosten basierend auf verwendeten Input- und Output-Tokens zu berechnen

    Führen Sie Ihre Evaluierung durch

    Eine ordnungsgemäße Evaluierung erfordert klare Schwellwerte 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 müssen immer noch klar etablierte Schwellwerte haben. Zum Beispiel:

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

    Mit diesen Schwellwerten können Sie schnell und einfach im großen Maßstab und mit unparteiischem Empirismus feststellen, welche Methode für Sie am besten ist und welche Änderungen möglicherweise vorgenommen werden müssen, um Ihre Anforderungen besser zu erfüllen.


    Verbessern Sie die Leistung

    In komplexen Szenarien kann es hilfreich sein, zusätzliche Strategien zu erwägen, um die Leistung über Standard-Prompt-Engineering-Techniken & Guardrail-Implementierungsstrategien hinaus zu verbessern. Hier sind einige häufige Szenarien:

    Verwenden Sie eine taxonomische Hierarchie für Fälle mit 20+ Intent-Kategorien

    Mit zunehmender Anzahl von Klassen wächst auch die Anzahl der erforderlichen Beispiele, was den Prompt möglicherweise unhandlich macht. Alternativ können Sie ein hierarchisches Klassifizierungssystem mit einer Mischung von Klassifizierern implementieren.

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

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

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

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

    Verwenden Sie Vektor-Datenbanken und Ähnlichkeitssuche-Abruf, um hochvariable Tickets zu handhaben

    Obwohl das Bereitstellen von Beispielen die effektivste Methode zur Verbesserung der Leistung ist, kann es schwierig sein, genug Beispiele in einen einzelnen Prompt einzubeziehen, wenn Support-Anfragen hochvariabel sind.

    In diesem Szenario könnten Sie eine Vektor-Datenbank verwenden, um Ähnlichkeitssuchen aus einem Datensatz von Beispielen durchzuführen und die relevantesten Beispiele für eine bestimmte Abfrage abzurufen.

    Dieser Ansatz, der ausführlich in unserem Klassifizierungs-Rezept beschrieben ist, hat sich als Verbesserung der Leistung von 71% Genauigkeit auf 93% Genauigkeit erwiesen.

    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 handhaben sollte:


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

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

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

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


    Classification cookbook

    Besuchen Sie unser Classification Cookbook für weitere Beispielcodes und detaillierte Eval-Anleitung.

    Claude Console

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