용어
AI 캐릭터 채팅 용어 사전 - 페르소나부터 로어북까지
AI 캐릭터 채팅을 처음 켜면 대화보다 용어가 먼저 막는다. 페르소나, 로어북, 지문, 컨텍스트, 스와이프. 이름은 자주 보이는데 어디에도 정의가 없고, 서비스마다 부르는 말이 다르다. 이 글은 그 용어들을 특정 서비스에 매이지 않고 정리한다. 뜻만이 아니라, 그 기능이 왜 생겼고 없으면 대화가 어떻게 망가지는지를 같이 적었다.
챗터링 팀·· 수정·약 12분
먼저: 왜 같은 것에 이름이 세 개씩 붙어 있나
이 분야 용어의 상당수는 학술 표준에서 오지 않았다. 특정 도구의 UI 라벨이 굳어서 퍼진 쪽이다. 로어북·월드북·월드 인포는 같은 기능이고, 그리팅·오프닝·첫 대사도 같은 칸이며, 스와이프·리롤·재생성도 같은 동작이다.
계보를 대략 말하면, 키워드가 나올 때만 설정을 프롬프트에 끼워 넣는 방식은 KoboldAI 계열 도구가 'World Info'라는 이름으로 먼저 굳혔고, TavernAI·SillyTavern 계열로 이어지면서 'lorebook'이라는 별칭이 함께 쓰이게 됐다. 다만 어느 도구가 어느 명칭을 먼저 썼는지는 커뮤니티 기록마다 조금씩 갈리므로, 유래보다 동작으로 기억하는 편이 안전하다.
실용적인 결론은 하나다. 서비스를 옮길 때 이름으로 대응시키지 말고, "이 값이 프롬프트의 어느 위치에, 어떤 조건에서 들어가는가"로 대응시켜라. 이름이 같아도 삽입 위치가 다르면 결과가 전혀 달라진다.
페르소나 - 사실은 서로 다른 두 가지
페르소나는 한 단어로 두 가지를 가리켜서 대화가 자주 꼬인다. 하나는 캐릭터 쪽 페르소나, 즉 AI가 연기할 인물의 정체성이다. 다른 하나는 사용자 쪽 페르소나, 즉 대화 속 '나'가 누구인지에 대한 설정이다.
두 번째가 없으면 무엇이 나빠지는지는 금방 드러난다. 모델은 '나'에 대한 정보가 없으면 매 턴 새로 상상한다. 3턴 전에는 나를 동료로 부르다가 지금은 처음 본 사람 취급하고, 성별이나 나이도 문장마다 흔들린다. 그래서 이름·나이·관계·말투 정도만 적어두는 것이 대화 안정성에 가장 값싸게 기여하는 설정이다.
반대로 사용자 페르소나에 설정을 과하게 넣으면 모델이 나 대신 내 행동까지 서술하기 시작한다. 나에 대한 서술은 '누구인가'까지만 쓰고 '무엇을 하는가'는 비워두는 편이 낫다.
시스템 프롬프트 - 대화 앞에 늘 서 있는 지시문
시스템 프롬프트는 대화 기록보다 앞에 붙어서 모델의 역할·문체·금지사항을 규정하는 지시문이다. 사용자에게는 보통 보이지 않고, 서비스 운영자가 전역으로 깔아두는 층과 캐릭터 제작자가 얹는 층이 나뉘어 있는 경우가 많다.
오해하기 쉬운 점은 이것이 '설정값'이 아니라 그냥 텍스트라는 것이다. 모델은 이 문장을 규칙으로 강제 실행하는 게 아니라 강한 힌트로 읽는다. 그래서 지시가 서로 충돌하면(예: "항상 짧게 답하라"와 "장면을 풍부하게 묘사하라") 모델은 둘 중 하나를 임의로 고르거나 어정쩡하게 절충한다.
대화가 길어질수록 시스템 프롬프트의 영향력은 상대적으로 옅어진다. 최근 수십 턴의 실제 대화가 더 가까이·더 많이 있기 때문이다. 후반부에 캐릭터가 무너지는 현상은 설정이 지워져서 생기는 일이 드물다. 대개 이 비율 문제다.
캐릭터 카드 - 설명·성격·시나리오라는 세 칸
캐릭터 카드는 캐릭터 하나를 하나의 파일로 주고받기 위한 데이터 묶음이다. 커뮤니티에서 널리 쓰이는 V2 스펙은 name, description, personality, scenario, first_mes(첫 대사), mes_example(예시 대화)을 기본 필드로 두고, 여기에 system_prompt, alternate_greetings, character_book(내장 로어북), tags, creator 같은 확장 필드를 더한다.
칸이 여러 개로 나뉜 이유는 삽입 위치가 서로 달라서다. 문학적 분류와는 관계가 없다. 설명은 대체로 앞쪽에 고정으로 들어가고, 시나리오는 '지금 이 장면의 조건'으로 쓰이며, 예시 대화는 형식 학습용으로 별도 취급된다. 같은 문장을 어느 칸에 넣느냐에 따라 결과가 달라지는 것은 이 때문이다.
실제로 가장 흔한 실수는 설명 칸에 줄거리를 다 쏟아붓는 것이다. 설명은 '변하지 않는 것'(외형·이력·성격·말버릇), 시나리오는 '지금만 참인 것'(장소·시각·둘의 현재 관계)으로 나눠 적어야 재사용이 된다.
그리팅(오프닝, 첫 대사) - 인사가 아니라 견본
그리팅은 대화를 열 때 캐릭터가 먼저 말하는 첫 메시지다. 인사말처럼 보이지만 기능은 다르다. 첫 대사는 대화 기록의 첫 줄로 남기 때문에, 이후 모델이 답을 만들 때 참고하는 가장 강한 견본이 된다.
그래서 첫 대사의 길이·문단 수·지문 비율은 그대로 복제되는 경향이 있다. 첫 대사를 다섯 문단짜리 묘사로 쓰면 이용자가 한 줄을 보내도 다섯 문단이 돌아온다. 짧고 툭툭 끊는 대화를 원하면 첫 대사부터 짧아야 한다.
또 하나, 좋은 첫 대사는 상황을 '닫지' 않는다. 이미 갈등이 해결된 상태로 시작하거나 사용자가 대답할 여지가 없는 선언으로 끝나면 두 번째 턴이 갈 곳을 잃는다. 여러 개의 첫 대사를 등록해 두는 기능(대체 그리팅)은 같은 캐릭터로 다른 초기 조건을 골라 들어가기 위한 장치다.
예시 대화 - 내용이 아니라 형식을 가르친다
예시 대화는 '이 캐릭터라면 이렇게 말한다'를 몇 턴 분량으로 보여주는 샘플이다. 기계학습 쪽 표현으로는 퓨샷(few-shot) 예시에 해당한다.
여기서 자주 오해되는 건 예시의 '내용'이 기억된다고 생각하는 것이다. 실제로 강하게 전이되는 건 형식이다. 문장 길이, 한 턴에 쓰는 문단 수, 지문과 대사의 비율, 이모지나 말줄임표를 쓰는 습관, 상대를 부르는 호칭. 이런 것들이 복사된다.
그러니 예시 대화에는 멋진 명장면 대신 '평범한 상황에서의 평균적인 응답'을 넣는 게 낫다. 클라이맥스만 예시로 넣으면 모델은 모든 턴을 클라이맥스처럼 쓴다. 구현에 따라 예시 대화는 대화가 길어지면 프롬프트에서 먼저 밀려나기도 하므로, 후반부까지 지키고 싶은 규칙이라면 예시가 아니라 설명 쪽에 적어야 한다.
지문과 대사 - 별표와 따옴표의 관습
'지문'은 원래 희곡·시나리오에서 인물의 행동과 상황을 적는 무대 지시문을 뜻하는 말이고, 캐릭터 채팅에서도 같은 뜻으로 쓰인다. 캐릭터가 소리 내어 말한 것이 대사, 그 사이의 행동·표정·배경 묘사가 지문이다.
표기는 표준이 아니라 관습이다. 영어권 롤플레이에서 넘어온 방식이 널리 쓰여서, 행동은 *별표로 감싸고* 대사는 "따옴표"로 감싸는 형태가 가장 흔하다. 서비스에 따라 별표를 기울임체로 렌더링하거나 지문만 색을 달리 보여주기도 한다.
표기를 통일해야 하는 실질적 이유는 가독성보다 일관성 쪽에 있다. 카드 안에서 표기가 섞여 있으면 모델은 그 혼합까지 학습해서 어떤 턴은 지문 없이, 어떤 턴은 지문만 잔뜩 쓴다. 지문을 아예 안 쓰는 스타일(순수 메신저형 대화)도 정당한 선택이며, 그 경우엔 카드 전체에서 별표를 한 번도 쓰지 않는 게 맞다.
토큰 - 글자도 단어도 아닌 과금·용량 단위
토큰은 모델이 글을 잘라 처리하는 단위다. 영어에서는 대략 단어 하나나 그보다 짧은 조각에 해당하고, 한국어는 사정이 다르다. 널리 쓰이는 BPE 계열 토크나이저에서 한국어는 같은 뜻을 담는 데 영어보다 여러 배의 토큰을 쓰는 경우가 많다고 보고된다(모델과 토크나이저 버전에 따라 편차가 크다).
이게 왜 중요하냐면, 요금과 기억 용량이 모두 이 단위로 계산되기 때문이다. 한글로 쓴 설정문은 눈으로 보기엔 짧아도 예산은 훨씬 많이 먹는다. '설정을 자세히 썼는데 왜 금방 잊느냐'는 불만의 절반은 여기서 나온다.
토큰 수를 줄이는 가장 확실한 방법은 문장을 줄이는 게 아니라 중복을 지우는 것이다. 설명·성격·예시 대화에 같은 사실이 세 번 적혀 있으면 그만큼 세 번 값을 낸다.
컨텍스트 윈도우 - 모델이 한 번에 볼 수 있는 창
컨텍스트 윈도우는 한 번 응답을 만들 때 모델이 볼 수 있는 텍스트의 총량이다. 시스템 프롬프트, 캐릭터 설정, 로어북에서 끼워 넣은 항목, 최근 대화 기록, 그리고 이번에 생성할 답변까지 전부 이 한도 안에서 나눠 쓴다.
한도를 넘으면 대개 오래된 메시지부터 잘려 나간다. 그래서 20턴 전에 정한 약속을 캐릭터가 모르는 것은 '잊은' 게 아니라 애초에 보이지 않는 것이다. "아까 말했잖아"가 통하지 않는 이유이고, 정말 지켜야 할 설정을 대화 중에 말로만 정해두면 안 되는 이유이기도 하다.
창이 크다고 다 해결되지도 않는다. 긴 입력에서는 앞과 뒤에 있는 정보를 잘 쓰고 가운데 있는 정보는 상대적으로 덜 반영한다는 연구 보고가 여럿 있다. 중요한 제약은 길게 늘어놓기보다 짧게, 그리고 대화에 가까운 위치에 두는 편이 낫다.
로어북(월드북, 월드 인포) - 항상 넣지 않고, 필요할 때만 넣는다
로어북은 키워드와 본문을 한 쌍으로 등록해 두는 설정 묶음이다. 최근 대화에 그 키워드가 등장하면 해당 항목만 프롬프트에 끼워 넣고, 나오지 않으면 넣지 않는다.
이 기능이 존재하는 이유는 컨텍스트 예산 때문이다. 왕국의 역사, 조직도, 마법 체계, 조연 열 명의 관계를 전부 상시 설정에 넣으면 정작 대화 기록이 들어갈 자리가 없다. 로어북은 '왕국 이야기가 나올 때만 왕국 설정을 낸다'는 조건부 배치로 이 문제를 푼다.
실무에서 로어북이 안 먹는 원인은 대개 둘이다. 첫째, 키워드가 대화에 실제로 등장하지 않는다. 등록은 '북부 연맹'인데 대화에서는 계속 '거기'라고만 부르는 식이다. 둘째, 한국어는 조사와 활용이 붙어서 단어 경계 기준으로 매칭하는 구현에서는 원하는 만큼 발동하지 않는다. 키워드는 조사 없는 짧은 형태로, 별칭까지 여러 개 등록하는 편이 안전하다.
또한 로어북은 검색이지 기억이 아니다. 이번 대화에서 새로 생긴 사실은 누가 적어 넣지 않는 한 로어북에 저절로 들어가지 않는다.
장기기억 - 잘려 나간 것을 되살리는 별도 층
장기기억은 컨텍스트 윈도우 밖으로 밀려난 내용을 다시 끌어오기 위한 장치다. 구현은 대체로 두 갈래다. 하나는 지난 대화를 요약해 압축본을 계속 앞에 붙이는 방식이고, 다른 하나는 대화를 조각내 저장해 두었다가 지금 필요한 조각만 검색해서 끼워 넣는 방식(벡터 검색·RAG)이다.
로어북과 헷갈리기 쉬운데, 소유자가 다르다. 로어북은 제작자가 미리 쓴 세계 설정이고, 장기기억은 사용자와의 대화에서 사후에 생긴 사실이다. 그래서 로어북은 모든 사용자에게 같고 장기기억은 대화방마다 다르다.
장기기억의 고질적인 약점은 무엇을 남길지 고르는 단계다. 요약형은 감정의 결이나 사소한 약속을 먼저 버리고, 검색형은 지금 말과 표현이 다른 과거 기억을 못 찾는다. '기억한다고 했는데 정작 중요한 걸 못 외운다'는 체감은 저장 실패보다 선별 실패인 경우가 많다.
스와이프·재생성·편집 - 고칠 수 있는 것과 없는 것
스와이프(리롤, 재생성)는 방금 받은 답이 마음에 들지 않을 때 같은 조건으로 다시 생성해 다른 후보를 보는 기능이다. 모바일에서 좌우로 넘겨 후보를 고르는 UI가 퍼지면서 '스와이프'라는 말이 굳었다.
중요한 건 스와이프가 바꾸는 범위다. 스와이프는 직전 한 턴만 다시 뽑는다. 대화의 방향 자체가 틀어졌다면, 예컨대 세 턴 전에 내가 던진 질문 때문에 캐릭터가 설명충이 됐다면, 아무리 스와이프해도 같은 종류의 답만 나온다. 그때 필요한 건 내 메시지를 고치거나 그 턴까지 되돌리는 것이다.
답변 편집도 같은 이유로 강력하다. 캐릭터의 답을 내가 직접 손봐 두면 그 문장이 다음 턴의 견본이 되어, 이후 응답의 문체가 그쪽으로 끌려온다. 스와이프를 열 번 하는 것보다 한 번 고쳐 쓰는 게 빠른 경우가 많다.
안전 등급과 필터 - 라벨과 차단은 다른 층
안전 등급은 캐릭터나 대화방에 붙는 콘텐츠 라벨이다. 영화 관람 등급처럼 '이 안에 어떤 수위가 있을 수 있다'를 알리고, 노출 대상과 진입 조건을 가르는 데 쓰인다.
필터는 그와 별개의 층이다. 등급이 높다고 모든 것이 허용되는 것도, 등급이 낮다고 모델이 알아서 순한 문장을 쓰는 것도 아니다. 등급은 진열과 접근을, 필터는 생성과 차단을 담당한다. 두 층이 어긋나면 '허용 등급인데 답이 막힌다' 같은 체감이 생긴다.
어느 서비스든 흔들리지 않는 선도 있다. 미성년으로 읽히는 인물을 성적·연애 맥락에 두는 것은 등급 문제가 아니라 금지선이고, 이는 각국 법과 플랫폼·광고 정책이 함께 걸리는 영역이다. 캐릭터를 만들 때 나이나 학령을 암시하는 단어를 무심코 넣었다가 심사에서 걸리는 사례가 이 지점에 몰린다.
헷갈리기 쉬운 짝 정리
용어를 다 읽고도 실제로 막히는 건 대개 비슷하게 생긴 둘을 구분하지 못할 때다. 자주 겹치는 짝만 따로 모으면 이렇다.
- 캐릭터 페르소나 vs 사용자 페르소나: 앞은 AI가 연기할 사람, 뒤는 대화 속 '나'. 같은 칸에 섞어 쓰면 모델이 내 행동까지 대신 서술한다.
- 설명 vs 시나리오: 앞은 언제나 참인 것, 뒤는 지금 장면에서만 참인 것. 이 구분이 흐려지면 같은 캐릭터로 다른 상황을 시작할 수 없다.
- 로어북 vs 장기기억: 앞은 제작자가 미리 쓴 설정을 조건부로 꺼내는 것, 뒤는 대화에서 새로 생긴 사실을 되살리는 것. 방향이 반대다.
- 컨텍스트 윈도우 vs 기억력: 앞은 한 번에 보이는 양의 한계, 뒤는 그 한계 밖을 다루는 별도 기능. "기억 못 한다"의 원인이 어느 쪽인지에 따라 해법이 다르다.
- 스와이프 vs 되돌리기: 앞은 같은 조건에서 다른 후보, 뒤는 조건 자체를 바꾸는 것. 방향이 틀어진 대화는 스와이프로 고쳐지지 않는다.
- 안전 등급 vs 콘텐츠 필터: 앞은 라벨과 접근 제어, 뒤는 생성 차단. 서로 독립적으로 동작한다.
참고한 자료
용어의 계보와 필드 이름은 커뮤니티 문서와 공개 스펙을 확인해 정리했다. 세부 동작은 서비스·도구마다 다르므로, 쓰는 곳의 문서를 함께 보는 편이 정확하다.
- 캐릭터 카드 V2 스펙(필드 목록과 의미): character-card-spec-v2
- 키워드 기반 설정 삽입의 동작 설명: SillyTavern World Info 문서
- 한국어 토큰 효율 관련 연구: Problematic Tokens: Tokenizer Bias in Large Language Models</content>
함께 읽기
- 모델 구조·약 9분AI 캐릭터는 왜 지난 대화를 잊는가 - 문맥 창과 기억의 구조이름을 다시 묻고 약속이 증발하는 데는 구조적인 이유가 있다. 무엇이 먼저 잘리고, 기억 장치들은 어디까지를 메워 주는지.
- 표기법·약 8분별표는 왜 지문이 되었나 - 텍스트 롤플레이 표기법의 계보별표와 따옴표가 어디서 왔는지 거슬러 올라간다. MUD의 pose 명령, IRC의 /me, 소설 문장부호가 한 화면에서 만난 결과다.
- 대화 기법·약 9분AI 캐릭터와의 대화가 첫 3턴에서 끊기는 이유초반에 대화가 어색하게 끝나는 데는 구조적인 이유가 있다. 무엇이 다음 턴의 재료를 남기고 무엇이 없애는지.
