문제와 해결
LLM 이 실패해도 무너지지 않는 게임
풀려던 문제
NPC 를 LLM 이 연기하는 게임은 모델이 한 번 엇나가면 세계관이 깨집니다. 이 프로젝트의 설계 제약은 「LLM 이 말을 잘한다」가 아니라 「LLM 이 실패해도 게임이 안 무너진다」입니다. 그래서 규칙과 채점, 실패 처리를 프롬프트가 아니라 코드와 구조로 옮겼습니다.
게임의 전제
유저는 하루의 끝에 세계가 멸망하는 것을 보고 아침으로 돌아옵니다. 유저만 기억합니다. 5회차 안에 「왜 멸망하는가」를 알아내야 하고, NPC 는 LLM 이 연기합니다. 시나리오 A 「구역」의 세계·인물·진실 명제·쿠키 콘텐츠는 팀이 직접 창작했습니다. (담당 김충식)
설계 항목
| 설계 항목 | 내용 |
|---|---|
| 한 판 | 5루프, 발화 예산 8 → 4, 5회차 밤 종료 |
| NPC 저항 | 문자 그대로 듣는다 — 7세 기준. 체크리스트 5줄로 정책화 |
| 채점 | 주장(claim) 단위 — 정리 LLM → 확인 1회 → 주장별 판정. 칸 만점 = 정답 주장 80% 이상 확인 |
| 신의 개입 | 원숭이손 — 1회차 무조건 + 전날 40% 이상이면 1회 더 |
| 화면 | 고정 화면 45개(대화형 + 상태 기반 이미지). 영상 없음 |
해결 방식
- 하네스는 프롬프트가 아니라 코드. LLM 이 제안하고 코드가 확정합니다. 모델 출력은 JSON 파싱 → 스키마 검증 → 사실 층 검사 → 재생성 2회 → 폴백을 거칩니다. 자세한 내용은 아키텍처에 있습니다.
- 엔진 재사용. 어댑터 위 계층 전체가 BeyondBob Engine 이고, 시나리오는 도메인 어댑터의 인스턴스입니다. 같은 코어로 감사 대응·커리어 대화 같은 게임 외 도메인도 돌릴 수 있게 설계했습니다.
- 측정으로 모델을 고름. 슬롯별 모델을 평가 게이트로 비교해 정했습니다. 결과는 주요 결정과 시행착오에 있습니다.