상태 업데이트

표현식을 사용해 대화 중간에 에이전트가 동적 변수를 업데이트하도록 하세요.

개요

상태 업데이트 도구를 사용하면 대화가 진행 중인 동안 에이전트가 하나 이상의 동적 변수를 설정할 수 있습니다. 다른 시스템 도구와 마찬가지로 대화의 내부 상태만 변경하며, 외부 API나 클라이언트 측 함수를 호출하지 않습니다.

통화 진행 중 정보를 기록하는 데 사용하세요. 예를 들어 대화를 에스컬레이션해야 함을 표시하거나, 사용자가 제공한 값을 저장하거나, 다른 동적 변수에서 파생된 값을 계산할 수 있습니다.

LLM이 도구를 호출할 때마다가 아니라 workflow의 고정된 지점에서 상태 업데이트를 적용하려면 상태 업데이트 노드를 사용하세요. 동일한 상태 업데이트를 허용합니다.

기능

  • 통화당 여러 업데이트: 한 번의 도구 호출로 최대 50개의 동적 변수를 한 번에 할당할 수 있습니다.
  • 표현식 기반 값: 각 값은 상수, 기존 동적 변수, LLM이 대화에서 추출한 값 및 연산자를 조합할 수 있는 표현식의 결과입니다.
  • 필요할 때만 LLM 추출: 이 도구는 필요한 업데이트에 대해서만 LLM에 매개변수 추출을 요청합니다. 상수 및/또는 기존 동적 변수만으로 구성된 업데이트는 함수 호출에 매개변수를 추가하지 않습니다.
  • 즉시 사용 가능: 도구가 실행되면 업데이트된 동적 변수는 이후 프롬프트, 다른 도구 호출, 재정의 등 대화의 나머지 부분에서 다른 동적 변수와 동일하게 참조할 수 있습니다.

작동 방식

각 상태 업데이트는 표현식의 결과를 동적 변수에 할당합니다.

variable_name = expression

표현식은 다음 유형 중 하나이며, 표현식은 서로 중첩하여 더 복잡한 로직을 구성할 수 있습니다.

유형설명
상수고정 문자열, 숫자, 불리언 또는 null 값입니다.
동적 변수다른 동적 변수의 현재 값입니다.
LLM 추출 값정의한 유형(문자열, 숫자 또는 불리언)에 맞게 LLM이 대화에서 추론한 값입니다.
논리 연산자다른 표현식을 조합하는 and, or 또는 조건부(if / then / else) 표현식입니다.
비교 연산자두 표현식을 비교하는 =, ≠, >, <, ≥, ≤입니다.
산술 연산자두 숫자 표현식(또는 +의 경우 문자열)을 조합하는 +, -, ×, ÷입니다.

예를 들어 다음 상태 업데이트는 LLM이 사용자가 불만을 느낀다고 판단하거나 retry_count 동적 변수가 이미 3보다 큰 경우 should_escalate를 true로 설정합니다.

should_escalate = (llm: "User sounds frustrated with the conversation") OR (retry_count > 3)

상태 업데이트를 평가하지 못하는 경우(예: 0으로 나누기) 도구 호출은 오류를 반환하며 해당 호출의 업데이트는 하나도 적용되지 않습니다.

구성

1

1단계: 도구 추가

에이전트 구성 페이지로 이동합니다. 도구 섹션에서 도구 추가를 클릭하고 상태 업데이트를 선택합니다.

2

2단계: 상태 업데이트 정의

각 상태 업데이트에 다음을 제공합니다.

  • 변수 이름: 할당할 동적 변수입니다.
  • 표현식: 위에서 설명한 값 및 연산자 유형으로 구성된 할당할 값입니다. 더 복잡한 표현식을 만들기 위해 값을 중첩할 수 있습니다.
  • 필수: 비활성화하면 LLM이 이 업데이트가 사용하는 값을 생략할 수 있습니다. 그러면 업데이트가 건너뛰어지고 변수는 현재 값을 유지합니다.

하나의 도구에 대해 최대 50개의 상태 업데이트를 정의할 수 있습니다.

3

3단계: 설명 구성(선택 사항)

도구를 호출할 시점을 LLM에 안내하도록 사용자 지정 설명을 제공할 수 있습니다. 비워 두면 이 도구에 최적화된 기본 설명이 사용됩니다.

사용 사례

  • 에스컬레이션 플래그: Genesys 통합 가이드에 나온 것처럼 다운스트림 시스템 또는 비즈니스 규칙이 확인하는 동적 변수(예: should_escalate)를 설정합니다.
  • 추출된 정보 기록: 사용자가 제공한 값(주문 번호, 선호도, 선택한 부서)을 대화 후반에 사용할 동적 변수로 저장합니다.
  • 파생 값: 카운터를 증가시키거나 두 변수를 하나로 결합하는 등 다른 동적 변수에서 값을 계산합니다.

목적: 외부 API를 호출하지 않고 대화를 기반으로 에이전트가 하나 이상의 동적 변수를 업데이트할 수 있도록 합니다.

트리거 조건: 다음과 같은 경우 LLM이 이 도구를 호출해야 합니다.

  • 대화에서 기록해야 할 정보가 제공된 경우(예: 에스컬레이션 플래그, 선택한 옵션, 사용자가 제공한 값)
  • 구성된 상태 업데이트가 LLM이 대화에서 판단하거나 추출해야 하는 값에 따라 달라지는 경우

파라미터:

함수의 파라미터는 도구 구성 방식에 따라 달라집니다. LLM이 추출한 값을 사용하는 구성된 각 상태 업데이트는 해당 업데이트의 동적 변수 이름을 따르고 string, number 또는 boolean 유형인 속성 하나를 스키마에 추가합니다. 상수나 다른 동적 변수만으로 구성된 상태 업데이트는 파라미터를 추가하지 않습니다.

함수 호출 형식:

{
"type": "function",
"function": {
"name": "update_state",
"arguments": "{\"should_escalate\": true}"
}
}

구현: 에이전트는 추출된 파라미터와 대화의 현재 동적 변수를 사용해 구성된 모든 표현식을 평가한 다음, 결과를 해당 동적 변수에 할당합니다. 외부 요청은 수행하지 않습니다.

FAQ

아니요. 모든 시스템 도구와 마찬가지로 상태 업데이트는 대화의 내부 상태만 수정합니다. 외부 API나 클라이언트 측 함수를 호출하지 않습니다.

아니요. 이 도구는 표현식에 LLM 추출 값이 포함된 상태 업데이트에 대해서만 LLM에 매개변수 추출을 요청합니다. 구성된 모든 업데이트가 상수 및/또는 기존 동적 변수로 구성된 경우 함수 호출에는 매개변수가 없습니다.

동적 변수를 사용할 수 있는 모든 곳에서 사용할 수 있습니다. 시스템 프롬프트, 첫 메시지, 도구 매개변수 및 헤더, 재정의가 해당합니다. 자세한 내용은 동적 변수를 참조하세요.

상태 업데이트는 현재 에이전트 대시보드에서 구성할 수 있습니다. API 및 SDK 지원은 아직 제공되지 않습니다.