pile·
AI / ML·twilio-engTwilio Engineering·

Twilio Agent Connect와 Flex로 구현하는 AI-인간 상담원 핸드오프

AI 상담원과 인간 상담원 전환 시 컨텍스트가 초기화되는 문제를 해결하기 위해 Twilio Agent Connect, Conversation Memory, Twilio Flex를 연결하는 Python 기반 구현 튜토리얼이다. 음성·SMS로 시작한 AI 상담 세션이 인간 상담원으로 전환될 때 Conversation Intelligence V3가 자동 요약을 생성해 Flex 대시보드에 컨텍스트를 전달하는 엔드투엔드 구조를 단계별로 설명한다.

핵심 포인트
  • Conversation Memory에 Language 같은 커스텀 특성을 저장해 재방문 사용자의 선호 언어를 세션 간 유지한다
  • Orchestrator의 "Group by profile"로 음성·SMS 여러 채널의 상호작용을 같은 사용자 프로필에 연결한다
  • Conversation Intelligence V3가 "대화 종료"와 "대화 비활성화" 두 트리거에서 자동으로 요약을 생성한다
  • create_studio_handoff_tool이 Flex Studio Flow SID로 라우팅해 인간 상담원이 전체 컨텍스트와 요약을 수신한다
  • 에이전트 시스템 지시사항은 memory_response.profile.traits에서 읽은 특성을 반영해 동적으로 수정된다
상세 정리
  • 전제 스택: Python 3.10+, pip install twilio-agent-connect openai python-dotenv, Twilio Flex 인스턴스, OpenAI API 키, ngrok
  • Flex 연결 설정: Conversations > Addresses에서 전화번호에 Auto-create conversation = Yes, Conversation Service = Flex Conversation Service, 통합 = No(동적 라우팅)
  • Orchestrator 설정: "Group by profile" + Observations/Summaries 메모리 활성화, 음성 트래픽 자동 캡처는 비활성화
  • Intelligence 규칙 2개: "대화 종료"와 "대화 비활성화로 이동" 트리거 각각 생성 후 "Enable Conversation Memory for this rule" 체크
  • ngrok 설정: ngrok http 8000으로 생성된 URL을 TWILIO_VOICE_PUBLIC_DOMAIN에 등록, /twiml(음성 웹훅)과 /webhook(Orchestrator) 경로 업데이트
  • Studio Flow: "Twilio Agent Connect - Human Handoff" 템플릿에서 send_to_flex 위젯에 Flex Workflow를 지정하고 Flow SID를 .env에 추가
  • Memory 커스텀 특성: Memory Store Traits 탭에서 Language(String) 특성 추가 — 에이전트가 contact_traits.get("language")로 읽어 응답 언어를 전환
  • Memory 갱신 API: client.memory.v1.profiles("mem_store_id", "mem_profile_id").patch({"traits": {"Contact": {"language": "spanish"}}}) 형태
  • 핸드오프 판단: 에이전트가 "사용자가 인간과 통화 원함"을 감지하면 create_studio_handoff_tool 호출, Studio Flow를 통해 Flex 대시보드로 라우팅
  • Flex 수신: Intelligence가 생성한 자동 요약과 대화 기록이 함께 전달돼 인간 상담원이 문맥 파악 없이 바로 응대 가능
  • 컨텍스트 보존: 핸드오프 후에도 Conversation Memory 프로필이 유지돼 후속 AI 세션에서 이전 상호작용 맥락을 재사용
왜 읽나음성·SMS AI 상담 시스템에서 컨텍스트 손실 없이 AI에서 인간 상담원으로 전환하는 핸드오프 구조를 Python으로 직접 구현하려는 AI 상담/통신 개발자에게.
twilio-eng
Twilio Engineering 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. AI / ML·인프랩 (인프런)인프런 (인프랩)·

    학습 에이전트 — AI 두뇌 구축하기

    인프런이 강의 학습 에이전트를 구축하며 겪은 기술 스택 선정, 컨텍스트·도구 설계, LLM-as-a-Judge 품질 개선, 비용 최적화 전략을 다룬다. LLM SSE 스트리밍 처리를 위해 Spring MVC + Virtual Thread + Spring AI를 선택하고, 명시적 프롬프트 캐싱으로 입력 토큰을 90% 절감하는 과정까지 실전 경험이 담겨 있다.

    #ai-agent#llm#llm-as-a-judge+2
  2. AI / ML·네이버 D2네이버 D2·

    AI 에이전트 회사 차리기: 설립부터 어디서든 동기화까지

    네이버 ENGINEERING DAY 2026 발표. Claude Code를 매일 쓰지만 매번 초기화되는 문제를 해결하기 위해 NaverMadCat이라는 다중 AI 에이전트 조직 프레임워크를 구축한 경험을 다룬다. 비서실장 역할의 에이전트가 10개 부서 에이전트를 조율하며, 어느 환경에서 접속해도 동일한 컨텍스트로 동작하도록 동기화 메커니즘을 구현했다.

    #claude-code#multi-agent#ai-agent+2
  3. AI / ML·vercel-blogVercel Blog·

    AI Gateway에서 실시간 음성 에이전트 구축하기

    Vercel AI Gateway가 음성·오디오 기능을 정식 지원한다. 실시간 대화 음성(Realtime Voice), 텍스트→음성(TTS), 음성→텍스트(STT) 세 가지를 기존 텍스트/이미지 모델과 동일한 라우팅·인증·모니터링 체계 위에서 사용할 수 있다. OpenAI gpt-realtime-2·Whisper와 xAI Grok 오디오 모델을 지원하며, AI SDK 7 베타로 제공된다.

    #llm-app#ai-sdk#realtime-voice+2