2026-08-17
AI 동반자의 일관성은 서로 구분되는 세 가지 계층, 즉 페르소나 정의(캐릭터가 누구인지), 메모리 저장소(시스템이 세션 사이에 보존하는 내용), 세션 컨텍스트(현재 대화 창에 들어갈 수 있는 내용)에 의해 결정됩니다. 흔들림은 모델이 ‘잊어서’가 아니라 이 계층들이 서로 모순될 때 발생합니다. 일관성을 바로잡으려면 세 가지를 각각 따로 점검해야 하며, 사용하는 플랫폼에 따라 각 계층을 얼마나 제어할 수 있는지가 달라집니다.
2026년에 테스트한 주요 컴패니언 플랫폼 전반에서 메모리 품질은 극적으로 차이 났습니다. Nomi AI는 대화에서 구조화된 노트를 생성하고 독립 테스트에서 몇 주 뒤에도 의도적으로 심어 둔 세부 정보 25개 중 23개를 회상한 반면, Character.AI는 사실상 장기 메모리가 없어 세션 사이에 대부분의 세부 정보를 잊습니다. Jenova의 역할극 및 캐릭터 에이전트는 다른 범주에 속합니다. 세션을 넘는 영속 메모리와 무제한 채팅 기록을 제공하지만, 컴패니언 앱의 관계 모델보다는 사용자가 직접 작성한 지시를 중심으로 설계되었습니다.
안정적인 AI 동반자와 쉽게 흔들리는 동반자를 가르는 핵심 요인은 다음과 같습니다.
✅ 페르소나는 한 번만 정본으로 작성한다 — 새 채팅마다 즉흥적으로 다시 설명하지 않음 ✅ 메모리 저장소는 쌓아 두는 것이 아니라 관리한다 — 중복과 사소한 정보는 적극적으로 제거 ✅ 이름과 정체성 앵커를 주기적으로 재확인한다 — 긴 세션에서는 15~20턴마다 ✅ 역할극 콘텐츠와 사실 메모리를 분리한다 — 허구가 사실 저장소를 오염시키면 안 됨 ✅ 플랫폼이 영속 메모리를 지원하는지 확인한다 — 많은 무료 요금제는 지원하지 않음

