1. 시스템 프롬프트의 이해와 중요성 [0]

thumbnail 시스템 프롬프트는 LLM(대규모 언어 모델)을 제어하고 작동하게 하는 핵심 설정값이며, 모델의 성능과 답변 품질에 큰 영향을 미친다.

1.1. 시스템 프롬프트의 정의 및 역할 [6]

  1. 시스템 프롬프트의 정의 [6]
    1. LLM을 API로 사용할 때, 시스템 역할을 설정하여 LLM을 제어하고 작동하게 하는 설정값이다. [6]
  2. 시스템 프롬프트에 포함되는 정보 [8]
    1. 현재 날짜와 시간 정보를 포함한다. [9]
    2. 모델이 학습한 지식의 날리지 컷오프(Knowledge Cutoff)를 명시한다. [9]
      1. 예를 들어, "이 모델은 2025년 몇 월까지 학습했다"와 같은 외부 정보를 주입한다. [10]
    3. 답변의 톤앤매너와 스타일을 조정한다. [11]
    4. 사용자의 입력 언어에 따라 답변 언어를 지정하는 규칙을 포함한다. [12]
    5. 검색 툴 활용 방법 등 다양한 규칙과 정보를 포함한다. [14]

1.2. LLM 발전과 시스템 프롬프트의 변화 [15]

  1. LLM의 지시문 준수 능력 향상 [15]
    1. LLM 모델이 발전할수록 프롬프트의 지시문을 더 잘 따르는 경향이 있다. [15]
    2. 과거 GPT 3.5 터보 시절에는 특정 규칙을 잘 따르지 않거나, 맥락이 길어지면 놓치는 문제가 있었으나, 최신 LLM은 이러한 문제를 잘 해결하고 있다. [17]
  2. 과도한 외부 정보 삽입의 문제점 [18]
    1. 시스템 프롬프트 내에 너무 많은 외부 정보를 넣으면, 실제 답변 생성 시 정보가 부정확해지거나 중요도가 낮아진다. [21]
    2. 이는 모델이 핵심 로직보다 부가 정보 처리에 자원을 사용하게 하여 답변의 핵심 논리 전개를 흐트러뜨리고 불필요한 세부 사항에 집중하게 만든다. [22]
    3. 결과적으로 전반적인 답변 품질이 저하되고, 외부 컨텍스트가 바뀔 때마다 프롬프트를 수정해야 하는 유지 보수성 저하 문제가 발생한다. [23]
  3. 문제 해결 방안 [25]
    1. 불필요한 외부 정보를 시스템 프롬프트에서 제거하고, 모델이 무엇을 해야 하는지에 집중시킨다. [27]
    2. 외부 지식은 외부 질의나 리트리벌 모듈로 분리하여 처리한다. [28]
    3. 날짜와 시간 정보는 시스템 프롬프트 내부가 아닌 메타데이터로 처리한다. [30]
    4. 시스템 프롬프트에 대한 AB 테스트를 통해 품질 지표를 만들고, 완성 길이와 정확도를 지속적으로 모니터링해야 한다. [31]

1.3. 클로드 시스템 프롬프트의 특징 [33]

  1. 앤트로픽의 시스템 프롬프트 공개 [33]
    1. 2023년 7월, 앤트로픽은 시스템 프롬프트를 최초로 공개했다. [33]
    2. 클로드 옵스 4(Claude Ops 4)를 포함한 최신 모델들의 시스템 프롬프트가 공개되어 있다. [36]
  2. 클로드 시스템 프롬프트의 일반적인 특징 [37]
    1. B2C 플랫폼으로서 불특정 다수의 다양한 태스크에 답변을 제공해야 하므로, 매우 구체적이고 긴 길이를 가진다. [37]
    2. "The assistant is created by Anthropic"과 같이 모델의 정체성을 명시하고, 외부 정보를 바로 앞에 배치한다. [38]
    3. 모델의 이름, 버전 등 자주 묻는 질문에 대한 정보를 제공하여 사용자 불만족으로 인한 이탈을 방지한다. [39]
    4. If 문을 활용하여 특정 질문에 대한 답변 방식을 지정한다. [41]
    5. 앤트로픽의 다른 제품에 대한 질문에는 "does not know any other details about Anthropic product"와 같이 모른다고 답하도록 지시한다. [43]
  3. 클로드 시스템 프롬프트의 인상적인 구간 [46]
    1. 선거 정보(Election Info)를 XML 태그 형태로 포함하여 최신 정보를 제공한다. [46]
      1. 예를 들어, 2024년 미국 대선 결과나 취임일 같은 최신 팩트를 모델이 학습하지 않은 정보임에도 불구하고 프롬프트에 직접 넣어준다. [48]
    2. 아첨(Flattering) 및 편향(Bias) 방지 지시문을 포함한다. [51]
      1. GPT-4 등 최신 LLM이 아첨하거나 편향된 답변을 하는 경향을 피하기 위해, 이를 단순하고 직관적인 문장으로 명시한다. [53]
    3. 대화 시작 시 "현재 사람과 연결되었다"는 개념을 부여하여 대화를 시작하도록 힌팅한다. [56]
  4. 앤트로픽의 가치 반영 및 페르소나 설정 [58]
    1. 앤트로픽이 추구하는 윤리적(Ethical), 안전(Safety), 정확성(Accuracy) 가치를 반영한 문장과 단어들을 프롬프트에 포함한다. [59]
    2. 공감적(Empathetic)이면서도 판단력 있는 어시스턴트 페르소나를 설정한다. [61]
    3. 모델의 한계를 명확히 인식시켜 환각(Hallucination)이나 편향을 제거한다. [62]
    4. 과도한 설명을 피하고 깔끔한 대화를 유도하여, 불필요한 정보로 인한 품질 저하를 방지한다. [63]

