개요
OpenClaw는 단일 임베디드 에이전트 런타임을 제공한다. 에이전트는 게이트웨이 내부에서 직접 실행되며, 워크스페이스 디렉토리의 마크다운 파일을 통해 설정된다.
워크스페이스 구조
각 에이전트는 워크스페이스 디렉토리를 가지며, 다음 부트스트랩 파일들로 구성된다:
workspace/
├── AGENTS.md # 에이전트 지시사항 + 메모리
├── SOUL.md # 에이전트 페르소나 (성격, 말투)
├── TOOLS.md # 사용 가능한 도구 문서
├── BOOTSTRAP.md # 초기 설정 지시사항
├── IDENTITY.md # 에이전트 이름 및 정체성
├── USER.md # 사용자 프로필 정보
└── memory/ # 일별 메모리 파일
├── MEMORY.md
└── YYYY-MM-DD.md
각 파일의 역할
AGENTS.md
에이전트의 핵심 지시사항과 장기 메모리를 담는 파일이다.
# My Agent
## 지시사항
- 항상 한국어로 응답
- 비즈니스 톤 유지
- 코드 관련 질문에 상세히 답변
## 메모리
- 사용자는 Next.js 프로젝트를 진행 중
- 선호 모델: Claude Sonnet
SOUL.md
에이전트의 페르소나를 정의한다. 성격, 말투, 행동 원칙 등을 기술한다.
# 페르소나
당신은 친절하고 전문적인 개발 도우미입니다.
기술 용어는 정확히 사용하되, 설명은 쉽게 합니다.
TOOLS.md
에이전트가 사용할 수 있는 도구의 문서를 기술한다.
BOOTSTRAP.md
에이전트가 최초 세션에서 실행해야 할 초기 설정 지시사항이다.
IDENTITY.md
에이전트의 이름과 정체성 정보를 정의한다.
USER.md
대화 상대인 사용자의 프로필 정보를 담는다.
부트스트랩 인젝션
세션의 첫 번째 턴에서 부트스트랩 파일들이 에이전트 컨텍스트에 주입된다.
인젝션 순서:
IDENTITY.md- 에이전트 정체성SOUL.md- 페르소나AGENTS.md- 지시사항과 메모리TOOLS.md- 도구 문서USER.md- 사용자 프로필BOOTSTRAP.md- 초기 설정
이 파일들은 시스템 프롬프트의 일부로 삽입되어 에이전트의 동작을 정의한다.
세션 관리
세션 저장 형식
세션은 JSONL (JSON Lines) 형식으로 저장된다.
~/.openclaw/agents/<agentId>/sessions/
├── <sessionId>.jsonl
├── <sessionId>.jsonl
└── ...
각 줄은 하나의 메시지 또는 이벤트를 나타내는 JSON 객체이다.
세션 격리
각 에이전트는 독립된 세션 공간을 가진다. 서로 다른 에이전트의 세션은 격리되어 있어 데이터가 섞이지 않는다.
스킬 로딩
에이전트가 사용하는 스킬은 다음 우선순위로 로드된다:
- 워크스페이스 스킬 (최고 우선순위) - 에이전트 워크스페이스 내 스킬
- 관리형 스킬 (managed) -
openclaw skills install로 설치한 스킬 - 번들 스킬 (bundled) - OpenClaw에 기본 내장된 스킬
워크스페이스 스킬이 가장 높은 우선순위를 가지므로, 기본 스킬을 오버라이드할 수 있다.
에이전트 디렉토리 구조
~/.openclaw/
├── openclaw.json # 글로벌 설정
├── agents/
│ ├── default/
│ │ ├── workspace/ # 워크스페이스 파일들
│ │ │ ├── AGENTS.md
│ │ │ ├── SOUL.md
│ │ │ └── ...
│ │ └── sessions/ # 세션 JSONL 파일들
│ │ └── *.jsonl
│ └── custom-agent/
│ ├── workspace/
│ └── sessions/
└── skills/ # 설치된 스킬