AI 에이전트의 맥락에서 이행은 API를 통해 데이터를 검색, 조작 또는 저장하기 위해 외부 시스템과 상호 작용하는 작업을 실행하는 것을 의미합니다. 이 문서에서는 패키지 추적을 위해 만든 예제 에이전트에 대해 간략하게 설명합니다. 디지털 및 음성 상호 작용을 위한 새 AI 에이전트를 만드는 동안 이 에이전트 템플릿을 사용할 수 있습니다.

디지털 채널의 경우 AI 에이전트를 배포하는 데 사용되는 연결 흐름을 통해 이행을 조정해야 합니다. 새 스크립트 에이전트를 만드는 동안 템플릿에서 가져올 수 있는 패키지 추적 에이전트의 예를 들면 새 Webex Connect 흐름을 만드는 동안에도 흐름을 가져올 수 있습니다. 이행 외에도 이 연결 흐름은 마지막 의도를 기반으로 사용자를 다른 상담원 대기열로 라우팅합니다.

  1. 스크립트로 작성된 상담원 설정을 완료한 후 실행이 필요한 응답을 식별합니다.

    예제 에이전트에서는 'trackPackageResponse'에 대한 수행이 필요합니다.

  2. 이러한 템플릿에서 실행이 진행되는 동안 사용자에게 표시될 '보류 응답'을 구성합니다.

    이 예제에서는 'trackPackageResponse'에 대해 보류 응답이 구성됩니다.

  3. 플로우에서 데이터 파서 노드를 사용하여 AI 에이전트의 응답에서 에이전트 세션 메타데이터(출력 변수)를 구문 분석하여 응답 이름을 얻습니다.

    적절한 트랜잭션을 선택하고 다운로드한 파일에서 'generatedDf' 키 값을 선택하여 세션에서 트랜잭션 정보를 다운로드하여 데이터 구문 분석기 노드에 대한 샘플 입력을 얻을 수 있습니다.

  4. 상담원 전환 시 의도 기반 라우팅을 수행하려는 경우 동일한 단계에서 이전 활성 의도의 값을 얻을 수 있습니다.

  5. 샘플 JSON을 다운로드하고 구문 분석하지 않으려면 응답 이름에 \$.model_state.template_key 를 사용하고 이전 의도 이름에 \$.previous_intent_model_state.intent.name 를 사용할 수 있습니다.

    이 예에서는 이러한 값에 대해 흐름 변수 'responseKey' 및 'previousIntent'를 사용합니다.

  6. Branch 노드를 사용하여 응답에 실행이 필요한지 확인합니다.

    • 분기 노드는 이행이 필요하지 않은 응답에 대해 '위의 항목 없음' 노드 결과를 통해 종료됩니다.

    • 이 예제에서는 'trackPackageResponse'에 대한 이행이 필요하므로 분기 노드에서 'responseKey' 값을 확인합니다.

  7. 실행이 필요한 응답의 경우, 외부 API 호출을 하기 위해 HTTP 노드를 사용합니다 .

    • 샘플을 가져오고 출력 변수를 가져와서 동일한 노드의 HTTP 노드 응답에서 유용한 정보를 구문 분석할 수 있습니다.

    • 이 예제에서는 패키지의 'estimatedDelivery' 및 'status'를 가져옵니다.

  8. 평가 노드를 사용하여 이행 응답을 처리하여 상담원 응답을 공식화합니다.

    이 예에서는 'fulfilmentResp' 변수를 초기화하고 패키지 상태 및 예상 배송을 기반으로 해당 값을 설정합니다.

  9. 사용자에게 이행 응답을 보내고 대화에 추가합니다.

  10. 수신 노드로 루프백하여 사용자와 AI 에이전트 간의 대화를 계속 진행합니다.

의도 기반 상담사 핸드오버

상담원 인계 시 대기열 작업 노드 앞에 Branch 노드를 통해 마지막 활성 의도를 확인합니다.

'previousIntent' 값을 확인하고 요구 사항에 따라 다른 큐로 분기합니다. 이 예에서 고객이 '패키지 추적' 의도 이후에 상담원 핸드오버를 요청하는 경우 '전문가' 대기열로 라우팅합니다. 다른 모든 값은 '채팅' 대기열로 전환됩니다.

음성 채널의 경우 사용자 지정 이벤트를 통해 대화 제어권을 음성 흐름으로 다시 넘기고 나중에 실행 데이터를 사용하여 AI 에이전트 대화를 다시 시작하여 이행을 조정해야 합니다. 이를 위해 패키지 추적을 위한 예제 스크립트 에이전트가 다시 사용됩니다. 이 흐름은 Webex Contact Center Flow Designer의 '템플릿에서 가져오기'에서 사용할 수 있습니다. 이행 외에도 이 흐름은 마지막 의도를 기반으로 사용자를 다른 상담원 대기열로 라우팅합니다.

