NoahChatNoahChat Docs

AI는 어떻게 대답할까?

AI의 작동 원리를 이해하면 더 나은 대화를 만들 수 있습니다.

캐릭터챗을 하다 보면 궁금해집니다. 이 캐릭터는 어떻게 나를 기억하고, 어떻게 대답하는 걸까요?

AI는 기억이 없습니다

결론부터 말씀드리면, AI는 기억이 없습니다. 정말로요.

ChatGPT나 Gemini와 채팅해본 적 있으실 겁니다. "대화"하는 것처럼 느껴지지만, 사실 AI는 매번 전체 대화 기록을 처음부터 다시 읽고 답하는 것입니다.

  • 이전 턴들의 전체 대화 기록 (내가 보낸 것 + AI가 답한 것)
  • + 방금 내가 보낸 새 메시지
  • = 이걸 통째로 AI에게 전송

"아까 뭐라고 했더라?"가 아니라, 대화 기록 전체를 다시 읽는 것이죠.


AI가 읽는 대본

캐릭터챗에서 AI는 매번 이런 "대본"을 처음부터 다시 읽습니다.

AI가 읽는 대본 구조
시스템 지침

응답 형식, 안전 규칙

메인 프롬프트

세계관, 캐릭터 설정

로어북

키워드로 활성화된 설정들

메모리

요약된 과거 대화

최근 대화 몇 턴

context turn

방금 내가 보낸 메시지
AI가 읽고 조합
응답

이미지 + 본문 + 상태창

AI는 매번 이 대본을 처음부터 다시 읽는 배우입니다. 대본에 없으면 모릅니다.

메인 프롬프트(세계관, 캐릭터 설정)는 고정이지만, 로어북과 메모리는 상황에 따라 달라집니다. NoahChat이 하는 일은 이 변동 부분을 최적화해서 AI에게 필요한 정보를 효율적으로 전달하는 것입니다.


토큰과 비용

이 대본을 토큰이라는 단위로 셉니다. 그리고 토큰 = 비용입니다.

토큰 = 비용Gemini 3.0 Pro 기준
$2
인풋
대본 길이
$12
생각
추론 과정
$12
아웃풋
6배 비쌈
💡 출력이 길수록 비용이 급격히 올라갑니다

대본이 길수록 비용이 올라가고, AI의 응답이 길수록 비용이 6배 더 올라갑니다.

그래서 캐릭터챗 플랫폼들은 대본 길이를 제한합니다. 무한정 늘릴 수 없으니까요. 그리고 여기서 진짜 문제가 시작됩니다.


기억력 문제

대본 길이가 제한되면, 두 가지 기억력 문제가 생깁니다.

문제 1: 상태가 초기화됩니다

"최근 대화 몇 턴"이 대본에 들어간다고 했습니다. 이걸 context turn이라고 부릅니다.

  • context turn 안: 상태창이 대본에 있음 → AI가 읽고 반영
  • context turn 밖: 상태창이 대본에서 빠짐 → AI가 모름

호감도를 100까지 올렸는데, 10턴쯤 지나니까 갑자기 초기화됐다면? context turn 밖으로 나갔기 때문입니다.

문제 2: 과거가 희석됩니다

과거 대화를 전부 대본에 넣을 수 없으니까, "요약"해서 넣습니다.

  • 10턴: 요약이 잘 됩니다
  • 50턴: 요약의 요약
  • 100턴: 요약의 요약의 요약...

초반에 한 약속이나 중요한 사건은 요약을 거듭하면서 희석됩니다. "그때 그 약속 기억해?"라고 물어봐도, AI는 기억하지 못합니다.


NoahChat의 해결책

AI가 기억하는 게 아닙니다. 시스템이 대신 기억해주는 것입니다.

기억 방식 비교

일반 플랫폼

  • 사건 기억요약 압축
  • 상태 기억context turn 의존
  • 100턴 후

오래된 기억이 희석됨

NoahChat

  • 사건 기억Chunk 검색
  • 상태 기억변수 + 캐릭터 기억
  • 100턴 후

시스템이 대신 기억

사건 기억: Chunk 검색

대화를 조각(chunk)으로 요약해서 저장합니다. 새 대화가 오면 관련된 조각을 검색해서 대본에 넣습니다.

  • 시간에 따른 희석이 없습니다
  • 필요한 것만 가져오니까 비용도 일정합니다
  • 100턴 전 약속도 찾아올 수 있습니다

→ 자세한 내용: 장기기억

상태 기억: 변수 + 캐릭터 기억

호감도, 관계, 위치 같은 상태는 변수로 저장합니다. context turn과 무관하게 영구히 유지됩니다.

캐릭터와의 관계("연인", "오빠라고 부름", "츤데레")는 캐릭터 기억으로 자동 추출해서 저장합니다.

→ 자세한 내용: 변수 시스템, 장기기억


출력도 안정적으로

AI 출력은 불안정합니다. 상태창 포맷이 깨지거나, 이미지 URL이 잘못 생성되는 경우가 있죠.

NoahChat은 구조적으로 깨질 수 없게 만들었습니다.

  • 상태창: AI는 값만 출력 → 시스템이 포맷 렌더링
  • 이미지: AI는 코드만 출력 → 시스템이 URL 조합

→ 자세한 내용: 상태창 커스터마이징, 이미지 시스템


정리

문제NoahChat 해결책
AI는 기억이 없다시스템이 대신 기억
사건 희석Chunk 검색으로 원본 유지
상태 초기화변수 + 캐릭터 기억으로 영구 유지
출력 깨짐AI는 값만, 포맷은 시스템이
비용 급증태그 기반 출력으로 절약

결국 캐릭터챗 플랫폼이 하는 일은 AI의 한계(기억 없음, 출력 불안정)를 시스템으로 보완하는 것입니다.

이 원리를 이해하면 더 나은 대화를 만들 수 있습니다. 중요한 정보는 유저 노트에 기록해보세요.

On this page