Anthropic은 Claude Code를 가이드하는 시스템 프롬프트의 80%를 제거했음에도 불구하고 코드 작성 능력에는 저하가 없었다고 보고했습니다. 이 실험은 대규모 언어 모델(LLM)의 능력이 향상됨에 따라, 개발자들이 모델이 경로를 벗어나지 않도록 유지하기 위해 사용하던 방대한 스캐폴딩(scaffolding)을 성능 저하 없이 줄일 수 있음을 보여줍니다.

프롬프트가 처음에 중요했던 이유

Claude Code가 출시되었을 때, 시스템 프롬프트에는 수십 개의 규칙이 나열되어 있었습니다. 엔지니어들은 버그가 나타날 때마다 새로운 줄을 추가했지만, 잘 작동하는 것으로 보이는 것을 제거하는 경우는 거의 없었습니다. 시간이 흐르면서 프롬프트는 엉키고 정체된 문서로 커져갔습니다.

모델 격차가 줄어들고 있습니다

이러한 추가 규칙들은 '모델 격차(model gap)'를 숨기고 있었습니다. 즉, 모델이 할 수 있는 것과 애플리케이션이 요구하는 것 사이의 차이를 말합니다. 2024년에 개발자들은 예를 들어 모델이 코드에 과도한 주석을 다는 것을 방지하기 위해 엄격한 제약 조건을 명시해야 했습니다. 오늘날 동일한 모델은 "기존 코드 스타일을 따를 것"과 같은 단일 지침만으로도 원하는 스타일을 추론할 수 있습니다. 규칙은 이제 도움이 아닌 노이즈(noise)로 변했습니다.

컨텍스트 엔지니어링(context engineering)의 변화

Anthropic의 다이어트는 개발자들이 프롬프트를 구성하는 방식의 광범위한 변화를 반영합니다:

  • 일회성 핵심 지침 – 규칙을 한 번만 명시하고 모델이 이를 유지하도록 합니다.
  • few-shot 예시 대신 도구 중심 파라미터 사용 – 도구 스키마(tool schema)에 입력 및 출력 형태를 설명하고 모델이 이를 채우도록 합니다.
  • 점진적 공개(Progressive disclosure) – 현재 단계에 필요한 컨텍스트만 제공하고, 필요에 따라 나중에 더 추가합니다.
  • 정적인 가이드를 도구 설명으로 이동 – "변수에 camelCase 사용"과 같은 사항은 시스템 프롬프트가 아닌 도구의 스펙(spec)에 포함되어야 합니다.
  • 하드코딩된 규칙을 휴리스틱(heuristics)으로 대체 – 규칙을 무조건 강제하기보다 모델이 규칙을 적용할 시점을 결정하게 합니다.

이러한 전략이 효과적인 이유는 모델이 과거에 명시적인 강화가 필요했던 많은 관습을 이미 알고 있기 때문입니다.

과도한 다이어트의 위험

최첨단(frontier) 모델에는 이득이 되는 가지치기가 더 작은 모델에는 해가 될 수 있습니다. Anthropic은 Haiku와 같은 모델은 여전히 경로를 유지하기 위해 더 풍부한 프롬프트에 의존한다고 언급합니다. 능력이 떨어지는 모델에서 가이드를 너무 많이 제거하면, 원래 프롬프트가 방지하려 했던 오류(일관성 없는 명명법, 과도한 주석 또는 놓친 엣지 케이스 등)가 다시 발생할 수 있습니다.

자신의 프롬프트를 감사(audit)하는 방법

코드 생성 파이프라인을 유지 관리한다면, 프롬프트 감사를 통해 불필요한 요소를 찾아낼 수 있습니다. 실질적인 체크리스트는 다음과 같습니다:

  • 지침 밀도 재조정 – 실제 실행하는 모델에 맞춰 가이드의 양을 조절합니다.
  • 중복된 지침 삭제 – 규칙이 시스템 프롬프트와 도구 설명 모두에 나타난다면 하나만 남깁니다.
  • 작동 예시를 더 풍부한 스키마로 전환 – 구체적인 예시를 열거된 파라미터 유형이나 enum으로 대체합니다.
  • 상황별 세부 사항 외부화 – 대규모 참조 블록을 모델이 필요할 때 가져올 수 있는 별도의 파일로 이동합니다.
  • 사라진 동작을 다루는 규칙 제거 – 모델이 더 이상 원치 않는 주석을 달지 않는다면 "주석 금지" 규칙을 삭제합니다.

직감에 의존하지 마세요. 간단한 "3단계 테스트 규칙"을 사용하세요: 다섯 가지 현실적인 코딩 작업을 실행하고, 각 삭제 전후의 결과를 비교하며, 퇴보(regression)가 있는지 기록합니다.

  1. Baseline – 전체 프롬프트로 성능을 측정합니다.
  2. Delete – 삭제 후보 줄이나 블록을 제거합니다.
  3. Re-run – 동일한 다섯 가지 작업을 실행합니다.

출력이 변한다면, 여전히 비중을 차지하는 줄을 찾아낸 것입니다. 변하지 않는다면, 해당 줄은 안전하게 생략할 수 있습니다.

개발자가 다음에 주목해야 할 점

현재로서는 시사점이 명확합니다. 시스템 프롬프트는 살아있는 문서입니다. 각 줄에 유효 기간이 있다고 간주하고, 정기적으로 감사하며, 모델의 향상되는 역량이 핵심적인 역할을 하도록 맡기십시오.

Source: dev.to/ialijr/your-system-prompt-has-a-shelf-life-maintaining-prompts-as-models-improve-cd9