티켓 라우팅

티켓 라우팅 (Ticket routing)

이 가이드에서는 클로드의 고급 자연어 이해 능력을 활용해 고객 지원 티켓을 규모에 맞게 분류하는 방법을 배울 수 있어요. 고객 의도, 긴급성, 우선순위, 고객 프로필 등을 기준으로 티켓을 라우팅하는 것이죠. 현재 지원 방식을 이해하고 의도 범주를 정의하며, 성공 기준을 세우고 배포·평가·개선하는 전체 과정을 차근히 살펴볼게요.

출처: 문서

본문

전제 조건 (Prerequisites)

  • 클로드 API 키와 Python SDK 설치
  • 기존 지원 티켓 시스템에 대한 접근과 친숙함
  • 테스트용 과거 지원 티켓 샘플 세트

티켓 라우팅에 클로드를 사용할지 결정하기

전통적인 ML 접근 대신 클로드 같은 LLM을 분류 작업에 써야 한다는 핵심 신호는 다음과 같아요:

전통적인 ML 프로세스는 방대한 레이블 데이터셋을 필요로 해요. 클로드의 사전 학습된 모델은 몇 십 개의 레이블 예시만으로도 티켓을 효과적으로 분류할 수 있어, 데이터 준비 시간과 비용을 크게 줄여요. 전통적인 ML 접근을 한번 구축하면 변경하는 것은 힘들고 데이터 집약적인 작업이에요. 반면 제품이나 고객 요구가 진화함에 따라, 클로드는 학습 데이터를 광범위하게 재레이블링하지 않고도 클래스 정의 변경이나 새 클래스에 쉽게 적응할 수 있어요. 전통적인 ML 모델은 비구조화 데이터에 종종 어려움을 겪고 광범위한 피처 엔지니어링이 필요해요. 클로드의 고급 언어 이해는 엄격한 온톨로지 구조에 의존하는 대신 콘텐츠와 컨텍스트를 기반으로 정확한 분류를 가능하게 해요. 전통적인 ML 접근은 종종 bag-of-words 모델이나 단순 패턴 매칭에 의존해요. 클로드는 클래스가 예시보다 조건으로 정의될 때 기본 규칙을 이해하고 적용하는 데 뛰어나요. 많은 전통적인 ML 모델은 의사 결정 과정에 대한 통찰을 거의 제공하지 않아요. 클로드는 분류 결정에 대해 인간이 읽을 수 있는 설명을 제공해 자동화 시스템에 대한 신뢰를 쌓고 필요하면 쉽게 적응하게 해요. 전통적인 ML 시스템은 이상치와 모호한 입력에 종종 어려움을 겪어 오분류하거나 catch-all 범주로 기본 설정하는 경우가 많아요. 클로드의 자연어 처리 능력은 지원 티켓의 컨텍스트와 뉘앙스를 더 잘 해석하게 해, 수동 개입이 필요한 오라우팅되거나 미분류된 티켓 수를 줄일 수 있어요. 전통적인 ML 접근은 지원하는 각 언어에 대해 별도 모델이나 광범위한 번역 프로세스가 필요해요. 클로드의 다국어 능력은 별도 모델이나 광범위한 번역 없이 다양한 언어의 티켓을 분류할 수 있게 해, 글로벌 고객 기반을 위한 지원을 간소화해요.

LLM 지원 워크플로우 구축 및 배포

현재 지원 접근 방식 이해하기

자동화 전에 기존 티켓 시스템을 이해하는 것이 중요해요. 먼저 지원 팀이 현재 티켓 라우팅을 어떻게 처리하는지 조사해 보세요.

다음 같은 질문을 고려해 보세요:

  • 어떤 기준으로 적용되는 SLA/서비스 제공이 결정되나요?
  • 티켓이 어느 지원 티어나 제품 전문가에게 가는지 결정하는 데 티켓 라우팅이 사용되나요?
  • 이미 자동화된 규칙이나 워크플로우가 있나요? 어떤 경우에 실패하나요?
  • 엣지 케이스나 모호한 티켓은 어떻게 처리되나요?
  • 팀은 티켓을 어떻게 우선순위를 매기나요?

