Back to Blog

음성 AI 에이전트의 구조

GPT-4가 자연스러운 음성 대화를 나누는 데모를 처음 봤을 때, 저는 대부분의 엔지니어들이 갖는 것과 같은 생각을 했습니다. “이걸 만드는 게 얼마나 어려울까?”

알고 보니, 정말이지 엄청나게 어려웠습니다.

겉보기에는 단순한 음성 인터페이스처럼 보이지만, 실제로는 서로 조화를 이루며 작동하는 여러 시스템의 복잡한 조합이기 때문입니다. 각 시스템은 저마다의 확장성 문제, 지연 시간 요구 사항, 그리고 오류 발생 양상을 가지고 있습니다. 그리고 UX에서 약간의 결함이 있어도 넘어갈 수 있는 기존 챗봇과 달리, 대화형 AI는 거의 완벽한 실행을 요구합니다.

500ms의 지연? 사용자는 눈치챌 것입니다. 맥락과 동떨어진 응답? 대화는 깨집니다. 오디오 패킷 손실? 차라리 처음부터 다시 시작하는 게 낫습니다.

여기서 말하는 건 시리(Siri) 수준의 “타이머 설정” 같은 명령이 아닙니다. 제가 말하는 것은 방대한 지식 기반에서 정보를 추출하고, 다단계 문제를 추론하며, 20분 동안 이어지는 대화의 맥락을 유지하고, 마치 기계와 대화하고 있다는 사실을 잊게 만들 만큼 사려 깊은 응답을 할 수 있는 AI입니다. 하루 일정을 계획하는 데 도움을 요청하면, AI는 여러분의 캘린더를 분석하고, 날씨를 확인하며, 교통 상황을 고려하여 여러분이 생각지 못했던 최적의 방안을 제안할 것입니다. 아키텍처 결정에 막혀 계신가요? 별도의 추가 지시 없이도 10가지 다른 접근 방식의 장단점을 하나하나 설명해 줄 것입니다.

이것이 바로 대화형 AI가 약속하는 미래이며, 이는 공상과학 소설 속 환상이 아닙니다. 오늘날 이러한 시스템을 출시하고 있는 기업들의 현실입니다. 하지만 “멋진 데모”에서 “실전 투입 가능”한 단계로 나아가기 위해서는 오디오 코덱부터 대화 상태 기계, 그리고 실제로 확장 가능한 인프라에 이르기까지 전체 스택을 이해해야 합니다.

실제로 무엇이 필요한지 함께 살펴보겠습니다.

근본적인 오해

대부분의 사람들이 대화형 AI에 대해 잘못 알고 있는 점은, 이것이 마법처럼 모든 것을 해내는 단일 모델이라고 생각한다는 것입니다. 그렇지 않습니다. 이는 오디오에서 응답으로, 다시 오디오로 이어지는 여정에서 각기 특정 문제를 해결하는 전문화된 구성 요소들로 이루어진 전체 파이프라인입니다.

이를 현대적인 웹 애플리케이션에 비유해 보세요. 단순히 ‘앱’ 하나만 있는 것이 아니라, 로드 밸런서, API 게이트웨이, 애플리케이션 서버, 데이터베이스, 캐시, CDN, 그리고 아마도 수십 개의 마이크로서비스가 존재합니다. 각 계층은 각자의 역할을 맡고 있으며, 이들이 어떻게 협력하는지에 마법이 있습니다.

대화형 AI도 마찬가지입니다. 오디오를 텍스트 대본으로 변환하는 음성-텍스트 변환 모델, 응답을 생성하는 언어 모델, 출력 내용을 음성으로 변환하는 텍스트-음성 변환 시스템, 대화 상태를 추적하는 대화 관리자, 맥락을 제공하는 지식 기반, 그리고 트래픽을 안내하는 라우팅 계층이 있습니다. 이 중 하나라도 빠지면, 여러분의 “대화형 AI”는 서로 빗나가는 대화를 반복하는 답답한 경험이 되어버립니다.

대화형 AI 파이프라인

대화형 AI는 단일 모델이 아니라, 서로 협력하는 특화된 구성 요소들의 파이프라인입니다. 음성 대화를 위해 실제로 필요한 과정은 다음과 같습니다:

사용자 오디오 → 음성 활동 감지(VAD) → 음성-텍스트 변환(ASR/STT) → LLM 처리 → 텍스트-음성 변환(TTS) → 오디오 응답

각 구성 요소를 자세히 살펴보고 그 중요성을 알아보겠습니다.

ASR/STT: 음성-텍스트 변환

기능: 사용자의 음성을 LLM이 처리할 수 있는 텍스트로 변환합니다.