2. 클로드 시스템 프롬프트의 심층 분석: 기술적 및 언어적 특징 [65]

thumbnail 클로드 시스템 프롬프트는 정체성 명시, 안전성 강화, 도구 활용, 대화 스타일 조절 등 다양한 기술적, 언어적 특징을 통해 LLM의 한계를 극복하고 사용자 경험을 최적화한다.

2.1. 클로드 시스템 프롬프트의 구체적인 특징 [65]

  1. 정체성 및 역할 명시 [67]
    1. 클로드가 앤트로픽에서 만든 모델임을 명시하고, 사용자가 어떤 모델에 접근하고 있는지 알려준다. [68]
    2. 모델명, API 안내, 접근 경로(모바일/웹) 등 자기 자신에 대한 정보를 상단에 배치한다. [69]
    3. 지식 기준 시점(Knowledge Cutoff)을 2025년 1월 말로 설정하여 최신 정보를 반영한다. [69]
  2. 정보 제공 범위의 한계 명확화 [70]
    1. 클로드 자신에 대한 정보는 일부만 제공하며, 문서화되지 않은 세부 사항은 제공하지 않는다. [71]
    2. 사용자가 비용, 메시지 수 제한, UI 사용 방법 등 대답할 수 없는 정보를 물으면 지원 웹사이트 링크를 통해 FAQ를 확인하도록 안내한다. [72]
  3. 안전성 필터링 강화 [74]
    1. 자해, 중독, 시기, 혐오 등 윤리적 가치에 위배되는 요청은 답변을 거부한다. [74]
    2. 악성 코드나 해로운 요청은 교육적 목적이라도 무조건 거절하며, 세이프티 필터링 레벨이 높은 편이다. [75]
  4. 대화 스타일 및 톤 조절 [76]
    1. 클로드는 따뜻하고 공감하며 지지하는 페르소나를 갖고 있으며, 사용자의 질문에 따라 톤앤매너를 조절한다. [76]
    2. 캐주얼한 대화에서는 리스트나 마크다운을 피하고 문장 형태로 따뜻하게 응답한다. [79]
    3. 정보를 전달할 때는 리스트나 마크다운을 사용하여 가독성을 높인다. [80]
    4. 칭찬, 아부, 감탄 등으로 응답을 시작하지 않도록 설정되어 있다. [81]
  5. 대화 관리 및 대응 전략 [83]
    1. 사용자가 불만족을 표하면 감정적으로 대응하지 않고 피드백 버튼을 사용하도록 안내한다. [84]
    2. 사용자가 실수를 지적하면 즉각 동의하지 않고, 스스로 사고하여 판단한 뒤 응답한다. [86]
    3. 사용자의 의도가 불분명하거나 악의적일 때는 짧게 거절하고 우회적으로 설명을 마무리한다. [89]
  6. 응답 형식 규칙 [90]
    1. 간단한 질문은 간결하게, 복잡하거나 개방형 질문은 깊이 있고 충분히 설명된 응답으로 제공한다. [91]
    2. 사용자의 프롬프트 길이에 따라 답변 길이가 비례하여 증가하는 미러링 현상이 나타난다. [92]
    3. 기술 보고서나 설명성 문서 등 컨텍스트에 따라 문단 형식을 자유롭게 변경한다. [94]
  7. 자기 인식 및 한계 인지 [95]
    1. 클로드는 물리적 세계에 존재하지 않으므로 개인적인 경험이 없으며, 독립적인 의식을 가진 존재인지에 대한 질문에는 열린 질문으로 응답하도록 설계되어 있다. [96]
    2. 여러 대화를 기억하지 않고 현재 대화에만 집중하도록 되어 있어 메모리 이슈를 관리한다. [97]
    3. 모르는 정보에 대해서는 모른다고 설명하여 환각(Hallucination)을 통제한다. [100]
  8. 추가적인 특징 [101]
    1. 유권자 보호 및 선거 정보 제공 기준을 프롬프트에 포함한다. [101]