인간이 특정 사례를 어떻게 처리하는지 많이 알수록 클로드와 더 잘 협력해 그 작업을 할 수 있어요.

사용자 의도 범주 정의하기

잘 정의된 사용자 의도 범주 목록은 클로드로 정확한 지원 티켓 분류에 중요해요. 시스템 안에서 클로드가 티켓을 효과적으로 라우팅하는 능력은 시스템의 범주가 얼마나 잘 정의되어 있는지에 정비례해요.

다음은 사용자 의도 범주와 하위 범주의 예시예요.

* 하드웨어 문제 * 소프트웨어 버그 * 호환성 문제 * 성능 문제 * 비밀번호 재설정 * 계정 접근 문제 * 청구 문의 * 구독 변경 * 기능 문의 * 제품 호환성 질문 * 가격 정보 * 가용성 문의 * 사용 방법 질문 * 기능 사용 지원 * 모범 사례 조언 * 문제 해결 안내 * 버그 리포트 * 기능 요청 * 일반 피드백 또는 제안 * 불만 * 주문 상태 문의 * 배송 정보 * 반품과 교환 * 주문 수정 * 설치 지원 * 업그레이드 요청 * 유지보수 일정 * 서비스 취소 * 데이터 프라이버시 문의 * 의심스러운 활동 리포트 * 보안 기능 지원 * 규제 준수 질문 * 서비스 약관 문의 * 법률 문서 요청 * 중요 시스템 장애 * 긴급 보안 문제 * 시간에 민감한 문제 * 제품 교육 요청 * 문서 문의 * 웨비나 또는 워크숍 정보 * 통합 지원 * API 사용 질문 * 타사 호환성 문의

의도 외에도 티켓 라우팅과 우선순위는 긴급성, 고객 유형, SLA, 언어 같은 다른 요인의 영향을 받을 수 있어요. 자동화 라우팅 시스템을 구축할 때 다른 라우팅 기준도 반드시 고려하세요.

성공 기준 세우기

지원 팀과 협력해 측정 가능한 벤치마크, 임계값, 목표로 명확한 성공 기준을 정의하세요.

LLM을 지원 티켓 라우팅에 사용할 때의 표준 기준과 벤치마크는 다음과 같아요:

이 지표는 클로드가 시간이 지나도 유사한 티켓을 얼마나 일관되게 분류하는지 평가해요. 라우팅 신뢰성 유지에 중요해요. 표준화된 입력 세트로 정기적으로 모델을 테스트하고 95% 이상의 일관성을 목표로 측정해요. 이는 클로드가 새 범주나 변화하는 티켓 패턴에 얼마나 빨리 적응하는지 측정해요. 새 티켓 유형을 도입하고 새 범주에서 모델이 만족스러운 정확도(예: >90%)를 달성하는 데 걸리는 시간을 측정해 테스트해요. 50–100개의 샘플 티켓 내 적응을 목표로 하세요. 이는 클로드가 여러 언어로 티켓을 정확히 라우팅하는 능력을 평가해요. 다양한 언어에 걸친 라우팅 정확도를 측정하며, 비주요 언어에서 정확도 저하가 5–10%를 넘지 않는 것을 목표로 해요. 이는 비정상적이거나 복잡한 티켓에서 클로드의 성능을 평가해요. 엣지 케이스 테스트 세트를 만들고 라우팅 정확도를 측정해, 이런 까다로운 입력에서 최소 80% 정확도를 목표로 해요. 이는 서로 다른 고객 인구 통계에 걸친 라우팅의 공정성을 측정해요. 잠재적 편향에 대해 라우팅 결정을 정기적으로 감사해, 모든 고객 그룹에서 일관된 라우팅 정확도(2–3% 내)를 목표로 해요. 토큰 수 최소화가 중요할 때, 이 기준은 클로드가 최소 컨텍스트로 얼마나 잘 수행하는지 평가해요. 다양한 컨텍스트 양으로 라우팅 정확도를 측정해, 티켓 제목과 간단한 설명만으로 90%+ 정확도를 목표로 해요. 이는 라우팅 결정에 대한 클로드의 설명 품질과 관련성을 평가해요. 인간 평가자가 설명을 척도(예: 1–5)로 점수를 매기고, 평균 4 이상을 목표로 해요.