과제: 실시간 정확도. 다음이 필요합니다:

  • 낮은 지연 시간(자연스럽게 느껴지려면 300ms 미만)
  • 억양, 배경 소음, 분야별 전문 용어가 포함된 경우에도 정확한 전사
  • 침묵 감지(사용자가 실제로 말을 멈춘 시점은 언제인가?)의 적절한 처리

음성 활동 감지(VAD)는 여기서 매우 중요합니다. 사용자가 말을 시작하고 멈출 때를 감지합니다. 이 부분이 잘못되면 사용자의 말을 문장 도중에 끊어버리거나, 사용자가 말을 이어가기를 어색하게 기다리게 됩니다.

서비스 제공업체 현황:

  • Microsoft Azure Speech: 전반적으로 안정적이며, 언어 지원이 우수함
  • Deepgram: 빠르고, 개발자 친화적이며, 실시간 처리에 적합함
  • Whisper (OpenAI): 정확도는 뛰어나지만 지연 시간이 더 큼
  • ARES (Agora): Agora 인프라에 최적화됨

주요 설정: 언어 선택, VAD 감도, 스트리밍 또는 배치 처리 사용 여부.

LLM: 두뇌

역할: 텍스트 변환 결과를 받아 의도를 이해하고 적절한 응답을 생성합니다.

이곳이 에이전트의 지능이 작동하는 곳입니다. LLM은 다음을 처리합니다:

  • 의도 인식: 사용자가 실제로 원하는 것은 무엇인가?
  • 문맥 유지: 대화의 이전 내용을 기억
  • 응답 생성: 답변 작성
  • 함수 호출: 작업 실행 (API 호출, 데이터베이스 조회 등)

유연성 문제: 대부분의 오케스트레이션 플랫폼은 OpenAI 호환 API를 통해 자체 LLM을 가져올 수 있게 합니다. 즉, 다음을 사용할 수 있습니다:

  • OpenAI GPT 모델 (GPT-4, GPT-4o)
  • Anthropic Claude (더 나은 추론 능력, 더 안전한 출력)
  • 특정 도메인용 맞춤형 미세 조정 모델
  • 자체 호스팅 시 오픈소스 모델 (Llama, Mixtral)

필요할 고급 기능:

  • RAG (검색 강화 생성, Retrieval-Augmented Generation): LLM을 지식 기반에 연결하여 관련 문서, 제품 정보 또는 고객 데이터를 가져올 수 있게 합니다
  • 함수 호출: LLM이 “check_inventory”나 “book_appointment”와 같은 작업을 트리거하도록 합니다
  • 시스템 프롬프트: 성격, 어조 및 행동 가이드라인을 구성합니다

지연 시간 고려 사항: LLM 처리에는 응답 길이와 모델에 따라 일반적으로 500–2000ms가 소요됩니다. 이는 종종 병목 현상이 되는 부분입니다.

TTS: 텍스트 음성 변환

기능: LLM의 텍스트 응답을 자연스러운 음성으로 변환합니다.

품질 스펙트럼:

  • 기본 TTS (Azure, Google): 기능적이며, 일관되고, 예측 가능한 비용
  • 프리미엄 TTS (ElevenLabs, Cartesia): 더 자연스럽고, 표현력이 풍부하며, 감정 범위가 넓음
  • 다중 모달 LLM (GPT-4o, Hume AI): 억양과 감정을 유지하며 오디오를 직접 생성

주요 매개변수:

  • 음성 선택: 성별, 억양, 연령, 성격
  • 말하기 속도: 자연스러운 속도와 정보 밀도 간의 균형
  • 오디오 형식: 샘플 레이트, 인코딩 (일반적으로 실시간용 16kHz PCM)

여기서도 지연 시간은 중요합니다: 응답이 완전히 생성될 때까지 기다리지 말고, 첫 단어가 생성되는 즉시 사용자에게 오디오를 스트리밍하기 시작해야 합니다. 스트리밍 TTS는 반응성을 느끼게 하는 데 매우 중요합니다.

아바타: 시각적 레이어

기능: 생성된 음성에 맞춰 입모양을 동기화하는 시각적 표현을 추가합니다.

다음 분야에서 그 중요성이 점점 더 커지고 있습니다:

  • 고객 서비스 키오스크
  • 시각적 존재감이 중요한 의료 애플리케이션
  • 표정이 학습 효과를 높이는 교육 콘텐츠
  • 시각적 정체성이 핵심인 브랜드 경험

기술적 요구 사항:

  • 실시간 입모양 동기화 생성 (오디오 → 얼굴 애니메이션)
  • 저지연 렌더링 (100–200ms 이상 지연 불가)
  • 지연을 최소화하기 위해 주로 클라이언트 측에서 실행됨

Agora의 대화형 AI 엔진은 아바타 통합을 지원하며, D-ID 및 Synthesia와 같은 전문 제공업체들도 이를 지원합니다.

오케스트레이션 과제

