프롬프트 한계

프롬프트 한계

프롬프트는 방향을 줄 수 있다. 하지만 경로를 고정하지는 못한다.


프롬프트로 통제한다는 생각

가장 먼저, 그리고 가장 자연스럽게 시도하는 방식이다.

원하는 것을 더 정확하게 설명하면 더 정확한 결과가 나올 것이다. 그렇게 생각한다.

그래서 프롬프트에 구조를 명시하고, 지켜야 할 규칙을 적고, 하면 안 되는 것을 나열한다. 점점 더 상세하게, 점점 더 길게.

간단한 작업에서는 실제로 효과가 있다. 프롬프트대로 나온다. 그래서 확신이 생긴다. 더 잘 쓰면 더 잘 통제할 수 있다고.


길어질수록 어긋난다

작업이 길어지기 시작하면 달라진다.

기능이 하나 둘 붙고, 상태가 복잡해지고, 여러 단계에 걸쳐 작업이 이어진다. 이때부터 프롬프트에 적은 것과 실제 결과 사이에 간극이 생긴다.

구체적으로 이런 일이 생긴다.

같은 규칙을 줬는데 결과가 다르다. 어떤 경우는 기존 service를 거치고, 어떤 경우는 컴포넌트에서 직접 상태를 바꾼다. 어떤 경우는 검증을 통과하고, 어떤 경우는 통과하지 않는다. 모두 기능은 동작한다. 겉으로는 정상이다. 그래서 더 늦게 발견된다.

더 많은 규칙을 추가한다. 잠깐은 나아진다. 하지만 다시 어긋난다. 형태만 바뀐 채.


왜 이런 일이 생기는가

프롬프트는 “무엇을 할 것인가"를 설명한다. 하지만 “어떤 경로를 통해 만들어야 하는가"는 고정하지 않는다.

이 차이가 핵심이다.

프롬프트로 특정 방식을 지시할 수 있다. 하지만 그 지시는 권고다. 가능한 다른 경로들은 여전히 열려 있다. AI는 그 경로들 중에서 작업에 맞는 것을 선택한다. 지시를 따르는 방향으로 선택하지만, 반드시 그 경로만 선택하는 것은 아니다.

그래서 이런 일이 생긴다.

규칙을 더 추가할수록, 막힌 경로 대신 다른 경로가 사용된다. 프롬프트가 길어질수록, 전체 지시를 동시에 따르기 어려워진다. 어떤 규칙을 우선할지, 서로 충돌하는 지시를 어떻게 해석할지 — 이건 프롬프트 밖에서 결정된다.


프롬프트의 한계

프롬프트는 필요하다. 방향을 잡아주고, 불필요한 시행착오를 줄여준다.

하지만 경로를 통제하지 않는다.

프롬프트는 가능한 경로의 범위를 좁힐 수 있다. 하지만 경로를 하나로 고정하지는 못한다.

가능한 경로가 남아 있는 한, 그 경로는 결국 사용된다. 그래서 잘못된 경로를 막으려면, 프롬프트 바깥에서 다뤄야 한다.


그래서 프롬프트는 버리는가

아니다. 프롬프트는 여전히 필요하다. 다만 역할이 바뀐다.

  • 프롬프트는 현재 작업의 의도와 우선순위를 준다
  • 하네스는 금지된 경로를 닫고 합법 경로를 남긴다
  • 실패 신호는 프롬프트가 다시 합법 경로로 수렴하게 만든다

즉 하네스는 프롬프트를 대체하는 것이 아니라, 프롬프트가 작동할 수 있는 안전한 레일을 까는 것이다.

레일 없는 프롬프트는 설명에 머물고, 레일 위의 프롬프트는 반복 가능한 작업 지시가 된다.