LLM 사용 여부와 무관하게 유용할 수 있는 흔한 성공 기준은 다음과 같아요:

라우팅 정확도는 티켓이 처음에 적절한 팀이나 개인에게 올바르게 할당되는 빈도를 측정해요. 보통 총 티켓 중 올바르게 라우팅된 티켓의 비율로 측정해요. 업계 벤치마크는 종종 90–95% 정확도를 목표로 하지만, 지원 구조의 복잡성에 따라 다를 수 있어요. 이 지표는 티켓이 제출된 후 할당되는 속도를 추적해요. 더 빠른 할당 시간은 일반적으로 더 빠른 해결과 더 나은 고객 만족으로 이어져요. 최고 수준 시스템은 종종 평균 할당 시간 5분 미만을 달성하며, 많은 시스템이 거의 즉각적인 라우팅(LLM 구현으로 가능)을 목표로 해요. 재라우팅율은 초기 라우팅 후 티켓을 다시 할당해야 하는 빈도를 나타내요. 낮을수록 초기 라우팅이 더 정확함을 시사해요. 재라우팅율 10% 미만을 목표로 하고, 최고 성능 시스템은 5% 이하를 달성해요. 이는 고객과의 첫 상호작용 중 해결된 티켓의 비율을 측정해요. 높을수록 효율적인 라우팅과 준비된 지원 팀을 나타내요. 업계 벤치마크는 보통 70–75% 범위이며, 최고 성과자는 80% 이상을 달성해요. 평균 처리 시간은 티켓이 시작부터 끝까지 해결되는 데 걸리는 시간을 측정해요. 효율적인 라우팅은 이 시간을 크게 줄일 수 있어요. 벤치마크는 업계와 복잡성에 따라 크게 다르지만, 많은 조직이 중요하지 않은 이슈에 대해 평균 처리 시간을 24시간 미만으로 유지하는 것을 목표로 해요. 종종 상호작용 후 설문으로 측정되는 이 점수는 지원 프로세스에 대한 전반적인 고객 행복도를 반영해요. 효과적인 라우팅은 더 높은 만족도에 기여해요. CSAT 점수 90% 이상을 목표로 하고, 최고 성과자는 종종 95%+ 만족도를 달성해요. 이는 티켓을 더 높은 지원 티어로 에스컬레이션해야 하는 빈도를 측정해요. 낮은 에스컬레이션율은 종종 더 정확한 초기 라우팅을 나타내요. 에스컬레이션율 20% 미만을 지향하고, 최고 수준 시스템은 10% 이하를 달성해요. 이 지표는 라우팅 솔루션 구현 후 에이전트가 효과적으로 처리할 수 있는 티켓 수를 살펴봐요. 개선된 라우팅은 생산성을 높여야 해요. 에이전트당 일일 또는 시간당 해결된 티켓을 추적해, 새 라우팅 시스템 구현 후 10–20% 개선을 목표로 측정해요. 이는 라우팅 시스템에 들어가기 전에 셀프서비스 옵션으로 해결된 잠재 티켓의 비율을 측정해요. 높을수록 효과적인 사전 라우팅 트리아지를 나타내요. 20–30% 디플렉션율을 목표로 하고, 최고 성과자는 40% 이상을 달성해요. 이 지표는 각 지원 티켓을 해결하는 평균 비용을 계산해요. 효율적인 라우팅은 시간이 지나며 이 비용을 줄이는 데 도움이 돼요. 벤치마크는 크게 다르지만 많은 조직이 개선된 라우팅 시스템 구현 후 티켓당 비용을 10–15% 줄이는 것을 목표로 해요.