여기서부터가 어려운 부분입니다. 완벽하게 조화를 이루어 작동해야 하는 세 가지(아바타를 포함하면 네 가지)의 별도 시스템이 있습니다:

타이밍 문제:

  • 사용자가 말을 멈춤 → VAD가 침묵 감지 → ASR이 텍스트 변환 완료 → LLM 처리 → TTS 생성 → 오디오 재생
  • 지연 시간 1밀리초마다 누적 효과 발생
  • 목표: 자연스러운 대화를 위해 종단 간 < 1000ms

중단 문제:

  • 사용자가 문장 도중에 말을 끊음 (사람과 대화할 때처럼)
  • 다음 조치를 취해야 합니다: TTS 재생 취소, 오디오 버퍼 비우기, 즉시 새로운 ASR 시작
  • 대부분의 자체 개발 시스템은 이 부분에서 어려움을 겪습니다

네트워크 안정성 문제:

  • 음성 대화는 패킷 손실과 지터에 민감하므로, 전방 오류 정정(FEC) 및 지터 버퍼링과 같은 기술이 필요합니다.
  • 전방 오류 정정, 지터 버퍼링, 적응형 비트레이트가 필요합니다
  • 불안정한 네트워크를 사용하는 모바일 사용자가 최악의 시나리오입니다

확장성 문제:

  • 각 대화에는 지속적 연결과 상태 기반 처리가 필요합니다
  • 상태 비저장형 API에서처럼 리소스를 풀링할 수 없습니다
  • 에이전트 인스턴스 하나는 최대 약 6~8개의 동시 대화를 처리합니다

이것이 바로 오케스트레이션 플랫폼이 존재하는 이유입니다. 이를 직접 구축하려면 다음을 해결해야 합니다:

  • WebRTC 시그널링 및 미디어 전송
  • 저지연을 위한 다중 지역 에지 배포
  • 에이전트 라이프사이클 관리 (시작, 확장, 종료)
  • 구성 요소 간 상태 동기화
  • 비용 최적화 (유휴 인스턴스 종료)

우수한 오케스트레이션이 제공하는 것:

  • 1초 미만의 지연 시간 파이프라인
  • 원활한 중단 처리
  • 네트워크 복원력 (상당한 패킷 손실 시에도 작동)
  • 동시 대화 수에 따른 자동 확장
  • 전체 파이프라인에 걸친 통합 모니터링 및 디버깅

자체 스택 구축: 진정한 결정

자, 이제 계층 구조를 이해하셨습니다. 이제 결정해야 합니다: 직접 구축할 것인가, 구매할 것인가?

플랫폼 선택의 문제

Google의 Dialogflow, Amazon Lex, Microsoft Bot Framework, IBM Watson과 같은 플랫폼은 에이전트를 신속하게 구성할 수 있는 사전 구축된 구성 요소를 제공합니다. 이들은 인프라 관리의 많은 골칫거리를 해결해 주고, 기본 제공되는 괜찮은 자연어 이해(NLU) 기능을 제공하며, 비개발자도 콘텐츠를 관리할 수 있는 관리자 UI를 제공합니다.

하지만 이들은 특정 방향성을 가지고 있습니다. 사용자는 해당 플랫폼의 아키텍처, 가격 모델, 사용량 제한, 기능 세트에 제약을 받게 됩니다. RAG(Retrieval-Augmented Generation)에 맞춤형 임베딩 모델을 사용하고 싶으신가요? 안타깝게도 불가능합니다. 100ms 미만의 응답 시간이 필요하신가요? 오늘 플랫폼 서버가 빠르기를 바랄 수밖에 없습니다. 보안상의 이유로 온프레미스에 배포하고 싶으신가요? 대부분의 플랫폼은 해당 옵션을 제공하지 않습니다.

저는 팀들이 플랫폼을 자신들의 요구 사항에 맞추려고 몇 달을 허비하다가 결국 포기하고 직접 구축하는 경우를 많이 보아왔습니다. 제가 사용하는 결정 기준은 다음과 같습니다:

다음과 같은 경우 플랫폼을 사용하세요:

  • MVP(최소 기능 제품)나 개념 증명(PoC)을 구축하는 경우
  • 사용 사례가 플랫폼의 기능(고객 서비스, 간단한 예약, FAQ 봇)과 명확하게 일치하는 경우
  • 엔지니어링 리소스가 제한적인 경우
  • 벤더 종속성을 감수할 수 있는 경우

다음과 같은 경우에는 자체 구축하세요:

  • 특이한 지연 시간이나 확장성 특성이 필요한 경우
  • 해당 도메인이 특수한 자연어 이해(NLU)를 요구하는 경우(의료, 법률, 고도로 기술적인 분야)
  • 대화형 인터페이스가 핵심 차별화 요소인 제품을 구축하는 경우
  • 데이터 개인정보 보호 및 보안에 대한 완전한 통제가 필요한 경우

