본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 22. 09:36

AI에게 "다음에는 조심해"라고 말하지 마세요. AI는 어제의 일을 기억하지 못합니다.

요약

AI 에이전트의 오류를 줄이기 위해 규칙(Prompt)을 계속 추가하는 방식의 한계를 지적합니다. 모델의 컨텍스트가 과도하게 길어지면 주의력이 분산되어 성능이 저하되므로, 언어적 지시보다는 코드 기반의 물리적 제어 장치를 구축해야 합니다.

핵심 포인트

  • 과도한 프롬프트 규칙은 모델의 주의력을 분산시켜 성능을 저하시킴
  • AI 모델은 상태가 없는(Stateless) 특성을 가지므로 연속적인 대화식 교정이 불가능함
  • 규칙을 '아는 것'과 '실행을 멈추는 것'은 별개의 문제임
  • 제약 사항은 프롬프트가 아닌 코드 기반의 후크(hook)나 게이트(gate)로 구현해야 함

이 글은 제가 처음 일본어로 작성했던 기사를 영어로 각색한 버전입니다. 저는 초안을 형성하고 검토하는 과정에서 AI와 함께 작업하지만, 논리와 현장 관찰 결과는 저의 것입니다. 수치는 공개 설문 조사(끝에 링크됨)에서 인용되었습니다.

저는 AI 에이전트가 동일한 실수를 반복하는 것을 막기 위해 공격적인 프롬프트 인젝션 (Prompt-injection) 차단 장치를 구축했습니다. 효과가 있었기에 저는 계속해서 규칙을 추가했습니다. 제가 알아차렸을 때쯤 파일은 56,000자로 불어나 있었고, 에이전트는 조용히 기능을 멈춘 상태였습니다. 컨텍스트 (Context)가 너무 많아져서 주의력 (Attention)이 너무 분산되어 어떤 것에도 제대로 작용할 수 없게 된 것입니다. 저는 이를 1,200자 미만으로 대폭 줄였고, 여기서 여전히 뼈아픈 사실을 발견했습니다. 규칙이 더 적을 때 에이전트가 더 잘 작동했다는 점입니다.

그날 저는 제 사고 모델 (Mental model) 전체가 거꾸로 되어 있었다는 것을 깨달았습니다.

이 글은 AI를 더 정확하게 만드는 것에 관한 글이 아닙니다. 정확성에 의존하지 않도록 설계하는 방법에 관한 글입니다.

제가 몇 달 동안 저지른 실수

제 에이전트는 워크플로 (Workflow)에서 동일한 단계를 계속 건너뛰었습니다. 그래서 저는 모든 엔지니어가 본능적으로 하는 행동을 했습니다. 바로 규칙을 추가하는 것이었습니다. "이 단계를 건너뛰지 마세요." 그러자 에이전트는 다른 멍청한 짓을 했고, 저는 또 다른 규칙을 추가했습니다. 그리고 또 추가했습니다.

저는 규칙 파일을 동료와의 대화처럼 취급했습니다. 마치 에이전트가 어제의 교정 사항을 _기억_하고 이를 앞으로 가져갈 것처럼 말이죠. 하지만 그렇지 않습니다. 모든 실행은 차갑게(Cold) 시작됩니다. "다음에는 조심해"라는 말은 이번 실행과 상태 (State)를 공유하는 '다음번'이 존재한다는 것을 가정합니다. 상태가 없는 (Stateless) 모델에게는 호소할 수 있는 연속성이 없습니다. 당신은 당신이 나누고 있다고 생각하는 대화에 대한 기억이 전혀 없는 상대와 이야기하고 있는 것입니다.

각각의 교정이 진전처럼 느껴지기 때문에 규칙은 계속 쌓여갑니다. 그리고 한동안은 수치도 개선됩니다. 하지만 규칙을 추가하는 데에는 한계가 있으며, 저는 그 한계를 완전히 넘어버렸습니다. 56,000자에 도달했을 때 에이전트는 더 이상 저의 가드레일 (Guardrails)을 바탕으로 추론하는 것이 아니라, 가드레일에 빠져 허우적거리고 있었습니다.

규칙을 아는 것과 그 규칙에서 멈추는 것은 다른 문제입니다

제가 깨닫기까지 너무 오랜 시간이 걸렸던 차이점은 바로 이것입니다.

컨텍스트 윈도우에 규칙을 넣는다는 것은 모델이 그 규칙을 '알게' 된다는 의미입니다. 하지만 워크플로우 중간, 특히 세 개의 도구 호출(tool-calls)을 거치며 작업을 완료하는 데 최적화되어 있을 때, 그 규칙에서 '멈출 것'을 의미하지는 않습니다. 아는 것과 멈추는 것은 두 가지 다른 작업입니다. 전자는 검색(retrieval)이고 후자는 제어 흐름(control flow)입니다.

프롬프트의 텍스트는 컨텍스트 윈도우 내의 모든 요소들과 주의를 놓고 경쟁하는 부드러운 제안에 불과합니다. 만약 에이전트가 실제로 중단하도록 필요하다면, 더 강조하는 문장을 쓰는 것이 아닙니다. 그 제약을 물리적으로 만들어야 합니다. 즉, 모델의 재량권 밖에에서 실행되는 후크(hook), 게이트(gate), 검사(check)를 만드는 것입니다. 모델은 진행을 거부하는 스크립트를 말로 우회할 수 없습니다.

이것이 컨텍스트 엔지니어링 전문가들이 슬라이드에 올리지 않는 부분입니다. 절반의 작업은 컨텍스트 윈도우에 무엇이 '속하지 않을지'를 결정하고, 그 보장(guarantee)들을 코드로 옮기는 것입니다.

정확도를 쫓는 것을 멈추면서

불일치를 신호로 만드세요. 제가 지켜본 한 팀(estie)은 동일한 작업을 여러 모델 — GPT, Claude, Gemini — 에 실행시킨 뒤, 모델들이 서로 의견이 일치하지 않는 항목들만 사람에게 전달하도록 라우팅(routing)합니다. 모델들이 동의하는 부분은 그대로 배포합니다. 당신은 단일 모델이 옳을 것이라고 신뢰하는 것이 아니라, 저렴한 중복성(redundancy)을 활용하여 인간의 주의(attention)를 기울일 가치가 있는 지점을 국소화(localize)하는 것입니다. 정확도는 더 이상 의존 대상이 아니게 되었습니다.

격려가 아닌 에스컬레이션(escalation) 기준을 작성하세요.

AI에게 기억하라고 훈계하지 마세요. AI에게는 어제가 없습니다. 그러니 그런 문장에 힘을 쏟는 것을 멈추고, 구조(structure)에 집중하세요. AI가 멈춰야 할 지점을 구축하고, 그 후에는 조심하라고 말하는 것을 그만두세요.

참고 문헌 (References)

원문은 note에서 일본어로 처음 게시되었습니다. 저는 모든 매체에서 동일 인물인 "nomuraya / 中翔 (Naka Sho)"라는 이름으로 글을 씁니다. 이 영어 버전은 직역이 아닌 각색된 버전입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0