에이전트 런타임
OpenClaw는 단일 임베디드 에이전트 런타임을 실행합니다.워크스페이스(필수)
OpenClaw는 단일 에이전트 워크스페이스 디렉터리(agents.defaults.workspace)를 도구와 컨텍스트를 위한 에이전트의 유일한 작업 디렉터리(cwd)로 사용합니다.
권장 사항: openclaw setup을 사용해 ~/.openclaw/openclaw.json이 없으면 생성하고 워크스페이스 파일을 초기화하세요.
전체 워크스페이스 레이아웃 + 백업 가이드: Agent workspace
agents.defaults.sandbox가 활성화되어 있으면, 비메인 세션은
agents.defaults.sandbox.workspaceRoot 아래의 세션별 워크스페이스로 이를 재정의할 수 있습니다(
Gateway configuration 참조).
부트스트랩 파일(주입됨)
agents.defaults.workspace 내부에서 OpenClaw는 다음 사용자 편집 가능 파일을 예상합니다.
AGENTS.md— 운영 지침 + “메모리”SOUL.md— 페르소나, 경계, 톤TOOLS.md— 사용자가 유지 관리하는 도구 메모(예:imsg,sag, 규칙)BOOTSTRAP.md— 일회성 첫 실행 의식(완료 후 삭제됨)IDENTITY.md— 에이전트 이름/분위기/이모지USER.md— 사용자 프로필 + 선호하는 호칭
openclaw setup이 안전한 기본 템플릿을 생성합니다).
BOOTSTRAP.md는 완전히 새로운 워크스페이스에서만 생성됩니다(다른 부트스트랩 파일이 없는 경우). 의식을 완료한 뒤 삭제하면 이후 재시작에서 다시 생성되지 않아야 합니다.
부트스트랩 파일 생성을 완전히 비활성화하려면(사전 시드된 워크스페이스용) 다음을 설정하세요:
내장 도구
핵심 도구(read/exec/edit/write 및 관련 시스템 도구)는 도구 정책의 적용을 받으면서 항상 사용할 수 있습니다.apply_patch는 선택 사항이며 tools.exec.applyPatch로 제어됩니다. TOOLS.md는 어떤 도구가 존재하는지를 제어하지 않으며, 어떻게 사용되기를 원하는지에 대한 지침입니다.
Skills
OpenClaw는 다음 위치에서 Skills를 로드합니다(우선순위 높은 순):- 워크스페이스:
<workspace>/skills - 프로젝트 에이전트 Skills:
<workspace>/.agents/skills - 개인 에이전트 Skills:
~/.agents/skills - 관리형/로컬:
~/.openclaw/skills - 번들됨(설치와 함께 제공)
- 추가 Skill 폴더:
skills.load.extraDirs
skills 참조).
런타임 경계
임베디드 에이전트 런타임은 Pi 에이전트 코어(모델, 도구, 프롬프트 파이프라인)를 기반으로 구축됩니다. 세션 관리, discovery, 도구 연결, 채널 전달은 그 코어 위의 OpenClaw 소유 계층입니다.세션
세션 transcript는 다음 위치에 JSONL로 저장됩니다.~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl
스트리밍 중 조정
큐 모드가steer이면 인바운드 메시지가 현재 실행에 주입됩니다.
대기된 조정은 현재 assistant 턴이 도구 호출 실행을 마친 뒤,
다음 LLM 호출 전에 전달됩니다. 이제 조정은 현재 assistant 메시지의
남은 도구 호출을 건너뛰지 않으며, 대신 다음 모델 경계에서 대기된
메시지를 주입합니다.
큐 모드가 followup 또는 collect이면 인바운드 메시지는 현재 턴이 끝날 때까지
보류되며, 그다음 대기된 페이로드로 새 에이전트 턴이 시작됩니다. 모드 + 디바운스/상한 동작은
Queue를 참조하세요.
블록 스트리밍은 완료된 assistant 블록을 끝나는 즉시 전송합니다. 이는
기본적으로 꺼져 있습니다(agents.defaults.blockStreamingDefault: "off").
경계는 agents.defaults.blockStreamingBreak로 조정합니다(text_end 또는 message_end, 기본값은 text_end).
소프트 블록 청크 분할은 agents.defaults.blockStreamingChunk로 제어합니다(기본값
800–1200자, 문단 구분 우선, 그다음 줄바꿈, 문장은 마지막).
스트리밍된 청크는 agents.defaults.blockStreamingCoalesce로 병합해
한 줄짜리 스팸을 줄일 수 있습니다(전송 전 idle 기반 병합). Telegram이 아닌 채널은
블록 답글을 활성화하려면 명시적으로 *.blockStreaming: true가 필요합니다.
상세한 도구 요약은 도구 시작 시 출력되며(디바운스 없음), Control UI는
가능할 때 에이전트 이벤트를 통해 도구 출력을 스트리밍합니다.
자세한 내용: Streaming + chunking.
모델 ref
config의 모델 ref(예:agents.defaults.model 및 agents.defaults.models)는 첫 번째 /를 기준으로 분리하여 파싱됩니다.
- 모델을 구성할 때는
provider/model을 사용하세요. - 모델 ID 자체에
/가 포함되는 경우(OpenRouter 스타일), provider 접두사를 포함하세요(예:openrouter/moonshotai/kimi-k2). - provider를 생략하면 OpenClaw는 먼저 별칭을 시도하고, 그다음 정확한 모델 ID에 대한 고유한 구성 provider 일치를 시도한 후, 마지막으로 구성된 기본 provider로 대체합니다. 해당 provider가 더 이상 구성된 기본 모델을 제공하지 않으면, OpenClaw는 오래되어 제거된 provider 기본값을 표시하는 대신 첫 번째 구성된 provider/model로 대체합니다.
구성(최소)
최소한 다음을 설정하세요:agents.defaults.workspacechannels.whatsapp.allowFrom(강력 권장)
다음: Group Chats 🦞