맞춤형 스택을 위한 구성 요소 선택

맞춤형 방식을 선택한다면, 파이프라인의 각 부분에 대해 개별 구성 요소를 선택하게 됩니다. 오케스트레이션 플랫폼을 사용하는 경우, 자체 LLM을 도입하면서 해당 플랫폼이 지원하는 ASR 및 TTS 제공업체 중에서 선택하게 됩니다. 어느 쪽이든, 다음과 같은 옵션이 있습니다:

ASR/STT 제공업체:

  • 오픈소스: Whisper (OpenAI), Vosk
  • 유료: Azure Speech, Deepgram, Google Speech-to-Text, AssemblyAI

LLM 옵션:

  • OpenAI: GPT-4, GPT-4o (다방면 성능 우수, 함수 호출 지원)
  • Anthropic: Claude (뛰어난 추론 능력, 더 긴 컨텍스트 창)
  • 오픈소스: Llama 3, Mixtral (자체 호스팅 시)
  • 미세 조정: 도메인별 용어 및 동작을 위한 맞춤형 모델

TTS 제공업체:

  • 표준: Azure TTS, Google Text-to-Speech
  • 프리미엄: ElevenLabs (가장 자연스러운 음성), Cartesia (낮은 지연 시간), OpenAI TTS
  • 감정 인식: Hume AI (감정 신호를 감지하고 반응)

음성 에이전트 오케스트레이션:

음성 에이전트를 전문적으로 개발하는 팀을 위해, 이 사용 사례에 맞춰 설계된 플랫폼들이 있습니다. ElevenLabs Conversational AI는 자체 음성 기능을 내장하여 ASR → LLM → TTS 파이프라인을 처리하는 완전한 오케스트레이션 기능을 제공합니다. TEN Framework와 Pipecat은 주목할 만한 오픈소스 프레임워크입니다. 이들은 실시간 음성 에이전트를 위해 특별히 설계되었으며, 스트리밍과 관련된 복잡한 작업을 대신 처리해 줍니다.

아키텍처 선택: 직접 구축, 오케스트레이션, 아니면 번들?

인프라에 대해 자세히 알아보기 전에, 한 걸음 물러나 대화형 AI 구축의 세 가지 기본 접근 방식을 살펴보겠습니다. 이 선택이 이후의 모든 과정을 결정하기 때문입니다.

완전 맞춤형 스택

이 방식을 선택해야 할 때: 대화형 인터페이스가 핵심 제품 차별화 요소인 새로운 것을 구축하고 있는 경우입니다. 전문적인 의료 진단, 규제가 엄격한 금융 자문, 또는 독특한 성격 시스템을 갖춘 게임 내 NPC를 구축하고 있을 수 있습니다.

장점: 모든 구성 요소에 대한 완전한 제어권, 최적의 성능 튜닝, 모델 수준에서의 혁신 가능성, 그리고 완벽한 데이터 프라이버시. 지연 시간의 1밀리초 단위까지 미세 조정할 수 있으며, 상용 솔루션으로는 따라올 수 없는 수준의 동작을 맞춤 설정할 수 있습니다.

단점: 수개월에 걸친 엔지니어링 작업, 머신러닝, 분산 시스템, 오디오 엔지니어링에 걸친 심도 있는 전문 지식, 그리고 지속적인 유지보수 부담. 신뢰성, 확장성, 그리고 모든 예외 상황에 대한 책임은 전적으로 귀하에게 있습니다. 시작부터 실제 서비스 출시까지 6~12개월의 기간을 예상해야 합니다.

예시 스택: NLU용 맞춤형 미세 조정 BERT, Rasa 대화 관리자, Weaviate 기반 벡터 DB, 맞춤형 ASR 파이프라인, 브랜드별 음성 데이터로 훈련된 자체 TTS, 베어 메탈(bare metal) 기반 쿠버네티스 배포.

오케스트레이션 플랫폼

이 옵션을 선택해야 할 때: 프로덕션급 신뢰성과 성능이 필요하지만, AI 모델과 로직에 대한 유연성도 동시에 필요로 할 때입니다. 제품에 올인원 솔루션이 제공하지 않는 맞춤형 기능이 필요하지만, 인프라를 처음부터 구축하고 싶지는 않을 때 적합합니다.

제공되는 혜택: 인프라의 어려운 부분(실시간 오디오 전송, 확장성, 네트워크 복원력, 중단 처리)은 해결되지만, 사용 사례에 중요한 AI 구성 요소에 대한 제어권은 유지됩니다. 플랫폼이 기반 인프라를 처리하는 동안 모델을 교체하고, 맞춤형 로직을 통합하며, 지능 면에서 차별화를 꾀할 수 있습니다.

