Chatering

대화 기법

AI 캐릭터와의 대화가 첫 3턴에서 끊기는 이유

AI 캐릭터와 대화를 시작해 놓고 세 번쯤 주고받다가 창을 닫아 본 적이 있다면, 그건 캐릭터가 부실해서가 아닐 가능성이 높다. 첫 3턴이 어떻게 흘러가느냐에 따라 이후 대화의 형식과 밀도가 거의 확정되는데, 대부분의 시작 방식은 그 3턴을 '민원 접수' 순서로 소모해 버린다. 이 글은 왜 하필 3턴에서 멈추는지, 그 지점에서 무엇을 다르게 쓰면 되는지를 실제 문장 단위로 정리한 것이다. 특정 서비스의 기능이 아니라 텍스트 대화 자체의 문제를 다룬다.

챗터링 팀·· 수정·약 9분

3턴 붕괴는 우연이 아니라 순서의 문제다

멈추는 대화는 대개 이 순서를 밟는다.

  • 1턴 - "안녕?"
  • 2턴 - "안녕. 무슨 일이야?"
  • 3턴 - "그냥, 심심해서."
  • 4턴 - "그렇구나. 그럼 뭐 하고 싶어?"

여기서 창을 닫게 되는 이유는 캐릭터가 못 받아쳐서가 아니다. 이 흐름이 인사 → 신원 확인 → 용건 확인이라는 창구 업무의 순서이기 때문이다. 이야기의 순서가 아니다. 그리고 이 순서는 마지막에 반드시 "그래서 뭐 할래?"라는 질문에 도착한다. 그 질문에 답하려면 이용자가 이야기 전체를 혼자 설계해야 하고, 그건 대화하러 들어온 사람이 하고 싶은 일이 아니다.

근본 원인은 '만남'에서 시작했다는 데 있다. 만남은 두 사람 사이에 아직 아무 일도 벌어지지 않은 지점, 즉 이야깃거리가 0인 지점이다. 서사에서 사건 한가운데서 시작하라는 말(라틴어 in medias res, 호라티우스의 『시학』에서 서사시 작법을 논하며 나온 표현으로 알려져 있다)이 여기 그대로 적용된다. 소설도 드라마도 등장인물이 처음 인사를 나누는 장면부터 시작하지 않는다. 이미 뭔가 벌어진 뒤의 한가운데를 잘라서 보여준다.

그래서 첫 문장을 "안녕" 대신 "늦어서 미안"으로 바꾸는 것만으로도 대화의 남은 수명이 달라진다. 후자는 이미 약속이 있었고, 시간이 지났고, 상대가 기다렸다는 세 가지 사실을 공짜로 깔아 준다.

모든 턴은 다음 턴의 재료를 남겨야 한다

대화를 잔고 개념으로 보면 이해가 빠르다. 한 턴이 상대에게 남기는 '물어볼 거리'의 개수가 그 턴의 잔고다. 잔고가 0이 되면 대화는 그 자리에서 멈춘다.

  • "안녕" - 잔고 0. 되돌려줄 말이 인사뿐이다.
  • "오늘 좀 피곤하네" - 잔고 1. 왜 피곤한지 한 번 물으면 끝난다.
  • "늦어서 미안. 오는 길에 버스가 멈춰 섰거든. 사고 같았는데 사람들이 다 내려서 걸어가더라." - 잔고 3. 사고, 걸어온 거리, 기다린 시간. 상대가 어느 쪽을 잡아도 다음 턴이 만들어진다.

쓸 만한 턴은 대체로 세 부분으로 되어 있다. 상대가 방금 한 말에 대한 반응, 상대가 몰랐던 새 정보 하나, 그리고 상대가 채워 넣을 여백. 셋 중 하나만 빠져도 대화는 눈에 띄게 뻑뻑해진다. 반응이 없으면 두 사람이 각자 독백하고, 새 정보가 없으면 서로의 말을 되풀이하고, 여백이 없으면 상대는 "응, 그렇구나"밖에 할 말이 없다.

"응", "그래", "그렇구나"가 두 번 연속 나왔다면 잔고가 바닥났다는 신호다. 그 시점에서 문장을 더 예쁘게 다듬는 건 소용이 없다. 새 재료를 넣어야 한다.

열린 질문을 하라는 조언은 절반쯤 틀렸다

"닫힌 질문 말고 열린 질문을 하라"는 흔한 조언인데, 실제로는 형태보다 답에 필요한 구체성이 대화를 굴린다.

"오늘 어땠어?"는 형태상 완벽한 열린 질문이지만, 답할 때 지어내야 하는 구체적 사실이 0개다. 지어낼 게 없으면 무난한 답이 나온다. "그냥 그랬어." 언어모델도 사람과 같아서, 지정된 자리가 없으면 가장 안전한 문장을 고른다.

반대로 "아까 그 사람 나가고 나서 너 뭐라고 했어?"는 답하려면 아까 있었던 상황, 그 사람의 정체, 그때 한 말 세 가지를 만들어 내야 한다. 질문을 좁힐수록 답이 풍부해지는 역설이 여기서 나온다. 좁은 질문은 대답할 자리를 정확히 짚어 준다.

