Babechat

프롬프트 포맷팅과 변수 [심화]

캐릭터를 더욱 안정적으로 만들기 위한 포맷팅과 변수 가이드라인


※ 본 가이드라인은 2025년 8월 기준으로 작성되었으며, LLM 연구 발전 추이와 BabeChat의 프롬프트 엔지니어링에 따라 내용이 변경될 수 있음을 안내드립니다.


{{char}}{{user}}는 캐릭터 상세 설정에서 사용할 수 있는 편리한 변수입니다. 이 변수를 사용하면 페르소나 및 캐릭터 정보에 따라 변수 값이 자동으로 변경됩니다.

  • {{char}}: 캐릭터의 이름으로 자동 변경됩니다.

  • {{user}}: 유저가 현재 사용 중인 페르소나의 닉네임으로 자동 변경됩니다.

변수가 어떤 정보를 가져오는지 명확히 이해하고 사용하는 것이 중요합니다. 특히 {{char}} 변수는 캐릭터 이름 필드의 텍스트를 그대로 가져오므로, 정확한 이름과 올바른 변수 형식을 사용하는 것이 핵심입니다.

아쉬운 예시 1: 잘못된 캐릭터 이름

설정캐릭터 이름: 비비의 사라진 여름휴가

캐릭터 상세 설정:{{char}}는 베이비챗의 CS 담당자입니다.

→ 모델은 {{char}}를 캐릭터 이름 그대로 가져오므로, 다음과 같은 문장이 완성됩니다.

(실제 입력): 비비의 사라진 여름휴가는 베이비챗의 CS 담당자입니다.

아쉬운 예시 2: 잘못된 변수 형식 사용

캐릭터 상세 설정: {char}는 베이비챗의 CS 담당자입니다.

{{char}}가 아닌 {char}처럼 잘못된 형식의 괄호 사용 시 변수로 인식되지 않습니다.

(실제 입력): {char}는 베이비챗의 CS 담당자입니다.

좋은 예시

캐릭터 이름: 비비

캐릭터 상세 설정: {{char}}는 베이비챗의 CS 담당자입니다.

{{char}}가 캐릭터 이름인 '비비'로 정확히 대체되어 자연스러운 문장이 완성됩니다.

(실제 입력): 비비는 베이비챗의 CS 담당자입니다.

캐릭터가 한 명의 인물이 아닌, '비비의 회사생활'처럼 특정 상황이나 시뮬레이션 그 자체일 경우, {{char}}를 그대로 사용하면 어색한 문장이 만들어져 모델이 혼동할 수 있습니다.

아쉬운 예시

캐릭터 이름: 비비의 회사생활

캐릭터 상세 설정: {{char}}는 {{user}}를 신입사원으로 맞이한다.

→ 문법적으로 어색하며, '회사생활'이라는 추상적인 주체가 행동을 한다는 모호한 의미가 됩니다.

(실제 입력): 비비의 회사생활는 {{user}}를 신입사원으로 맞이한다.

좋은 예시

캐릭터 이름: 비비의 회사생활

캐릭터 상세 설정: 비비는 {{user}}를 신입사원으로 맞이한다.

→ 여러 캐릭터가 등장하는 시뮬레이션의 경우 {{char}} 변수 사용 대신 행동의 주체를 명확히 설정하여 더욱 정확한 맥락을 제공할 수 있습니다.

(실제 입력): 비비는 {{user}}를 신입사원으로 맞이한다.


캐릭터 상세 설정에 들어가는 정보는 명확하게 구조화될수록 모델이 안정적으로 인식합니다. 기초편에서 강조했듯, 사람이 읽기 편한 글이 모델도 이해하기 쉽습니다. 다양한 방식이 있지만, BabeChat에서는 마크다운 사용을 권장합니다.

마크다운은 가독성이 매우 뛰어나면서도, 헤더(#), 목록(-) 등 간단한 기호로 정보의 위계를 명확하게 표현할 수 있습니다. 이는 제작자가 캐릭터 설정을 관리하기 편하게 할 뿐만 아니라, 모델이 각 정보의 중요도와 관계를 파악하는 데 큰 도움을 줍니다. BabeChat에서 가장 안정적인 성능을 기대할 수 있는 형식입니다.

마크다운 적용 예시

Plaintext
## 캐릭터 프로필

[기본 정보]
- 이름: 비비
- 직업: 베이비챗의 CS 담당자

[성격]
- 까칠하지만 요청사항은 결국 다 처리해주는 츤데레 스타일.
- 대표 욕을 직원들 앞에서 서슴없이 하지만, 의외로 대표의 부탁은 다 들어준다.

XML은 <tag>를 사용해 데이터 구조를 명확하게 정의하는 방식입니다. 모든 정보가 태그로 감싸여 있어 매우 정밀한 설정이 가능하지만, 마크다운에 비해 가독성이 떨어지고 더 많은 텍스트(토큰)를 차지하는 단점이 있습니다.

XML 적용 예시

Plaintext
<character_profile>
[기본 정보]
- 이름: 비비
- 직업: 베이비챗의 CS 담당자

[성격]
- 까칠하지만 요청사항은 결국 다 처리해주는 츤데레 스타일.
- 대표 욕을 직원들 앞에서 서슴없이 하지만, 의외로 대표의 부탁은 다 들어준다.
</character_profile>

※ TIP: 마크다운 헤더 사용 시, 다음과 같은 구조를 권장합니다.

캐릭터 상세 설정: 헤더 개수(#, ## 등)에 제한 없이 자유롭게 사용하세요.

페르소나 / 로어북: 헤더 세 개(###)부터 사용하여 작성하는 것을 권장합니다.

또한, 꼭 정해진 템플릿을 따를 필요는 없습니다. 마크다운의 헤더(#)나 목록(-)으로 정보를 구분하는 것만으로도 모델의 이해도를 크게 높일 수 있습니다. 반면, 기초편에서 언급했듯 JSON 형식은 토큰 효율과 성능 편차 문제로 추천되지 않습니다.