비용: 통합 기간은 몇 달이 아닌 몇 주 단위로 측정됩니다. 플랫폼 서비스 비용을 지불하되, 인프라 계층을 구축하고 유지 관리하는 엔지니어링 작업은 피할 수 있습니다. API 통합과 서버 측 로직은 필요하지만, 심층적인 인프라 전문 지식은 필요하지 않습니다.

예시 접근 방식: 오케스트레이션 레이어로 Agora Conversational AI Engine을 활용합니다. 정확도를 위해 Deepgram과 같은 ASR, 추론을 위해 사용자 정의 미세 조정된 LLM 또는 Claude, 고품질 TTS를 위해 ElevenLabs를 사용하도록 구성합니다. LLM 레이어에서 사용자 정의 비즈니스 로직을 구현합니다. 예를 들어 지식 검색을 위한 RAG, API 통합을 위한 함수 호출, 또는 해당 도메인에 특화된 프롬프트 엔지니어링 등이 될 수 있습니다. 플랫폼은 사용자에게 오디오를 안정적으로 전달하고, 대화 중단을 관리하며, 수천 건의 동시 대화를 처리할 수 있도록 확장합니다. 개발자는 인프라가 아닌 AI 동작에 집중하면 됩니다.

아키텍처는 다음과 같습니다: 사용자 기기가 Agora 채널에 연결 → Agora가 오디오 전송 및 에이전트 오케스트레이션 처리 → 서버가 사용자 정의 로직으로 LLM 호출 처리 → 에이전트가 동일한 인프라를 통해 응답. 이는 본질적으로 대화형 AI 전용의 IaaS(Infrastructure-as-a-Service)입니다.

올인원 SDK

이 옵션을 선택해야 하는 경우: MVP를 구축 중이거나 시장 적합성을 테스트 중이거나, 사용 사례가 일반적인 대화 패턴에 명확히 부합하는 경우입니다. 몇 달이 아닌 며칠 내에 작동하는 솔루션이 필요하며, 완전 관리형 솔루션의 제약 사항을 수용할 수 있는 경우입니다.

제공되는 혜택: 가장 빠른 출시 기간, 최소한의 엔지니어링 작업, 내장된 모범 사례, 관리할 인프라가 없음. 이러한 솔루션은 전체 파이프라인을 실전 테스트를 거쳤으며, 대부분의 예외적인 상황도 즉시 처리합니다.

단점: 제한된 커스터마이징, 벤더 종속성, 대규모 사용 시 대화당 비용이 잠재적으로 더 높을 수 있으며, 제공업체가 선택한 모델과 기능에 국한됩니다. 요구 사항이 지원되는 기능과 다를 경우, 금방 한계에 부딪히게 됩니다.

예시 접근 방식: OpenAI Realtime API 또는 Hume AI의 EVI. 모델, 오케스트레이션, 심지어 함수 호출까지 모든 것이 번들로 제공됩니다. 사용자는 함수 실행과 세션 관리를 처리하기 위해 최소한의 서버 측 코드만 작성하면 됩니다. 대화 자체는 차별화 요소가 아닌 프로토타입이나 애플리케이션에 적합합니다.

선택하기

제가 본 대부분의 운영 시스템은 다음과 같은 마이그레이션 경로를 따릅니다. 개념을 검증하기 위해 올인원 솔루션으로 시작하고, 요구 사항을 파악하고 더 많은 제어가 필요해지면 오케스트레이션으로 이동하며, 진정으로 독창적인 것을 구축하거나 플랫폼이 충족할 수 없는 특정 제약 조건 (데이터 상주, 규제 요건, 특수한 성능 요구 사항)이 있는 경우에만 완전히 맞춤형으로 나아갑니다.

제가 가장 자주 목격하는 실수는 오케스트레이션 플랫폼을 사용했다면 6개월 더 빨리 시장에 출시할 수 있었을 텐데도, 처음부터 완전히 맞춤형 구축으로 시작하는 것입니다. 두 번째로 흔한 실수는 올인원 솔루션에 너무 오래 머물며, 요구 사항이 이를 넘어섰을 때 오케스트레이션 플랫폼으로 전환하는 대신 그 한계를 우회하려고 애쓰는 것입니다.

인프라: 이론과 현실이 만나는 지점

대부분의 팀이 여기서 난관에 부딪히는 것을 봅니다. 데모는 훌륭하게 작동합니다. 아키텍처도 깔끔해 보입니다. 그런데 배포를 시도하면 모든 것이 무너져 내립니다.

좋은 소식은, 아고라의 대화형 AI 엔진과 같은 오케스트레이션 플랫폼을 사용한다면 이러한 과제 중 상당수가 추상화되어 처리된다는 점입니다. 에이전트 확장, 네트워크 복원력, 오디오 전송 등을 플랫폼이 대신 처리해 줍니다. 하지만 그렇다고 해도 올바른 아키텍처 결정을 내리기 위해서는 근본적인 제약 조건을 이해해야 합니다.

