레스토랑 예약이나 고객 서비스 전화 같은 실제 업무를 처리하는 음성 기반 AI 에이전트를 처음 실험하면 근본적인 문제에 부딪히곤 한다. 초기의 모놀리식(monolithic) 에이전트는 모든 일을 한꺼번에 하려 했다. 복잡한 고객 요청을 이해하고, 레스토랑 예약 가능 여부를 조사하며, 실시간 전화 통화를 관리하고, 직원의 예상치 못한 응답에도 대응하려고 했다. 그 결과, 어느 것 하나 제대로 해내지 못하는 AI였다.
며칠 동안 저녁 식사 예약을 처리하는 음성 AI 프로토타입을 실험한 끝에, 필자는 가장 견고하고 확장 가능한 방식이 2개의 특화된 에이전트를 협력 구조로 배치하는 것임을 알게 됐다. 바로 ‘컨텍스트 에이전트’와 ‘실행 에이전트’다. 이 아키텍처 패턴은 역할을 분리하고 각 구성 요소를 해당 역할에 맞게 최적화함으로써, 우리가 AI 업무 자동화를 바라보는 방식을 근본적으로 바꾼다.
모놀리식 AI 에이전트의 문제점
초기 음성 AI 구축 시도는 모든 것을 처리하려는 단일 에이전트 방식이었다. 사용자가 레스토랑 예약을 원할 때, 이 모놀리식 에이전트는 동시에 여러 일을 수행해야 했다. “비건 메뉴가 있는 레스토랑에서 4인용 테이블을 예약해 달라”는 요청을 분석하고, 대화 전략을 세운 뒤, 실제 사람 직원과 실시간 전화 통화를 진행해야 했던 것이다.
이 과정에서 필자는 2가지 중대한 문제를 경험했다.
- - 실시간 통화 중 맥락 상실 : 가장 큰 문제는 전화 통화 도중 새로운 정보가 등장했을 때 에이전트가 대응하지 못한다는 점이었다. 예를 들어, 레스토랑 직원이 “알레르기가 있으신가요?”라고 물으면 에이전트는 멈춰버렸다. 사용자가 실시간으로 식이 제한 정보를 알려주지 않는 한 이를 전혀 알 수 없었기 때문이다. 그 결과, 사람 입장에서는 충분히 예상 가능한 질문에도 응답하지 못해 통화가 반복적으로 실패하는 상황이 벌어졌다.
- - 처리 속도 충돌 : 음성 에이전트는 자연스러운 대화를 위해 실시간 통화 중 신속한 응답을 제공해야 한다. 하지만 사용자 선호를 종합적으로 분석하고, 문맥을 파악하며, 갱신된 정보를 반영해 작업을 수행하는 데는 상당한 처리 시간이 필요하다. 결국 에이전트는 깊이 있는 맥락 분석과 자연스러운 전화 대화에 필요한 2초 이내의 응답을 동시에 만족시키지 못했다.
2-에이전트 아키텍처 패턴
필자는 ‘2-에이전트 아키텍처(2-agent architecture)’라고 부르는 방식을 개발하고 시스템을 다시 설계했다. 이 접근법은 사람의 복잡한 업무 처리 방식을 본뜬 것으로, 각기 다른 역할을 맡는 특화된 에이전트를 만든다.
컨텍스트 에이전트 : 전략 설계자
컨텍스트 에이전트는 마치 리서치 애널리스트처럼 동작한다. 어떤 행동을 취하기 전에 상황을 충분히 이해하기 위해 시간을 들여 분석하는 것이다. 필자가 만든 레스토랑 예약 시스템에서는 이 에이전트가 다단계 파이프라인을 통해 심층 분석을 수행한다.
컨텍스트 에이전트는 전화를 걸기 전에 사용자와 자연스러운 대화를 이어가며 필요한 정보를 충분히 수집한다. 일반적인 과정은 다음과 같다.
- - 요청 수집 : 사용자가 “오늘 저녁에 식사 예약을 하고 싶어요”라고 말하면, 컨텍스트 에이전트는 구체적인 질문을 던진다. “몇 분이 식사하시나요? 어떤 종류의 음식을 원하시나요? 알레르기나 식이 제한이 있으신가요? 몇 시가 가장 적당하신가요?”
- - 선호도 정제 : 대화가 이어지면서 에이전트는 더 깊이 탐색한다. 사용자가 “건강한 음식”을 원한다고 하면, “탄수화물 위주의 음식을 찾으시는 건가요, 아니면 단백질 위주의 음식을 선호하시나요? 피하고 싶은 특정 요리가 있으신가요?”와 같은 질문을 던진다. 이런 상호작용을 통해 에이전트는 전체적인 요구사항을 명확히 파악한다.
- - 조사와 검증 : 웹 검색이나 MCP 도구를 활용해 컨텍스트 에이전트는 사용자의 조건에 맞는 현지 레스토랑을 조사한다. 예약 가능 여부를 확인하고, 메뉴를 검토해 식이 제한을 충족하는지 살펴본다. 이후 사용자에게 “비건 메뉴가 훌륭한 레스토랑 세 곳을 찾았습니다. 태국 요리와 이탈리아 요리 중 어느 쪽을 원하시나요?”라고 되묻는다.
- - 전략 수립 : 에이전트가 파티 규모, 음식 종류 선호, 식이 제한, 선호 시간, 대체 시간, 심지어 예비 레스토랑 옵션까지 충분히 파악했다고 판단되면, 상세한 실행 계획을 세워 실제 전화 예약에 대비한다.
핵심은 이 모든 컨텍스트 수집 대화가 실제로 레스토랑에 전화를 걸기 전에 이루어진다는 점이다. 덕분에 실행 에이전트는 성공적인 전화 통화를 위해 필요한 모든 정보를 갖춘 상태에서 작업을 시작할 수 있다.
실행 에이전트 : 실시간 수행자
컨텍스트 에이전트가 심층적으로 ‘생각’하는 동안, 실행 에이전트는 실제 전화 통화를 담당한다. 이 에이전트는 컨텍스트 에이전트가 정리한 정보를 받아 즉시 전화를 걸고, 상호작용 과정에서 순간적인 결정을 내려야 한다.
필자가 지켜본 실행 에이전트의 대응 사례는 다음과 같다.
- - 레스토랑 직원이 “오후 6시는 이미 예약이 꽉 찼습니다”라고 하면 → 컨텍스트 계획에 있는 대체 시간을 즉시 제안한다.
- - 직원이 “전화번호를 알려주시겠어요?”라고 물으면 → 컨텍스트에서 고객의 번호를 불러준다.
- - 매니저와 연결되면 → 관계를 다시 설정하고, 필요한 맥락을 자연스럽게 이어간다.
- - 해당 레스토랑에 비건 옵션이 없다는 사실을 알게 되면 → 정중하게 통화를 종료하고 예비로 준비한 다른 레스토랑으로 전환한다.
필자가 깨달은 핵심은 실시간 대화에는 전략적 계획과는 완전히 다른 유형의 지능이 필요하다는 점이다. 실행 에이전트는 빠르고 유연해야 하며, 오직 눈앞의 상호작용에만 집중해야 한다.
현장에서 얻은 구현 패턴
필자는 음성 AI 시스템을 구축하고 테스트하는 과정에서 2가지 주요 구현 패턴을 확인할 수 있었다.
순차적 처리(Sequential processing)
복잡한 시나리오에 사용하는 접근법이다. 컨텍스트 에이전트가 사용자와 충분히 대화를 나누며 필요한 모든 정보를 수집한 뒤, 웹 검색 도구를 활용해 옵션을 조사하고 종합적인 실행 계획을 세운다. 이 전체 과정이 끝난 후에야 실행 에이전트가 실제 전화를 걸기 시작한다. 이 방식은 맥락의 완성도를 극대화할 수 있지만, 초기 단계에서 시간이 더 소요된다.
지속적 협업(Continuous collaboration)
장시간 이어지는 고객 서비스 통화에서는 두 에이전트가 상호작용 전 과정에서 함께 움직인다. 컨텍스트 에이전트는 끊임없이 분석을 이어가고, 실행 에이전트는 대화를 주도하면서 무엇이 효과적인지에 대한 실시간 피드백을 제공한다.
실제로 관찰한 효과
2-에이전트 아키텍처는 필자의 음성 AI 시스템에서 다음과 같은 뚜렷한 개선을 가져왔다.
- - 특화된 최적화 : 컨텍스트 에이전트는 정확성에 집중한 모델 설정을, 실행 에이전트는 대화에 최적화된 빠른 모델 설정을 사용한다. 이 전문화 덕분에 맥락의 정확성과 대화의 자연스러움이 동시에 향상됐다.
- - 독립적 확장성 : 저녁 식사 예약이 몰리는 시간대에는 실행 에이전트를 더 많이 늘려 동시 통화를 처리할 수 있고, 조사 중심의 작업에는 소수의 컨텍스트 에이전트만 유지하면 된다.
- - 신뢰성 향상 : 컨텍스트 에이전트가 레스토랑 정보를 찾지 못하더라도 실행 에이전트가 직접 전화를 걸어 정보를 수집할 수 있다. 반대로 실행 에이전트가 예상치 못한 대화 흐름에 부딪혀도 전체 시스템이 멈추지 않는다.
- - 디버깅 효율 개선 : 오류가 잘못된 컨텍스트 분석(잘못된 레스토랑 정보)에서 비롯된 것인지, 실행 단계 문제(어색한 대화 흐름)에서 기인한 것인지 쉽게 구분할 수 있다. 이 분리가 디버깅 시간을 획기적으로 줄여줬다.
모니터링해야 할 중요한 요소
시스템 성능을 제대로 이해하기 위해 필자는 각 에이전트별로 다른 지표를 추적한다.
- - 컨텍스트 에이전트 : 처리 시간(맥락 분석에 걸리는 시간), 컨텍스트 품질 점수(레스토랑 조사 완성도), 전략 복잡성(실행 계획의 세부 수준)
- - 실행 에이전트 : 대화 성공률, 통화 시간, 백업 전략 활용 빈도
이렇게 지표를 분리하면 각 에이전트를 독립적으로 최적화할 수 있다. 예를 들어, 컨텍스트 품질을 높여도 대화 속도가 느려지지 않고, 반대로 대화 속도를 개선해도 컨텍스트 분석의 완성도에는 영향을 주지 않는다.
앞으로의 방향
2-에이전트 아키텍처는 복잡한 실제 업무를 위한 AI 시스템 설계 방식에 있어 근본적인 전환점을 의미한다. 컨텍스트 분석과 실행을 분리하는 접근이 전통적인 모놀리식 방식보다 훨씬 더 신뢰할 수 있고, 확장 가능하며, 유지 관리가 용이한 시스템을 만든다는 사실을 직접 확인했다.
성공의 핵심은 컨텍스트와 실행의 경계를 명확히 구분하고 견고한 통신 프로토콜을 구축하며, 각 에이전트를 역할에 맞게 최적화하는 데 있다. 이 과정이 제대로 이루어지면 신중한 분석과 민첩한 실행을 결합한 AI 시스템을 만들 수 있다. 이는 복잡한 업무를 인간이 자연스럽게 처리하는 방식과 크게 다르지 않다.
현실 세계의 복잡성을 다뤄야 하는 AI 시스템을 구축하는 모든 개발자에게 이 아키텍처 패턴으로 시작할 것을 권한다. 역할을 분리하는 접근은 끝없는 디버깅 시간을 줄여줄 뿐만 아니라, 사용 사례가 늘어날수록 확장 가능한 토대를 마련해 준다.
*Jenil Shah는 아마존에서 소프트웨어 엔지니어링 매니저로 근무하며 추천 시스템과 개인화, 생성형 AI 애플리케이션을 전문으로 한다.
dl-itworldkorea@foundryco.com
Jenil Shah editor@itworld.co.kr
저작권자 Foundry & ITWorld, 무단 전재 및 재배포 금지


















































