AI 그룹 채팅을 구축하는 세 가지 방법: 우리가 어려운 길을 선택한 이유

Reverie Team

Reverie Team

12/9/2025

#엔지니어링#AI 아키텍처#그룹 채팅#기술 심층 분석
AI 그룹 채팅을 구축하는 세 가지 방법: 우리가 어려운 길을 선택한 이유

모든 것을 시작한 질문

"왜 다른 앱처럼 각 캐릭터가 자신만의 메시지 말풍선을 가질 수 없나요?"

이 질문을 정말 많이 받습니다. 솔직히 좋은 질문입니다. 대부분의 채팅 앱은 메시지를 별도의 말풍선으로 보여줍니다 - 한 사람당 하나씩. 그렇다면 왜 우리 그룹 채팅은 여러 캐릭터의 응답을 하나의 메시지로 결합할까요?

답은 게으름이나 실수가 아닙니다. 이것은 AI 그룹 대화에 대한 세 가지 근본적으로 다른 접근 방식으로 수개월간 실험한 결과 탄생한 의도적인 엔지니어링 선택입니다.

세 가지 아키텍처

멀티 캐릭터 AI 대화를 구축할 때, 모든 플랫폼은 같은 결정에 직면합니다. 정확히 세 가지 방법이 있으며, 각각은 비용, 품질, 사용자 경험에 깊은 영향을 미칩니다.

1. 구조화된 출력 (JSON 배열)

업계에서 가장 일반적인 접근 방식. AI에게 각 요소가 캐릭터의 응답을 나타내는 JSON 배열을 반환하도록 요청합니다:

[
  {
    "speaker": "셜록",
    "emotion": "흥미로움",
    "content": "흥미롭군. 진흙 패턴이 암시하는 것은..."
  },
  {
    "speaker": "왓슨",
    "emotion": "혼란",
    "content": "홈즈, 무슨 뜻입니까?"
  }
]

매력:

  • 단일 API 호출, 단일 크레딧 소비
  • 별도의 메시지 말풍선으로 파싱하고 렌더링하기 쉬움
  • 풍부한 메타데이터 포함 가능 (감정, 행동, 장면 설명)
  • 사용자 응답 제안 생성에 완벽

현실:

  • 비싼 프리미엄 모델(Claude, GPT-4)만이 구조화된 출력을 안정적으로 지원 - 대부분의 저렴한 모델은 일관된 JSON 포맷팅에 어려움을 겪음
  • 포맷 오류는 전체 응답을 망침
  • JSON 명령은 토큰을 소비하여 창의적 공간 감소
  • 모델이 "제약받는" 느낌 - 창의성이 종종 저하됨
  • 콘텐츠 제한이 더 엄격해짐: 구조화된 출력 모드는 종종 더 공격적인 콘텐츠 필터링을 촉발하여 성숙하거나 대담한 롤플레이 시나리오가 실패할 가능성이 높아짐
  • 컨텍스트 오염: 대화 기록이 JSON 구조로 가득 참
  • 오류 처리 복잡성: 스트리밍 중에 파싱이 실패하면 어떻게 되나요?

대부분의 서드파티 캐릭터 플랫폼이 이 접근 방식을 사용합니다. 작동하지만 제약은 현실입니다.

2. 도구 호출 (에이전트 모드)

가장 "지능적인" 접근 방식. AI가 다음에 말할 캐릭터를 결정하고, 이를 나타내는 도구를 호출한 다음 해당 캐릭터의 응답을 생성합니다. 장면이 완성될 때까지 반복합니다.

AI 생각: "왓슨이 이 발견에 반응해야 해"
→ 도구 호출: next_speaker("왓슨")
→ 왓슨의 응답 생성
→ AI 생각: "이제 셜록이 끼어들 거야"
→ 도구 호출: next_speaker("셜록")
→ 셜록의 응답 생성
...

매력:

  • 가장 자연스러운 대화 흐름
  • AI가 장면 페이싱을 완전히 창의적으로 제어
  • 각 캐릭터 응답이 전용 생성 품질을 얻음
  • 자연스럽게 캐릭터별 별도 메시지 생성