직접 구축하고 계신가요? 마음 단단히 먹으세요. 이 문제들은 현실이며 해결하기 어렵습니다.

확장성 문제

근본적인 과제는 다음과 같습니다. 대화형 AI 에이전트는 상태 비저장(stateless)이 아닙니다. 각 요청이 독립적인 REST API와 달리, 대화형 AI 프로세스는 대화 전체가 끝날 때까지 실행됩니다. 즉, 컴퓨팅 리소스가 수분에서 수시간 동안 묶여 있게 된다는 뜻입니다.

구체적으로 설명해 보겠습니다. 오디오 스트림을 직접 처리하는 OpenAI의 Realtime API와 같은 올인원 모델을 배포한다고 가정해 봅시다. 4코어 CPU와 8GB RAM을 갖춘 에이전트 인터페이스를 가동합니다. 워크로드와 아키텍처에 따라 하나의 인스턴스가 여러 개의 동시 대화를 지원할 수도 있지만, 일반적으로 확장하려면 여러 인스턴스가 필요합니다.

그게 전부입니다. 인스턴스당 6개의 대화.

각 요청이 밀리초 단위로 완료되기 때문에 초당 1,000건 이상의 요청을 처리할 수 있는 기존 API 서버와 비교해 보세요. 리소스 활용 모델이 완전히 다릅니다.

이는 동시 사용자 수와 거의 1:1로 확장해야 함을 의미합니다. 동시 대화 100건? 대략 17개의 인스턴스가 필요합니다. 대화 1,000건? 167개의 인스턴스가 필요합니다. 계산은 냉혹합니다.

다중 에이전트 배포 아키텍처

여러 개의 에이전트 인스턴스가 필요하다는 사실을 인정했다면, 이를 관리할 인프라가 필요합니다. 즉:

컨테이너 오케스트레이션(Kubernetes가 표준)을 통해 수요에 따라 에이전트 인스턴스를 자동으로 생성 및 종료해야 합니다. 배포에는 단순히 요청 빈도뿐만 아니라 대화 지속 시간을 고려한 자동 확장 규칙이 필요합니다.

라우팅 레이어(흔히 오케스트레이터라고 함)를 통해 들어오는 요청을 사용 가능한 에이전트로 전달해야 합니다. 이는 일반적인 로드 밸런싱보다 더 까다로운데, 그 이유는 다음과 같습니다:

  • 세션 어피니티가 필요합니다 — 동일한 사용자의 후속 메시지는 반드시 동일한 에이전트로 전달되어야 합니다
  • 요청 수준이 아닌 대화 수준에서 에이전트 가용성을 추적해야 합니다
  • 대화 도중 발생하는 에이전트 장애를 처리하고 상태를 마이그레이션해야 할 수도 있습니다

일반적인 라우팅 전략은 다음과 같습니다:

  • 세션 고정(session pinning)을 적용한 라운드 로빈(Round-robin): 새로운 대화는 순서대로 에이전트에 할당된 후, 해당 에이전트에 고정됩니다
  • 최소 부하 라우팅: 활성 세션이 가장 적은 에이전트에게 새로운 대화를 전송합니다
  • 어피니티 기반 라우팅: 더 나은 캐싱과 컨텍스트 재사용을 위해 관련 대화를 동일한 에이전트에게 전송하려고 시도합니다

세션-에이전트 매핑과 에이전트 상태를 추적하려면 전용 Redis 인스턴스나 이와 유사한 도구가 필요할 것입니다. 무상태 라우팅으로 영리하게 해결하려 하지 마십시오. 에이전트가 수백 개가 되면 작동하지 않을 것입니다.

라스트 마일 문제: 오디오 스트리밍

이제 아키텍처 다이어그램에서는 아무도 언급하지 않는 재미있는 부분을 살펴보겠습니다. 바로 사용자와의 오디오 송수신을 안정적으로 처리하는 것입니다.

REST API만으로는 연결 오버헤드와 지연 시간 때문에 실시간 대화형 오디오에 적합하지 않습니다. 연결을 설정하고, 헤더를 전송하며, 응답을 기다리는 데만 500ms 이상의 왕복 시간이 소요됩니다. 음성 대화에서 이는 영원처럼 느껴질 수 있습니다.

WebSockets가 당연한 선택처럼 보이지만, 이 역시 나름의 문제가 있습니다. 네트워크 경로가 안정적이고 예측 가능한 서버 간 통신에는 훌륭하게 작동합니다. 하지만 최종 사용자에게 전달하는 라스트 마일 전송의 경우라면 어떨까요? 다음과 같은 문제들을 다루어야 합니다:

  • 변동적인 모바일 네트워크 환경
  • 패킷 손실 및 지터
  • NAT 통과 문제
  • 클라이언트 측 네트워크 변경(WiFi에서 셀룰러로 전환)

