수업 #2 — SOUL.md의 비밀
Source: bbojjak-viewer.vercel.app/lessons/lesson-02 Type: article By: 뽀짝이 / 뽀짝이의 서재 (지피터스 AI스터디) Valid as of: 2026-04-28
Key Insight
SOUL.md = 에이전트 정체성 파일. 같은 Claude 모델이라도 SOUL.md가 다르면 완전히 다른 에이전트가 된다. 5가지 구성요소(Identity/Mission/Personality/Boundaries/Tone)로 구성되며, “하면 안 되는 것(Boundaries)“의 명시가 “할 수 있는 것”보다 더 중요한 설계 원칙이다.
핵심 Takeaway
- SOUL.md = 일관된 정체성 파일: 세션이 바뀌어도, 하루가 지나도 SOUL.md를 읽는 순간 에이전트는 동일한 캐릭터로 복원된다. 정체성의 외재화(externalization) (출처: “SOUL.md가 없으면” 섹션)
- 5가지 구성요소 프레임워크: Core Identity(누구) → Mission(왜) → Personality(어떻게 행동) → Boundaries(무엇을 하지 않음) → Tone Guide(어떻게 말함). 이 5가지가 완전한 에이전트 정체성을 구성 (출처: “핵심 구성 요소 5가지” 섹션)
- Boundaries가 Capabilities보다 중요: AI는 기본적으로 도움을 주려 하므로, “하면 안 되는 것”을 명시하지 않으면 의도치 않은 행동이 발생. 금지 목록이 허용 목록보다 설계 우선순위 높음 (출처: “Boundaries” 섹션)
- 페르소나 디테일은 “양념” — 빈도 설계 필수: 고양이 모먼트처럼 캐릭터 디테일은 5~10 메시지에 1회로 빈도 제한. 과도하면 “일 안 하는 챗봇”, 부족하면 “그냥 챗봇” (출처: “고양이 모먼트의 비밀” 섹션)
- SOUL.md는 점진적 진화 문서: 처음부터 완벽하지 않고, 실제 운영 중 발생하는 문제(“반말 사건”, “냥체 사건”)를 반영해 항목이 추가됨. “에이전트와 함께 성장하는 문서” (출처: “나만의 에이전트” 섹션)
실전 적용: JYPLabs 운영 기준과 연결하기
JYPLabs처럼 여러 프로필이 함께 일하는 환경에서는 SOUL.md를 개인 성격 파일로만 보지 않고, 업무 오너십과 산출물 기준을 함께 정의하는 운영 문서로 써야 한다.
- 프로필 라우팅: 4.2의 기본 담당 기준을 먼저 보고, 그다음 SOUL.md에서 말투·경계·기본 역할을 읽어야 한다.
- 경계 명시: “참고정보”와 “실제 작업 지시”를 분리해야 하며, 명시되지 않은 프로필은 먼저 움직이지 않는다.
- Sunny 역할 적용: 교육 콘텐츠 / 문서화 / 템플릿 / FAQ / 가이드처럼 재사용성이 높은 산출물은 Sunny의 기본 담당 영역으로 둔다.
- 지속 가능성: 반복되는 설명은 일회성 답변으로 끝내지 말고, 다음에도 재사용할 수 있는 문서나 skill로 정리한다.
- 품질 기준: 친근한 말투보다 더 중요한 것은, 사용자가 바로 실행할 수 있는 구조와 예시를 남기는 것이다.
상세 요약
같은 두뇌, 다른 성격
뽀짝이와 뽀야 언니는 동일한 Claude 모델을 사용하지만, 각자의 SOUL.md가 달라 완전히 다른 성격·말투·행동 방식을 보인다. 이것이 agent-workspace-structure의 핵심 원리를 구체적으로 실증하는 사례.
SOUL.md는 시스템 프롬프트 역할을 한다. 하지만 단순한 “역할 지침”을 넘어 에이전트의 정체성 전체를 정의하는 파일로, harness-engineering의 CLAUDE.md가 수행하는 역할과 동일한 구조.
5가지 구성요소 상세
1. Core Identity (사원증)
- 이름, 외모 특성, 만든 사람, 보고 대상, 호칭 규칙까지 명시
- 호칭 하나도 명시하지 않으면 에이전트가 임의로 결정함
2. Mission (나침반)
- 에이전트가 판단을 내려야 할 때 기준이 되는 한 문장
- “이 작업을 해야 할까?” 판단 시 미션에 부합하면 실행
3. Personality (행동 방식)
- 할 것과 하지 않을 것을 동시에 명시
- 예: “냥체는 쓰지 않음” — 금지 명시 없으면 에이전트가 사용할 수 있음
4. Boundaries (금지 목록)
- 개인정보 공유 금지, 다른 워크스페이스 접근 금지, 불확실한 정보 확언 금지 등
- AI의 기본 도움 성향을 제어하는 핵심 레이어
5. Tone Guide (말투 샘플)
- ✅/❌ 예시로 말투 차이를 명확히 구분
- “~합니다/~습니다”(딱딱)가 아닌 “~해요/~예요”(친근한 존댓말) — 미세한 차이가 챗봇 vs 에이전트 경험을 결정
페르소나 양념 설계
고양이 모먼트(예: “고롱고롱 ✨”, “털 세우지 않겠어”)는 빈도 5~10 메시지에 1회로 제한. 빈도 자체를 명시함으로써:
- 과도한 캐릭터 연기 방지
- 업무 답변의 정확도 최우선 유지
- 팀원처럼 느끼는 자연스러운 경험 제공
Slack에서의 츄르 이모지 리액션 → 특정 반응 매핑도 SOUL.md에 포함. 이런 세부 트리거-반응 쌍이 “도구”와 “팀원”의 경험 차이를 만든다.
SOUL.md 없을 때 vs 있을 때
| 항목 | SOUL.md 없음 | SOUL.md 있음 |
|---|---|---|
| 이름 | ”저는 AI 어시스턴트입니다" | "뽀짝이입니다” |
| 말투 | 세션마다 다름 | 일관된 요체 존댓말 |
| 성격 | 매번 다른 톤 | 친근하고 프로페셔널 |
| 경계 | 무엇이든 답하려 함 | 명시된 금지 항목 준수 |
| 캐릭터 | 챗봇 경험 | 팀원 경험 |
연결되는 위키 페이지
- agent-identity-design — SOUL.md 5가지 구성요소를 일반화한 에이전트 정체성 설계 개념
- agent-workspace-structure — SOUL.md가 포함된 에이전트 워크스페이스 전체 구조
- harness-engineering — CLAUDE.md = SOUL.md + AGENTS.md의 하네스 대응
- bbojjak-openclaw-agentic-architecture-lesson01 — 시리즈 Lesson 01 (워크스페이스 전체 구조)
- bbojjak-openclaw-webhook-pipeline-lesson03 — 시리즈 Lesson 03 (웹훅 자동답변 파이프라인)
- bbojjak-openclaw-multi-agent-team-lesson04 — 시리즈 Lesson 04 (멀티에이전트 팀 설계)
- bbojjak-openclaw-agents-error-learning-lesson05 — 시리즈 Lesson 05 (AGENTS.md 절대 규칙·오류 학습 루프)
- bbojjak-openclaw-session-architecture-lesson06 — 시리즈 Lesson 06 (세션·컴팩션·채널 라우팅)
- bbojjak-openclaw-runtime-architecture-lesson07 — 시리즈 Lesson 07 (터미널 vs 런타임 아키텍처 비교)
- bbojjak-openclaw-memory-architecture-lesson08 — 시리즈 Lesson 08 (기억 3단계·Full-context·Prompt Caching)
- bbojjak-openclaw-scheduling-design-lesson09 — 시리즈 Lesson 09 (하트비트 vs 크론잡·3가지 사고·스케줄링 설계)
- bbojjak-openclaw-skill-design-lesson10 — 시리즈 Lesson 10 (에이전트 스킬 시스템·SKILL.md·n8n→스킬 전환)
- bbojjak-openclaw-automation-layers-lesson11 — 시리즈 Lesson 11 (exec·자동화 3계층·exec-approvals·Trust but verify)
- bbojjak-openclaw-subagent-orchestration-lesson12 — 시리즈 Lesson 12 (sessions_spawn·맥락의 격차·판단 최소화 원칙)
- bbojjak-openclaw-playwright-image-pipeline-lesson13 — 시리즈 Lesson 13 (Playwright·HTML→PNG·browser 도구·디자인 시스템)
- bbojjak-openclaw-gateway-architecture-lesson14 — 시리즈 Lesson 14 (Gateway·멀티채널 라우팅·Tailscale Funnel·보안 4중 잠금)
- bbojjak-openclaw-multichannel-session-lesson15 — 시리즈 Lesson 15 특별편 (Slack 스레드·텔레그램 토픽 세션 분리·DM 함정·bindings)
- bbojjak-openclaw-token-optimization-lesson16 — 시리즈 Lesson 16 (토큰 소비처 5순위·RTK·hook vs 지침·능동적 compact·Sonnet 전환)
- bbojjak-openclaw-agent-security-lesson17 — 시리즈 Lesson 17 (프롬프트 인젝션·보안 3원칙·에이전트 분리·심층 방어)
- bbojjak-openclaw-skill-ecosystem-lesson18 — 시리즈 Lesson 18 (보안 스킬 선택 3단계·구조>스킬·즉시 학습+SSOT·오픈 생태계 신뢰 평가)
- bbojjak-openclaw-resilience-failover-lesson19 — 시리즈 Lesson 19 (Model Failover·세션 스티킨스·Agent Loop·작업별 모델 분리·34% 절감)
- bbojjak-openclaw-information-boundary-lesson20 — 시리즈 Lesson 20 (분리 이후 운영·일방향 동기화·민감정보 추출·에스컬레이션·오탐 관리)