현실:

  • 여러 API 호출 = 여러 크레딧 청구
  • 지연 시간 누적: N 캐릭터 = N 왕복
  • 하이엔드 모델(Claude, GPT-4)만이 도구 호출을 안정적으로 처리 - 저렴한 모델은 종종 실패하거나 도구 호출을 환각함
  • 호출 간 복잡한 상태 관리
  • 무한 루프 또는 예기치 않은 종료 위험
  • 디버깅 악몽: 문제를 재현하기 어려움

이것은 종이 위에서는 아름답게 보이지만 대규모로 운영상의 골칫거리를 만드는 "꿈의 아키텍처"입니다.

3. 자유 형식 텍스트 출력 (우리의 현재 선택)

가장 단순한 접근 방식. AI에게 자연스럽게 장면을 쓰도록 요청하고, 흐르는 산문으로 여러 캐릭터를 어떻게 표현할지 결정하게 합니다:

셜록이 몸을 앞으로 기울이며 날카로운 눈으로 말했다. "흥미롭군.
진흙 패턴은 우리 용의자가 동쪽에서 왔다는 것을 암시해."

왓슨이 눈살을 찌푸렸다. "홈즈, 무슨 뜻입니까? 그냥 진흙일 뿐인데요."

"그냥 진흙?" 셜록이 미소 지었다. "친애하는 왓슨,
'그냥' 무언가라는 것은 없어."

매력:

  • 모든 AI 모델에서 작동, 특별한 기능 불필요
  • 최대한의 창의적 자유 - AI가 자연스럽게 씀
  • 깨끗한 컨텍스트: 대화 기록이 소설처럼 읽힘
  • 뛰어난 스트리밍 경험
  • 단일 호출, 예측 가능한 비용
  • 구현 및 유지 관리가 가장 간단

현실:

  • 모든 캐릭터가 하나의 메시지 블록에
  • 단일 캐릭터의 응답을 쉽게 재생성할 수 없음
  • UI 유연성 제한
  • 채팅 스타일 말풍선을 기대하는 사용자가 혼란스러울 수 있음

우리는 이것을 힘들게 배웠습니다

여기 이전에 공개적으로 공유하지 않은 것이 있습니다: 우리 그룹 채팅의 첫 번째 버전은 도구 호출을 사용했습니다.

우리는 "꿈의 아키텍처"를 믿었습니다. AI가 다음에 누가 말할지 결정하고, 각 캐릭터가 전용 생성을 받고, 아름다운 별도의 메시지 말풍선. 우아했습니다. 지능적이었습니다. 프로덕션에서는 재앙이었습니다.

사용자들은 예측할 수 없는 비용을 경험했습니다 - 때때로 같은 대화에 대해 예상의 3배. 응답 시간은 AI가 참여시키기로 결정한 캐릭터 수에 따라 크게 달랐습니다. 저렴한 모델은 도구 호출을 환각하거나 루프에 갇혔습니다. 오류 로그는 예상하지 못한 엣지 케이스로 가득 찼습니다.

몇 달간의 패치와 해결책 후, 우리는 자유 형식 텍스트 출력으로 처음부터 다시 구축하기로 어려운 결정을 내렸습니다. 후퇴처럼 느껴졌습니다. 하지만 때로는 "덜 지능적인" 솔루션이 더 현명한 선택입니다.

왜 이 선택을 했는가

세 가지 접근 방식을 모두 광범위하게 테스트하고 - 그 중 하나를 프로덕션에 배포한 후 - 그룹 채팅에 자유 형식 텍스트 출력을 선택했습니다. 이유는 다음과 같습니다:

기능보다 안정성 - 구조화된 출력은 예측할 수 없이 실패합니다. 그룹 채팅이 대화 중간에 중단되면 사용자는 더 이상 별도의 말풍선에 신경 쓰지 않습니다 - 그냥 작동하기를 원합니다. 자유 형식 텍스트는 포맷 문제로 절대 실패하지 않습니다.

