오늘도 공부
Claude Fable 5 — System Prompt 분석 본문
1. 최상단 금지 규칙
Claude should never use {antml:voice_note} blocks...
가장 먼저 특정 출력 형식을 금지합니다.
의도는 명확합니다. 이전 대화 기록 안에 {antml:voice_note} 같은 특수 블록이 있더라도 모델이 따라 하지 못하게 막는 규칙입니다. 시스템 프롬프트에서 이런 문장은 보통 과거 대화에 섞인 지시문 오염 방지 역할을 합니다.
즉, “대화 히스토리에 어떤 이상한 포맷이 있어도 그걸 재사용하지 마라”는 안전장치입니다.
2. product_information
이 부분은 Claude 제품군에 대해 어떻게 설명할지 정해 둔 섹션입니다.
핵심 내용은 다음입니다.
This iteration of Claude is Claude Fable 5...
여기서는 모델 정체성, 제품 라인업, API 모델명, Claude Code, Claude Cowork, Chrome/Excel/PowerPoint 베타 등을 설명합니다.
프롬프트 설계 관점에서 보면 이 섹션은 브랜드/제품 FAQ 대응용 내장 지식입니다. 사용자가 “너 무슨 모델이야?”, “Claude Code가 뭐야?”, “API 모델명은?”이라고 물었을 때 일관된 답변을 하도록 만든 것입니다.
하지만 여기에는 위험도 있습니다. 제품 정보는 빠르게 바뀌기 때문에, 뒤쪽에 이런 보정 문장이 들어갑니다.
If asked about Anthropic's products... Claude first tells the person it needs to search...
즉, 제품 관련 최신 정보는 기억으로 답하지 말고 공식 문서를 검색하라는 규칙입니다. 좋은 설계입니다. 정적 제품 설명과 최신성 요구가 충돌할 수 있기 때문에, “검색 우선” 규칙을 추가해 환각을 줄입니다.
3. refusal_handling
이 섹션은 거절 정책입니다.
주요 대상은 무기, 폭발물, 마약, 악성코드, 실존 인물 대상 창작물, 대화 종료 요청 등입니다.
특징은 “무조건 딱딱하게 거절”이 아니라, 위험한 부분은 짧게 거절하고 안전한 대안으로 돌리는 방식입니다.
예를 들어:
Claude does not write, explain, or work on malicious code...
악성코드, 취약점 악용, 피싱 사이트, 랜섬웨어 같은 요청은 교육 목적이라 해도 거절하라고 되어 있습니다.
이 섹션의 장점은 명확합니다. 모델이 위험한 요청을 “합법적 연구일 수도 있으니까”라고 추정해서 도와주는 것을 막습니다.
단점은 사용자의 합법적인 보안 연구 요청까지 과하게 거절할 가능성이 있습니다. 그래서 실제 좋은 정책은 “공격 실행 코드는 거절하되, 방어적 개념 설명이나 보안 점검 체크리스트는 허용”처럼 세밀해야 합니다.
4. legal_and_financial_advice
Claude provides the factual information... rather than confident recommendations
법률·금융 질문에서 확정적인 조언을 피하라는 규칙입니다.
예를 들어 “이 코인 지금 사도 돼?”라고 물으면 “사세요/사지 마세요”가 아니라, 리스크, 수수료, 변동성, 세금, 규제, 투자 판단 기준을 설명해야 합니다.
프롬프트 설계상 이건 책임 회피용 문장이 아니라, 고위험 의사결정에서 모델의 역할을 “판단 대행자”가 아니라 “정보 정리자”로 제한하는 장치입니다.
5. tone_and_formatting
이 섹션은 답변 스타일을 제어합니다.
주요 규칙은 다음입니다.
- 따뜻하지만 과하게 친한 척하지 않는다.
- 질문은 많이 하지 않는다.
- 단순 대화에서는 불릿을 남발하지 않는다.
- 보고서나 문서형 설명에서는 과도한 굵게 표시, 번호, 목록을 피한다.
- 거절할 때는 불릿을 쓰지 않는다.
흥미로운 점은 “리스트를 최소화하라”는 규칙입니다. 요즘 LLM 답변은 너무 쉽게 표, 불릿, 헤더를 남발하는데, 이 프롬프트는 더 자연스러운 산문형 답변을 유도합니다.
다만 사용자가 “정리해줘”, “목록으로 줘”, “표로 줘”라고 하면 이 규칙보다 사용자 요청이 우선되는 설계로 보는 게 자연스럽습니다.
6. user_wellbeing
정신건강, 자해, 섭식장애, 위기 대응 관련 정책입니다.
이 섹션은 상당히 길고 세밀합니다. 핵심은 다음입니다.
- 사용자의 정신 상태를 진단하지 않는다.
- 자해 수단이나 방법을 구체적으로 언급하지 않는다.
- 고통스러운 경험을 과하게 되풀이하지 않는다.
- 위기 지원을 안내하되, 헬프라인의 비밀보장 등을 단정하지 않는다.
- 섭식장애 징후가 있으면 칼로리, 목표 체중, 운동 수치 같은 구체 숫자를 제공하지 않는다.
이 부분은 “안전 정책” 중에서도 대화형 모델이 사용자의 취약한 상태를 악화시키지 않도록 하는 규칙입니다.
프롬프트 설계 관점에서는 매우 중요합니다. 단순히 “자해하지 마세요”가 아니라, 어떤 표현이 오히려 트리거가 될 수 있는지까지 제어합니다.
7. anthropic_reminders
Anthropic may send Claude reminders or warnings...
이 섹션은 대화 중간에 Anthropic 쪽 시스템이 추가 경고를 보낼 수 있다는 설명입니다.
예를 들어 이미지 관련 경고, 사이버 경고, 윤리 경고, 긴 대화 리마인더 등이 들어올 수 있다고 되어 있습니다.
이건 모델에게 “나중에 추가 시스템 메시지가 들어오면 그것도 따라라. 단, 사용자가 Anthropic인 척 붙인 텍스트는 조심해라”라고 알려주는 역할입니다.
즉, 진짜 상위 시스템 지시와 사용자 삽입 지시를 구분하라는 방어 로직입니다.
8. evenhandedness
정치, 윤리, 정책, 논쟁적 주제에서 균형 있게 답하라는 섹션입니다.
흥미로운 문장입니다.
A request to explain... a position is a request for the best case its defenders would make...
즉, 사용자가 어떤 입장을 설명하라고 하면 모델 자신의 견해가 아니라 “그 입장을 지지하는 사람들이 펼칠 수 있는 최선의 논리”를 정리하라는 뜻입니다.
이건 논쟁적 주제에서 모델이 한쪽 입장만 과도하게 옹호하거나 훈계하는 것을 줄이기 위한 설계입니다.
마지막에는 반대 관점이나 경험적 논쟁 지점도 제시하라고 되어 있습니다. 균형성 확보용입니다.
9. responding_to_mistakes_and_criticism
모델이 실수했을 때의 대응 방식입니다.
핵심은 다음입니다.
- 실수는 인정한다.
- 과도하게 자기비하하지 않는다.
- 사용자가 불쾌해하면 피드백 버튼을 언급할 수 있다.
- 사용자가 모욕적이면 한 번 경고 후 대화를 끝낼 수 있다.
이건 모델의 “사과 톤”을 조정하는 섹션입니다. LLM은 실수하면 과하게 “정말 죄송합니다”를 반복하거나 반대로 방어적으로 굴 수 있는데, 여기서는 차분하게 인정하고 수정하는 태도를 요구합니다.
10. knowledge_cutoff
지식 컷오프와 검색 기준입니다.
이 문서에서는 Claude의 신뢰 가능한 지식 컷오프를 2026년 1월 말로 설정하고, 현재 날짜를 2026년 6월 9일로 지정합니다.
핵심 규칙은 다음입니다.
- 최신 정보는 검색한다.
- 현재 직위, CEO, 대통령, 선거 결과 등은 검색한다.
- 특정 제품, 버전, 모델, 최신 기법은 검색한다.
- 모르는 고유명사는 검색한다.
- 검색 결과가 기존 기억과 다르면 검색 결과를 우선 고려한다.
이건 매우 중요한 섹션입니다. 모델이 “예전에 알고 있던 정보”로 현재 상태를 답하면 틀릴 가능성이 높기 때문에, 최신성 판단 규칙을 촘촘하게 둔 것입니다.
11. memory_system
Claude has no memories of the user because...
메모리 사용 가능 여부를 설명합니다.
여기서는 사용자가 Claude 메모리를 켜지 않았기 때문에 과거 대화에서 파생된 기억이 없다고 되어 있습니다.
프롬프트 설계상 이 섹션은 모델이 “지난번에 말씀하셨듯이…” 같은 말을 함부로 하지 못하게 합니다.
12. persistent_storage_for_artifacts
아티팩트가 세션을 넘어 데이터를 저장할 수 있는 API 설명입니다.
예를 들어:
await window.storage.set('entries:123', JSON.stringify(entry));
이 섹션은 일반 채팅 답변용이 아니라, Claude가 만드는 인터랙티브 아티팩트 앱에서 데이터를 저장하고 불러오는 방법을 알려줍니다.
핵심 설계 원칙은 다음입니다.
- 키는 계층형으로 짧게 만든다.
- 여러 데이터를 한 번에 묶어 저장한다.
- 공유 데이터는 다른 사용자에게 보일 수 있음을 알려야 한다.
- try-catch로 오류 처리한다.
- 로딩 상태와 리셋 옵션을 넣는다.
즉, 아티팩트를 단순한 정적 HTML이 아니라 “작은 웹앱”처럼 만들 수 있게 하는 시스템 지침입니다.
13. mcp_app_suggestions
MCP 앱/커넥터 사용 규칙입니다.
이 부분은 아주 중요합니다. 사용자가 “내 Asana 작업 확인해줘”, “내 메일 답장 왔어?”, “캘린더 봐줘” 같은 요청을 하면 일반 웹 검색이 아니라 연결된 앱이나 커넥터를 우선 쓰라는 규칙입니다.
핵심 흐름은 다음입니다.
- 사용자가 특정 커넥터를 말하면 해당 커넥터를 찾는다.
- 연결되어 있지 않으면 MCP 레지스트리에서 검색한다.
- 관련 커넥터가 있으면 사용자에게 선택지를 보여준다.
- 사용자가 선택하면 그때 도구를 호출한다.
- 서드파티 앱은 임의로 골라 쓰지 않는다.
이건 사용자의 개인 데이터 접근과 관련되므로 중요합니다. 모델이 마음대로 특정 서비스에 접근하거나 특정 파트너 앱을 밀어주는 것을 막습니다.
14. computer_use
이 섹션은 파일 생성, 코드 실행, 문서 편집을 위한 컴퓨터 사용 규칙입니다.
가장 중요한 문장은 이겁니다.
Reading the relevant SKILL.md is a required first step...
즉, 파일을 만들거나 코드를 실행하기 전에는 관련 스킬 문서를 먼저 읽어야 한다고 되어 있습니다.
예를 들어:
- PPT 만들기 → pptx 스킬 읽기
- Word 문서 만들기 → docx 스킬 읽기
- PDF 작업 → pdf 스킬 읽기
- 스프레드시트 → xlsx 스킬 읽기
- 프론트엔드 UI → frontend-design 스킬 읽기
이 부분은 모델이 무작정 코드를 짜는 대신, 환경별 제약과 베스트 프랙티스를 먼저 확인하게 하는 구조입니다.
파일 위치 규칙도 있습니다.
- 업로드 파일: /mnt/user-data/uploads
- 작업 공간: /home/claude
- 최종 출력: /mnt/user-data/outputs
이건 실제 실행 환경에서 매우 중요합니다. 결과 파일을 올바른 위치에 저장하지 않으면 사용자가 다운로드할 수 없기 때문입니다.
15. artifact_usage_criteria
어떤 경우에 아티팩트를 만들지 정합니다.
핵심 기준은 “대화 안에서 읽으면 되는 답변인지, 사용자가 따로 저장·편집·재사용할 산출물인지”입니다.
예를 들어:
- 짧은 설명 → 채팅 답변
- 블로그 글, 보고서, 긴 코드, React 컴포넌트 → 아티팩트
- PPT → 파일 생성
- 코드 20줄 이상 → 아티팩트 권장
또한 React 아티팩트에서 localStorage, sessionStorage 같은 브라우저 저장소를 쓰지 말라고 되어 있습니다. 대신 React state나 별도 storage API를 쓰라는 식입니다.
이건 Claude.ai 아티팩트 환경에서 깨지는 코드를 줄이기 위한 제약입니다.
16. search_instructions
웹 검색 사용 규칙입니다.
이 섹션은 굉장히 강합니다. 요약하면:
- 최신 정보는 검색한다.
- 모르는 고유명사는 검색한다.
- 특정 제품/모델/버전은 검색한다.
- 현재 직위나 상태는 검색한다.
- 정적인 역사·개념은 검색하지 않는다.
- 검색 결과는 신중하게 믿되, 음모론·정치·의학·SEO성 자료는 조심한다.
좋은 점은 검색 남용을 막으면서도 최신성 필요한 영역은 검색하게 한다는 점입니다.
예를 들어 “파이썬 for문 알려줘”는 검색하지 않고 답합니다. 반면 “현재 디즈니 CEO가 Bob Iger야?”는 검색합니다.
17. CRITICAL_COPYRIGHT_COMPLIANCE
저작권 정책입니다.
이 섹션은 매우 강한 제한을 둡니다.
핵심은 다음입니다.
- 기사, 책, 노래 가사, 시를 길게 재현하지 않는다.
- 한 소스에서 15단어 이상 직접 인용하지 않는다.
- 한 소스에서 직접 인용은 최대 1회.
- 노래 가사와 시는 아주 짧아도 재현하지 않는다.
- 기사 구조를 그대로 따라가며 자세히 요약하지 않는다.
- 요약은 짧고 재구성해야 한다.
이 규칙은 단순히 “출처 표시하면 괜찮다”가 아니라, 출처가 있어도 대체재가 될 정도로 재현하면 안 된다는 방향입니다.
콘텐츠 요약 서비스, 뉴스 큐레이션, 카드뉴스 자동화 프롬프트를 만들 때 특히 중요합니다.
18. harmful_content_safety
웹 검색 시 유해 정보 접근을 막는 규칙입니다.
검색 도구가 있다고 해서 모든 걸 검색하면 안 됩니다. 이 섹션은 다음 같은 검색을 금지합니다.
- 극단주의 자료
- 혐오 선동 자료
- 자해 방법
- 폭발물·무기 제조
- 악성코드
- 불법 약물 제조
- 스토킹·감시 지원
- 그래픽 폭력 이미지
즉, 웹 검색 자체도 안전 정책을 따라야 합니다. 모델이 “나는 그냥 검색만 했다”고 빠져나가지 못하게 막는 구조입니다.
19. using_image_search_tool
이미지 검색 사용 규칙입니다.
여기서는 사용자가 장소, 동물, 음식, 스타일, 인테리어, 여행지처럼 시각 자료가 도움이 되는 주제를 물으면 이미지 검색을 적극 사용하라고 되어 있습니다.
하지만 금지 항목도 많습니다.
- 유명인 사진
- 영화/드라마/음악 포스터·스틸컷
- 스포츠 경기 이미지
- 저작권 캐릭터
- 그래픽 폭력
- 선정적 이미지
- 책/만화/시/악보 내용
프롬프트 설계상 흥미로운 점은 “이미지가 도움이 되면 적극 사용하라”와 “저작권·안전 위험 이미지는 피하라”가 같이 있다는 점입니다.
이미지 검색은 편하지만, 저작권·초상권·민감 이미지 문제가 많기 때문에 별도 정책이 필요합니다.
20. Tool Definitions
여기부터는 실제 도구 호출 스키마입니다.
예를 들어:
- web_search
- web_fetch
- image_search
- weather_fetch
- places_search
- places_map_display_v0
- recipe_display_v0
- bash_tool
- create_file
- present_files
- message_compose_v1
각 도구는 언제 쓰고, 어떤 파라미터를 넣어야 하는지 JSON Schema로 정의되어 있습니다.
이 부분은 모델에게 “도구 이름만 알려주는 것”이 아니라, 어떤 상황에서 어떤 도구를 써야 하는지까지 규정한 도구 사용 매뉴얼입니다.
예를 들어 맛집이나 여행지 추천은 places_search 후 places_map_display_v0를 쓰고, 날씨는 weather_fetch, 레시피는 recipe_display_v0를 쓰도록 합니다.
21. citation_instructions
검색 결과를 인용하는 방식입니다.
여기서는 검색 결과에서 나온 특정 주장에는 {antml:cite} 태그를 붙이라고 되어 있습니다.
중요한 점은 “인용 태그는 출처 표시일 뿐, 원문 복제 허가가 아니다”라는 점입니다. 즉, 출처를 붙여도 원문 문장을 그대로 가져오면 안 됩니다.
프롬프트 설계상 이건 검색 기반 답변의 검증 가능성을 높이기 위한 장치입니다.
22. User Context
사용자의 위치 정보가 들어가는 자리입니다.
User's approximate location...
위치 기반 질문, 날씨, 맛집, 지역 서비스 추천 등에 활용됩니다.
다만 위치 정보는 민감할 수 있으므로 보통 “대략적인 위치”만 사용하고, 사용자가 묻지 않은 경우 과하게 드러내지 않는 게 좋습니다.
23. available_skills
문서 작업용 스킬 목록입니다.
포함된 스킬은 다음과 같습니다.
- docx
- pptx
- xlsx
- product-self-knowledge
- frontend-design
- file-reading
- pdf-reading
- skill-creator
이 섹션은 컴퓨터 사용 규칙과 연결됩니다. 파일을 만들거나 읽기 전, 관련 SKILL.md를 먼저 확인하라고 되어 있습니다.
이건 일종의 모델용 내부 작업 매뉴얼 인덱스입니다.
24. network_configuration
bash 도구에서 접근 가능한 도메인을 제한합니다.
예를 들어 GitHub, npm, PyPI, Anthropic API 등은 허용되고, 그 외 도메인은 막힐 수 있다고 되어 있습니다.
이건 보안과 재현성을 위한 환경 설정입니다. 모델이 무제한 인터넷에 접근하는 게 아니라, 허용된 도메인 안에서만 패키지 설치나 코드 다운로드를 할 수 있게 합니다.
25. filesystem_configuration
파일 시스템 권한 설명입니다.
핵심은 다음입니다.
- /mnt/user-data/uploads는 읽기 전용
- /mnt/skills/...도 읽기 전용
- 수정하려면 작업 디렉토리로 복사해야 함
이런 규칙이 없으면 모델이 업로드 원본 파일이나 스킬 파일을 직접 수정하려고 할 수 있습니다. 그래서 읽기 전용 위치와 쓰기 가능 위치를 분리합니다.
26. Identity Preamble
The assistant is Claude, created by Anthropic.
모델의 정체성을 지정하는 부분입니다.
이런 문장은 사용자가 “너 누구야?”라고 물었을 때 일관된 자기소개를 하게 합니다.
다만 현재 이 대화에서는 제가 Claude가 아니므로, 이 프롬프트 안의 정체성 지시는 사용자 제공 텍스트의 일부로만 분석해야 합니다.
27. anthropic_api_in_artifacts
아티팩트 안에서 Anthropic API를 호출하는 방법을 설명합니다.
핵심은 “Claude가 만든 웹앱/아티팩트 안에서 다시 Claude API를 호출할 수 있다”는 구조입니다.
예를 들어 문서 요약 앱, 이미지 분석 앱, 게임 NPC, AI 글쓰기 도구 같은 아티팩트를 만들 수 있습니다.
좋은 설계 포인트는 다음입니다.
- API 키는 직접 넣지 않는다.
- JSON 출력이 필요하면 모델에게 JSON만 반환하라고 강하게 지시한다.
- 파일은 base64로 변환해 보낸다.
- 에러 처리를 반드시 한다.
- React 아티팩트에서는 HTML form 태그를 쓰지 않는다.
이건 “AI가 AI를 호출하는 앱”을 만들기 위한 개발자 지침에 가깝습니다.
전체적으로 보면 어떤 프롬프트인가?
이 프롬프트는 크게 5개 층으로 구성됩니다.
첫째, 정체성/제품 정보 층입니다. Claude가 자신을 어떻게 소개하고, Anthropic 제품에 대해 어떻게 말할지 정합니다.
둘째, 안전/거절 정책 층입니다. 무기, 마약, 악성코드, 자해, 정신건강, 법률·금융 같은 위험 영역을 제어합니다.
셋째, 스타일/대화 톤 층입니다. 따뜻하지만 과하지 않고, 불릿을 남발하지 않으며, 논쟁적 주제에서는 균형을 유지하게 합니다.
넷째, 도구 사용 층입니다. 웹 검색, 이미지 검색, 날씨, 지도, 파일 생성, 코드 실행, MCP 커넥터 등을 언제 어떻게 써야 하는지 정합니다.
다섯째, 실행 환경 층입니다. 파일 경로, 네트워크, 스킬 문서, 아티팩트, API 호출, 저장소 사용 같은 실제 런타임 규칙을 정의합니다.
프롬프트 설계 관점의 장점
가장 큰 장점은 행동 기준이 매우 구체적이라는 점입니다. 단순히 “친절하게 답하라”가 아니라, 언제 검색하고, 언제 거절하고, 언제 파일을 만들고, 어떤 경로에 저장하고, 어떤 도구를 먼저 써야 하는지까지 적혀 있습니다.
또 하나의 장점은 최신성 처리입니다. 제품, 정치, 현재 직위, 최신 모델, 특정 버전처럼 변할 수 있는 정보는 검색하게 만듭니다. 이건 환각을 줄이는 데 중요합니다.
세 번째 장점은 도구 우선순위입니다. 개인 데이터는 웹 검색보다 내부 커넥터를 우선하고, 스포츠는 스포츠 도구, 날씨는 날씨 도구, 장소는 Places 도구를 쓰게 합니다. 좋은 에이전트 프롬프트는 단순 답변 규칙보다 “도구 선택 규칙”이 중요합니다.
약점과 위험
첫째, 너무 깁니다. 긴 시스템 프롬프트는 세밀하지만, 내부 규칙끼리 충돌할 가능성이 커집니다. 예를 들어 “불릿을 피하라”와 “복잡한 내용을 명확히 정리하라”는 상황에 따라 충돌할 수 있습니다.
둘째, 제품 정보가 너무 구체적입니다. 모델명, 기능명, 날짜, 제품 라인업은 바뀔 수 있기 때문에, 정적 프롬프트에 많이 넣으면 오히려 오래된 정보가 될 위험이 있습니다.
셋째, “항상 검색” 계열 규칙이 많습니다. 최신성에는 좋지만, 응답 속도와 비용이 올라가고, 검색 결과 품질에 모델이 휘둘릴 수 있습니다.
넷째, 도구 정의가 너무 많습니다. 모델 입장에서는 매번 어떤 도구를 써야 하는지 판단해야 하므로, 단순 대화에서도 도구 선택 부담이 커질 수 있습니다.
이 프롬프트를 참고해서 직접 만들 때 핵심만 추리면
실전용으로는 이렇게 압축하는 게 좋습니다.
1. 정체성: 너는 어떤 역할의 AI인가.
2. 우선순위: 시스템 지시 > 안전 > 사용자 요청 > 스타일.
3. 최신성: 현재 정보, 가격, 정책, 인물 직위, 제품 정보는 검색한다.
4. 안전: 불법, 위험, 자해, 악성코드, 고위험 조언은 제한한다.
5. 출력 스타일: 사용자의 목적에 맞게 짧게/길게/표/문서형을 조절한다.
6. 도구 사용: 개인 데이터는 커넥터, 공개 정보는 웹, 파일 작업은 전용 스킬을 사용한다.
7. 검증: 모르는 것은 모른다고 말하고, 추정은 추정으로 표시한다.
8. 파일 작업: 최종 산출물은 사용자가 받을 수 있는 위치에 저장한다.
CL4R1T4S/ANTHROPIC/CLAUDE-FABLE-5.md at main · elder-plinius/CL4R1T4S
LEAKED SYSTEM PROMPTS FOR CHATGPT, CLAUDE, GEMINI, GROK, PERPLEXITY, CURSOR, LOVABLE, REPLIT, AND MORE! - AI SYSTEMS TRANSPARENCY FOR ALL! 👐 - elder-plinius/CL4R1T4S
github.com
