동적 변수
동적 변수
런타임 값을 전달해 에이전트의 동작을 개인화하세요.
동적 변수를 사용하면 런타임 값을 에이전트의 메시지, 시스템 프롬프트 및 도구에 삽입할 수 있습니다. 여러 에이전트를 만들지 않고도 사용자별 데이터로 각 대화를 개인화할 수 있습니다.
개요
동적 변수는 에이전트의 여러 요소에 통합할 수 있습니다.
- 동작과 컨텍스트를 맞춤 설정하는 시스템 프롬프트
- 인사말을 개인화하는 첫 메시지
- 사용자별 데이터를 전달하는 도구 매개변수 및 헤더
동적 변수가 유용한 몇 가지 예시는 다음과 같습니다.
- 사용자 이름으로 인사말 개인화
- 응답에 계정 세부 정보 포함
- 도구 호출에 데이터 전달
- 구독 등급에 따른 동작 맞춤 설정
- 대화 ID 또는 통화 시간 같은 시스템 정보 액세스
동적 변수는 에이전트 구성에 하드코딩해서는 안 되는 사용자별 데이터를 삽입하는 데 적합합니다.
시스템 동적 변수
에이전트는 다음과 같이 자동으로 제공되는 시스템 변수에 액세스할 수 있습니다.
system__agent_id- 대화를 시작한 에이전트의 고유 식별자(대화 전체에서 유지됨)system__current_agent_id- 현재 활성 에이전트의 고유 식별자(에이전트 전환 후 변경됨)system__caller_id- 발신자의 전화번호(음성 통화만 해당)system__called_number- 수신 전화번호(음성 통화만 해당)system__call_duration_secs- 통화 시간(초)system__time_utc- 현재 UTC 시간(ISO 형식)system__time- 지정된 시간대의 현재 시간(사람이 읽을 수 있는 형식, 예: “Friday, 12:33 12 December 2025”)system__timezone- 사용자가 제공한 시간대(tzinfo에 유효해야 함)system__conversation_id- ElevenLabs의 고유 대화 식별자system__call_sid- 통화 SID(twilio 통화만 해당)system__call_id- SIP 트렁크 통화의 고유 식별자(SIP 트렁크 통화만 해당)system__agent_turns- 이 대화 중 에이전트가 수행한 총 대화 턴 수system__current_agent_turns- 현재 에이전트가 수행한 대화 턴 수입니다. 대화가 다른 에이전트로 전환될 때마다 초기화됩니다.system__current_subagent_turns- 현재 하위 에이전트가 수행한 대화 턴 수입니다. workflow가 다른 노드로 전환될 때마다 초기화됩니다.system__is_text_only- 대화가 텍스트 전용 모드로 작동하면 true, 그렇지 않으면 false입니다.system__conversation_history- 현재 대화 기록을 JSON으로 직렬화한 표현입니다. 참조되는 시점에 지연 평가됩니다. 아래 형식 세부 정보를 참고하세요.
시스템 변수:
- 런타임 구성 없이 사용할 수 있습니다.
system__접두사(예약된 접두사)를 사용합니다.- 대화 전체에서 자동으로 업데이트됩니다.
system__ 접두사를 사용할 수 없습니다.대화 기록 형식
system__conversation_history 변수에는 다음 구조의 JSON 객체가 포함됩니다.
각 항목에는 role ("user", "agent" 또는 "tool")과 다음 중 하나가 포함됩니다.
message— 턴의 텍스트 콘텐츠tool_requests— 에이전트가 수행한 도구 호출 배열이며, 해결된 매개변수 값을 포함합니다.tool_results— 도구 응답 배열
도구 결과 또는 매개변수에 중첩된 대화 기록이 포함된 경우, 무제한 재귀 확장을 방지하기 위해 플레이스홀더(예: [conversation_history (5 turns)])로 가려집니다.
이 변수는 도구(예: 웹훅, 사용자 지정 LLM)에 대화 컨텍스트를 전달하거나 핸드오프 중 하위 에이전트 프롬프트에 대화 기록을 포함하는 데 유용합니다.
비밀 동적 변수
비밀 동적 변수는 일반 동적 변수와 같은 방식으로 채워지지만, ElevenAgents에 이러한 변수가 동적 변수 헤더에서만 사용되어야 하며 에이전트의 시스템 프롬프트 또는 첫 메시지의 일부로 LLM 제공업체에 전송되어서는 안 됨을 알립니다.
LLM으로 전송해서는 안 되는 인증 토큰이나 비공개 ID에는 이 변수를 사용하는 것이 좋습니다. 비밀 동적 변수를 만들려면 동적 변수 앞에 secret__를 붙이세요.
비밀 값은 통화 후 웹훅과 conversations API를 포함해 <REDACTED>로 가려진 상태로 반환됩니다. 대화 후 다시 읽어야 하는 값에는 secret__ 접두사를 사용하지 마세요. 이러한 값은 일반 동적 변수로 전달하거나, 민감하지 않은 식별자를 전달한 뒤 자체 시스템에서 민감한 값을 조회하세요.
도구에서 동적 변수 업데이트하기
도구 호출은 유효한 JSON 객체를 반환하면 동적 변수를 생성하거나 업데이트할 수 있습니다. 추출할 내용을 지정하려면 점 표기법으로 객체 경로를 설정하세요. 필드 또는 경로가 존재하지 않으면 아무것도 업데이트되지 않습니다.
응답 객체와 점 표기법의 예시:
- Status는 다음 경로에 해당합니다:
response.status - users 배열에서 첫 번째 사용자의 이메일은 다음 경로에 해당합니다:
response.users.0.email
동적 변수를 첫 번째 사용자의 이메일로 업데이트하려면 다음과 같이 할당을 설정하세요.