양보다 질 - 제약된 포맷은 미묘하게 AI 창의성을 감소시킵니다. 출력을 비교했을 때, 자유 형식은 일관되게 더 생생하고 자연스러운 캐릭터 상호작용을 생성했습니다. AI는 JSON 구문 대신 스토리텔링에 집중할 수 있었습니다.

비용 예측 가능성 - 에이전트 모드는 캐릭터당, 응답당 요금을 청구합니다. 다섯 캐릭터 장면은 예상보다 5-10배 더 비용이 들 수 있습니다. 사용자는 예측 가능한 가격에 합당합니다.

범용 호환성 - 여러 AI 모델을 지원합니다. 모든 모델이 구조화된 출력이나 도구 호출을 동일하게 잘 지원하지는 않습니다. 자유 형식 텍스트는 어디서나 작동하여 사용자에게 더 많은 모델 선택권을 제공합니다.

우리가 수용하는 트레이드오프

예, "캐릭터당 하나의 말풍선" 경험을 희생합니다. 하지만 얻는 것:

  • 반석 같은 신뢰성
  • 더 나은 창의적 품질
  • 예측 가능한 비용
  • 더 넓은 모델 지원
  • 더 깨끗한 대화 기록

몰입감이 가장 중요한 그룹 롤플레이에서 이 트레이드오프는 가치가 있다고 믿습니다.

앞으로 다가올 것: 스토리 모드

흥미로운 소식이 있습니다: 구조화된 출력을 사용하는 새로운 스토리 모드를 구축하고 있습니다.

왜 다른 접근 방식인가요? 스토리 모드는 다른 우선순위가 있습니다:

  • 정밀한 장면 제어가 자유 형식 창의성보다 중요
  • 풍부한 메타데이터(카메라 앵글, 음악 큐, 챕터 브레이크)가 가치를 더함
  • 포맷이 더 예측 가능(명확한 챕터/장면 구조)
  • 사용자가 더 "프로듀싱된" 경험을 기대

다른 유스케이스는 다른 아키텍처를 필요로 합니다. 우리는 어떤 단일 접근 방식에도 고집하지 않습니다 - 사용자에게 가장 잘 서비스하는 것을 선택합니다.

정직한 진실

멀티 캐릭터 AI 대화에 완벽한 해결책은 없습니다. 모든 접근 방식은 가치 있는 무언가를 다른 것과 교환합니다.

별도의 말풍선을 보여주는 다른 플랫폼? 아마도 구조화된 출력을 사용하고 그 한계를 수용하고 있을 것입니다. 더 "지능적인" 장면 제어를 가진 플랫폼? 아마도 더 높은 비용과 지연 시간을 가진 도구 호출.

우리는 사용자가 가장 가치 있게 여기는 것을 우선시하는 길을 선택했습니다: 신뢰할 수 있고, 창의적이며, 비용 효율적인 그룹 롤플레이.

별도의 말풍선 경험은 좋습니다. 하지만 다른 모든 것을 희생하면서까지는 아닙니다.

우리가 탐구하고 있는 것

하이브리드 접근 방식을 실험하고 있습니다:

  • 후처리 파싱: 생성 후 자유 형식 텍스트를 캐릭터 세그먼트로 분할하기 위해 경량 모델 사용
  • 선택적 구조화 모드: 파워 유저가 정밀한 제어가 필요할 때 구조화된 출력을 선택할 수 있도록 허용
  • 스마트 장면 감지: 더 나은 UI 프레젠테이션을 위해 자연스러운 브레이크 포인트를 자동으로 식별

목표는 "올바른" 답을 찾는 것이 아닙니다. 작동하는 것을 유지하면서 경험을 계속 개선하는 것입니다.


그룹 채팅이 어떻게 작동해야 하는지에 대한 생각이 있으신가요? 여러분의 의견을 듣고 싶습니다.

역동적인 AI 대화를 경험할 준비가 되셨나요?

이미 Reverie에서 무한한 개성과 매력적인 상호작용을 탐색하고 있는 수천 명의 사용자들과 함께하세요.

AI 그룹 채팅을 구축하는 세 가지 방법: 우리가 어려운 길을 선택한 이유 | Reverie