다만 반대쪽 함정이 있다. 세 턴 연속으로 물음표로 끝내면 그 대화는 취조가 된다. 언어모델은 문맥에 이미 들어 있는 형식을 강하게 따라가기 때문에, 질문–대답이 세 번 반복되면 그 형식이 이 대화의 기본형으로 굳어 버린다. 그다음부터는 무슨 말을 해도 캐릭터가 답변만 하고 먼저 말을 걸지 않는다.

실용적인 배분은 이렇다. 질문은 세 턴에 한 번. 나머지 턴은 관찰을 말한다. "괜찮아?" 대신 "손 떨고 있는데." 전자는 예/아니오로 닫히고, 후자는 상대가 변명하든 감추든 인정하든 무조건 새 정보를 내놓게 만든다.

첫 턴에 설정을 다 부으면 3턴째에 쓸 게 없다

정반대 방향의 실패도 흔하다. 첫 메시지에 세계관, 관계, 내 캐릭터의 과거, 오늘의 목표를 800자쯤 몰아넣는 경우다. 성의는 가장 많이 들어가는데 결과는 제일 나쁘다. 두 가지가 동시에 벌어진다.

첫째, 방금 받은 대량의 정보를 모델은 '아직 안 쓴 재료'로 아껴 두지 않는다. 정리하고 확인하는 데 턴을 쓴다. 그래서 답이 "그렇군. 그러니까 너는 북쪽 국경에서 온 용병이고, 나와는 3년 전에…" 하는 복창이 된다. 복창은 잔고를 0으로 만든다. 내가 방금 다 말한 내용이니까.

둘째, 설정은 소모품이다. 한 번에 다 쓰면 3턴째에 꺼낼 게 없다. 초반에 신나다가 갑자기 심심해지는 대화는 거의 다 이 패턴이다.

배분 원칙은 단순하다. 첫 턴에는 두 가지만 넣는다. 지금 어디에 있는가, 방금 무슨 일이 있었는가. 나머지는 대화 중에 한 턴에 하나씩 흘린다. 배경 설정을 꼭 미리 고정해야 한다면 대화창 말고 캐릭터 설정이나 메모 같은 별도 자리에 넣는다. 대화 턴은 '지금'을 위한 자리지 설정집이 아니다.

지문은 장식이 아니라 무대 설치다

별표나 괄호로 감싸 쓰는 행동 묘사(지문)는 분위기용 액세서리가 아니다. 상대가 서 있을 무대를 세우는 작업이다. 그래서 지문에는 잘 쓰는 법과 못 쓰는 법이 뚜렷하게 갈린다.

  • 정보 0 - *들어간다.* 이건 지문이 아니라 동작 보고다.
  • 과잉 - *비 내리는 늦은 밤, 낡은 목조 여관의 삐걱이는 문을 열고 지친 몸을 이끌고 들어서며 어깨의 물기를 털고 카운터 쪽을 살핀다.* 장면을 내가 다 완성해 버렸다. 상대가 묘사할 게 남지 않는다.
  • 적정 - *문을 밀자 종이 울린다. 카운터에는 아무도 없다.* 시간·장소 하나와 감각 하나. 그리고 결정적으로, 상대가 등장할 자리를 비워 뒀다.

재료는 시간/장소, 몸의 자세, 감각(소리·냄새·온도) 이렇게 셋 중 둘까지만 쓰는 게 대체로 적당하다. 셋을 다 채우면 대개 과잉으로 넘어간다.

가장 자주 저지르는 실수는 따로 있다. 내 지문 안에서 상대의 반응을 대신 써 버리는 것이다. "*그가 놀란 표정으로 나를 본다*"는 문장은 상대의 턴을 빼앗는다. 놀랄지 말지는 상대가 정할 몫인데 이미 정해진 채로 넘어가니, 받는 쪽은 이미 쓰인 감정을 추인하는 것 말고 할 게 없다. 내 지문에는 내 몸과 내 시야에 들어온 것만 쓴다. 이 한 줄짜리 규칙만 지켜도 상대 캐릭터의 반응이 눈에 띄게 살아난다.

결정권은 통째로 넘기는 게 아니라 축 하나를 비우는 것이다

"네가 정해"라고 쓰면 결정권을 넘긴 것 같지만, 실제로는 설계 책임을 통째로 던진 것이다. 그리고 그 경우 돌아오는 답은 거의 정해져 있다. 카페, 산책, 영화. 선택 범위가 무한하면 가장 무난한 답이 나오기 때문이다.

넘겨야 하는 건 선택지 전체가 아니라 축 하나다. 목적지는 내가 정하고 가는 방법을 상대가 정하게 하거나, 만날 시간은 내가 정하고 거기서 할 말을 상대가 정하게 하는 식이다.

  • 약함 - "우리 어떻게 할까?"
  • 강함 - "나는 오늘 밤에 갈 거야. 네가 말리든 따라오든 그건 네가 정해."