단계별 가이드: 이행

  1. 'Custom Event' 응답 유형을 추가합니다.

    • 사용자 지정 이벤트를 추가하려는 템플릿 키를 찾습니다. 이 경우 'trackPackageResponse' 템플릿 키를 사용합니다.

    • 템플릿 키에 'custom event' 응답 유형을 추가합니다.

  2. 사용자 지정 이벤트 응답을 구성합니다.

    • 이벤트 이름 및 이벤트 페이로드 추가:

      1. 사용자 지정 이벤트 응답의 경우 이벤트 이름을 제공합니다. 이 경우 'TrackPack_Exit'입니다.

      2. 흐름에 전달될 데이터가 포함된 이벤트 페이로드를 추가합니다. JSON 형식이어야 합니다. 이 예에서 {"PackageNumber":"${entity. PackageNum}"}입니다.

  3. 흐름에서 이벤트 페이로드를 사용합니다.

    • 가상 에이전트 v2 활동 메타데이터 액세스 :
      1. 음성 흐름 구성에서 추가한 이벤트 페이로드는 Virtual Agent V2 활동 메타데이터의 일부로 사용할 수 있습니다.

      2. 흐름 변수 PackageNum을 만듭니다.

      3. 구문 분석 활동을 사용하여 가상 에이전트 V2 활동 메타데이터를 입력 변수로 선택합니다 .

      4. 출력 변수를 'PackageNum'으로 설정하고 경로 식을 '$'로 설정합니다. PackageNum'(에이전트 응답에 구성된 이벤트 페이로드의 구조에 따라).

    • HTTP 활동에서 메타데이터를 사용합니다.
      1. 흐름에서 처리된 메타데이터의 'PackageNum' 변수를 사용하여 패키지를 추적합니다.

      2. 연결된 흐름을 가져와 HTTP 활동의 세부 정보를 찾습니다.

      3. 흐름 변수 'estimatedDelivery'를 정의하고 '$.estimated_delivery'로 설정하고 다른 흐름 변수 'packStatus'를 정의하고 $.status로 설정합니다.

    • HTTP 활동에 따라 조건을 추가합니다.
      1. 흐름에 새 Condition 활동을 추가합니다. 이 활동은 HTTP 활동의 응답 (패키지 존재 여부 및 해당 상태)을 확인하는 데 사용됩니다.

        이 예에서 표현식 {{ HTTPRequest_8l3.httpStatusCode == 404 }} 는 패키지를 찾을 수 없는지 확인하는 데 사용됩니다.

  4. 조건에 따라 변수 설정 활동을 추가합니다 .
    1. 패키지가 존재하지 않는 조건의 경우:

      • 패키지를 찾을 수 없는 분기 아래에 변수 설정 활동을 추가합니다 .
      • packageResp(다른 흐름 변수)를 다음과 같이 설정합니다.

        이러한 세부 정보가 포함된 패키지를 찾을 수 없습니다.

    2. 패키지가 존재하는 조건의 경우:

      • 패키지가 있는 분기(즉, HTTP 상태 코드가 404와 같지 않음) 아래에 다른 변수 설정 작업을 추가합니다.
      • packageResp(다른 흐름 변수)를 다음과 같이 설정합니다.

        패키지가 픽업되었습니다. {{estimatedDelivery}}로 전달됩니다.

    3. 변수 설정 활동을 두 개 더 추가하여 이벤트 이름 및 이벤트 데이터를 구성합니다. 이 데이터는 가상 에이전트 V2 활동으로 전달됩니다.

      • 흐름 변수 event_name 및 event_data 만듭니다.

      • event_name TrackPack_Entry로 설정하고 {'packageResp': '{{packageResp}}' | json}으로 event_data.

  5. 가상 에이전트 V2 활동으로 다시 루프백합니다 .

    • 가상 에이전트 V2 활동을 구성합니다.
      1. 마지막 변수 설정 활동을 가상 에이전트 V2 활동에 연결합니다.

      2. 이벤트 이름을 {{event_name}}로 설정합니다.

      3. 이벤트 데이터를 {{event_data}}로 설정합니다.

  6. 가상 에이전트에서 수신 이벤트를 처리합니다.

    1. 새 템플릿 키를 추가합니다.

      1. 왼쪽 패널의 응답 탭으로 이동합니다.

      2. packageStatus라는 새 템플릿 키를 추가합니다.

    2. 수신 이벤트 구성:

      1. 음성 채널에서 수신 이벤트를 TrackPack_Entry(또는 흐름의 가상 에이전트 V2 활동으로 전송된 항목)으로 설정합니다.

    3. 응답을 구성합니다.

      1. 응답을 <speak> <say-as interpret-as="date"> ${eventStore.packageResp} </say-as>로 설정합니다. 다른 일을 도와드릴까요?</말하세요>

        이 응답은 흐름에서 페이로드로 전송된 변수를 사용합니다. 이벤트 데이터의 일부로 전송된 모든 변수는 개발자가 ${eventStore.<variable_name>}로 액세스할 수 있습니다.

        SSML 태그도 사용합니다. 특히 SSML 태그를 사용하면 텍스트 음성 변환 엔진에서 텍스트를 해석하고 말하는 방법을 제어할 수 있습니다. 이 태그는 숫자, 날짜, 시간, 주소 및 기타 텍스트를 발음하는 방법을 지정하는 데 사용할 수 있습니다. 여기서는 날짜에 사용합니다.

이전 의도를 기반으로 한 상담사 라우팅

  • Virtual Agent V2 활동이 'Escalated' 출력을 통해 종료되는 경우 Parse 활동을 사용하여 에이전트 메타데이터에서 이전 의도를 가져옵니다.

  • Case 활동을 사용하여 대기열 논리를 결정하는 이전 의도의 다른 값을 확인합니다. 이 예에서는 이전 인텐트가 '패키지 추적'인지 확인합니다.

  • Case 활동 출력을 해당 대기열 연결 가장자리에 연결합니다 .