이때 보통 WebRTC와 같은 실시간 통신 프로토콜이 사용됩니다. 하지만 WebRTC는 복잡합니다. ICE 후보, STUN/TURN 서버, 코덱 협상을 다루는 것은 마치 끝없는 늪에 빠지는 것과 같습니다.

실용적인 해결책은 대규모 실시간 음성 통신을 위해 특별히 설계된 플랫폼을 사용하는 것입니다. 아고라(Agora)의 소프트웨어 정의 실시간 네트워크(SD-RTN®)는 이러한 사용 사례에 최적화되어 있습니다. 매일 수백만 건의 화상 통화를 지원하는 바로 그 인프라를 대화형 AI에 적용한 것입니다. 이 네트워크는 다음을 처리합니다:

  • 지연 시간을 최소화하기 위한 자동 경로 최적화
  • 열악한 네트워크 환경에서도 오디오 품질을 유지하기 위한 전방 오류 정정 및 패킷 손실 은폐
  • 적응형 비트레이트 및 지터 버퍼 관리
  • 퍼스트 마일 및 라스트 마일 지연 시간을 줄여주는 글로벌 엣지 서버

Agora의 대화형 AI 엔진을 사용 중이라면 이 네트워크 계층이 내장되어 있습니다. 에이전트가 마치 사용자가 화상 통화에 참여하는 것처럼 Agora 채널에 연결하면, 플랫폼이 모든 오디오 전송의 복잡한 과정을 처리합니다. 그 결과, 모바일 네트워크를 사용하는 해외 사용자라도 1초 미만의 지연 시간을 보장합니다.

또는 자체 오케스트레이션 레이어를 구축하는 경우, Twilio의 Programmable Voice나 Daily.co가 오디오 전송의 까다로운 세부 사항을 처리해 줄 수 있습니다. 이들은 글로벌 엣지 서버와 실제로 사용 가능한 API를 제공하며, 코덱 협상 및 NAT 통과를 처리해 줍니다. 물론 이는 또 다른 벤더 의존성을 의미하지만, 대안은 실시간 미디어 엔지니어링 분야에서 상당한 내부 전문성을 구축하는 것뿐입니다.

모니터링 및 가시성

대화형 AI에는 다음과 같은 전문적인 지표가 필요합니다:

  • 지연 시간 분석: 사용자 오디오 종료부터 상담원 오디오 시작까지의 시간, 구성 요소별(STT, 처리, TTS) 분석
  • 대화 지표: 평균 대화 시간, 대화당 턴 수, 작업 완료율
  • 대화 상태 추적: 대화 흐름의 어느 단계에서 사용자가 이탈하거나 사람과의 연결을 요청하는가?
  • 오디오 품질: 패킷 손실, 지터, 에코 감지
  • 비용 추적: 모든 구성 요소에 걸친 대화당 비용(LLM API 사용 시 매우 중요)

기존 APM 도구로는 부족합니다. 특정 대화를 심층 분석하고, 발생 상황을 재현하며, 실패 패턴을 식별할 수 있는 맞춤형 대시보드가 필요합니다.

또한 대화 맥락을 이해하는 알림 기능이 필요합니다. 단 한 번의 대화 실패는 단순한 잡음일 뿐입니다. 명확한 설명을 요청하는 횟수가 급증한다면 NLU 성능 저하를 의미할 수 있습니다. 특정 대화 분기에서 사용자가 지속적으로 사람과의 연결을 요청하는 패턴은 대화 정책에 문제가 있음을 시사합니다.

앞으로 나아갈 길

실전 수준의 대화형 AI를 구축하는 것은 주말에 끝낼 수 있는 프로젝트가 아니지만, 처음 보기에 그토록 거창한 작업도 아닙니다. 핵심은 특정 상황에 맞는 올바른 접근 방식을 선택하는 것입니다.

막 시작했거나 제품-시장 적합성을 검증 중이라면 올인원 솔루션으로 시작하세요. OpenAI의 Realtime API나 Hume AI를 활용해 며칠 만에 작동하는 시스템을 구축하세요. 대화형 인터페이스를 통해 사용자가 실제로 무엇을 필요로 하는지 파악하세요. 이러한 솔루션은 인프라 구축에 대한 부담 없이 탐색할 수 있을 만큼 충분한 유연성을 제공합니다.

일정 수준의 성과를 거두고 요구 사항을 파악했다면, 다음이 필요한 경우 오케스트레이션 플랫폼으로 전환하는 것을 고려해 보세요:

  • AI 모델과 그 동작에 대한 더 많은 제어권
  • 확장 시 더 나은 비용 효율성 (사용한 구성 요소에 대해서만 지불)
  • 올인원 솔루션이 지원하지 않는 맞춤형 통합
  • AI 기능으로 차별화할 수 있는 능력

