에이전트 런타임 🤖
OpenClaw는 pi-mono에서 파생된 단일 임베디드 에이전트 런타임을 실행합니다.
워크스페이스 (필수)
OpenClaw는 단일 에이전트 워크스페이스 디렉터리(agents.defaults.workspace)를 도구와 컨텍스트를 위한 에이전트의 유일한 작업 디렉터리(cwd)로 사용합니다.
권장: openclaw setup으로 ~/.openclaw/openclaw.json이 없으면 생성하고 워크스페이스 파일을 초기화하세요.
전체 워크스페이스 구조 + 백업 가이드: 에이전트 워크스페이스
agents.defaults.sandbox가 활성화된 경우, 비메인 세션은
agents.defaults.sandbox.workspaceRoot 하위의 세션별 워크스페이스로 오버라이드할 수 있습니다
(게이트웨이 설정 참고).
부트스트랩 파일 (주입됨)
agents.defaults.workspace 내에서 OpenClaw가 기대하는 사용자 편집 가능 파일:
AGENTS.md— 동작 지침 + “메모리”SOUL.md— 페르소나, 경계, 톤TOOLS.md— 사용자가 관리하는 도구 메모 (예:imsg,sag, 관례)BOOTSTRAP.md— 최초 실행 의식 (완료 후 삭제)IDENTITY.md— 에이전트 이름/분위기/이모지USER.md— 사용자 프로필 + 선호 호칭
새 세션의 첫 턴에서 OpenClaw가 이 파일들의 내용을 에이전트 컨텍스트에 직접 주입합니다.
빈 파일은 건너뜁니다. 큰 파일은 프롬프트를 가볍게 유지하기 위해 잘리고 마커로 표시됩니다 (전체 내용은 파일을 직접 읽으세요).
파일이 누락된 경우 OpenClaw는 “missing file” 마커 한 줄을 주입합니다 (openclaw setup이 안전한 기본 템플릿을 생성합니다).
BOOTSTRAP.md는 새 워크스페이스 (다른 부트스트랩 파일이 없는 상태)에서만 생성됩니다. 의식을 완료한 후 삭제하면 이후 재시작 시 다시 생성되지 않습니다.
부트스트랩 파일 생성을 완전히 비활성화하려면 (사전 준비된 워크스페이스용):
{ agent: { skipBootstrap: true } }
내장 도구
핵심 도구(read/exec/edit/write 및 관련 시스템 도구)는 도구 정책에 따라 항상 사용 가능합니다. apply_patch는 선택 사항이며 tools.exec.applyPatch로 제어됩니다. TOOLS.md는 어떤 도구가 존재하는지를 제어하지 않으며, 사용자가 원하는 사용 방식에 대한 안내입니다.
스킬
OpenClaw는 세 곳에서 스킬을 로드합니다 (이름 충돌 시 워크스페이스가 우선):
- 번들 (설치 시 포함)
- 관리형/로컬:
~/.openclaw/skills - 워크스페이스:
<workspace>/skills
스킬은 설정/환경으로 제어할 수 있습니다 (게이트웨이 설정의 skills 참고).
pi-mono 통합
OpenClaw는 pi-mono 코드베이스의 일부(모델/도구)를 재사용하지만, 세션 관리, 디스커버리, 도구 연결은 OpenClaw가 소유합니다.
- pi-coding 에이전트 런타임 없음.
~/.pi/agent나<workspace>/.pi설정은 참조하지 않음.
세션
세션 트랜스크립트는 JSONL로 저장됩니다:
~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl
세션 ID는 안정적이며 OpenClaw가 선택합니다. 레거시 Pi/Tau 세션 폴더는 읽지 않습니다.
스트리밍 중 조종
큐 모드가 steer인 경우 인바운드 메시지가 현재 실행에 주입됩니다.
큐는 각 도구 호출 후 확인되며, 대기 중인 메시지가 있으면
현재 assistant 메시지의 나머지 도구 호출이 건너뛰어지고 (“Skipped due to queued user message.” 오류 도구 결과), 다음 assistant 응답 전에 대기 중인 사용자 메시지가 주입됩니다.
큐 모드가 followup 또는 collect인 경우 인바운드 메시지는 현재 턴이 끝날 때까지 보류되고, 대기 중인 페이로드로 새 에이전트 턴이 시작됩니다.
모드 + 디바운스/캡 동작은 큐를 참고하세요.
블록 스트리밍은 완성된 assistant 블록을 즉시 전송합니다. 기본적으로 비활성화되어 있습니다 (agents.defaults.blockStreamingDefault: "off").
agents.defaults.blockStreamingBreak로 전송 시점을 조정하세요 (text_end vs message_end, 기본값: text_end).
agents.defaults.blockStreamingChunk로 소프트 블록 청킹을 제어하세요 (기본값:
800~1200자, 문단 구분 우선, 다음 줄바꿈, 마지막으로 문장).
agents.defaults.blockStreamingCoalesce로 스트리밍 청크를 결합하여
한 줄씩 보내는 스팸을 줄이세요 (유휴 기반 병합 후 전송). Telegram이 아닌 채널은 블록 응답을 활성화하려면 명시적으로 *.blockStreaming: true를 설정해야 합니다.
상세 도구 요약은 도구 시작 시 발생합니다 (디바운스 없음). Control UI는
에이전트 이벤트가 가능할 때 이를 통해 도구 출력을 스트리밍합니다.
자세한 내용: 스트리밍 + 청킹.
모델 참조
설정의 모델 참조 (예: agents.defaults.model 및 agents.defaults.models)는 첫 번째 /를 기준으로 분리됩니다.
- 모델 설정 시
provider/model형식을 사용하세요. - 모델 ID 자체에
/가 포함된 경우 (OpenRouter 스타일) 프로바이더 접두사를 포함하세요 (예:openrouter/moonshotai/kimi-k2). - 프로바이더를 생략하면 OpenClaw가 입력을 별칭 또는 기본 프로바이더의 모델로 처리합니다 (모델 ID에
/가 없을 때만 동작).
설정 (최소)
최소한 다음을 설정하세요:
agents.defaults.workspacechannels.whatsapp.allowFrom(강력히 권장)
다음: 그룹 채팅 🦞