제대로 작동하는 AI 캐릭터 카드 작성법, 필드별로
짧은 답
- 카드는 앱이 모든 프롬프트에 붙여 넣는 텍스트입니다. 설명, 성격, 시나리오는 매번 들어갑니다. 첫 메시지는 한 번 들어갑니다. 대화 예시는 채팅이 컨텍스트를 채우면 빠집니다.
- 첫 메시지가 가장 많은 것을 결정합니다. 모델은 채팅 내내 그 길이, 말투, 형식을 따라 합니다.
- 짧은 카드가 이깁니다. 고정 필드는 2,000토큰 이하로 유지하세요. 긴 카드는 늘 같은 식으로 실패합니다. 절반은 모델에게 주는 규칙이고, 절반은 캐릭터가 절대 꺼내지 않을 배경 이야기입니다.
각 필드가 하는 일
필드는 Character Card V2·V3 사양에서 왔기 때문에 한 앱에서 만든 카드를 다른 앱에서도 열 수 있습니다. 중요한 것은 각 필드가 언제 모델에 전달되느냐입니다.
- 설명. 캐릭터가 누구인지: 외모, 태도, 과거, 원하는 것. 모든 메시지와 함께 전송되므로 채팅 내내 토큰을 씁니다. 평범한 산문으로 몇 문단 쓰세요.
- 성격. 한두 줄이며, 역시 매번 전송됩니다. 설명에 이미 담겨 있다면 비워 두세요.
- 시나리오. 채팅이 어디서 시작하는지, 두 사람 사이에 무엇이 놓여 있는지. 이것도 고정 필드입니다. "두 사람은 막 만났다"라고 쓰면 메시지 200개 뒤에도 여전히 그렇게 말합니다.
- 첫 메시지. 캐릭터의 첫 턴으로, 한 번만 전송됩니다. 다음 섹션을 보세요.
- 대화 예시. 캐릭터가 어떻게 말하는지 보여 주는 짧은 대화입니다. 실제 대화에 공간이 필요해지기 전까지만 전송됩니다.
- 제작자 노트. 카드를 읽는 사람을 위한 것으로, 모델에는 절대 전송되지 않습니다. 추천 모델과 콘텐츠 경고는 여기에 쓰세요.
- 시스템 프롬프트와 채팅 기록 이후 지시. 앱 자체 프롬프트를 덮어씁니다. 앱이 기본으로 무엇을 보내는지 알 때만 쓰세요. 모델에게 주는 규칙은 설명에 넣을 것이 아닙니다.
모든 필드에서 두 가지 자리표시자를 쓸 수 있습니다. {{char}}는 캐릭터 이름으로, {{user}}는 내 이름으로 바뀝니다. 이름 대신 이것을 쓰면 이름을 바꾸거나 페르소나를 바꿔도 카드가 그대로 작동합니다.
첫 메시지가 스타일을 정합니다
모델은 첫 메시지를 좋은 턴의 본보기로 삼습니다. 600단어짜리 도입부는 600단어짜리 답장을 낳습니다. 캐릭터의 말투로, 현재 시제로, 구체적인 일 하나가 벌어지는 도입부는 그런 답장을 낳습니다.
- 길이: 150~300단어. 도입부가 이보다 길면 "답장마다 글이 벽처럼 쏟아진다"는 문제가 생깁니다.
- 말투: 답장에서 원하는 인칭, 시제, 형식. 원한다면 행동은 별표 안에, 대사는 따옴표 안에.
- 내가 받아칠 여지: 질문, 끼어듦, 선택으로 끝내세요.
- {{user}}의 몫은 쓰지 않기: 내 대사나 행동을 하나도 쓰지 마세요. 그렇지 않으면 모델은 내 역할을 대신 쓰는 것이 정상이라고 배웁니다.
대화 예시
짧은 대화 두세 개가 어떤 형용사보다 말투를 잘 보여 줍니다. 문장 길이, 속어, 캐릭터가 말하는 것과 행동하는 것의 비율 같은 것들입니다. 각 대화는 <START>로 시작하고, 줄 앞에 {{char}}:와 {{user}}:를 붙이세요. 잘못되는 경우는 세 가지입니다.
- 모델이 예시를 그대로 따라 말합니다. 실제 채팅에서 나오지 않을 상황으로 예시를 쓰세요.
- 캐릭터가 예시 덕분에만 살아 있습니다. 기록이 길어지면 예시가 가장 먼저 빠집니다. 캐릭터가 절대 잃어서는 안 되는 것은 설명에 넣으세요.
- {{user}}의 대사가 가장 깁니다. 모델은 가장 많이 말하는 쪽을 흉내 냅니다. 각 예시에서 내 쪽은 한 줄로 줄이세요.
토큰 예산
토큰 하나는 영어로 약 네 글자이므로, 1,000토큰은 대략 750단어입니다.
- 모델을 직접 제공하는 앱은 카드를 1,000~1,500토큰으로 제한합니다. 그 모델들이 8,000토큰 정도만 담을 수 있기 때문입니다.
- 내 키를 쓰면 컨텍스트 창이 한계가 되는 일은 드뭅니다. 그래도 카드는 메시지마다 비용이 들고, 모델의 주의도 여전히 흩어 놓습니다.
고정 필드는 2,000토큰 이하로 유지하세요. 줄일 때는 이 순서로 줄이세요.
- 모델에게 주는 지시. "절대 {{user}}의 말을 대신하지 마", "캐릭터를 유지해", "자세히 답해" 같은 것들입니다. 긴 카드는 대부분 이런 문장으로 채워져 있으며, 굳이 넣겠다면 시스템 프롬프트에 들어가야 합니다.
- 형용사 나열. "친절하고, 재치 있고, 용감하고, 충직하다"는 모델이 행동으로 옮길 거리를 주지 않습니다. 형용사 다섯 개보다 습관 하나가 낫습니다. "질문을 받으면 자기 질문으로 되묻는다"처럼요.
- 캐릭터가 처음 한 시간 안에는 꺼내지 않을 배경 이야기. 그 이야기를 불러내야 할 단어를 키로 삼는 로어북 항목으로 옮기세요. 그러면 필요해질 때까지 비용이 들지 않습니다.
해결: 캐릭터가 내 말과 행동을 대신 쓴다
모델이 내 대사를 쓰는 것은 카드가 모델에게 내 대사를 보여 줬기 때문입니다.
- 첫 메시지와 예시에서 {{user}}의 행동과 대사를 모두 지우세요.
- 첫 메시지를 줄이세요. 도입부가 길면 모델이 장면의 양쪽을 다 써서 그 공간을 채우려 듭니다.
- 그래도 계속되면 모델에게 지시하지 말고 캐릭터를 묘사하세요. "그녀는 {{user}}의 대답을 기다린다"가 규칙 한 문단보다 효과가 큽니다.
해결: 캐릭터가 무엇이든 동의한다
채팅 모델은 고분고분한 어시스턴트가 되도록 학습되어 있습니다. 캐릭터에게 원하는 것을 하나도 주지 않는 카드는 의상만 입은 어시스턴트를 만듭니다. 캐릭터에게 줏대를 주는 것들은 다음과 같습니다.
- 나와 충돌하는 욕구. 캐릭터가 이 대화에서 얻어 내려 하지만 내가 거절할 수도 있는 무언가입니다.
- 규칙이 아니라 성격으로서의 거절. "그는 자기 형제 이야기는 하지 않는다"는 통합니다. "사용자에게 절대 비밀을 밝히지 마"는 통하지 않습니다.
- 3인칭. 사용자들의 보고에 따르면 카드와 페르소나를 3인칭으로 쓰고 특별 대우받는 주인공을 두지 않으면, 모델이 훨씬 더 기꺼이 반박하고, 속이고, 거절합니다.
- 캐릭터가 이미 무언가에 반대하고 있는 첫 메시지.
해결: 캐릭터의 앞뒤가 맞지 않는다
두 가지 경우가 있습니다.
- 필드끼리 어긋납니다. 설명, 시나리오, 첫 메시지를 서로 다른 때에 써서 나이, 배경, 관계가 더 이상 맞지 않으면, 모델은 답장마다 그중 하나를 고릅니다. 저장하기 전에 세 필드를 이어서 읽어 보세요.
- 카드가 점점 수위를 올립니다. 외모와 "유혹적인" 같은 형용사가 대부분인 설명은 시나리오에 뭐라고 쓰여 있든 메시지 세 개 만에 로맨스로 흘러갑니다. 캐릭터가 하루 종일 무엇을 하는지 묘사하고, 관계의 속도는 시나리오와 첫 메시지에서 정하세요.
형식, 그리고 AI에게 초안 맡기기
형식. 최신 모델은 평범한 산문을 가장 잘 읽고, 산문이 토큰도 가장 적게 듭니다. PList 같은 간결한 목록 형식도 여전히 통합니다. W++나 괄호가 많은 유사 JSON은 구두점에 토큰을 쓰며, 커뮤니티에서도 더는 권하지 않습니다. 무엇을 고르든 카드 전체에 한 가지 형식만 쓰세요.
AI에게 초안 맡기기. AI는 쓸 만한 초안을 쓰지만, 그 초안은 길고, 단조롭고, 형용사가 잔뜩 들어갑니다. 둘을 비교해 본 사용자들은 직접 쓴 500토큰짜리 카드가 생성된 10,000토큰짜리 카드보다 낫다고 말합니다. 그러니 초안을 받으면 이렇게 하세요.
- 절반으로 줄이세요.
- 형용사 나열을 각각 습관 하나로 바꾸세요.
- 첫 메시지는 직접 쓰세요.
내려받은 카드 진단하기
대부분의 사람은 카드를 직접 쓰기보다 가져와서 쓰는데, 그러다 카드가 이상하게 굴곤 합니다. 모델을 탓하기 전에 카드를 열어 설명을 읽어 보세요.
- 절반이 모델에게 주는 규칙입니다. 시스템 프롬프트 필드가 없어 제작자들이 모든 것을 설명에 몰아넣는, 모델을 직접 제공하는 플랫폼용으로 만든 카드입니다. 규칙은 지우고 캐릭터만 남기세요.
- 설명이 3,000단어짜리 과거사입니다. 지금 중요한 것만 남기고 나머지는 로어북으로 옮기세요.
- 첫 메시지가 엄청나게 깁니다. 줄이세요. 답장도 함께 짧아집니다.
저장하기 전에
- 설명, 시나리오, 첫 메시지가 나이, 장소, 관계에서 서로 맞습니다.
- 설명에 모델에게 주는 지시가 없습니다.
- 첫 메시지는 300단어 미만이고, 답장에서 원하는 말투로 쓰였으며, 반응할 거리로 끝납니다.
- 첫 메시지와 예시에 {{user}}가 하는 말이나 행동이 없습니다.
- 고정 필드의 합계가 2,000토큰 미만입니다. 어떤 토큰 카운터로도 확인할 수 있습니다.
- 첫 메시지에 필요 없는 배경 이야기는 로어북에 있습니다.
- 처음부터 끝까지 한 가지 형식입니다.
- 추천 모델과 경고는 제작자 노트에 있습니다.
카드를 넣을 곳
LonelyTavern은 내 API 키로 쓰는 iPhone·Android용 캐릭터 채팅 앱입니다. V1, V2, V3 카드를 PNG나 JSON으로 가져오고, 카드에 내장된 로어북도 그대로 유지하며, 편집기에는 위의 모든 필드가 있고 덮어쓰기 설정은 고급 아래에 있습니다. 캐릭터와 채팅은 기기에 남습니다. 무료, 계정 없음, 광고 없음, 18세 이상.
관련 가이드: AI 캐릭터가 자꾸 잊어버리는 이유 · AI 롤플레이에 필요한 API 키 · 전체 가이드.
출처
- Character Card V2 사양과 V3 사양: 필드 정의, 어떤 필드가 모델에 전달되는지, 자리표시자와
<START>표시 - SillyTavern 문서: 캐릭터 디자인: 고정 필드와 임시 필드, 스타일과 길이를 정하는 첫 메시지
- JanitorAI: 토큰(8,000토큰 모델에서 고정 토큰 1,500 미만)과 봇 제작 가이드; SpicyChat: 토큰과 컨텍스트(900~1,100토큰); Character.AI: Definition(32,000자, 앞부분이 우선)
- Gemini API: 토큰: 토큰당 약 네 글자
- r/SillyTavernAI: 설명 속의 지시, AI가 쓴 카드, 좋은 카드의 조건, 3인칭과 예스맨, 설명 vs 로어북; r/CharacterAI: 서로 어긋나는 필드(사용자 보고)
SillyTavern, JanitorAI, SpicyChat, Character.AI, Google은 각 소유자의 독립된 제품입니다. LonelyTavern은 이들 중 어느 곳과도 제휴하거나 보증을 받지 않았습니다. 한도와 조언은 2026년 9월 17일에 각 페이지에서 확인한 것으로, 이후 바뀌었을 수 있습니다.
