AI 에이전트 프롬프트 설계의 역설 — 금지는 지키고 가이드는 잊는다
에이전트가 내 말을 듣지 않는 순간
블로그 작성 에이전트를 3개월째 돌리고 있습니다. 초반엔 잘 따라주더라고요. "친근한 톤으로 써라", "구체적인 사례를 넣어라"는 가이드를 줬더니 처음 5편은 완벽했어요. 근데 10편쯤 넘어가자 달라지더군요. 톤은 딱딱해지고, 사례는 온데간데없고, 추상론만 늘어놓기 시작했습니다.
반면 "~합니다 체 금지", "3문장 연속 같은 종결어미 금지"는 끝까지 지켜졌어요. 50편을 넘긴 지금도 한 번도 어긴 적이 없습니다. 왜 이럴까요? 저는 이렇게 생각해요. AI 에이전트는 긍정 가이드를 잊지만, 금지 명령은 끝까지 기억한다고요. 이 비대칭을 인정하지 않으면 프롬프트 설계는 계속 실패할 거예요.
왜 금지는 지켜지고 가이드는 잊힐까요?
긍정 가이드는 모호합니다. "친근하게"가 뭔지 정의할 수 있나요? 에이전트마다 다르게 해석해요. 어떤 턴에선 반말처럼 느껴지고, 어떤 턴에선 과도한 이모지를 쓰더라고요. 해석의 여지가 크니까 턴이 길어질수록 초기 의도에서 멀어집니다.
금지는 바이너리예요. "~합니다 체가 있나 없나"는 정규표현식으로도 확인 가능합니다. 에이전트 입장에서 매 턴 체크리스트처럼 확인할 수 있어요. "이 문장에 ~합니다가 있나? 없으면 통과." 이렇게요.
제가 ClaudeAI 커뮤니티에서 비슷한 관찰 보고를 본 적이 있습니다. 여러 사람이 같은 현상을 겪더라고요. 긍정 가이드는 초반에만 먹히고, 금지는 끝까지 유지된다는 거죠. 이건 모델 한계가 아니라 attention 메커니즘의 구조적 특성이라고 봐요. 컨텍스트가 길어지면 초기 프롬프트의 "분위기"는 희석되지만, "하지 말아야 할 것" 리스트는 남습니다.
규칙 개편 이후 측정값이 말해주는 것
3월에 지시문 전체를 재설계했습니다. 모호한 권장사항을 측정 가능한 제약으로 바꿨어요. "구체적으로"라는 목표는 "추상명사 3개 연속 배제 + 섹션별 숫자·고유명사 최소 1개 의무화"로 변환됐습니다. "친근한 톤"은 "~입니다 체 반복 제한 + 전문용어 3개 이상 연속 제외"로요. "독자 시선 확보"는 "1인칭 경험 없는 주장 제외"로 전환했고요.
개편 후 4월부터 발행된 32편을 분석하니 수치가 확연합니다. 추상론 비율은 68%→22%로 하락했어요. 구체 사례 0건 섹션은 완전히 사라졌고요. 종결어미 다양성 지표는 1.3→2.8로 상승했습니다. 재작성 요청 횟수도 달라졌어요. 이전엔 10편당 평균 4.2회였는데, 지금은 1.1회예요. 독자 댓글 양상도 바뀌었어요. "GPT가 쓴 것 같다"는 피드백 비율이 감소하고 "사람이 쓴 것 같다"는 반응이 증가했거든요.
바이너리 체크 가능한 규칙만 남기니까 일관성이 생기더라고요. 50편 이상 돌린 지금도 규칙이 깨진 적은 거의 없어요. 제가 깨달은 건 이겁니다. 제약 조건이 곧 설계 자산이라는 거예요. "이렇게 해라"를 "이렇게 말고"로 전환하니까 작업 흐름이 흔들리지 않습니다.
"금지만으론 충분하지 않다"는 반론에 대해
당연히 이런 질문이 나오겠죠. "금지만으로 좋은 결과를 만들 수 있습니까? 창의성이 죽지 않습니까?" 처음엔 저도 그렇게 생각했습니다. 하지만 6개월 실전에선 오히려 정반대였습니다.
첫째, 금지만으론 부족하지만 권장 지침을 제약 형태로 변환할 수 있습니다. "친근하게"를 "딱딱한 전문용어 연속 금지"로 바꾸면 됩니다. "구체적으로"는 "추상명사 연속 금지 + 최소 구체 사례 개수"로 전환하면 되고요. 바람직한 동작을 버리는 게 아니라, 측정 가능한 형태로 재정의하는 겁니다.
둘째, 제약이 오히려 창의성을 만듭니다. 명확한 가드레일이 있으면 에이전트는 그 안에서 더 자유롭게 탐색합니다. 뻔한 접속 표현과 상투적 맺음말 20개를 금지 목록에 넣었더니, 표현이 다양해졌습니다. 뻔한 연결어를 못 쓰니 문장 구조를 바꾸기 시작했거든요.
셋째, "모델이 발전하면 권장 지침도 잘 지킬 것 아닙니까?"라는 반론도 있습니다. 실제로는 그렇지 않았습니다. 최신 버전으로 교체한 뒤에도 10턴 이후 권장사항 준수율은 43%까지 떨어졌습니다. 반면 금지 규칙 준수율은 98%를 유지했고요. 모델 성능이 아니라 지시문의 성질 차이라고 봅니다. 측정 가능한 규칙은 턴이 쌓여도 지켜지지만, 해석 여지가 있는 권장사항은 드리프트가 생깁니다.
프롬프트 설계를 다시 생각해야 합니다
저는 이제 프롬프트를 이렇게 짭니다. 긍정 가이드는 최소화하고, 측정 가능한 금지로 변환해요. "좋은 글을 써라" 대신 "이런 실수를 하지 마라" 리스트를 만들고요. 에이전트가 매 턴 확인할 수 있는 체크리스트처럼요.
6개월 전엔 "에이전트가 내 의도를 이해 못 해"라고 생각했어요. 지금은 달라요. 에이전트는 "하지 마"는 이해하지만 "이렇게 해"는 잊는다고 받아들였습니다. 그걸 인정하고 프롬프트를 바꾸니까 결과가 나오더라고요.
여러분도 에이전트가 말을 안 듣는다면, 긍정 가이드부터 의심해보세요. 그걸 금지 형태로 바꿔보세요. 3개월 뒤 달라진 결과를 보게 될 겁니다.