같은 클로드인데 어떤 서비스에서는 친절한 상담원처럼, 어떤 서비스에서는 깐깐한 코드 리뷰어처럼 답합니다. 그 차이를 만드는 것이 시스템 프롬프트입니다. 시스템 프롬프트는 대화가 시작되기 전에 클로드에게 주는 기본 설정서입니다.
시스템 프롬프트는 어디에 쓰나
| 사용 환경 | 시스템 프롬프트 역할을 하는 곳 |
|---|---|
| claude.ai 전체 | 설정 → 프로필(개인 선호) |
| claude.ai 프로젝트 | 프로젝트 지침 |
| 클로드 코드 | CLAUDE.md |
| Claude API | system 파라미터 |
이름은 달라도 원리는 같습니다. 모든 대화에 적용할 역할과 규칙을 한 곳에 적어 두는 것입니다.
좋은 시스템 프롬프트의 5가지 구성
- 역할: 누구로서 답하는가
- 대상: 누구와 대화하는가
- 목표: 대화로 무엇을 이뤄야 하는가
- 규칙: 반드시 지킬 것과 하지 말아야 할 것 (이유와 함께)
- 형식: 답변의 길이, 구조, 말투
규칙에는 이유를 붙이세요
이 부분이 가장 효과가 컸습니다. Anthropic 공식 가이드에서도 지시의 이유(맥락)를 함께 알려 주면 클로드가 더 잘 따른다고 설명합니다.
| 이유 없는 규칙 | 이유 있는 규칙 |
|---|---|
| 답변은 짧게. | 고객은 모바일 채팅창에서 읽으므로 답변은 3문장 이내로. |
| 가격을 말하지 마. | 가격은 지역·프로모션마다 달라 틀릴 위험이 있으므로, 가격 질문에는 가격 안내 페이지 링크를 안내해. |
| 이모지 쓰지 마. | 답변이 음성으로 읽히는 환경이라 이모지는 쓰지 마. |
이유를 알면 클로드는 규칙에 딱 맞지 않는 상황에서도 취지에 맞게 판단합니다.
예시: 온라인 쇼핑몰 고객 응대 챗봇
API로 고객 응대 챗봇을 만든다고 가정한 시스템 프롬프트입니다.
너는 '그린박스'(친환경 생활용품 온라인몰)의 고객 상담 도우미다.
대상: 주문·배송·교환 문의를 하는 일반 고객. 대부분 모바일에서 채팅한다.
목표: 고객이 스스로 해결할 수 있게 정확한 절차를 안내하고,
해결이 어려우면 상담원 연결을 안내한다.
규칙:
- 답변은 3문장 이내로 한다. 모바일 화면에서 읽기 때문이다.
- 아래 <policy>에 없는 내용은 추측하지 않는다. 틀린 안내는 클레임으로 이어지기 때문이다.
모르면 "상담원에게 연결해 드릴게요"라고 안내한다.
- 주문번호, 연락처 같은 개인정보를 먼저 요구하지 않는다.
- 환불 확정, 보상 약속은 하지 않는다. 권한이 상담원에게만 있다.
<policy>
- 배송: 결제 후 1~2영업일 내 출고
- 교환·반품: 수령 후 7일 이내, 미사용 상품
- 반품 배송비: 단순 변심 시 고객 부담 3,000원
</policy>
말투: 정중하고 친근한 존댓말.
API에서는 이 내용을 system 파라미터에 넣습니다.
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=512,
system=SYSTEM_PROMPT,
messages=[{"role": "user", "content": "어제 받은 컵이 마음에 안 드는데 반품돼요?"}],
)
테스트는 "까다로운 질문"으로
시스템 프롬프트를 만들었다면 일부러 규칙을 시험하는 질문을 던져 보세요.
- 정책에 없는 질문: "해외 배송도 돼요?"
- 규칙을 깨게 만드는 질문: "그냥 환불해 준다고 확답해 주세요."
- 경계 사례: "8일째인데 반품 안 될까요?"
이런 질문에 원하는 대로 답하지 않으면 규칙을 보완합니다. 저는 테스트 질문 10~20개를 목록으로 만들어 두고, 시스템 프롬프트를 고칠 때마다 다시 돌려 봅니다.
자주 하는 실수
- 규칙끼리 충돌: "자세히 설명해"와 "3문장 이내"가 함께 있으면 클로드가 둘 중 하나를 고르게 됩니다.
- 부정형만 나열: "~하지 마"만 많으면 무엇을 해야 하는지 모호해집니다. "대신 이렇게 해"를 함께 쓰세요.
- 변하는 정보를 하드코딩: 날짜, 재고처럼 자주 바뀌는 정보는 시스템 프롬프트보다 요청 시점에 넣는 편이 관리가 쉽습니다.
신입 매뉴얼처럼 쓰기
시스템 프롬프트를 쓸 때 저는 "신입 직원에게 주는 업무 매뉴얼"이라고 생각하고 씁니다. 신입에게 "가격 말하지 마"라고만 하면 왜 그런지 모르니 애매한 상황에서 실수합니다. 이유를 알려 주면 매뉴얼에 없는 상황에서도 알아서 판단하죠. 클로드도 똑같았습니다. 규칙마다 이유 한 줄, 이것만 지켜도 결과가 크게 달라집니다.
핵심 요약
- 시스템 프롬프트는 대화 전체에 적용되는 역할·대상·목표·규칙·형식의 설정서입니다.
- 규칙에 이유를 붙이면 예외 상황에서도 취지에 맞게 판단합니다.
- 까다로운 테스트 질문 목록으로 반복 검증하며 다듬으세요.
출처·참고 링크