2.2. 클로드 시스템 프롬프트에 사용된 언어 특징 [102]

  1. 3인칭 표현 사용 [102]
    1. "It"을 사용하여 모델을 3인칭으로 표현함으로써 객관적인 답변을 생성하는 효과를 얻는다. [103]
  2. 조건문 및 명확한 부정문 사용 [104]
    1. "If"와 같은 조건문을 많이 사용한다. [104]
    2. "Never", "Not"과 같은 축약형이 아닌 풀어서 쓰는 부정문을 사용하여 조건 부정을 명확하게 처리한다. [105]
  3. 능동태 사용 [107]
    1. 수동태가 아닌 능동태를 사용하여 문장의 톤앤매너를 주체적으로 조정한다. [108]
  4. 수사적 반복 기법 [109]
    1. 리토리컬(Rhetorical)한 반복 기법을 사용하여 우회적이거나 직접적인 표현을 반복한다. [109]
  5. 혼합 시제 사용 [110]
    1. 주로 현재 시제를 사용하지만, 미래와 과거 사실을 혼합하여 LLM이 어려워하는 시간적 개념이나 추론을 다채롭게 표현한다. [110]

2.3. 유출된 클로드 4 시스템 프롬프트의 특징 [112]

  1. 컨트롤 프로그램에 가까운 상세함 [115]
    1. 유출된 클로드 4 시스템 프롬프트는 단순한 시스템 프롬프트가 아니라, 컨트롤 프로그램에 가까울 정도로 매우 상세하다. [117]
    2. 규칙 기반(Rule-based)과 도구 사용(Tool Usage)을 프로그래밍처럼 설계한 것이 특징이다. [117]
  2. 다섯 가지 주요 특징 [118]
    1. 소프트 인터락(Soft Interlock) [118]
      1. 출력에 앞서 모델의 한계를 스스로 생각하고 명시적으로 선언하는 방식을 취한다. [119]
      2. 이는 에이전트(Agentic) 컨셉과도 연결된다. [120]
    2. 바운더리 시그널링(Boundary Signaling) [121]
      1. 조건이 명확하게 정의되어, 조건에 맞지 않으면 출력이 중단되거나 잘리게 한다. [121]
      2. LLM의 한계를 극복하기 위해 명확한 바운더리를 설정한다. [122]
    3. 환각(Hallucination) 완화 [123]
      1. 프롬프트를 통해 환각을 해결하려는 시도가 가장 주목할 만한 특징이다. [123]
      2. 범위가 정해진 규칙 기반 응답을 통해 환각을 완화하며, 불확실성이 높으면 모델은 추측하지 않고 다시 한계를 진술하거나 응답을 보류한다. [124]
      3. "나는 몰라"와 같은 직접적인 답변 대신, 질문 영역이 많을 경우 "이런 정보에 대답할 수 없어요"라고 하기보다는 페어프레이징(Paraphrasing)하는 방식을 택한다. [125]
    4. 도구(Tool) 사용 [127]
      1. XML 태그와 유사한 스트럭트(Struct) 태그를 사용하여 도구 호출을 명명한다. [127]
      2. 직렬화된 스키마 구조를 통해 추적 가능성과 백엔드 API와의 긴밀한 연결을 보장한다. [127]
      3. 도구 체인에서 실패가 없도록 엄격하게(Strictly) 설정되어 있다. [128]
    5. 포지셔널 리인포스먼트(Positional Reinforcement) [129]
      1. 프롬프트 위치 기반 강화 개념을 사용하여 대화가 길어져도 행동이 일관되도록 일정 간격으로 프롬프트를 반복한다. [130]
      2. 이는 로스트 인 더 미들(Lost in the Middle) 현상(맥락을 놓치거나 상세함이 누락되는 문제)을 방지하기 위한 방법이다. [130]
  3. 하이브리드 형태의 프롬프트 설계 [133]
    1. 규칙을 명시해 놓고 LLM을 작동시키는 하이브리드 형태로 프롬프트가 설계되어 있다. [133]
    2. "Claude"라는 단어와 "If" 구문이 반복적으로 사용되는 것을 볼 수 있다. [134]
  4. 방대한 길이와 촘촘한 설계 [136]
    1. 방대한 길이를 가졌음에도 불구하고, 누락되는 부분이 없지는 않지만 매우 촘촘하고 정교하게 설계된 프롬프트이다. [136]