이 경우 Agora의 대화형 AI 엔진이 훌륭한 선택지입니다. 중요한 구성 요소(LLM, 프롬프트, 지식 기반)에 대한 통제권을 유지하면서, 까다로운 인프라 문제(실시간 오디오, 확장성, 네트워크 복원력, 중단 처리)는 해당 사용 사례를 위해 특별히 설계된 플랫폼에 위임할 수 있습니다. ASR 및 TTS를 위해 지원되는 제공업체로 시작하여, 필요에 따라 RAG, 함수 호출 또는 특화된 추론 기능을 갖춘 맞춤형 LLM을 통합할 수 있습니다.

진정으로 독창적인 것을 구축하거나, 고유한 규제 요건이 있거나, 플랫폼이 제공할 수 없는 최적화가 필요한 경우에만 완전한 맞춤형 방식을 선택하십시오. 이는 대화형 AI가 단순한 기능이 아닌 제품 그 자체인 기업을 위한 경로입니다. 6~12개월의 기간과 ML 엔지니어링, 분산 시스템, 오디오 처리, DevOps 등 다양한 전문성을 갖춘 팀을 구성하십시오.

어떤 접근 방식을 선택하든, 성공하는 팀은 다음과 같은 특징을 갖습니다:

끊임없이 측정하십시오: 모든 요소를 계측하고, 대화 수준 지표를 추적하며, 데이터를 기반으로 의사결정을 내리십시오. 지연 시간 분포, 대화 완료율, 사용자가 어려움을 겪는 지점을 파악하십시오. 오케스트레이션 플랫폼의 경우, 이는 종종 해당 플랫폼의 콜백 및 이벤트 스트림을 분석 파이프라인에 통합하는 것을 의미합니다.

대화 설계를 반복적으로 개선하십시오: 대화 흐름을 사후 고려 사항이 아닌 최우선 설계 과제로 삼으십시오. 대화 정책, 명확화 전략, 오류 복구 패턴은 모델 선택만큼이나 중요합니다. 실제 사용자를 대상으로 조기에, 그리고 자주 테스트하십시오.

확장을 신중하게 계획하십시오: 확장 관련 긴급 상황이 발생하기 전에 리소스 모델을 파악하십시오. 인프라를 오케스트레이션 플랫폼이 처리하더라도 대화당 비용, 최대 동시 사용량, 그리고 다양한 아키텍처 선택이 단위 경제성에 미치는 영향을 고려해야 합니다.

가시성(Observability)에 투자하세요: 대화를 재현하고, 특정 오류 원인을 심층 분석하며, 사용자 행동 패턴을 파악할 수 있는 능력은 매우 중요합니다. 단순한 API 호출 메트릭뿐만 아니라 각 대화의 전체 맥락을 포착할 수 있는 로깅 및 모니터링 시스템을 구축하세요.

초기에 과도한 설계는 피하세요: 더 단순한 접근 방식으로 시작하고, 실제 한계에 부딪혔을 때만 복잡성을 추가하세요. 많은 팀이 LLM의 프롬프트를 미세 조정하는 것만으로도 충분했을 텐데, 맞춤형 NLU 파이프라인을 구축하는 데 몇 달을 낭비합니다. 요구 사항을 충족하는 가장 단순한 스택을 사용한 다음, 실제로 발생하는 병목 현상을 최적화하세요.

대화형 AI는 최첨단 연구 단계에서 운영 인프라 단계로 이동하고 있습니다. 이러한 시스템을 안정적으로 배포하고, 효율적으로 확장하며, 신속하게 개선하는 방법을 터득한 기업들이 막대한 우위를 점하게 될 것입니다.

특정 사용 사례에서 대화형 인터페이스가 기존 UI를 대체할지 여부는 의문의 여지가 없습니다. 이미 대체될 것이기 때문입니다. 진짜 문제는 사용자가 이를 기대할 때 여러분이 준비가 되어 있을지 여부입니다.

실전 대화형 AI 아키텍처에 대해 더 깊이 알아보고 싶으신가요? 저는 실제 배포 경험을 통해 얻은 교훈을 정리하고 있으며, 여러분이 직면한 과제에 대해 듣고 싶습니다. 연락 주시거나 구독을 신청하시면 향후 기술 심층 분석 자료를 이메일로 바로 받아보실 수 있습니다.

RTE Telehealth 2023
Join us for RTE Telehealth - a virtual webinar where we’ll explore how AI and AR/VR technologies are shaping the future of healthcare delivery.

Learn more about Agora's video and voice solutions

Ready to chat through your real-time video and voice needs? We're here to help! Current Twilio customers get up to 2 months FREE.

Complete the form, and one of our experts will be in touch.

Try Agora for Free

Sign up and start building! You don’t pay until you scale.
Try for Free