할당은 각 웹훅 도구의 필드이며, 여기에 설명되어 있습니다.
가이드
사전 요구 사항
- ElevenLabs 계정
- 구성된 ElevenLabs 대화형 에이전트(여기에서 만들기)
공개 대화 페이지 통합
공개 대화 페이지는 URL 매개변수를 통한 동적 변수를 지원하므로 에이전트 링크를 공유할 때 대화를 개인화할 수 있습니다. 이는 웹사이트, 이메일 또는 마케팅 캠페인에 개인화된 에이전트를 삽입할 때 특히 유용합니다.
URL 매개변수 방식
공개 대화 페이지에 동적 변수를 전달하는 방법은 두 가지입니다.
방법 1: Base64 인코딩 JSON
vars 매개변수를 사용해 변수를 base64 인코딩 JSON 객체로 전달합니다.
vars 매개변수에는 base64 인코딩 JSON이 포함됩니다.
방법 2: 개별 쿼리 매개변수
var_ 접두사가 붙은 쿼리 매개변수로 변수를 전달합니다.
매개변수 우선순위
두 방법을 동시에 사용하면 충돌을 방지하기 위해 개별 var_ 매개변수가 base64 인코딩 변수보다 우선합니다.
이 예시에서 user_name은 base64 인코딩된 vars의 “Jane” 대신 var_user_name의 “John”이 됩니다.
구현 예시
JavaScript URL 생성
Python URL 생성
수동 URL 구성
지원되는 유형
동적 변수는 다음 값 유형을 지원합니다.
문제 해결
변수가 대체되지 않음
다음을 확인하세요.
- 변수 이름이 정확히 일치하는지(대소문자 구분)
- 변수에 이중 중괄호를 사용하는지:
{{ variable_name }} - 변수가 dynamic_variables 객체에 포함되어 있는지
유형 오류
다음을 확인하세요.
- 변수 값이 예상 유형과 일치하는지
- 값이 문자열, 숫자 또는 불리언만인지