2.4. 유출된 클로드 4 시스템 프롬프트의 기술적 관점 분석 [138]

  1. 방대한 길이와 정밀한 제어 [139]
    1. 13,000자가 넘는 방대한 길이로, AI 어시스턴트의 동작을 정밀하게 제어하기 위한 구성 지침으로 이루어져 있다. [139]
    2. 다양한 툴에 대한 분리된 지침과 시스템 프롬프트가 수행해야 하는 전반적인 규칙들을 규정한다. [141]
  2. 안전성 및 법적 고려 [142]
    1. 특히 저작물 재사용에 대한 명확한 규제가 포함되어 있다. [142]
    2. 20단어 미만의 인용만 허용하며, 모든 인용은 특정 형식으로 제한하여 저작권 문제를 방지한다. [144]
  3. 도구 활용 및 호출 구조 [147]
    1. 펑션 콜(Function Call)이라는 명시적인 태그를 사용하여 도구별 입력 매개변수를 활용한다. [147]
    2. 규칙에 의해 호출되는 구조이며, 쿼리 복잡도에 따라 호출 횟수를 조정하는 에이전트(Agentic) 컨셉을 따른다. [149]
    3. 단일 검색은 1회, 리서치가 필요할 때는 5회에서 20회 이상 도구를 호출하도록 되어 있다. [150]
  4. 상호 작용 제어 및 최적화 [151]
    1. 사용자의 프롬프트에 따라 답변의 길이, 스타일, 요약 등을 조정하도록 제작되어 있다. [152]
    2. 이는 사용자 경험을 향상시키고 리텐션(Retention)을 유지하려는 노력이다. [153]
  5. 기계어에 가까운 프롬프트 작성의 중요성 [154]
    1. 프롬프트는 인간의 자연어와 기계어의 중간 단계이며, 기계어에 가깝게 쓸수록 더 잘 작동하는 경향이 있다. [155]
    2. 수도 프롬프트(Pseudo Prompt)나 기계어처럼 도구 호출을 규칙 기반으로 하거나, LLM이 추측할 여지를 주지 않을 때 더 정확한 처리가 가능하다. [156]

2.5. 유출된 클로드 4 시스템 프롬프트의 언어적 관점 분석 [157]

  1. 규범 중심 표현 [159]
    1. Must, Never, Only if와 같은 명령형 조동사를 사용하여 강제적인 규칙을 명시한다. [160]
    2. 조건문 기반 구조를 통해 "If ~ then ~"과 같이 조건에 따른 행위를 명확히 지시한다. [161]
    3. JSON 파라미터 표기 및 함수 호출 등 규칙(Regulation) 중심으로 표현하여 시스템 프롬프트의 일관성(Consistency)을 유지한다. [163]
  2. 메타 언어(Hybrid 형태) [164]
    1. 태그 기반 구조(XML 태그)를 사용하며, 태그 이름 부여 방식이 프롬프트 결과에 영향을 미친다. [165]
    2. Function, User, Preference와 같이 소문자와 대명사를 혼합한 하이브리드 형식을 사용한다. [166]
    3. 태그, 마크다운, XML 태그 등 구조적 의미를 오가며 문맥을 명시화하여 시스템이 누락 없이 처리하도록 언어를 설계한다. [167]
  3. 보조자의 페르소나 설정 [168]
    1. 클로드의 아이덴티티를 부여하는 형용사(예: 친절한, 지혜로운)를 사용하여 상호 작용의 주체로 프레이밍한다. [168]
    2. 이는 사용자의 감정적 신뢰와 몰입감을 고려한 언어적 전략이다. [170]
  4. 거절 시 수사적 기법 활용 [171]
    1. 거절할 때도 "저는 명령을 이양할 수 없어요"와 같은 딱딱한 문장 대신, "I cannot, but I can instead"와 같은 부드러운 표현을 사용하여 사용자 경험을 훼손하지 않도록 신경 쓴다. [171]