올바른 클로드 모델 선택하기

모델 선택은 비용, 정확도, 응답 시간 사이의 트레이드오프에 달려 있어요.

많은 고객이 claude-haiku-4-5-20251001이 티켓 라우팅에 이상적인 모델이라고 생각해요. Claude 4 제품군에서 가장 빠르고 비용 효율적인 모델이면서도 훌륭한 결과를 내기 때문이에요. 분류 문제에 깊은 도메인 전문성, 많은 양의 의도 범주, 또는 복잡한 추론이 필요하다면 더 큰 Sonnet 모델을 선택할 수 있어요.

강력한 프롬프트 만들기

티켓 라우팅은 분류 작업의 한 종류예요. 클로드는 지원 티켓의 콘텐츠를 분석하고 이슈 유형, 긴급성, 필요 전문성, 기타 관련 요인에 따라 미리 정의된 범주로 분류해요.

티켓 분류 프롬프트를 작성하세요. 초기 프롬프트는 사용자 요청의 내용을 포함하고 추론과 의도 모두를 반환해야 해요.

[Claude Cookbook의 메타프롬프트 레시피](https://colab.research.google.com/github/anthropics/claude-cookbooks/blob/main/misc/metaprompt.ipynb)를 시도해 클로드가 첫 초안을 쓰게 하세요.

티켓 라우팅 분류 프롬프트의 예시:

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

이 프롬프트의 핵심 구성 요소는 다음과 같아요:

  • 프롬프트 템플릿은 Python f-문자열이라 ticket_contents<request> 태그 안에 삽입할 수 있어요.
  • 프롬프트는 클로드에게 티켓 내용을 신중히 분석해 고객의 핵심 의도와 필요를 결정하는 분류 시스템으로서 명확히 정의된 역할을 줘요.
  • 프롬프트는 클로드에게 적절한 출력 형식에 대해 지시하며, 여기서는 <reasoning> 태그 안에 추론 분석을, 그다음 <intent> 태그 안에 적절한 분류 레이블을 제공하라고 해요.
  • 프롬프트는 유효한 의도 범주를 지정해요: "Support, Feedback, Complaint", "Order Tracking", "Refund/Exchange".
  • 프롬프트는 출력 형식을 설명하는 몇 가지 예시(few-shot prompting)를 포함해 정확도와 일관성을 향상시켜요.

클로드가 응답을 별도의 XML 태그 섹션으로 나누게 하면 정규 표현식을 사용해 출력에서 추론과 의도를 독립적으로 추출할 수 있어요. 이렇게 하면 티켓 라우팅 워크플로우에서 의도만 사용해 티켓을 어느 사람에게 라우팅할지 결정하는 것 같은 목표화된 다음 단계를 만들 수 있어요.

프롬프트 배포하기

프롬프트가 테스트 프로덕션 환경에 배포되고 평가를 실행하지 않고는 얼마나 잘 작동하는지 알기 어려워요.

배포 구조를 만드세요. 먼저 클로드 호출을 감싸는 메서드 시그니처를 정의하세요. 앞서 작성하기 시작한 ticket_contents를 입력으로 받는 메서드를, 이제 출력으로 reasoningintent의 튜플을 반환하도록 확장하세요. 전통적인 ML을 사용하는 기존 자동화가 있다면 대신 그 메서드 시그니처를 따르는 것이 좋아요.

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,
        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

이 코드는:

  • API 키를 사용해 클라이언트 인스턴스를 만듭니다.
  • ticket_contents 문자열을 받는 classify_support_request 함수를 정의합니다.
  • classification_prompt를 사용해 ticket_contents를 분류용으로 클로드에 보냅니다.
  • 응답에서 추출한 모델의 reasoningintent를 반환합니다.

전체 추론·의도 텍스트가 파싱 전에 생성되어야 하므로 예시는 stream=False(기본값)로 설정해요.


프롬프트 평가하기

프롬프트는 프로덕션 준비가 되려면 종종 테스트와 최적화가 필요해요. 솔루션의 준비 상태를 판단하려면 앞서 세운 성공 기준과 임계값에 따라 성능을 평가하세요.

평가를 실행하려면 실행할 테스트 케이스가 필요해요. 이 가이드의 나머지는 테스트 케이스를 개발했다고 가정해요.

평가 함수 만들기

이 가이드의 예시 평가는 세 가지 핵심 지표로 클로드의 성능을 측정해요:

  • 정확도
  • 분류당 비용

중요하게 생각하는 요소에 따라 다른 축으로 클로드를 평가해야 할 수도 있어요.

이를 평가하려면 먼저 스크립트를 수정해 예측된 의도와 실제 의도를 비교하고 올바른 예측의 비율을 계산하는 함수를 추가하세요. 그다음 비용 계산과 시간 측정 기능을 추가하세요.

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,
        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

편집 내용의 설명:

  • classify_support_request 메서드는 이제 테스트 케이스의 actual_intent를 받아 클로드의 의도 분류와 비교해 일치하는지 평가해요.
  • 메서드는 사용된 입력·출력 토큰을 기반으로 비용을 계산하기 위해 API 호출의 사용량 통계를 추출해요.

평가 실행하기

적절한 평가는 좋은 결과를 판단할 명확한 임계값과 벤치마크를 요구해요. 앞선 스크립트는 정확도, 응답 시간, 분류당 비용의 런타임 값을 반환하지만, 여전히 명확히 설정된 임계값이 필요해요. 예를 들어:

  • 정확도: 95%(100개 테스트 중)
  • 분류당 비용: 현재 라우팅 방법 대비 평균 50% 절감(100개 테스트 기준)

이 임계값이 있으면 규모에서, 그리고 공정한 경험주의로 어떤 방법이 자신에게 가장 좋은지, 요구 사항에 더 잘 맞도록 어떤 변경이 필요한지 빠르고 쉽게 알 수 있어요.


성능 개선 (Improve performance)

복잡한 시나리오에서는 표준 프롬프트 엔지니어링 기법가드레일 구현 전략을 넘어 성능을 개선하기 위한 추가 전략을 고려하는 것이 도움이 될 수 있어요. 몇 가지 흔한 시나리오:

20개 이상의 의도 범주가 있는 경우 분류 체계 계층 사용하기

클래스 수가 커질수록 필요한 예시 수도 늘어나 프롬프트가 다루기 어려워질 수 있어요. 대안으로 분류기 혼합을 사용한 계층적 분류 시스템 구현을 고려할 수 있어요.

  1. 의도를 분류 트리 구조로 정리하세요.
  2. 트리의 모든 수준에 일련의 분류기를 만들어 계단식 라우팅 접근을 가능하게 하세요.

예를 들어 티켓을 "Technical Issues", "Billing Questions", "General Inquiries"로 광범위하게 분류하는 최상위 분류기가 있을 수 있어요. 각 범주는 다시 자체 하위 분류기를 가져 분류를 더 세분화할 수 있어요.

티켓을 하위 분류기가 있는 Technical Issues, Billing Questions, General Inquiries로 라우팅하는 분류기 계층

  • 장점 - 더 큰 뉘앙스와 정확도: 각 상위 경로에 다른 프롬프트를 만들 수 있어 더 목표화되고 컨텍스트 특화된 분류가 가능해요. 이는 개선된 정확도와 고객 요청의 더 미묘한 처리로 이어질 수 있어요.

  • 단점 - 증가된 지연 시간: 여러 분류기는 지연 시간 증가로 이어질 수 있으므로, Anthropic은 이 접근을 가장 빠른 모델인 Haiku로 구현할 것을 권장해요.

벡터 데이터베이스와 유사도 검색 검색으로 변동성이 큰 티켓 처리하기

예시 제공이 성능을 개선하는 가장 효과적인 방법이지만, 지원 요청이 매우 다양하면 단일 프롬프트에 충분한 예시를 포함하기 어려울 수 있어요.

이 시나리오에서는 벡터 데이터베이스를 사용해 예시 데이터셋에서 유사도 검색을 하고 주어진 쿼리에 가장 관련성 높은 예시를 검색할 수 있어요.

분류 레시피에 자세히 설명된 이 접근 방식은 성능을 71% 정확도에서 93% 정확도로 개선하는 것으로 나타났어요.

예상되는 엣지 케이스를 구체적으로 고려하기

클로드가 티켓을 오분류할 수 있는 시나리오(상황에 고유한 다른 것들도 있을 수 있음)는 다음과 같아요. 이런 시나리오에서는 클로드가 엣지 케이스를 어떻게 처리해야 하는지 명시적인 지시나 예시를 프롬프트에 제공하는 것을 고려하세요:

고객은 종종 필요를 간접적으로 표현해요. 예를 들어 "I've been waiting for my package for over two weeks now"는 주문 상태에 대한 간접 요청일 수 있어요.
* **해결책:** 이런 종류의 요청과 그 뒤의 기본 의도에 대한 실제 고객 예시를 몇 개 클로드에 제공하세요. 특히 미묘한 티켓 의도에 분류 근거를 포함하면 더 나은 결과를 얻을 수 있어요. 클로드가 그 로직을 다른 티켓으로 더 잘 일반화할 수 있기 때문이에요.
고객이 불만을 표현하면 클로드가 근본적인 문제를 해결하는 것보다 감정을 다루는 것을 우선시할 수 있어요.
* **해결책:** 언제 고객 감정을 우선시할지 여부에 대한 지시를 클로드에 제공하세요. "Ignore all customer emotions. Focus only on analyzing the intent of the customer's request and what information the customer might be asking for." 같은 간단한 것이 될 수 있어요.
고객이 단일 상호작용에서 여러 문제를 제시하면 클로드가 주요 관심사를 식별하는 데 어려움을 겪을 수 있어요.
* **해결책:** 의도의 우선순위를 명확히 해 클로드가 추출된 의도를 더 잘 순위를 매기고 주요 관심사를 식별하게 하세요.

클로드를 더 큰 지원 워크플로우에 통합하기

적절한 통합에는 클로드 기반 티켓 라우팅 스크립트가 더 큰 티켓 라우팅 시스템의 아키텍처에 어떻게 들어맞는지에 대한 몇 가지 결정이 필요해요. 두 가지 방법이 있어요:

  • 푸시 기반: 사용 중인 지원 티켓 시스템(예: Zendesk)이 라우팅 서비스에 웹훅 이벤트를 보내 코드를 트리거하고, 서비스가 의도를 분류해 라우팅해요.
    • 이 접근은 더 웹 확장 가능하지만 공개 엔드포인트를 노출해야 해요.
  • 풀 기반: 코드가 주어진 일정에 따라 최신 티켓을 가져와 풀 시점에 라우팅해요.
    • 이 접근은 구현이 더 쉽지만 풀 빈도가 너무 높으면 지원 티켓 시스템에 불필요한 호출을 하거나, 너무 낮으면 지나치게 느릴 수 있어요.

두 접근 중 어느 쪽이든 스크립트를 서비스로 감싸야 해요. 접근 선택은 지원 티켓 시스템이 제공하는 API에 달려 있어요.


더 많은 예시 코드와 상세 eval 지침을 위해 분류 쿡북을 방문하세요. Claude Console에서 워크플로우 구축과 평가를 시작하세요.

더 알아보기 (Learn more)