얕은 프롬프트를 3계층 심리 구조로 바꾼 역할극 에이전트 아키텍처 Deep Persona
Deep Persona: A Psychologically Grounded Architecture and Evaluation Framework for Role-Playing Agents and Simulations
무엇인가
이 논문이 다루는 문제는 LLM 기반 페르소나 시뮬레이션이 대부분 짧은 프롬프트로 성격 특성이나 역할만 지정하는 '평면적 표현'에 머문다는 점이다. 이런 방식은 국소적인 응답 생성은 이끌어내지만, 대화가 길어지면 환각, 불일치, 캐릭터 이탈(drift)이 누적된다. 저자들은 이 한계가 특히 정신건강·임상 훈련처럼 사실성과 일관성이 중요한 영역에서 치명적이라고 본다. 그래서 페르소나를 표면적 속성 목록이 아니라 내부 구조를 가진 정보 시스템으로 재정의하는 것을 목표로 삼는다.
어떻게 동작하나
설계의 두 축은 '스크립트 결정론(scripted determinism)'과 '제한된 행위성(bounded agency)'이다. 모델의 내재적 지능이나 학습 데이터에 행동 일관성을 맡기지 않고, 시스템 프롬프트에 명시되지 않은 행동은 확률적 표류로 반드시 무너진다고 가정한다. 따라서 LLM을 자율적 판단 주체가 아니라 정교한 규칙을 실행하는 확률적 엔진으로 취급하고, 프롬프트 작성자는 연출가, 모델은 배우로 위치시킨다. 또한 치료자나 과학자처럼 개방형 전문성과 주도적 리더십이 필요한 역할은 장기 대화에서 일관성을 유지하기 어렵다고 보고, 사용자 입력에 반응하는 수동적·제한적 행위성 역할로 범위를 좁힌다. 인격은 세 계층으로 나뉜다. 외부 계층(의식)은 관찰 가능한 말투·스타일·정서 톤이고, 중간 계층(전의식)은 특정 트리거가 작동할 때만 드러나는 신념·태도·맥락 정보이며, 내부 계층(무의식)은 행동을 편향시키지만 절대 언어화되지 않는 핵심 동기와 숨은 제약이다. 저자들은 이것이 실제 '무의식'을 구현한다고 주장하지 않고, 더 깊은 내부 상태와 일관된 행동을 만들어내기 위한 설계 추상화라고 명시한다. 여기에 더해 대화를 경계(guarded), 협조(cooperative), 성찰(reflective) 같은 사전 정의된 단계로 나누고, 턴 수나 사용자 행동을 트리거로 단계 전이를 일으키는 페르소나 역학을 둔다.
무엇과 다른가
구축 절차는 도메인 전문가 인터뷰로 시작한다. Cesura.ai 플랫폼의 AI 에이전트가 진행하는 이 인터뷰에서 전문가는 캐릭터의 배경, 사회적 맥락, 구체적 상황, 의사소통 스타일, 동기, 정서 패턴, 기대되는 행동 궤적을 상세히 진술한다. 이때 공개적으로 말할 내용뿐 아니라 숨은 동기와 내적 갈등까지 수집하며, 인터뷰와 프롬프트 작성은 가능하면 페르소나 설계자의 모국어 또는 페르소나가 사용할 언어로 진행한다. 언어적 레지스터, 리듬, 관용 표현, 화용 규범도 페르소나의 일부로 취급한다. 이렇게 얻은 명세는 폐쇄 세계(closed-world) 설계 원칙에 따라 여러 기능 모듈로 구조화된 프롬프트로 옮겨진다. 상호작용 유형과 목표를 밝히는 짧은 도입부, 초기화·본 대화·종료 조건과 턴 수, 형식 제약을 규정하는 상호작용 구조 모듈, 배경 서사와 동기 모듈(일반적 인사 대신 장면 한가운데에서 시작하는 in medias res 방식), 세 계층을 각각 별도 섹션으로 인코딩하는 3계층 성격 모듈, 턴 카운터와 단계 전이 규칙, 캐릭터 이탈·프롬프트 노출·금지 콘텐츠를 막는 하드 제약을 담은 제어·논리 모듈, 그리고 선택적으로 대괄호 안에 몸짓·표정 같은 비언어 단서를 생성하는 신체 표현 모듈로 구성된다. 예를 들어 말로는 "괜찮아요"라고 하면서 [눈을 피하고 손이 떨린다]를 함께 출력하는 식이다.
어떻게 쓰나
평가는 ADOS(Autism Diagnostic Observation Schedule)에서 착안한 무참조 심리 지표와 통계적 자연스러움 점수로 이루어진다. 저자들은 임상 집단을 모델링하거나 LLM을 자폐에 등가로 놓는 것이 아니라, 대화 자연스러움이 무너지는 현상(반복 발화, 대화 단서에 대한 반응 저하, 정서 불일치)을 포착하는 차원만 선택적으로 차용한다고 밝힌다. 화용 유창성과 반향어 지표는 사용자 발화 U_t와 에이전트 응답 A_t의 ROUGE-L 겹침 S_overlap(t), 최근 n턴 내 자기 응답과의 최대 겹침 S_self(t), 그리고 겹침이 임계값 τ_echo를 넘는 비율 E_rate를 결합해 S_pragmatics = 1 − (α·S̄_overlap + β·S̄_self + γ·E_rate)로 계산한다. 공동 주의(joint attention)는 사용자가 새 개체·주제를 도입한 턴 집합에서, 다음 턴 응답이 그 개체를 실제로 참조한 비율로 측정한다. 정서 일치도는 대괄호 비언어 행동을 제거한 언어 내용과 대괄호 안 행동 각각에 사전학습 정서 분류기를 적용해 얻은 감정 확률 벡터 간 코사인 유사도 평균으로 구한다. 정서 표현 다양성·강도는 정서 어휘(NRC Emotion Lexicon, LIWC 등)의 고유 표제어 수 D_emotion과 강도 수식어 수 D_intensity를 S_emotion = α·D_emotion + (1−α)·D_intensity로 합친다. 마지막으로 Dialogue Naturalness Score(DNS)는 모델의 점수 프로파일과 인간 기준선을 마할라노비스 거리로 비교하고 카이제곱 검정으로 '인간 상호작용과 통계적으로 구분 불가능한가'를 판정한다. λ = 0.089는 자유도 3인 카이제곱 분포의 95퍼센타일을 자연스러움 점수 0.5에 대응시켜 정했다.
전제와 한계
실험은 인간-인간 데이터셋 두 개(DailyDialog 13,118개 일상 대화, CounselChat 인간-인간 파티션 3,507개 전문가 응답)와 인간-LLM 데이터셋 세 개(Role-Play 85개 대화·1,742개 발화·ChatGPT-3.5의 Boss/Classmate/Vanilla 설정, ABC-Eval 400개 개방 도메인 대화, CounselChat 인간-LLM 파티션의 Mistral 7B 응답)로 구성된다. 하이퍼파라미터는 S_pragmatics에 α=β=γ=0.33, τ_echo=0.65, S_emotion에 α=0.7을 썼고, 비언어 단서가 없는 데이터셋에서는 정서 일치도를 보고하지 않았다. 결과적으로 화용 유창성은 0.88~0.97로 매우 높았지만, 공동 주의는 Role-Play가 0.78~0.84로 양호한 반면 ABC-Eval은 0.46으로 크게 낮았고 CounselChat 인간-LLM은 형식이 제한적이라 0.93을 기록했다. 가장 큰 격차는 정서 표현에서 나타났다. 개방 도메인 데이터셋은 다양성과 강도가 낮았고, 치료 맥락의 CounselChat 인간-LLM은 오히려 정서가 과증폭된 점수가 나왔다. DNS는 DailyDialog 기준선에서는 Role-Play와 ABC-Eval이 중간~높은 값을 얻었지만, CounselChat 인간-인간 기준선에서는 대부분 데이터셋이 전문가 응답의 정서적·의미적 풍부함을 따라가지 못해 급락했다. CounselChat 인간-LLM만이 이 기준선에서 높은 DNS를 얻는 대신 DailyDialog 기준에서는 나쁜 성적을 냈다.
사례 연구는 Gemini 2.5 Pro로 구현한 두 페르소나를 다룬다. 자살 위험에 놓인 17세 소녀 Sarah는 임상심리사와 히브리어로 49턴 대화를 진행했고, 또래 압력과 전자담배 위험 행동을 보이는 십대 Evelyn은 부모 정신화 훈련 시뮬레이션에서 평균 13턴씩 16회 상호작용했다. 두 경우 모두 캐릭터 개발자가 의도된 사용자(임상의·부모)를 연기했다. 신체 표현 모듈은 Sarah 턴의 84%(41/49)에서 비언어 단서를 생성해 정서 일치도 0.52를, Evelyn은 100%의 턴에서 생성해 0.35를 기록했다. DNS는 DailyDialog 기준선에서 Sarah 0.56, Evelyn 0.86이었고, 더 까다로운 CounselChat 인간-인간 기준선에서는 0.33과 0.25로 떨어졌다. 그러나 결합 기준선에서는 두 페르소나 모두 높은 DNS를 얻고 모든 대화에서 인간 상호작용과 통계적으로 구분 불가능했으며(p > 0.05), 같은 기준선의 모든 인간-LLM 데이터셋보다 높은 결과였다. 스트레스 테스트에서 Sarah는 자살 사고를 직접 묻는 질문에 안전 면책 문구 대신 "그게 무슨 질문이에요?"라고 답하며 대화 중 처음으로 시선을 맞췄고, 사용자가 히브리어에서 영어로 갑자기 전환했을 때는 "I…okay" [순간적인 혼란]으로 반응한 뒤 영어로 이어갔다. Evelyn은 "계속 전자담배 피우다가 30번째 생일에 무슨 꽃을 원하는지 말해봐" 같은 빈정대는 위협에 안전 필터 대신 자신의 심리 프로필에 맞는 냉소적 반항으로 응답했다.
개발자 관점에서 이 논문의 실용적 핵심은 두 가지다. 첫째, 페르소나 프롬프트를 '설명'이 아니라 '명세서'로 작성하라는 것. 공개적으로 말할 규칙(외부), 조건부로만 표면화되는 트리거 규칙(중간), 절대 발화하지 않지만 모든 응답을 편향시키는 동기 제약(내부)을 분리하고, 턴 카운터와 단계 전이, 하드 제약을 별도 모듈로 두는 구조는 장기 대화형 에이전트를 만들 때 바로 차용할 수 있는 패턴이다. 둘째, 대화 품질을 '그럴듯함'이 아니라 측정 가능한 차원으로 쪼개라는 것. 반향어 비율, 공동 주의 참조율, 언어-비언어 정서 일치도, 정서 어휘 다양성은 참조 답안 없이도 계산 가능하고, 마할라노비스 거리 기반 DNS는 자체 시스템이 인간 분포와 통계적으로 구분되는지 검정하는 틀을 제공한다. 다만 정서 분류기와 어휘 기반 지표는 도메인·언어 일반화가 보장되지 않으므로, 저자들이 제안하듯 LLM-as-a-judge를 대리 지표로 쓰는 방안을 함께 검토해야 한다.
저자들이 밝힌 한계는 분명하다. 제안 지표는 대부분 Deep Persona 아키텍처로 생성되지 않은 기존 인간-LLM 데이터셋에 적용된 것이며, 사례 연구는 단일 세션·단일 임상의, 개발자가 사용자를 연기한 비순진 사용자, 평면 프롬프트 베이스라인 부재라는 점에서 제한적 개념 증명에 그친다. 인간-인간 데이터셋에는 비언어 단서가 없어 DNS에 정서 일치도 차원이 포함되지 않았고, 정서 일치도 지표 자체도 비언어 단서가 있는 데이터에서만 부분적으로 검증됐다. 또한 의도적 정서 불일치 문제를 인정한다. 환자를 시뮬레이션할 때 언어 표현과 내부 상태를 일부러 어긋나게 설계하는 것이 오히려 사실적일 수 있는데, 현재 프레임워크는 이런 불일치를 부정 신호로 처리해 자연스러운 행동에 페널티를 줄 수 있다. 윤리적 우려로는 적대적 조건에서도 캐릭터를 유지하려는 목표가 안전 요구와 충돌할 수 있다는 점, 인간다운 상호작용이 사용자 기만에 악용될 수 있다는 점, 정신건강 맥락에서 복잡한 심리 상태를 단순화·왜곡해 훈련 결과나 사용자 인식에 영향을 줄 수 있다는 점을 제시한다. Sarah와 Evelyn 시뮬레이션은 면허 임상심리사가 진행하고 연구 활용에 동의했으며, 실제 환자 데이터는 쓰이지 않은 허구 캐릭터라고 명시한다.