계약 없이 시작한 대화는 대개 이렇게 흘러간다.
음성 모드를 켜고 말하기 시작한다. 2분쯤 지나 상황 설명이 끝나갈 무렵, AI가 끼어든다. 아주 정중하게 끼어든다.
“말씀하신 상황을 정리하면 세 가지 선택지가 있어 보입니다. 첫째는…”
여기서 대화는 끝났다. 3분 만에.
물론 그 뒤로도 말은 이어진다. 세 선택지 중 어느 것이 나은지 논의하고, 각각의 장단점을 따지고, 실행 계획까지 나온다. 40분쯤 걸린다. 결과물도 나쁘지 않다.
그런데 그 40분 동안 한 일은 3분에 나온 세 선택지 안에서 고르는 일이었다. 네 번째 선택지는 검토되지 않았다. 아무도 그게 있는지 물어보지 않았기 때문이다.
이게 계약이 없을 때 일어나는 일이다. AI는 도와주려고 한다. 도와주는 가장 빠른 방법은 답을 주는 것이다. 그래서 답을 준다. 이르게, 정중하게, 그리고 정확하게.
이게 왜 문제인지 다시 보자
세 선택지가 나쁜 것은 아니었다. 그럴듯했고, 아마 실제로 쓸 만한 것들이었을 것이다.
문제는 그것이 2분치 정보로 만들어졌다는 데 있다.
상황 설명이 끝나갈 무렵이었다. 아직 왜 이게 걸리는지는 말하지 않았고, 전에 비슷한 걸 해봤다가 어떻게 됐는지도 말하지 않았고, 지금 진짜 마음에 걸리는 게 뭔지는 스스로도 정리가 안 된 상태였다. 그 상태에서 나온 세 선택지다.
AI 입장에서는 최선을 다한 것이다. 있는 정보로 만들 수 있는 가장 그럴듯한 답을 냈다.
그리고 그 답이 그럴듯했기 때문에 나머지 정보가 영영 안 나왔다.
이게 핵심이다. 답이 나쁘면 계속 말했을 것이다. “그게 아니고요”라고 하면서 못 한 이야기를 마저 했을 것이다. 그런데 답이 괜찮으니까 그쪽으로 붙었다. 세 선택지를 검토하는 쪽이 훨씬 구체적이고 진행되는 느낌이 나기 때문이다.
좋은 답이 나쁜 답보다 위험한 경우가 있다. 3장에서 프롬프트를 두고 한 이야기가 대화에서도 그대로 반복된다.
계약이란 무엇인가
Conversation Contract는 대화를 시작하기 전에 대화의 규칙을 합의하는 것이다.
이름이 계약인 이유는 두 가지다. 첫째, 결과가 아니라 진행 방식을 정한다. 둘째, 앞에서 한 번 정하면 대화 내내 유효하다.
프롬프트와 나란히 놓고 보면 차이가 분명하다.
| 프롬프트 | Conversation Contract | |
|---|---|---|
| 무엇을 지시하나 | 결과물 | 진행 방식 |
| 언제 쓰나 | 매번 | 처음 한 번 |
| 무엇을 아는 상태 | 원하는 결과를 안다 | 원하는 결과를 모른다 |
| 성공의 모양 | 좋은 답이 나온다 | 좋은 질문이 나온다 |
| 길이 | 길수록 정교해진다 | 길면 지켜지지 않는다 |
마지막 줄이 실무적으로 중요하다. 계약은 짧아야 지켜진다. 조항 스무 개를 걸면 다섯 개쯤 지켜진다. 뒤에 나올 것이 일곱 개인 이유가 그것이다. 더 줄일 수 있으면 줄이는 게 낫다.
이게 결국 긴 프롬프트 아닌가
처음 보면 그렇게 보인다. 대화 앞에 붙이는 긴 문단이니까 형식은 프롬프트와 같다.
목적이 다르다.
프롬프트는 “이런 결과를 만들어라”고 한다. 계약은 “이런 식으로 진행하자”고 한다. 앞은 도착점을 지정하고 뒤는 경로의 규칙을 정한다.
차이가 드러나는 지점이 있다. 프롬프트는 결과가 나오면 임무가 끝난다. 계약은 대화가 끝날 때까지 계속 작동한다. 30분째에도 여전히 유효하고, 실제로 30분째에 가장 필요하다.
그리고 하나 더. 프롬프트는 내가 무엇을 원하는지 알아야 쓸 수 있다. 계약은 몰라도 쓸 수 있다. 무엇을 원하는지 모르는 상태에서도 “결론을 서두르지 말라”고는 말할 수 있기 때문이다.
3장에서 프롬프트의 첫 번째 한계로 든 것이 이것이었다. 계약은 그 한계를 우회한다.
왜 앞에서 해야 하는가
중간에 걸면 안 되는가. 대화가 이상하게 흘러갈 때 그때 정정하면 되지 않는가.
된다. 다만 훨씬 어렵다. 세 가지 이유가 있다.
첫째, 이미 나온 것이 기준이 된다.
3분에 세 선택지가 나오면 그 뒤의 대화는 그 셋 위에서 진행된다. 20분쯤 지나 “잠깐, 다른 방향도 보자”고 해도 이미 셋에 익숙해진 뒤다. 네 번째를 상상하기가 어려워진다. 우리 머리가 그렇게 생겼다.
둘째, 정정에는 마찰이 있다.
대화가 잘 굴러가고 있을 때 멈춰 세우는 건 심리적으로 부담이 된다. 상대가 AI여도 그렇다. 잘 도와주고 있는데 “그렇게 하지 마”라고 말하는 게 어색하다. 그래서 대개 그냥 간다.
셋째, 이미 답을 받아버렸다.
이게 가장 크다. 답을 받고 나면 그게 머릿속에 자리를 잡는다. “그 답을 잊고 다시 생각해보자”는 말은 실행 가능한 지시가 아니다. 사람은 들은 것을 안 들은 상태로 못 돌아간다.
그래서 앞에서 한다. 막는 게 무르는 것보다 싸다.
왜 하필 계약이라고 부르나
이름을 정하면서 몇 가지를 놓고 고민했다. 규칙, 원칙, 설정, 선언.
계약을 고른 이유가 셋 있다.
첫째, 양쪽을 구속한다. 규칙이나 설정은 상대에게만 거는 느낌이다. 그런데 이건 나도 지켜야 한다. “결론을 서두르지 말라”고 해놓고 내가 3분 만에 답을 요구하면 그 자리에서 무너진다. 실제로 이게 자주 일어난다.
둘째, 앞에서 한 번 하고 끝난다. 매번 걸지 않는다. 처음에 한 번 하고, 그 뒤로는 유효하다고 전제한다. 계약이라는 말에 그 성질이 들어 있다.
셋째, 위반을 지적할 수 있다. “지금 처음 약속과 다릅니다”라고 말할 근거가 생긴다. 이 문장이 실전에서 꽤 유용하다. 막연히 “좀 더 비판적으로 해주세요”라고 하는 것보다, 이미 합의한 것을 근거로 지적하는 편이 잘 먹힌다.
법적인 의미는 없다. 당연한 이야기지만 적어둔다. 이건 은유이고, AI에게 법적 구속력 같은 건 없다. 다만 은유가 사람 쪽 태도를 바꾼다. 계약이라고 생각하면 지키게 되고, 설정이라고 생각하면 잊는다.
일곱 개의 조항
각 조항마다 두 가지를 함께 적는다. 무엇을 요청하는가, 그리고 없으면 무슨 일이 생기는가. 뒤엣것이 실은 더 중요하다. 왜 필요한지 모르는 조항은 지키기도 어렵고, 상황에 맞게 고치기도 어렵다.
1. 바로 답을 확정하지 않는다
“제가 말하는 동안 결론을 내지 마세요. 끝까지 들으세요.”
없으면 무슨 일이 생기나. 앞의 장면이 그대로 벌어진다. 3분에 답이 나오고 37분을 그 답 안에서 보낸다.
이 조항이 첫 번째인 이유는 시간 순서 때문이다. 나머지 여섯 개는 대화 중반에 작동하는데 이건 첫 3분에 작동한다. 여기서 막히면 나머지가 무의미해진다.
주의할 점이 있다. 이 조항은 “답을 주지 말라”가 아니라 “아직 주지 말라”다. 끝내 답이 안 나오면 그건 실패한 대화다. 순서의 문제이지 유무의 문제가 아니다.
2. 내 말을 먼저 요약한다
“적절한 시점마다 제 말을 짧게 요약해주세요.”
6장에서 이것이 대화의 네 기능 중 가장 강하다고 했다. 내 말을 남의 입으로 들으면 다르게 들리기 때문이다.
없으면 무슨 일이 생기나. 요약 없이 진행되는 대화는 흩어진 채로 끝난다. 40분 말했는데 뭘 말했는지 모르는 상태가 된다. 그리고 흩어진 것에서는 모순이 안 보인다.
“적절한 시점”을 명시하지 않은 이유가 있다. 타이밍은 상황마다 다르고, 시점까지 계약에 박으면 계약이 길어진다. 다만 앞서 말한 대로 첫 요약은 늦게 시키는 게 낫다. 10분에서 15분 사이다.
3. 모호한 지점은 질문한다
“제 말에서 애매한 부분이 있으면 넘어가지 말고 물어보세요.”
없으면 무슨 일이 생기나. AI가 알아서 해석한다. 그리고 그 해석은 대개 가장 무난한 쪽이다. 2장에서 말한 대로 조건이 없으면 평균으로 간다.
문제는 애매하게 말한 지점이 대개 본인도 안 정한 지점이라는 것이다. 거기를 AI가 임의로 채우면 정해야 할 것을 안 정한 채로 대화가 진행된다. 그리고 나중에 결과물을 보고 “이건 내 생각이 아닌데” 하게 된다.
4. 무조건 동의하지 않는다
“제 말에 동의하고 싶어도 하지 마세요. 논리적 빈틈을 찾아주세요.”
없으면 무슨 일이 생기나. 40분간 위로받는다.
6장에서 반박은 대화의 네 기능 중 유일하게 저절로 되지 않는 것이라고 했다. 이 조항이 그 하나를 켜는 스위치다.
그런데 이 조항은 잘 안 지켜진다. 처음에는 지켜지다가 대화가 길어지면 슬그머니 풀린다. “말씀하신 것도 일리가 있습니다”가 나오기 시작하면 이미 풀린 것이다. 그래서 재선언이 필요하고, 그 이야기가 15장에 있다.
5. 빠진 전제와 반론을 찾는다
“제가 당연하게 여기고 있는 전제를 찾아서 말해주세요.”
4번과 비슷해 보이지만 다르다. 4번은 내가 말한 것을 공격하고, 5번은 내가 말하지 않은 것을 찾는다.
없으면 무슨 일이 생기나. 전제가 살아남는다.
이게 실제로 가장 자주 일어나는 실패다. 첫 3분에 깔아둔 전제 위에서 40분이 지어지고, 결과물은 좋고, 일주일 뒤에 전제가 틀렸다는 걸 안다. 16장이 그 기록이다.
전제는 스스로 못 본다. 당연하게 여기고 있기 때문에 전제다. 볼 수 있으면 이미 전제가 아니라 주장이다.
전제가 숨는 자리는 대개 정해져 있다.
“당연히”라는 말이 붙은 곳. 말하면서 “당연히 이건 해야 하니까”라고 하면 거기가 전제다. 그리고 당연하다고 말할 때는 근거를 안 댄다.
너무 빨리 지나간 곳. 10분 발화 중에 한 문장으로 넘어간 부분이 있다. 다른 데는 3분씩 말했는데 거기만 한 줄이면, 생각을 안 해본 것이거나 생각하기 싫은 것이다.
“어차피”가 붙은 곳. “어차피 이건 안 되니까”는 강한 전제다. 그리고 검증된 적이 없는 경우가 많다.
남들이 다 그렇게 한다고 말한 곳. 관행을 근거로 든 자리다. 관행이 틀렸다는 게 아니라, 내 상황에 맞는지 확인한 적이 없다는 뜻이다.
이 네 자리를 AI에게 알려주고 찾게 할 수도 있다. “제가 ‘당연히’나 ‘어차피’라고 말한 데가 어디였습니까.” 이렇게 물으면 5번 조항이 훨씬 구체적으로 작동한다.
6. 적절한 시점에 중간 정리를 한다
“대화가 길어지면 지금까지 정해진 것과 안 정해진 것을 구분해주세요.”
2번의 요약과 다르다. 요약은 내가 한 말을 압축하는 것이고, 중간 정리는 대화의 상태를 보고하는 것이다.
- 정해진 것
- 아직 안 정해진 것
- 새로 생긴 질문
없으면 무슨 일이 생기나. 30분쯤 지나면 어디까지 왔는지 모르게 된다. 그리고 모르는 상태에서 결론을 내면 그 결론이 처음 문제와 관계가 있는지 확인할 수 없다.
이 조항의 진짜 값어치는 안 정해진 것을 명시적으로 남긴다는 데 있다. 정해진 것만 정리하면 대화가 완성된 것처럼 보인다. 빈칸을 같이 적어야 아직 안 끝났다는 게 보인다.
그리고 이 조항에는 부수 효과가 하나 있다. 대화가 어디로 흘렀는지가 드러난다.
30분쯤에 중간 정리를 받아보면 처음 물으려던 것과 지금 다루는 것이 다를 때가 있다. 그 자체는 나쁘지 않다. 6장에서 말한 대로 질문이 바뀌는 것이 이 방법의 목적이다.
다만 바뀐 걸 알고 가는 것과 모르고 가는 것은 다르다. 알면 “그럼 원래 문제는 어떻게 되는 거지”를 물을 수 있고, 모르면 원래 문제가 그냥 사라진다.
사라진 문제는 며칠 뒤에 돌아온다. 그때는 40분을 다시 써야 한다.
7. 충분히 탐색된 뒤에만 구조화한다
“아직 정리가 안 됐는데 표나 목록으로 만들지 마세요.”
없으면 무슨 일이 생기나. 3장에서 말한 그것이 벌어진다. 구조가 잡힌 결과물은 그 자체로 생각을 멈추게 한다.
표는 특히 위험하다. 표에 들어간 항목은 이미 검토를 마친 것처럼 보인다. 세 칸짜리 표가 나오면 네 번째 칸을 상상하기 어려워진다. 1번 조항의 문제와 같은 것이 다른 형태로 나타난 것이다.
그래서 이 조항은 1번의 짝이다. 1번이 이른 답을 막고, 7번이 이른 형식을 막는다.
여덟 번째 조항
일곱 개라고 했는데 하나가 더 있다. 이건 나중에 붙었다.
“제가 첫 발화에서 이미 결론을 말하고 있다면, 검토하기 전에 먼저 지적해주세요.”
이 조항은 실패에서 나왔다.
앞의 일곱 개를 다 걸고도 망한 세션이 있었다. 계약은 지켜졌다. AI는 결론을 서두르지 않았고, 요약했고, 질문했고, 반론까지 했다. 그런데 결과물이 일주일 만에 폐기됐다.
이유는 계약 밖에 있었다. 첫 3분 발화에 이미 결론이 들어 있었던 것이다. 그러면 AI는 그 결론을 전제로 받아들이고, 전제 위에서 성실하게 일한다. 반론을 요청받았으니 반론도 한다. 다만 반론의 대상이 “이 결론을 어떻게 실행할까”이지 “이 결론이 맞나”가 아니다.
일곱 개 조항 중 어느 것도 이걸 막지 못한다. 다섯 번째가 전제를 찾으라고 하지만, 발화에 명시적으로 들어 있는 것은 전제가 아니라 주장으로 읽힌다. 주장은 검토 대상이지 의심 대상이 아니다.
그래서 여덟 번째가 붙었다. 이 조항은 발화 자체를 검사한다. 나머지 일곱이 대화의 진행을 다룬다면 이것 하나는 시작을 다룬다.
실패에서 나온 조항이라는 걸 밝히고 쓰는 이유가 있다. 이런 조항은 설계로 안 나온다. 앉아서 생각해서 만들 수 있는 게 아니고, 망해봐야 알게 된다. 그러니 이 목록도 완성된 게 아니다. 쓰다 보면 아홉 번째가 생길 것이다.
복사해서 쓰는 형태
여덟 조항을 이어 붙이면 이렇게 된다. 그대로 읽거나 붙여넣으면 된다.
지금부터 하나의 주제에 관해 정리되지 않은 이야기를 하겠습니다.
제가 말하는 동안 결론을 내지 마세요. 끝까지 들으세요.
적절한 시점마다 제 말을 짧게 요약해주세요.
애매한 부분이 있으면 넘어가지 말고 물어보세요.
제 말에 동의하고 싶어도 하지 마세요. 논리적 빈틈을 찾아주세요.
제가 당연하게 여기는 전제를 찾아서 말해주세요.
대화가 길어지면 정해진 것과 안 정해진 것을 구분해 알려주세요.
아직 정리가 안 된 상태에서 표나 목록으로 만들지 마세요.
그리고 제 첫 발화에 이미 결론이 들어 있다면, 검토하기 전에 그것부터 지적해주세요.
대화가 수렴되면 제목, 핵심 주장, 대상, 다음 행동으로 정리해주세요.
마지막 줄은 조항이 아니라 착지 지점이다. 7장에서 말한 세 번째 원리, 반드시 착지시킨다에 해당한다.

