에이전트 런타임 🤖

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.modelagents.defaults.models)는 첫 번째 /를 기준으로 분리됩니다.

  • 모델 설정 시 provider/model 형식을 사용하세요.
  • 모델 ID 자체에 /가 포함된 경우 (OpenRouter 스타일) 프로바이더 접두사를 포함하세요 (예: openrouter/moonshotai/kimi-k2).
  • 프로바이더를 생략하면 OpenClaw가 입력을 별칭 또는 기본 프로바이더의 모델로 처리합니다 (모델 ID에 /가 없을 때만 동작).

설정 (최소)

최소한 다음을 설정하세요:

  • agents.defaults.workspace
  • channels.whatsapp.allowFrom (강력히 권장)

다음: 그룹 채팅 🦞