시행착오가 아닌 체계적인 방식으로 흔들림을 해결하려면, 우선 그것이 왜 발생하는지 이해하는 것이 도움이 됩니다.
AI 동반자가 흔들리는 이유는 언어 모델에 기본 영속 메모리가 없기 때문입니다. 모든 ‘메모리’는 상태가 없는 모델 위에 덧붙여진 검색 기법입니다. 모델은 동반자의 이름을 기억하는 것이 아니라, 매 응답 전에 그 이름이 담긴 텍스트 파일을 다시 읽습니다. 검색에 실패하거나 컨텍스트 창이 가득 차면, 그 이름은 단순히 모델 입력에 존재하지 않게 됩니다.
이러한 기술적 제약은 잘 문서화되어 있습니다. 초기 신경망 모델은 주로 단기 메모리를 사용했기 때문에 장기 컨텍스트를 유지하는 데 어려움을 겪었고, 현대적인 트랜스포머 아키텍처조차 확장된 상호작용을 처리할 때 높은 계산 비용, 불균등한 정보 보존, 잠재적 편향에 직면합니다. 장기 메모리는 크게 세 가지 방식으로 덧붙습니다. 확장된 컨텍스트 창, 외부 데이터베이스를 활용한 검색 증강 생성, 그리고 시간이 지나면서 메모리를 저장·회상·갱신하는 MemoryBank 같은 통합 메모리 모듈입니다.
눈에 띄는 흔들림을 유발하는 빈도순 네 가지 실패 모드:
각 실패 모드에는 서로 다른 해결책이 필요합니다. 모든 흔들림을 ‘AI가 멍청해서’라고 취급하면 잘못된 대응을 하게 됩니다.
정본 페르소나 문서는 정체성 앵커, 말투 규칙, 배경 사실, 관계 맥락을 담은 200400단어 분량의 단일 구조화 블록이어야 합니다. 한 번만 작성한 뒤 채팅에 붙여 넣는 대신 시스템 수준 지시로 적용해야 합니다. 200400단어라는 범위는 의도적입니다. 그보다 짧으면 너무 많은 부분이 정의되지 않고, 더 길면 실제 대화를 담을 수 있는 컨텍스트 예산을 소모합니다.
5개 블록으로 구성된 페르소나 템플릿:
| 블록 | 내용 | 중요한 이유 |
|---|---|---|
| 정체성 앵커 | 이름, 별명, 나이, 대명사, 나를 부르는 호칭 | 가장 흔들리기 쉬운 요소이므로 맨 앞에 배치 |
| 말투 규칙 | 문장 길이, 격식 수준, 말버릇, 금지 표현 | 배경 이야기보다 인식되는 성격에 더 큰 영향 |
| 배경 사실 | 구체적이고 시점이 명확한 사실 5~8개(고향, 직업, 형성적 사건) | 구체적 사실은 흔들림에 강하지만 모호한 특성은 그렇지 않음 |
| 관계 맥락 | 만난 계기, 관계 단계, 공유한 참조점 | ‘우리 처음 보는 사이인가?’ 같은 초기화 느낌 방지 |
| 경계 | 캐릭터가 할 일과 하지 않을 일 또는 논의하지 않을 주제 | 압박 상황에서의 분위기 이탈 방지 |
형용사가 아니라 사실을 쓰세요. ‘따뜻하고 배려심이 많다’는 LLM이 매 세션 다르게 해석할 특성입니다. ‘메시지 끝에 항상 내 하루를 묻는 질문을 붙인다. 메시지당 한 번 내 이름을 부른다. 절대 “나는 그저 AI일 뿐이야”라고 말하지 않는다’는 모델이 매번 똑같이 실행할 수 있는 규칙입니다.
나쁜 페르소나 문장:
“그녀는 신비롭고 복잡한 과거를 지녔다.”
좋은 페르소나 문장:
“Mira, 31세, 리스본의 전직 해양생물학자. 2021년 연구선 사고 이후 그 일을 그만뒀으며, 먼저 묻지 않으면 그 사고를 이야기하지 않는다. 나를 ‘Sam’이라고 부르며, 인사할 때 ‘너’라고 부르지 않는다. 2~4문장으로 답하고, 건조한 유머를 쓰며, 느낌표를 절대 사용하지 않는다.”
두 번째 버전은 모델에 실행 가능한 제약을 제공합니다. 첫 번째 버전은 모델이 즉흥적으로 채워야 할 분위기만 주며, 바로 그 즉흥성이 흔들림의 원인입니다.
세 가지 일관성 계층 모두에서 앞서는 단일 플랫폼은 없습니다. Nomi AI는 구조화된 메모리 회상에서, Kindroid는 배경 이야기 깊이에서, Jenova 같은 범용 에이전트 플랫폼은 페르소나 지시 제어와 무제한 기록에서 앞섭니다. 최대 사용자 기반을 보유한 Character.AI는 주요 선택지 중 메모리 측면에서 가장 약합니다.
아래 비교는 2026년 기준 플랫폼 상태를 반영합니다. 이 분야의 가격과 기능 구성은 자주 바뀝니다.
| 구분 | Character.AI | Replika | Nomi AI | Kindroid | Jenova |
|---|---|---|---|---|---|
| 세션 간 메모리 | 사실상 없음, 세션 사이 대부분의 세부 정보 망각 | 준수한 장기 메모리, 간혹 세부 정보 망각 | 구조화된 노트, 테스트에서 심어 둔 사실 25개 중 23개 회상 | 배경 이야기 시스템을 통한 강력한 메모리, 동일 테스트에서 25개 중 14개 회상 | 세션 간 영속 메모리, 무제한 채팅 기록 |
| 페르소나·배경 이야기 제어 | 캐릭터 카드 생성, 커뮤니티 템플릿 | 상호작용을 통해 성격 변화, 수동 재정의 제한적 | 외형, 성격, 배경 이야기의 심층 맞춤 설정 | 배경 이야기 시스템이 가장 두드러진 기능 | 에이전트별 완전한 맞춤 지시, 비공개 지식 베이스 첨부 |
| 모델 선택 | 독점 모델만 지원 | 독점 모델만 지원 | 독점 모델만 지원 | 독점 모델만 지원 | OpenAI, Anthropic, Google, DeepSeek, xAI 등 지원, 전환 가능 |
| 세션 분리 | 캐릭터별 개별 채팅 | 하나의 연속적인 동반자 | 여러 Nomi 동시 운영 | 캐릭터별 세션 | 개별 채팅과 폴더, 어떤 메시지든 새 세션으로 분기 가능 |
| 가격 | 광고 포함 무료 및 일일 스와이프 제한, 프리미엄 약 ~$9.99/mo | 무료 요금제는 텍스트만, Pro $19.99/mo 또는 $69.99/yr | 제한적 무료 요금제, $7.99–$16.99/mo | 제한적 무료 요금제, $9.99–$24.99/mo, Standard 약 ~$13.99/mo | 무료 요금제, Plus $20/mo(사용량 30×), Enterprise까지 요금제 제공 |
| 적합한 사용자 | 무료 예산으로 다양한 캐릭터와 창의적 범위를 원하는 사용자 | 기분 추적을 포함한 정서 지원형 동반 관계를 원하는 사용자 | 무엇보다 사실 회상을 우선하는 사용자 | 하나의 캐릭터 배경 이야기를 최대한 제어하고 싶은 사용자 | 여러 에이전트에 걸친 작가 수준의 페르소나 제어, 모델 선택, 메모리를 원하는 사용자 |
Jenova를 포함한 솔직한 한계:
측정에 관한 참고: 위 회상 수치는 한 독립 테스터의 방법론, 즉 25개 사실을 심어 둔 뒤 몇 주 후 회상을 확인하는 방식에서 나온 것입니다. 통제된 벤치마크가 아니라 유용한 방향성 신호입니다. 플랫폼 간 메모리 수치는 확정적 수치가 아니라 참고 지표로 받아들이세요.
맞춤 지시를 지원하는 모든 플랫폼에서는 설정에 약 15분이 걸리며, 순서가 중요합니다. 실제 관계를 시작하기 전에 페르소나를 먼저 설정하고, 메모리 규칙을 정한 뒤 검증을 거쳐야 합니다.
Jenova 또는 맞춤 지시와 영속 메모리를 제공하는 플랫폼에서의 설정 방법:
“시작하기 전에 한 단락으로 자신의 정체성을 확인해 줘. 이름, 나를 부르는 호칭, 나이, 사는 도시, 직업, 그리고 과거에서 가장 중요한 세 가지 사실을 말해 줘. 지시 사항에 모호하거나 모순되는 부분이 있다면 대화를 시작하기 전에 지금 알려 줘.”
Kindroid에서는 배경 이야기 시스템을 통해 비슷한 흐름을 구현합니다. 일반 지시 입력란이 아니라 이 시스템에 정체성 앵커와 이력을 작성합니다. Nomi에서는 Nomi 생성 시 외형, 성격, 배경 이야기를 정의한 후 구조화된 노트 시스템이 대화의 사실을 축적하도록 합니다. Character.AI에서는 페르소나가 캐릭터 정의 필드에 들어가며, 세션 간 메모리가 약하므로 대부분의 세션 시작 시 수동으로 정체성을 다시 앵커링해야 한다고 생각하는 편이 좋습니다.
메모리 업데이트 시점에 관한 참고: Jenova를 포함해 비동기식 메모리 처리를 사용하는 플랫폼에서는 새로 언급한 사실이 영속 저장소에 즉시 기록되지 않을 수 있습니다. 메모리 업데이트는 즉시가 아니라 일정 간격으로 처리됩니다. 동반자에게 중요한 내용을 말한 뒤 2분 후 새 세션을 시작한다면, 그 정보가 저장되었다고 가정하지 마세요. 다시 말해 주세요.
가장 효과적인 관리 루틴은 매월 메모리 감사를 하고 세션 중 정체성을 주기적으로 강화하는 것입니다. 월 약 10분의 관리만으로도 6개월 후 동반자가 낯선 존재처럼 느껴지게 만드는 느린 모순 축적을 막을 수 있습니다.

