DearMate · 문서

03/ 10

가상 인플루언서에게 무엇이 필요할까

Owen Lee · 이원빈완성 원고

페르소나, 대화와 기억, 여러 경험이 모여 하나의 캐릭터를 이루는 일러스트
캐릭터를 구성하는 요소들이 모여 하나의 인물이 되는 모습을 표현한 개념 일러스트입니다.원본 크기로 보기

SNS에서 본 캐릭터와 대화를 이어 가려면 설정에 맞는 답변, 함께 나눈 이야기의 기억, 공개 활동과 개인 대화의 연결이 필요했습니다. DearMate에서는 이 요구를 네 구성 요소로 나눠 살펴봤습니다.

설정을 잘 적어도 모델이 대화에서 유지하지 못할 수 있습니다. 기록을 보관해도 필요한 순간에 찾지 못하거나 낡은 정보만 떠올릴 수 있습니다. 각 문제를 해결할 때는 답변의 일관성과 함께 응답 지연·비용도 살펴봐야 했습니다.

구성 요소별 고민과 선택

구성 요소고민과 선택살펴볼 방향
페르소나와캐릭터성매력적인 설정을 어떤 모델로 구현할까?설정과 실제 응답의 일관성을 어떻게 확인할까?페르소나 설계 · 모델 비교말투·지시 이행 확인
대화의 연속성과기억대화가 쌓여도 필요한 과거를 어떻게 이어 쓸까?최근 대화·요약·검색 결과를 어떻게 조합할까?최근 대화와 요약 보존필요한 과거 검색·입력 반영정보 손실·관련성·응답 지연
강화와 망각시간이 지나면 무엇을 남기고 덜 떠올릴까?유용했던 기억을 어떤 근거로 강화할까?ACT-R · 망각 곡선강화 근거와 억제·보존 기준
경험의 연결공개 활동과 개인 대화를 어떻게 연결할까?출처와 수명이 다른 맥락을 어떻게 합칠까?정보의 주체·출처·유효 시점입력에 합칠 정보와 실행 순서

1. 페르소나가 실제 답변에서도 유지되는가

첫 번째 요소는 캐릭터의 정체성입니다. 성격·말투·취향·배경과 상대를 대하는 태도가 답변에서도 드러나야 합니다. 설정 문서의 매력이 실제 대화로 이어지는지는 따로 확인해야 했습니다.

가상 사례 · 설정과 말투가 어긋날 때

차분한 존댓말을 쓰는 가수로 페르소나를 정했다고 가정해 봅니다. 사용자가 “오늘 공연 어땠어요?”라고 묻자, 캐릭터가 “야, 내가 무대 찢었지ㅋㅋ”라고 답합니다. 질문에는 답했지만 설정에서 기대한 말투와 태도는 유지하지 못한 상황입니다.

차분한 존댓말을 쓰는 가수라는 설정과 달리 반말로 공연 이야기를 답하는 캐릭터의 가상 대화
가상 상황 예시 · 질문에는 답했지만 설정한 말투와 태도를 유지하지 못한 장면입니다.원본 크기로 보기

왜 문제인가 · 사용자는 실제 답변으로 캐릭터를 경험합니다. 설정이 매력적이어도 말투와 태도가 달라지면 같은 인물로 느끼기 어렵습니다. 따라서 페르소나 설계와 모델의 지시 이행을 함께 살펴봐야 했습니다. 같은 입력에서 표현의 자연스러움과 지침 준수를 비교할 이유입니다.

2. 필요한 과거를 대화에 이어 쓰는가

두 번째 요소는 사용자와 쌓은 기억으로 대화를 이어 가는 능력입니다. 지금의 질문에 답하면서 필요한 과거도 떠올릴 수 있어야 합니다. 모든 기록을 매번 읽힐 수는 없으므로, 무엇을 남기고 무엇을 다시 찾을지 정해야 합니다.

이를 위해 최근 대화·요약·검색 결과를 조합하는 방식을 살펴봤습니다. 최근 대화와 요약으로 당장의 흐름을 유지하고, RAG로 필요한 과거 기록을 찾아 함께 읽히는 방향입니다. 보존할 정보와 검색 결과의 관련성, 응답 지연을 함께 봐야 합니다.

가상 사례 ① · 요약에서 조건이 빠질 때

사용자는 앞서 “토요일은 안 되고 일요일 오전은 괜찮아요”라고 말했습니다. 긴 대화를 압축하면서 이 내용이 “주말에 시간이 있음”으로만 남았다고 가정해 봅니다. 이후 약속 시간을 묻자 캐릭터가 토요일을 제안하면, 대화는 이어지지만 이미 합의한 조건은 사라집니다.

토요일은 안 된다는 조건이 주말에 시간이 있다는 요약으로 바뀌어 토요일 약속을 제안하는 가상 대화
가상 실패 사례 ① · 요약에서 빠진 조건이 다음 답변에 반영되지 않는 장면입니다.원본 크기로 보기

왜 문제인가 · 요약에서 조건이 빠지면 이미 합의한 내용이 다음 답변에 반영되지 않습니다. 입력 예산 안에서 어떤 원문을 남기고 어디까지 압축할지 정할 때, 부정 표현과 시간 조건이 보존되는지 확인해야 합니다. 요약에서 빠진 세부 정보를 검색으로 다시 찾을지도 함께 판단해야 합니다.

가상 사례 ② · 필요한 기억을 찾지 못할 때