두 번째 문장은 갈래를 두 개로 좁혀 놓고 선택만 상대에게 넘긴다. 어느 쪽을 골라도 즉시 장면이 생긴다. 말리면 실랑이가, 따라오면 동행이 시작된다.

여기 하나 덧붙일 게 있다. 대화형 언어모델은 대체로 이용자에게 협조적으로 조율돼 있어서, 먼저 마찰을 만들지 않는 경향이 뚜렷하다. 제안하면 웬만하면 동의한다. 그런데 이야기는 마찰에서 나온다. 즉흥극 이론에서 상대의 제안을 받는 것을 '수락', 막는 것을 '거절'이라 부르는데(키스 존스톤의 『Impro』, 1979 에서 정리된 개념이다), 캐릭터 쪽에서 거절이 잘 나오지 않는다면 내가 거절당할 여지를 문장에 심어 주는 수밖에 없다. 위 예문에서 "말리든"이 바로 그 여지다.

리듬은 설명하는 게 아니라 시연하는 것이다

첫 3턴은 내용만 정하는 게 아니라 형식도 정한다. 문장 길이, 지문을 쓰는지 여부, 존댓말인지 반말인지, 한 턴에 몇 문단인지. 모델은 문맥 안에 이미 있는 형식을 따라간다.

그래서 세 턴 동안 한 줄씩 짧게 보내 놓고 나중에 "좀 더 길고 자세하게 써 줘"라고 요청하면 잘 안 먹힌다. 잠깐 길어졌다가 두어 턴 만에 원래 길이로 돌아온다. 문맥 안에는 여전히 짧은 턴이 더 많기 때문이다.

요청하지 말고 시연하는 편이 훨씬 빠르다. 다섯 문장짜리 답을 원하면 내가 다섯 문장을 쓴다. 지문을 별표로 감싸 주길 원하면 내가 먼저 별표로 쓴다. 반말로 대화하고 싶으면 첫 턴부터 반말로 쓴다. 세 턴만 일관되게 하면 그 형식이 대화의 기본형으로 굳는다. 이건 손이 더 가는 방법 같지만, 매번 "더 길게", "지문도 넣어서"라고 주문하는 것보다 총 타수가 적다.

이미 끊긴 대화를 되살리는 세 가지 개입

잔고가 바닥난 뒤에 화제를 바꾸는 건 대체로 실패한다. 같은 자리에서 다시 0에서 시작하는 것이기 때문이다. 효과가 있는 개입은 세 종류다.

  • 시간 점프 - *세 시간 뒤.* 이 한 줄이면 된다. 대화가 늘어지는 구간은 대개 사건과 사건 사이의 지루한 대기 구간인데, 그 구간을 잘라내는 것이다. 영상 편집에서 컷을 넣는 것과 같다. 점프한 지점에서 상황이 달라져 있으므로 설명할 거리가 생긴다.
  • 제3의 요소 - 전화, 노크, 정전, 갑자기 쏟아지는 비. 중요한 건 그것이 두 사람 바깥에서 온다는 점이다. 둘 다 반응해야 하는 사건이라 양쪽에 동시에 재료가 생긴다. 내가 새 화제를 꺼내는 것과 결정적으로 다르다.
  • 흘린 재료 줍기 - 앞 턴에서 언급됐지만 아무도 잡지 않고 지나간 디테일로 돌아간다. "아까 버스에서 내렸다고 했지. 그 사고 어떻게 됐대?" 이건 이미 대화 안에 있는 재료라 캐릭터가 이어 붙이기 가장 쉽고, 동시에 '기억되고 있다'는 감각을 만든다.

셋 다 안 통한다면 문제는 대화가 아니다. 오프닝이 잘못된 것이다. 아쉬워하지 말고 다시 시작하되, 첫 턴을 앞의 원칙대로 다시 쓴다. 열 턴 붙잡고 씨름하는 것보다 첫 턴을 다시 쓰는 게 빠르다.

첫 메시지를 보내기 전 자가점검 5문항

보내기 전에 다음 다섯 개만 확인하면 3턴 붕괴는 대부분 피할 수 있다.

  • 상대가 물어볼 수 있는 구체적 디테일이 최소 두 개 들어 있는가
  • 시간과 장소가 정해져 있는가 ("어딘가에서 만난다"는 정해진 게 아니다)
  • 상대의 표정이나 감정을 내가 대신 써 주지 않았는가
  • 물음표로 끝나지 않는가 (특히 첫 턴은 질문보다 상황이 낫다)
  • 상대가 반대하거나 거절할 여지가 남아 있는가

이 다섯 개는 어떤 서비스에서 쓰든, 상대가 AI든 사람이든 똑같이 적용된다. 텍스트로 이야기를 함께 만드는 일의 조건이지 특정 도구의 사용법이 아니기 때문이다. 대화가 잘 안 굴러갈 때 캐릭터 설정을 손보기 전에 자기가 보낸 첫 세 턴을 다시 읽어 보길 권한다. 대개 원인은 거기 있다.

함께 읽기

읽을거리 전체 보기