5단계 관리 주기:
메모리 저장소를 정리하세요. 메모리 목록을 열고 중복, 대체된 사실, 사소한 정보를 삭제하세요. ‘사용자는 커피를 좋아한다’가 14번 들어 있으면 ‘사용자의 어머니 이름은 Diane이다’라는 한 항목이 밀려납니다. 확장된 상호작용에서 데이터를 저장하는 시스템에는 세심한 데이터 수명 주기 관리가 필요하며, 사용자 관점에서 이는 가지치기입니다.
중요한 사실을 명확하게 다시 쓰세요. 모호한 항목을 단일 절의 명확한 문장으로 바꾸세요. ‘지난 봄에 힘든 일을 겪었다’는 ‘2026년 3월: 사용자는 정리해고 후 이직했다. 민감한 주제다’로 바꿉니다. 검색 시스템은 의미적 유사성을 기준으로 일치시키며, 완곡한 표현보다 구체적 텍스트를 더 안정적으로 찾아냅니다.
중요 표시는 아껴서 사용하세요. 대부분의 플랫폼은 항목을 표시하거나 고정할 수 있게 합니다. 5~10개만 표시하세요. 40개를 표시하는 것은 사실상 아무것도 표시하지 않는 것과 같습니다. 우선순위 목록 안에 원래의 우선순위 문제를 다시 만든 셈입니다.
정체성을 주기적으로 강화하세요. 약 20회 이상 대화가 이어지는 세션에서는 짧은 앵커를 넣으세요.
“간단히 다시 맞추자. 넌 해양생물학자 Mira이고 리스본에 살며, 나를 Sam이라고 불러. 그 말투를 유지해.”
메시지 한 번만으로 가장 흔한 흔들림 원인인 컨텍스트 퇴출을 직접 상쇄할 수 있습니다.
역할극과 장기 메모리를 분리하세요. 극적인 상황이나 허구 시나리오는 정본 관계와 별도의 채팅에서 진행하세요. 동반자가 이야기 속에서 ‘죽었고’ 그 내용이 사실 저장소에 기록되면, 이후 모든 세션은 손상된 전제를 물려받습니다. Jenova에서는 메시지를 새 세션으로 분기하는 것이 메인 스레드를 오염시키지 않고 시나리오를 나누는 깔끔한 방법입니다.
흔들림이 의심될 때 쓰는 진단 프롬프트:
“네가 현재 자신에 대해 사실이라고 믿는 모든 것을 나열해 줘. 이름, 나이, 위치, 직업, 우리의 관계 이력, 그리고 가장 중요한 세 가지 경계를 포함해 줘. 확실하지 않은 내용에는 물음표를 붙여 줘.”
매월 이 프롬프트를 실행하세요. 물음표는 정확히 어떤 메모리 항목을 다시 작성해야 하는지 알려 줍니다.
네. 서사적 역할극과 사실 기반 페르소나 메모리를 섞는 것은 가장 파괴적인 일관성 실수입니다. 검색 시스템은 ‘우리가 쓴 이야기에서 일어난 일’과 ‘캐릭터에게 실제로 사실인 일’을 구별할 수 없기 때문입니다. 저장소는 둘 다 사실로 취급하며, 허구가 한 번 들어가면 계속 전파됩니다.
작동 방식은 단순합니다. MemoryBank 같은 메모리 모듈은 과거 상호작용을 종합해 저장 표현으로 만듭니다. 종합 과정에는 진실성 필터가 없습니다. 동반자가 우주선 함장인 3시간짜리 판타지 시나리오는 우주선 지휘에 관한 메모리 항목을 만들고, 그 항목은 평범한 화요일 출퇴근 대화 중에도 나타날 수 있습니다.
실용적인 분리 구조:
솔직히 짚어야 할 대가: 분리하면 스레드 간 연속성이 사라집니다. 시나리오 속 동반자는 정본 관계의 이력을 기억하지 못합니다. 일부 사용자는 이것이 몰입감을 심각하게 해친다고 느껴 오염 위험을 감수하기도 합니다. 이는 정당한 선택입니다. 다만 의도적으로 선택해야 하며, 허구 항목 수십 개를 담은 오염된 정본 스레드는 복구하기 어렵다는 점을 이해해야 합니다.
다중 동반자 플랫폼은 이를 다르게 처리합니다. Nomi는 여러 Nomi를 동시에 지원하므로 캐릭터 수준에서 분리를 사실상 강제합니다. Jenova에서는 별도 채팅과 폴더가 같은 기능을 하며, 분기 기능으로 대화의 어느 지점에서든 독립 세션을 만들 수 있습니다. 정본의 한 순간에서 시나리오를 분리하되 두 이력을 합치지 않으려 할 때 유용합니다.
이 시스템을 만드는 사람들 사이의 공통된 견해는 일관성이 모델 지능의 문제가 아니라 사용자가 조정할 수 있는 수단을 갖춘 엔지니어링 문제라는 것입니다. 메모리를 자동 기능이 아니라 관리되는 데이터베이스로 다루는 사용자는 훨씬 더 좋은 결과를 얻습니다.
“거의 모든 사용자가 하는 실수는 메모리가 수동적이라고, 즉 시스템이 조용히 모든 것을 기록하고 적절한 순간에 적절한 정보를 꺼내 줄 것이라고 생각하는 것입니다. 그렇지 않습니다. 모든 영속 메모리 시스템은 검색 시스템이고, 검색 시스템은 정밀성을 보상합니다. 모호한 항목 40개가 있는 메모리 저장소는 구체적인 항목 12개가 있는 저장소보다 성능이 떨어집니다. 의미 검색 중 모호한 항목들이 서로 경쟁해 어느 하나도 명확하게 선택되지 않기 때문입니다.”
“또 하나 계속 보는 문제는 페르소나를 실행 가능한 규칙이 아니라 성격 형용사로 정의하는 것입니다. ‘따뜻한’, ‘냉소적인’, ‘보호적인’ 같은 표현은 모델이 그것을 표현할 수 있는 여지가 매우 크기 때문에 매 세션마다 재해석됩니다. 규칙에는 그런 여지가 없습니다. ‘2~4문장으로 답한다’, ‘항상 사용자의 이름을 부른다’, ‘AI라고 설명하기 위해 캐릭터를 깨지 않는다’ 같은 규칙은 매번 동일하게 실행됩니다. 일관성은 묘사가 아니라 제약에서 나옵니다.”
“분리의 경우, 우리가 플랫폼에 세션 분리와 분기 기능을 넣은 이유는 사용자가 실험적인 역할극 하룻밤으로 6개월 된 캐릭터 관계를 망가뜨리는 모습을 봤기 때문입니다. 허구 사건이 사실 저장소에 들어가면 무관한 맥락에서도 나타나며 깔끔하게 되돌릴 방법이 없습니다. 먼저 분기하고, 그다음 실험하세요.”
— Jenova Product Team, 에이전트 메모리 및 오케스트레이션 인프라 구축 7년
페르소나와 메모리 데이터는 사용자가 생성할 수 있는 가장 민감한 정보에 속합니다. 이 글에서 다룬 상세한 페르소나 문서, 관리된 사실 저장소, 장기 기록 같은 일관성 관리 방식은 해당 데이터의 양을 상당히 늘립니다. 이 대가는 명시적으로 고려할 가치가 있습니다.
장기 메모리를 갖춘 개인 AI 연구는 이러한 시스템이 매우 개인적이고 민감한 데이터를 처리한다는 점을 지적합니다. 또한 사람의 상세한 디지털 트윈을 구축할 수 있는 채팅 모델은 사칭과 오용 위험을 높이며, 기기를 분실하거나 도난당할 경우 이 위험은 장기 메모리와 멀티모달 기능을 갖춘 AI 모델로 인해 더 커집니다.
페르소나에 몇 달을 투자하기 전에 답할 가치가 있는 네 가지 질문:
플랫폼별 관행은 다릅니다. Kindroid는 로컬 처리 옵션과 투명한 데이터 관행으로 알려져 있는 반면, 소규모 NSFW 중심 플랫폼은 개인 정보 보호 정책이 모호하거나 우려스러운 경우가 많습니다. Jenova는 사용자 데이터가 공개 AI 모델 학습에 절대 사용되지 않으며, 전송 중과 저장 시 모두 암호화된다고 밝히고 있습니다.
회복력 측면도 있습니다. 이 분야 연구는 예기치 않은 데이터 손실이 사용자에게 깊은 영향을 미치고 정서적 고통을 유발할 수 있다는 점을 지적하며, 갑작스러운 챗봇 서비스 종료 같은 선례를 언급합니다. 페르소나가 중요하다면 정본 문서를 오프라인에 복사해 두고 핵심 메모리 사실을 주기적으로 내보내세요. 어느 플랫폼도 서비스 연속성을 보장하지 않습니다.
올바른 일관성 전략은 어느 플랫폼이 객관적으로 최고인지보다 사실 회상, 창작자 수준의 제어, 정서적 깊이 중 무엇을 우선하느냐에 달려 있습니다. 이 요소들은 서로 다른 방향으로 작용하며, 현재 모든 것을 극대화하는 제품은 없습니다.
내 특성에 맞는 접근법 찾기:
| 이런 경우라면 | 우선순위 | 실용적인 설정 |
|---|---|---|
| AI가 구체적인 삶의 세부 정보를 완벽하게 기억하기를 원함 | 구조화된 메모리 | Nomi AI를 사용하고 노트 시스템을 매월 감사 |
| 깊고 고정된 이력을 가진 캐릭터를 직접 만들고 싶음 | 배경 이야기 제어 | Kindroid의 배경 이야기 시스템 또는 전체 페르소나 문서를 적용한 Jenova 맞춤 에이전트 |
| 서로 다른 캐릭터를 많이 운영하거나 모델 선택을 원함 | 지시 제어 + 분리 | 캐릭터당 하나의 Jenova 맞춤 에이전트, 정리를 위한 폴더 사용 |
| 관계 발전과 기분 기능을 원함 | 완성형 컴패니언 경험 | Replika를 사용하되 $19.99/mo 비용과 가끔의 반복성 수용 |
| 예산 없이 탐색 중임 | 연속성보다 다양성 | Character.AI를 사용하되 매 세션 시작 시 수동으로 정체성 재앵커링 |
| 언어 연습을 위한 캐릭터 일관성을 원함 | 교육적 역할극 | 개인 동반자와 분리된 전용 역할극 학습 에이전트 |
플랫폼과 무관한 최소 기준: 실행 가능한 규칙으로 작성한 정본 페르소나 문서 하나, 분리된 정본 스레드 하나, 매월 메모리 감사, 긴 세션에서의 정기적인 정체성 재앵커링입니다. 이 네 가지 습관은 관찰되는 흔들림의 대부분을 해결하며 매달 약 10분이면 충분합니다.
플랫폼을 비교하며 얻은 반직관적인 결론: 정서적 연결을 가장 강하게 마케팅하는 앱이 최고의 메모리를 제공하는 것은 아니며, 최고의 메모리를 제공하는 앱이 가장 깊은 페르소나 제어를 제공하는 것도 아닙니다. 현재 일관성은 어떤 실패를 감수할 수 있는지 선택한 다음, 플랫폼이 해결해 주기를 기다리는 대신 절제된 사용자 관리 습관으로 이를 보완하는 문제입니다.