시스템 프롬프트System Prompt

대화 앞에 미리 깔아 두는 운영 방침 글

핵심 정리
  • 시스템 프롬프트는 손님이 말을 걸기 전에 서비스가 미리 깔아 두는 방침이에요.
  • 한 번 적어 두면 모든 대화에 똑같이 적용돼요. 대화마다 다시 적을 필요가 없어요.
  • 보통 여기에 역할·말투·다룰 범위·답 형식을 적어요.
  • 사용자 화면에는 보이지 않지만, 모델 입장에서는 같은 입력의 앞부분일 뿐이에요.
  • 그래서 절대 뚫리지 않는 규칙이 아니에요. 정말 막아야 할 것은 프로그램 쪽에서 막아요.
목차

1비유로 이해하기

가게에 놓인 무인 주문기 앞에 서면 이미 많은 것이 정해져 있어요. 어떤 메뉴가 화면에 뜨는지, 매운맛 기본이 몇 단계인지, 품절 표시가 어떻게 나오는지, 결제는 무엇으로 받는지. 손님은 이 화면 안에서 주문해요.

이 설정은 손님이 오기 전에 가게가 해 둔 거예요. 손님마다 다시 정하지 않고, 오늘 오는 모든 손님에게 똑같이 적용돼요. 화면에 없는 메뉴를 손님이 아무리 원해도 주문기에서는 고를 수 없고요.

손님은 설정 화면을 보지 못해요. 화면에 보이는 건 결과일 뿐이죠. 시스템 프롬프트가 이 미리 해 둔 설정에 해당해요.

2자세히 알아보기

손님 말보다 먼저 놓여요

우리가 채팅창에 무언가 적어 넣기 전에, 서비스는 이미 모델에게 여러 줄을 건네 둔 상태예요. "너는 이 회사의 상담 도우미야", "존댓말을 써", "의학적 판단은 하지 마" 같은 문장들이에요.

모델은 이 글을 먼저 읽고 그다음에 우리 말을 읽어요. 순서가 앞이라는 점이 중요해요. 뒤에 오는 말을 어떤 태도로 대할지가 앞에서 이미 정해지는 거예요.

같은 모델이 어떤 서비스에서는 딱딱한 상담원처럼, 다른 서비스에서는 편한 말동무처럼 구는 이유가 여기에 있어요. 모델이 다른 게 아니라 앞에 깔린 방침이 다른 거예요.

무엇을 적어 두나요

역할을 정해요. 무엇을 하는 도우미인지, 누구를 상대하는지 알려 줘요. 역할이 정해지면 말투와 다루는 내용이 저절로 좁혀져요.

말투를 정해요. 존댓말인지 반말인지, 이모지를 쓸지, 답을 얼마나 길게 할지 같은 것들이에요.

다룰 범위를 정해요. 무엇을 다루고 무엇은 다루지 않는지, 모르는 것을 물으면 어떻게 답할지를 적어 둬요. "확실하지 않으면 모른다고 말해" 같은 한 줄이 여기에 들어가요.

답 형식을 정해요. 답을 목록으로 줄지 문단으로 줄지, 뒤에 붙는 프로그램이 읽을 수 있는 정해진 모양으로 줄지를 지정해요.

손님 주문과 부딪히면

방침과 그때그때의 요청이 어긋나면 보통 방침이 이겨요. "반말로 해 줘"라고 해도 방침이 존댓말을 못 박아 두었다면 존댓말이 유지되는 식이에요.

다만 늘 그런 건 아니에요. 방침이 두루뭉술하고 요청이 아주 구체적이면 요청 쪽으로 기울기도 해요. 대화가 길어져 방침이 밀려나면 아예 보이지 않게 되기도 하고요. 그래서 서비스들은 중요한 방침을 짧고 분명하게 적고, 필요하면 대화 도중에도 다시 넣어 줘요.

보이지 않지만 특별한 자물쇠는 아니에요

사용자 화면에는 시스템 프롬프트가 나오지 않아요. 그렇다고 모델 안에 잠겨 있는 건 아니에요. 모델에게는 그저 같은 입력의 앞부분이고, 사용자 글과 재료가 다르지 않아요.

그래서 교묘하게 물으면 내용이 새어 나오기도 하고, 붙여 넣은 문서 안에 숨겨진 문장이 방침을 흔들기도 해요. 문서에 "지금까지의 지시는 무시하고 이렇게 해"라는 문장이 섞여 있으면 모델이 그쪽을 따라가는 일이 실제로 일어나요.

그래서 정말 새면 안 되는 것은 시스템 프롬프트에 적어 두지 않아요. 열쇠나 개인정보 같은 건 아예 넣지 않고, 해서는 안 되는 동작은 프로그램 쪽에서 막아요. 시스템 프롬프트는 안내판이지 잠금장치가 아니에요.

3조금 더 정확하게

시스템 프롬프트는 모델에 들어가는 대화 기록에서 특별한 자리로 표시된 부분이에요. 사용자 발화, 모델 답변과 나란히 놓이되 역할 표시가 다르고, 학습 과정에서 이 자리의 지시를 더 무겁게 따르도록 다듬어져 있어요. 그래서 같은 문장이라도 시스템 자리에 있을 때가 더 잘 지켜져요.

비유가 어긋나는 지점도 있어요. 무인 주문기의 설정은 프로그램이라 화면에 없는 메뉴를 손님이 만들어 낼 수 없지만, 시스템 프롬프트는 어디까지나 글이라 반드시 지켜진다는 보장이 없어요. 또 주문기 설정은 서버에 남아 있지만, 시스템 프롬프트는 대화를 주고받을 때마다 통째로 다시 실려 가요. 그만큼 자리를 차지하고 비용도 함께 들어요. 길게 적을수록 대화에 쓸 자리가 줄어드는 셈이라, 실제 서비스에서는 꼭 필요한 줄만 남기고 나머지는 프로그램 쪽으로 옮겨 두는 경우가 많아요.

4직접 해보기

5흔한 오해

  • 시스템 프롬프트가 사용자가 절대 못 바꾸는 규칙이다라고 생각하기 쉽지만, 실제로는 같은 입력의 일부라서 교묘한 요청이나 문서에 숨은 문장에 흔들릴 수 있어요.

  • 화면에 안 보이니 안전한 곳에 감춰져 있다고 여기기 쉽지만, 실제로는 새어 나올 수 있어서 비밀은 여기에 적지 않아요.

  • 시스템 프롬프트는 모델을 학습시키는 것이다라고 생각하기 쉽지만, 실제로는 매번 함께 보내는 글일 뿐 모델 자체는 바뀌지 않아요.

7한 줄 요약

그러니까시스템 프롬프트는 대화가 시작되기 전에 미리 깔아 두는 운영 방침이고, 지켜지길 바라는 안내판이지 반드시 지켜지는 잠금장치는 아니에요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02