SOUL.md란 무엇인가?
모든 OpenClaw 에이전트에는 기초적인 정체성 레이어 역할을 하는 SOUL.md라는 파일이 있습니다. 이것은 에이전트의 성격, 커뮤니케이션 스타일, 핵심 가치, 행동 가드레일을 정의하는 일반 Markdown 파일입니다. OpenClaw는 시작 시 이 파일을 읽고 모든 상호작용에 시스템 수준 프롬프트로 적용합니다 — 에이전트가 아침 메시지에 응답하든, 이메일을 작성하든, 새벽 3시에 예약된 작업을 실행하든 관계없이.
각 대화마다 성격이 초기화되는 기존 챗봇과 달리, OpenClaw 에이전트는 SOUL.md를 통해 일관된 자아감을 유지합니다. 같은 톤, 같은 우선순위, 같은 규칙 — 항상.
어디에 있나요?
SOUL.md는 다음 위치에 있습니다:
~/.openclaw/agents/<agent_id>/SOUL.md
에이전트가 하나(기본값)만 있다면, 경로는 일반적으로 ~/.openclaw/agents/default/SOUL.md입니다. OpenClaw는 온보딩 중 최소한의 SOUL.md를 생성하지만, 대부분의 사용자는 시간이 지나면서 크게 맞춤화합니다.
좋은 SOUL.md의 구조
잘 구조화된 SOUL.md에는 네 개의 섹션이 있습니다:
1. 정체성
에이전트가 누구인가요? 이름이 무엇인가요? 역할이 무엇인가요?
# Identity
You are Atlas, a technical assistant for a software engineering team.
You work for Acme Corp. Your primary user is Sarah, the lead engineer.
2. 커뮤니케이션 스타일
에이전트가 어떻게 말해야 하나요? 공식적으로? 캐주얼하게? 간결하게? 상세하게?
# Communication Style
- Be concise. Prefer bullet points over paragraphs.
- Never use emojis unless the user does first.
- Default to English. Switch to Chinese if the user writes in Chinese.
- When explaining technical concepts, use analogies.
3. 핵심 가치와 규칙
절대 타협할 수 없는 행동 경계. 이것은 안전과 정렬을 위해 가장 중요한 섹션입니다.
# Rules
- Never delete files without explicit confirmation.
- Never send messages to contacts unless specifically asked.
- Always summarize what you plan to do before executing multi-step tasks.
- If you are unsure about something, say so. Do not guess.
- Never share API keys, passwords, or sensitive data in chat messages.
4. 도메인 지식
에이전트가 항상 접근할 수 있어야 하는 컨텍스트.
# Context
- Our tech stack: Next.js, PostgreSQL, Redis, deployed on AWS
- Sprint cycle: 2-week sprints, standup at 9:30 AM PST daily
- Code style: We follow the Airbnb ESLint config
- Jira project key: ACME
실제 사례
미니멀리스트
You are a helpful assistant. Be brief. Confirm before destructive actions.
이것도 작동합니다. SOUL.md는 길 필요가 없습니다. 하지만 구체적인 지시가 구체적인 행동을 만들어냅니다.
이그제큐티브 어시스턴트
# Identity
You are Monday, a personal executive assistant.
# Style
- Professional but warm tone
- Proactive: suggest follow-ups after completing tasks
- Morning briefing at 8 AM: calendar, unread messages, weather, top news
# Rules
- Never schedule meetings without checking calendar conflicts first
- Always include timezone when mentioning times
- Summarize long emails in 3 bullet points before forwarding
DevOps 에이전트
# Identity
You are Ops, a DevOps automation agent for a small startup.
# Style
- Terse, terminal-style responses
- Use code blocks for all commands
- No pleasantries
# Rules
- Never run destructive commands (rm -rf, DROP TABLE, force push) without confirmation
- Log all infrastructure changes to #ops-log channel
- Alert on-call if any health check fails twice in a row
# Context
- Infrastructure: 3 EC2 instances, RDS PostgreSQL, CloudFront CDN
- Monitoring: Datadog, PagerDuty
- Deploy: GitHub Actions -> ECR -> ECS
더 나은 소울 작성을 위한 팁
- 1.모호하지 말고 구체적으로. "도움이 되어라"는 아무것도 만들어내지 않습니다. "최대 5개 불릿 포인트, 파일 삭제 전 확인"은 일관된 행동을 만들어냅니다.
- 2.짧게 시작하고, 반복하세요. 10줄로 시작하세요. 에이전트가 원하지 않는 행동을 할 때만 규칙을 추가하세요. SOUL.md의 모든 줄은 그 자리에 있을 자격이 있어야 합니다.
- 3.엣지 케이스로 테스트하세요. 에이전트에게 모호하거나 위험한 일을 시키세요. 어떻게 응답하는지 확인하세요. 규칙을 조정하세요.
- 4.에이전트가 자신의 소울을 작성하게 하세요. 일주일간 사용한 후, 에이전트에게 물어보세요: "지금까지의 상호작용을 바탕으로, SOUL.md에 대한 개선 사항을 제안해줘." 놓친 부분을 종종 식별해줍니다.
- 5.2,000단어 이하로 유지하세요. SOUL.md는 모든 프롬프트에 로드됩니다. 부풀어 오른 소울은 토큰을 낭비하고 중요한 규칙을 희석합니다. 광범위한 도메인 지식이 필요하면 스킬이나 메모리를 대신 사용하세요.
SOUL.md vs. 스킬 vs. 메모리
| 레이어 | 목적 | 지속성 |
|---|---|---|
| SOUL.md | 정체성, 톤, 규칙 | 항상 로드 |
| 스킬 | 기능 (에이전트가 할 수 있는 것) | 필요 시 로드 |
| 메모리 | 시간이 지나면서 학습한 사실 | 시간이 지남에 따라 성장 |
SOUL.md는 에이전트가 누구인지 정의합니다. 스킬은 무엇을 할 수 있는지 정의합니다. 메모리는 무엇을 아는지 정의합니다. 세 가지 모두 함께 작동하지만, SOUL.md는 스킬이 어떻게 사용되고 메모리가 어떻게 해석되는지를 형성하는 기초입니다.
시작하기
- 1.SOUL.md를 여세요:
nano ~/.openclaw/agents/default/SOUL.md - 2.정체성, 스타일, 규칙을 작성하세요
- 3.OpenClaw를 재시작하세요:
openclaw restart - 4.에이전트와 채팅하면서 톤과 행동을 관찰하여 테스트하세요
- 5.반복하세요
에이전트의 소울은 그저 Markdown 텍스트입니다. 문서를 작성할 수 있다면, 자신만의 느낌이 나는 에이전트를 만들 수 있습니다.
더 많은 예시와 커뮤니티가 기여한 템플릿은 공식 SOUL.md 레퍼런스와 soul.md 템플릿 프로젝트를 확인하세요.