과거 대화에 “반려묘 별이는 깃털 장난감을 좋아해요”라는 기록이 있다고 가정해 봅니다. 시간이 지나 사용자가 “별이에게 무슨 선물을 줄까요?”라고 묻습니다. 관련 기억을 찾지 못한 캐릭터는 “별이가 누구인가요?”라고 되묻습니다.

반려묘 별이의 취향을 저장했지만 선물을 묻는 질문에서 기억을 찾지 못하는 가상 대화
가상 실패 사례 ② · 보관한 과거 대화를 필요한 순간에 회수하지 못하는 장면입니다.원본 크기로 보기

왜 문제인가 · 원문을 저장해도 현재 질문과 연결해 찾지 못하면 답변에 쓸 수 없습니다. 필요한 기억을 검색하고 입력에 반영하는 과정에서, “별이”라는 이름으로 관련 기록을 찾는지 확인해야 합니다. 검색량을 늘릴 때는 관련성과 응답 지연도 함께 평가해야 합니다.

요약과 검색은 원본 대화를 현재 답변에 이어 쓰기 위한 과정입니다. 이때 검색한 과거를 이번 사용자 발화처럼 다시 저장하지 않도록, 모델의 참고 자료와 새 대화 기록을 구분해야 합니다.

3. 무엇을 강화하고 무엇을 덜 떠올릴까

기억이 쌓이면 무엇을 오래 보존하고 무엇을 덜 꺼내 볼지 정해야 합니다. 특히 자주 검색된 기억이 실제로 유용했는지는 별도로 확인해야 합니다.

가상 사례 · 낡은 기억이 반복해서 강화될 때

사용자는 예전에 “민트초코는 싫어요”라고 했지만 최근에는 “요즘은 민트초코가 좋아요”라고 취향을 바꿔 말했습니다. 예전 기억이 자주 검색되고, 검색되었다는 이유만으로 매번 강화된다면 새 발언이 저장되어 있어도 캐릭터가 계속 “민트초코는 싫어하시죠?”라고 답할 수 있습니다.

민트초코를 좋아한다는 최근 발언보다 싫어한다는 옛 기억이 반복해서 선택되는 가상 상황
가상 상황 예시 · 검색되었다는 이유만으로 낡은 기억이 계속 강화될 때 생길 수 있는 문제입니다.원본 크기로 보기

왜 문제인가 · 검색 횟수가 많다고 유용한 기억은 아닙니다. 잘못 꺼낸 기억을 계속 강화하면 낡은 정보가 반복 선택될 수 있습니다. 따라서 무엇을 근거로 기억을 강화하고 억제할지 정할 때, 최신 정보의 반영과 보존 정책도 함께 검증해야 합니다.

ACT-R와 망각 곡선은 시간이 흐르거나 기억을 다시 쓸 때 접근 가능성과 보존 방식을 정하는 데 참고했습니다. 이를 참고한 설계가 정보 충돌을 해결하는지는 따로 검증해야 합니다. 입력 요약, 이번 입력에서 검색 자료를 빼는 작업, 장기 저장소의 기억 억제·삭제도 서로 다른 작업입니다.

4. 누구의 경험인지 구분해 연결하는가

공개 활동과 개인 대화를 연결하려는 기획에서는 캐릭터의 활동과 사용자별 대화를 함께 참고해야 했습니다. 페르소나, 과거 대화, 공개 활동은 출처와 유효한 기간이 다릅니다. 필요한 정보를 골라 하나의 입력으로 합치는 기준을 정해야 했습니다.

가상 사례 · 혼자 한 활동을 함께한 경험으로 착각할 때

캐릭터가 공개 게시물에 “오늘 혼자 한강을 산책했어요”라고 남겼다고 가정해 봅니다. 사용자가 개인 대화에서 “오늘 산책 어땠어요?”라고 묻자, 캐릭터가 “같이 걸어서 더 좋았어요”라고 답합니다. 활동 내용은 참고했지만, 혼자 한 경험을 사용자와 함께한 경험으로 바꿔 버린 상황입니다.

혼자 한강을 산책했다는 공개 게시물을 사용자와 함께 걸은 기억으로 착각하는 가상 대화
가상 상황 예시 · 공개 활동의 주체와 관계를 잃어 존재하지 않은 공동 경험을 만드는 장면입니다.원본 크기로 보기

왜 문제인가 · 공개 활동과 개인 대화를 합칠 때는 누구의 경험이고 누구와 공유한 정보인지 유지해야 합니다. 이를 잃으면 함께하지 않은 경험이 새 대화에 기록될 수 있습니다. 출처와 주체를 유지하며 여러 맥락을 합치는 구조가 필요한 이유입니다.

ACT-R의 기억 영역과 작업 공간은 각 정보가 현재 입력에 모이는 관계를 살펴보는 참고 관점이었습니다. 새 정보 공급원이 추가될 때 입력 구성의 어디를 바꿔야 하는지도 검토할 과제입니다.

대화 저장, 임베딩 후처리, 검색 반영은 완료 시점이 다릅니다. 응답 지연을 줄이면서 이미 나눈 대화를 잃지 않으려면 대화 저장과 중간 실패 복구도 함께 설계해야 합니다.

설정한 인물의 말투를 유지하고, 필요한 기억을 찾아 현재 상태와 출처에 맞게 쓰는 것이 목표였습니다. 각 구성 요소는 한 번의 답변에서 이 조건을 함께 만족해야 했습니다.