Conversation Contract 여덟 조항
이걸 매번 다 읽을 필요는 없다. 익숙해지면 세 줄로 줄어든다.
“결론 서두르지 말고, 중간중간 요약하고, 무조건 동의하지 마세요.”
세 줄짜리도 안 하는 것보다 훨씬 낫다. 계약의 효과는 완전성보다 존재 여부에서 온다.
한 줄로 줄이면
더 줄일 수도 있다.
“결론을 서두르지 마세요.”
여덟 개 중 하나만 남긴다면 이것이다. 나머지 일곱 개가 다루는 문제는 대개 이 하나가 깨지면서 시작되기 때문이다.
이른 답이 나오면 요약할 것이 없어지고, 질문할 것도 없어지고, 반박도 그 답 안에서만 일어난다. 첫 번째 조항이 무너지면 나머지가 작동할 자리가 없다.
한 줄로 시작해서 익숙해지면 늘리는 것도 방법이다. 여덟 개를 처음부터 다 걸면 부담스러워서 안 하게 된다.
AI가 계약을 어기는 방식
계약이 깨질 때는 대놓고 깨지지 않는다. 미묘하게 새어 나간다.
몇 가지 패턴이 있다.
“정리하면”으로 시작하는 문장. 요청하지 않았는데 정리가 시작되면 7번 조항이 새고 있는 것이다.
질문 뒤에 답이 붙어 나온다. “이 부분은 어떻게 보시나요? 제 생각에는 이러이러할 것 같은데요.” 앞은 질문이지만 뒤가 답이라 사람은 답에 반응한다. 3번 조항이 형식적으로만 지켜진 경우다.
“다만”과 “물론”. 반론을 시작해놓고 이 접속사가 나오면 그 뒤는 위로다. 4번이 새는 가장 흔한 방식이다.
선택지가 셋으로 나온다. 이유는 모르겠지만 세 개짜리 목록이 유난히 자주 나온다. 그리고 셋이 나오면 네 번째를 상상하기 어려워진다. 1번과 7번이 같이 새는 지점이다.
이 네 가지를 알고 있으면 대화 중에 알아챌 수 있다. 알아채는 것이 절반이다. 나머지 절반은 그 자리에서 다시 거는 것이고, 방법은 10장에 있다.
계약이 안 먹히는 경우
이 도구에도 한계가 있다.
첫째, 요청한 적 없는 것은 안 된다.
계약은 명시한 것만 작동한다. “이럴 때는 이렇게 해줬으면” 하는 게 있으면 적어야 한다. 적지 않은 것을 알아서 해주기를 기대하면 실망한다.
둘째, 대화가 길어지면 닳는다.
앞에서 여러 번 말했다. 이건 계약의 결함이라기보다 성질에 가깝다. 그래서 재선언이라는 대처가 따로 있다.
셋째, 내가 안 지키면 소용없다.
계약은 상대에게만 거는 것 같지만 실은 양쪽에 건다. “결론을 서두르지 말라”고 해놓고 내가 3분 만에 “그래서 어떻게 하면 될까요”라고 물으면 계약은 그 자리에서 무너진다. AI는 질문에 답하는 쪽으로 기울어 있고, 내가 답을 요구하면 준다.
실제로 계약이 깨지는 경우의 절반은 사람 쪽에서 깬다. 이건 겪어보면 알게 된다.
넷째, 승인 요청에는 아무 소용이 없다.
이미 정해놓고 시작한 대화에는 어떤 계약도 통하지 않는다. 여덟 번째 조항이 그걸 막으려는 시도지만 완전하지 않다. 결론을 감추고 말하는 것도 가능하기 때문이다. 본인은 감추는 줄도 모른 채로.
계약이 만드는 부작용
권하는 도구의 부작용도 적어둔다.
대화가 뻣뻣해진다.
계약을 세게 걸면 AI가 조심스러워진다. 답을 줘도 되는 상황에서도 안 주고, 정리해도 될 때 안 하고, 매번 되묻는다. 그러면 대화가 진행이 안 된다.
특히 8개 조항을 다 걸고 시작한 첫 세션에서 자주 겪는다. 뭘 말해도 질문이 돌아오니까 답답해진다.
대처는 중간에 푸는 것이다. 계약은 앞에서 거는 것이지 끝까지 유지해야 하는 게 아니다. 충분히 탐색됐다고 판단되면 “이제 정리해도 됩니다”라고 말하면 된다. C 단계에 들어가는 신호이기도 하다.
그리고 매번 계약을 걸다 보면 계약 자체가 의식이 된다.
세 번째쯤부터 형식적으로 읽게 된다. 읽기는 읽는데 무슨 뜻인지 생각 안 하고 읽는다. 그러면 효과가 떨어진다. 계약의 절반은 AI에게 거는 것이고 절반은 사람이 마음을 먹는 것인데, 뒤쪽이 빠지기 때문이다.
이럴 때는 오히려 줄인다. 여덟 개를 읽는 것보다 한 줄을 진심으로 말하는 게 낫다.
저장해두고 다시 쓰기
계약은 매번 새로 만들 필요가 없다.
한 번 정리해두고 저장해두면 된다. 그리고 몇 번 쓰다 보면 자기한테 맞게 고쳐진다. 어떤 조항은 자기한테 필요 없고, 어떤 조항은 추가하게 된다.
추가되는 조항에는 대개 자기 약점이 들어 있다.
결론으로 자꾸 서두르는 사람은 1번을 강하게 고친다. 남의 의견에 잘 흔들리는 사람은 4번을 뒤집어서 “제가 흔들리면 지적해주세요”를 넣는다. 기록을 자꾸 안 남기는 사람은 “끝날 때 반드시 세 줄로 정리해주세요”를 넣는다.
그렇게 만들어진 계약은 개인 자산이다. 프롬프트 모음집과 다른 점이 여기 있다. 프롬프트는 남의 것을 복사하는 게 대체로 낫지만, 계약은 자기 것이어야 한다. 남의 약점을 막는 조항은 나한테 필요 없기 때문이다.
이걸 축적하는 방법이 20장에 있다.
상황에 따라 뒤집는다
계약은 고정된 문서가 아니다. 상황이 다르면 조항도 달라진다.
가장 극단적인 예가 창작이다. 만들 게 없는 상태에서 그냥 떠들 때는 계약이 거의 반대가 된다.
“오늘은 요약하지 마세요. 정리도 하지 마세요. 결론 내려고도 하지 마세요.
대신 제가 같은 말을 반복하면 그것만 알려주세요.”
앞의 계약과 비교해보면 2번과 6번과 7번이 통째로 뒤집혔다. 정리를 시키던 조항들이 정리를 금지하는 조항으로 바뀐 것이다.
같은 도구가 정반대로 쓰인다는 것이 이 도구가 도구라는 증거다. 한 가지 형태로만 쓰이면 그건 도구가 아니라 주문이다.
이 변형과 다른 변형들은 17장과 20장에서 다시 다룬다. 지금 알아둘 것은 하나다. 위의 여덟 조항은 기본형이지 정답이 아니다.
다음
계약은 대화가 시작되기 전에 한 번 쓴다. 그러면 대화 중에는 무엇을 하는가.
여기서 두 번째 도구가 필요하다. 이쪽은 대화 내내 돌아간다.


