시스템 프롬프트는 사용자의 입력 전에 대화형 AI 모델에 제공되는 일련의 지침으로, 이후 상호작용 동안 모델의 페르소나, 행동 규칙, 작업 프레임을 설정한다. 일반 사용자 메시지와 달리, 시스템 프롬프트는 일반적으로 최종 사용자가 아닌 애플리케이션 개발자가 설정하며, 보이는 대화에는 일반적으로 표시되지 않는다.
기능
시스템 프롬프트는 어시스턴트가 전체 세션에서 어떻게 행동해야 하는지(어떤 어조를 취할지, 어떤 주제를 피할지, 어떤 출력 형식을 따를지, 어떤 페르소나를 제시할지 등)를 구성하는 데 사용된다. Large language model 기반으로 구축된 제품(ChatGPT 및 Claude (AI model family) 포함)은 최종 사용자에게도 이 메커니즘의 형태를 노출하여, 매번 다시 입력할 필요 없이 대화 전반에 걸쳐 지속되는 "사용자 지정 지침"을 허용한다. AI agent 또는 챗봇 API 위에 애플리케이션을 구축하는 개발자는 여러 제품이 동일한 기본 모델 위에 구축된 경우에도 시스템 프롬프트에 크게 의존하여 제품의 행동을 기본 모델의 기본 행동과 차별화한다.
안전 훈련과의 관계
시스템 프롬프트는 RLHF 또는 Constitutional AI와 같은 훈련 과정에서 주입된 안전 행동과 나란히 존재하지만, 이와는 구별된다. 잘 설계된 시스템 프롬프트는 모델의 훈련된 기본값 위에 추가 제약을 더할 수 있지만, 모델이 거부하도록 훈련된 행동을 완전히 덮어쓸 수는 없으며, 그 반대도 항상 성립하지는 않는다. 잘못 설계된 시스템 프롬프트는 모델이 훈련된 안전 행동을 준수하는 것을 의도치 않게 약화시킬 수 있다. 이러한 상호작용 때문에 제공업체는 모델의 훈련을 강화하고 충돌하지 않는 시스템 프롬프트 작성에 대한 지침을 게시한다.
보안 영향
시스템 프롬프트는 종종 제품의 독점 지침을 인코딩하기 때문에, 이를 추출하거나 덮어쓰는 것이 악의적인 사용자의 일반적인 공격 대상이 되었다. Jailbreak (AI)는 모델이 시스템 프롬프트를 완전히 무시하도록 설득하려 할 수 있으며, Prompt injection 공격은 모델이 처리하는 외부 콘텐츠에 지침을 삽입하여 지침을 전달할 의도가 없었던 콘텐츠로 시스템 프롬프트의 권한을 덮어쓰려고 한다. 계층화된 조정 검사는 프롬프트 기반 지침이 유지되지 않는 경우를 포착하기 위해 시스템 프롬프트와 함께 자주 배포된다.
에이전트 시스템에서의 사용
언어 모델이 도구를 사용하고 여러 단계의 작업을 수행할 수 있는 에이전트 시스템에 내장됨에 따라, 시스템 프롬프트는 더 길고 구조화되어 단순한 행동 지침보다 사용 가능한 도구, 출력 스키마, 명시적 의사 결정 절차를 지정하는 경우가 많아졌다. 이러한 변화로 인해 시스템 프롬프트 설계는 최종 사용자의 탐색적 Prompt engineering 실천과 구별되는, 안정적인 생산 AI 시스템 구축의 중요한 부분이 되었다.