빠른 답변과 실제 환경 설정(로컬 개발, VPS, 다중 에이전트, OAuth/API 키, 모델 장애 조치)을 위한 심층 문제 해결을 제공합니다. 런타임 진단은 문제 해결을 참고하세요. 전체 구성 참조는 구성을 참고하세요.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
문제가 발생했을 때 처음 60초
-
빠른 상태 확인(첫 확인)
빠른 로컬 요약: OS + 업데이트, gateway/service 도달 가능성, 에이전트/세션, provider 구성 + 런타임 문제(Gateway에 도달할 수 있을 때).
-
붙여넣을 수 있는 보고서(공유해도 안전)
로그 꼬리 포함 읽기 전용 진단(토큰은 마스킹됨).
-
데몬 + 포트 상태
supervisor 런타임과 RPC 도달 가능성, 프로브 대상 URL, 서비스가 사용했을 가능성이 높은 구성을 표시합니다.
-
심층 프로브
지원되는 경우 채널 프로브를 포함해 실시간 Gateway 상태 프로브를 실행합니다 (도달 가능한 Gateway가 필요함). 상태를 참고하세요.
-
최신 로그 추적
RPC가 내려가 있으면 다음으로 대체하세요.파일 로그는 서비스 로그와 별개입니다. 로깅 및 문제 해결을 참고하세요.
-
doctor 실행(복구)
구성/상태를 복구/마이그레이션하고 상태 확인을 실행합니다. Doctor를 참고하세요.
-
Gateway 스냅샷
실행 중인 Gateway에 전체 스냅샷(WS 전용)을 요청합니다. 상태를 참고하세요.
빠른 시작 및 최초 실행 설정
최초 실행 Q&A — 설치, 온보딩, 인증 경로, 구독, 초기 실패 — 는 최초 실행 FAQ에 있습니다.OpenClaw란 무엇인가요?
OpenClaw를 한 문단으로 설명하면 무엇인가요?
OpenClaw를 한 문단으로 설명하면 무엇인가요?
가치 제안
가치 제안
- 사용자의 기기, 사용자의 데이터: 원하는 곳(Mac, Linux, VPS)에서 Gateway를 실행하고 workspace + session history를 로컬에 보관합니다.
- 웹 샌드박스가 아닌 실제 채널: WhatsApp/Telegram/Slack/Discord/Signal/iMessage 등과 지원되는 플랫폼의 모바일 음성 및 Canvas.
- 모델에 구애받지 않음: 에이전트별 라우팅과 장애 조치로 Anthropic, OpenAI, MiniMax, OpenRouter 등을 사용합니다.
- 로컬 전용 옵션: 원한다면 로컬 모델을 실행해 모든 데이터를 사용자 기기에 유지할 수 있습니다.
- 다중 에이전트 라우팅: 채널, 계정, 작업별로 별도 에이전트를 두고, 각 에이전트마다 자체 workspace와 기본값을 가질 수 있습니다.
- 오픈 소스이며 해킹 가능: 공급업체 종속 없이 검사, 확장, 자체 호스팅할 수 있습니다.
방금 설정했습니다 - 무엇을 먼저 해야 하나요?
방금 설정했습니다 - 무엇을 먼저 해야 하나요?
- 웹사이트 만들기(WordPress, Shopify 또는 간단한 정적 사이트).
- 모바일 앱 프로토타입 만들기(개요, 화면, API 계획).
- 파일과 폴더 정리(정리, 이름 지정, 태그 지정).
- Gmail을 연결하고 요약 또는 후속 조치를 자동화하기.
OpenClaw의 일상적인 상위 다섯 가지 사용 사례는 무엇인가요?
OpenClaw의 일상적인 상위 다섯 가지 사용 사례는 무엇인가요?
- 개인 브리핑: 관심 있는 받은편지함, 캘린더, 뉴스 요약.
- 조사 및 초안 작성: 이메일이나 문서를 위한 빠른 조사, 요약, 첫 초안.
- 알림 및 후속 조치: Cron 또는 Heartbeat 기반 알림과 체크리스트.
- 브라우저 자동화: 양식 작성, 데이터 수집, 반복적인 웹 작업.
- 기기 간 조율: 휴대폰에서 작업을 보내고, Gateway가 서버에서 실행한 뒤, 결과를 채팅으로 돌려받습니다.
OpenClaw가 SaaS의 리드 생성, 아웃리치, 광고, 블로그에 도움이 될 수 있나요?
OpenClaw가 SaaS의 리드 생성, 아웃리치, 광고, 블로그에 도움이 될 수 있나요?
웹 개발에서 Claude Code와 비교했을 때 장점은 무엇인가요?
웹 개발에서 Claude Code와 비교했을 때 장점은 무엇인가요?
- 세션 간 영구 메모리 + workspace
- 다중 플랫폼 접근(WhatsApp, Telegram, TUI, WebChat)
- 도구 오케스트레이션(브라우저, 파일, 일정, 훅)
- 항상 켜져 있는 Gateway(VPS에서 실행하고 어디서나 상호작용)
- 로컬 브라우저/화면/카메라/실행을 위한 Nodes
Skills 및 자동화
repo를 더럽히지 않고 skills를 사용자 지정하려면 어떻게 하나요?
repo를 더럽히지 않고 skills를 사용자 지정하려면 어떻게 하나요?
~/.openclaw/skills/<name>/SKILL.md에 넣거나, ~/.openclaw/openclaw.json의 skills.load.extraDirs를 통해 폴더를 추가하세요. 우선순위는 <workspace>/skills → <workspace>/.agents/skills → ~/.agents/skills → ~/.openclaw/skills → 번들 → skills.load.extraDirs이므로, 관리형 오버라이드는 git을 건드리지 않고도 번들 Skills보다 우선합니다. skill을 전역 설치해야 하지만 일부 에이전트에만 보이게 하려면, 공유 복사본은 ~/.openclaw/skills에 두고 agents.defaults.skills 및 agents.list[].skills로 표시 여부를 제어하세요. 업스트림에 올릴 가치가 있는 편집만 repo에 있어야 하며 PR로 제출해야 합니다.사용자 지정 폴더에서 skills를 로드할 수 있나요?
사용자 지정 폴더에서 skills를 로드할 수 있나요?
~/.openclaw/openclaw.json의 skills.load.extraDirs를 통해 추가 디렉터리를 추가하세요(가장 낮은 우선순위). 기본 우선순위는 <workspace>/skills → <workspace>/.agents/skills → ~/.agents/skills → ~/.openclaw/skills → 번들 → skills.load.extraDirs입니다. clawhub는 기본적으로 ./skills에 설치하며, OpenClaw는 다음 세션에서 이를 <workspace>/skills로 취급합니다. skill이 특정 에이전트에만 보여야 한다면 agents.defaults.skills 또는 agents.list[].skills와 함께 사용하세요.작업마다 다른 모델을 사용하려면 어떻게 하나요?
작업마다 다른 모델을 사용하려면 어떻게 하나요?
- Cron 작업: 격리된 작업은 작업별로
model오버라이드를 설정할 수 있습니다. - 하위 에이전트: 기본 모델이 다른 별도 에이전트로 작업을 라우팅합니다.
- 필요 시 전환:
/model을 사용해 언제든지 현재 세션 모델을 전환합니다.
무거운 작업을 하는 동안 bot이 멈춥니다. 이를 어떻게 오프로딩하나요?
무거운 작업을 하는 동안 bot이 멈춥니다. 이를 어떻게 오프로딩하나요?
/subagents를 사용하세요.
채팅에서 /status를 사용해 Gateway가 지금 무엇을 하고 있는지(그리고 바쁜지)를 확인하세요.토큰 팁: 긴 작업과 하위 에이전트는 모두 토큰을 소비합니다. 비용이 걱정된다면
agents.defaults.subagents.model을 통해 하위 에이전트에 더 저렴한 모델을 설정하세요.문서: 하위 에이전트, 백그라운드 작업.Discord에서 스레드에 묶인 하위 에이전트 세션은 어떻게 작동하나요?
Discord에서 스레드에 묶인 하위 에이전트 세션은 어떻게 작동하나요?
thread: true로sessions_spawn을 사용해 생성합니다(지속적인 후속 처리를 위해 선택적으로mode: "session"사용).- 또는
/focus <target>으로 수동 바인딩합니다. /agents로 바인딩 상태를 확인합니다./session idle <duration|off>및/session max-age <duration|off>로 자동 unfocus를 제어합니다./unfocus로 스레드를 분리합니다.
- 전역 기본값:
session.threadBindings.enabled,session.threadBindings.idleHours,session.threadBindings.maxAgeHours. - Discord 오버라이드:
channels.discord.threadBindings.enabled,channels.discord.threadBindings.idleHours,channels.discord.threadBindings.maxAgeHours. - 생성 시 자동 바인딩:
channels.discord.threadBindings.spawnSessions의 기본값은true입니다. 스레드 바인딩 세션 생성을 비활성화하려면false로 설정하세요.
하위 에이전트가 완료되었지만 완료 업데이트가 잘못된 위치로 갔거나 게시되지 않았습니다. 무엇을 확인해야 하나요?
하위 에이전트가 완료되었지만 완료 업데이트가 잘못된 위치로 갔거나 게시되지 않았습니다. 무엇을 확인해야 하나요?
- 완료 모드 하위 에이전트 전달은 바인딩된 스레드나 대화 경로가 있으면 이를 우선합니다.
- 완료 원점에 채널만 있는 경우, OpenClaw는 요청자 세션의 저장된 경로(
lastChannel/lastTo/lastAccountId)로 대체하여 직접 전달이 계속 성공할 수 있게 합니다. - 바인딩된 경로도, 사용할 수 있는 저장된 경로도 없으면 직접 전달이 실패할 수 있으며, 결과는 채팅에 즉시 게시되는 대신 대기열 세션 전달로 대체됩니다.
- 유효하지 않거나 오래된 대상도 여전히 대기열 대체 또는 최종 전달 실패를 강제할 수 있습니다.
- 자식의 마지막으로 보이는 assistant 응답이 정확한 silent token
NO_REPLY/no_reply이거나 정확히ANNOUNCE_SKIP이면, OpenClaw는 오래된 이전 진행 상황을 게시하는 대신 의도적으로 알림을 억제합니다. - 자식이 도구 호출만 한 뒤 시간 초과되면, 알림은 원시 도구 출력을 다시 재생하는 대신 이를 짧은 부분 진행 요약으로 축약할 수 있습니다.
Cron 또는 알림이 실행되지 않습니다. 무엇을 확인해야 하나요?
Cron 또는 알림이 실행되지 않습니다. 무엇을 확인해야 하나요?
Cron이 실행되었지만 채널에 아무것도 전송되지 않았습니다. 왜인가요?
Cron이 실행되었지만 채널에 아무것도 전송되지 않았습니다. 왜인가요?
--no-deliver/delivery.mode: "none"은 러너 대체 전송이 예상되지 않음을 의미합니다.- 공지 대상(
channel/to)이 없거나 올바르지 않으면 러너가 아웃바운드 전송을 건너뜁니다. - 채널 인증 실패(
unauthorized,Forbidden)는 러너가 전송을 시도했지만 자격 증명에 의해 차단되었음을 의미합니다. - 무음 격리 결과(
NO_REPLY/no_reply만 포함)는 의도적으로 전송 불가로 처리되므로, 러너도 대기 중인 대체 전송을 억제합니다.
message
도구로 직접 전송할 수 있습니다. --announce는 에이전트가 이미 전송하지 않은 최종 텍스트에 대한
러너 대체 경로만 제어합니다.디버그:격리된 Cron 실행이 모델을 전환하거나 한 번 재시도한 이유는 무엇인가요?
격리된 Cron 실행이 모델을 전환하거나 한 번 재시도한 이유는 무엇인가요?
LiveSessionModelSwitchError가 발생할 때 런타임 모델 인계를 유지하고
재시도할 수 있습니다. 재시도는 전환된 provider/model을 유지하며, 전환에 새 인증 프로필 오버라이드가
포함된 경우 Cron은 재시도하기 전에 그것도 유지합니다.관련 선택 규칙:- 적용 가능한 경우 Gmail 후크 모델 오버라이드가 먼저 적용됩니다.
- 그다음 작업별
model. - 그다음 저장된 Cron 세션 모델 오버라이드.
- 그다음 일반 에이전트/기본 모델 선택.
Linux에서 Skills를 어떻게 설치하나요?
Linux에서 Skills를 어떻게 설치하나요?
openclaw skills 명령을 사용하거나 Skills를 워크스페이스에 넣으세요. macOS Skills UI는 Linux에서 사용할 수 없습니다.
Skills는 https://clawhub.ai에서 찾아볼 수 있습니다.openclaw skills install은 활성 워크스페이스의 skills/
디렉터리에 기록합니다. 별도의 clawhub CLI는 직접 Skills를 게시하거나
동기화하려는 경우에만 설치하세요. 에이전트 간 공유 설치의 경우 Skill을
~/.openclaw/skills 아래에 두고, 어떤 에이전트가 볼 수 있는지 제한하려면
agents.defaults.skills 또는 agents.list[].skills를 사용하세요.OpenClaw가 일정에 따라 또는 백그라운드에서 지속적으로 작업을 실행할 수 있나요?
OpenClaw가 일정에 따라 또는 백그라운드에서 지속적으로 작업을 실행할 수 있나요?
Linux에서 Apple macOS 전용 Skills를 실행할 수 있나요?
Linux에서 Apple macOS 전용 Skills를 실행할 수 있나요?
metadata.openclaw.os와 필수 바이너리로 제한되며, Skills는 Gateway 호스트에서 사용 가능한 경우에만 시스템 프롬프트에 나타납니다. Linux에서는 게이팅을 오버라이드하지 않는 한 darwin 전용 Skills(apple-notes, apple-reminders, things-mac 등)가 로드되지 않습니다.지원되는 패턴은 세 가지입니다:옵션 A - Mac에서 Gateway 실행(가장 간단).
macOS 바이너리가 있는 곳에서 Gateway를 실행한 다음, Linux에서 원격 모드 또는 Tailscale을 통해 연결하세요. Gateway 호스트가 macOS이므로 Skills가 정상적으로 로드됩니다.옵션 B - macOS Node 사용(SSH 없음).
Linux에서 Gateway를 실행하고, macOS Node(메뉴 막대 앱)를 페어링한 뒤 Mac에서 Node Run Commands를 “Always Ask” 또는 “Always Allow”로 설정하세요. 필요한 바이너리가 Node에 있으면 OpenClaw는 macOS 전용 Skills를 사용 가능한 것으로 처리할 수 있습니다. 에이전트는 nodes 도구를 통해 해당 Skills를 실행합니다. “Always Ask”를 선택한 경우, 프롬프트에서 “Always Allow”를 승인하면 해당 명령이 허용 목록에 추가됩니다.옵션 C - SSH를 통해 macOS 바이너리 프록시(고급).
Gateway는 Linux에 유지하되, 필요한 CLI 바이너리가 Mac에서 실행되는 SSH 래퍼로 해석되도록 만드세요. 그런 다음 Skill이 계속 사용 가능하도록 Linux를 허용하도록 오버라이드하세요.-
바이너리에 대한 SSH 래퍼를 만듭니다(예: Apple Notes용
memo): -
Linux 호스트의
PATH에 래퍼를 둡니다(예:~/bin/memo). -
Linux를 허용하도록 Skill 메타데이터(워크스페이스 또는
~/.openclaw/skills)를 오버라이드합니다: - Skills 스냅샷이 새로 고쳐지도록 새 세션을 시작합니다.
Notion 또는 HeyGen 통합이 있나요?
Notion 또는 HeyGen 통합이 있나요?
- 사용자 지정 Skill / Plugin: 안정적인 API 접근에 가장 적합합니다(Notion/HeyGen 모두 API가 있습니다).
- 브라우저 자동화: 코드 없이 작동하지만 더 느리고 취약합니다.
- 클라이언트별 Notion 페이지 하나(컨텍스트 + 기본 설정 + 활성 작업).
- 세션 시작 시 에이전트에게 해당 페이지를 가져오도록 요청합니다.
skills/ 디렉터리에 배치됩니다. 에이전트 간 공유 Skills의 경우 ~/.openclaw/skills/<name>/SKILL.md에 두세요. 일부 에이전트만 공유 설치를 볼 수 있어야 한다면 agents.defaults.skills 또는 agents.list[].skills를 구성하세요. 일부 Skills는 Homebrew로 설치한 바이너리를 필요로 합니다. Linux에서는 Linuxbrew를 의미합니다(위의 Homebrew Linux FAQ 항목 참조). Skills, Skills 구성, ClawHub을 참조하세요.기존에 로그인된 Chrome을 OpenClaw와 함께 어떻게 사용하나요?
기존에 로그인된 Chrome을 OpenClaw와 함께 어떻게 사용하나요?
user 브라우저 프로필을 사용하세요:existing-session / user의 현재 제한 사항:- 작업은 CSS 선택자가 아니라 ref 기반입니다
- 업로드에는
ref/inputRef가 필요하며 현재 한 번에 파일 하나를 지원합니다 responsebody, PDF 내보내기, 다운로드 가로채기, 배치 작업에는 여전히 관리형 브라우저 또는 원시 CDP 프로필이 필요합니다
샌드박싱 및 메모리
전용 샌드박싱 문서가 있나요?
전용 샌드박싱 문서가 있나요?
Docker가 제한적으로 느껴집니다. 전체 기능을 어떻게 활성화하나요?
Docker가 제한적으로 느껴집니다. 전체 기능을 어떻게 활성화하나요?
node 사용자로 실행되므로
시스템 패키지, Homebrew 또는 번들 브라우저를 포함하지 않습니다. 더 완전한 설정을 원하면:- 캐시가 유지되도록
OPENCLAW_HOME_VOLUME으로/home/node를 영구화합니다. OPENCLAW_DOCKER_APT_PACKAGES로 시스템 의존성을 이미지에 포함합니다.- 번들 CLI를 통해 Playwright 브라우저를 설치합니다:
node /app/node_modules/playwright-core/cli.js install chromium PLAYWRIGHT_BROWSERS_PATH를 설정하고 해당 경로가 영구화되었는지 확인합니다.
하나의 에이전트로 DM은 개인용으로 유지하고 그룹은 공개/샌드박스 처리할 수 있나요?
하나의 에이전트로 DM은 개인용으로 유지하고 그룹은 공개/샌드박스 처리할 수 있나요?
agents.defaults.sandbox.mode: "non-main"을 사용하면 그룹/채널 세션(non-main 키)은 구성된 샌드박스 백엔드에서 실행되고, 메인 DM 세션은 호스트에서 유지됩니다. 백엔드를 선택하지 않으면 Docker가 기본 백엔드입니다. 그런 다음 tools.sandbox.tools를 통해 샌드박스 처리된 세션에서 사용할 수 있는 도구를 제한하세요.설정 안내 + 예제 구성: 그룹: 개인 DM + 공개 그룹주요 구성 참고: Gateway 구성호스트 폴더를 샌드박스에 어떻게 바인드하나요?
호스트 폴더를 샌드박스에 어떻게 바인드하나요?
메모리는 어떻게 작동하나요?
메모리는 어떻게 작동하나요?
- 일일 노트는
memory/YYYY-MM-DD.md - 선별된 장기 노트는
MEMORY.md(메인/개인 세션만)
메모리가 계속 잊어버립니다. 어떻게 유지되게 하나요?
메모리가 계속 잊어버립니다. 어떻게 유지되게 하나요?
MEMORY.md에,
단기 컨텍스트는 memory/YYYY-MM-DD.md에 넣습니다.이는 여전히 개선 중인 영역입니다. 모델에게 메모리를 저장하라고 상기시키면 도움이 됩니다.
모델은 무엇을 해야 하는지 알 것입니다. 계속 잊어버린다면 Gateway가 매번 같은
워크스페이스를 사용하고 있는지 확인하세요.문서: 메모리, 에이전트 워크스페이스.메모리는 영구적으로 유지되나요? 제한은 무엇인가요?
메모리는 영구적으로 유지되나요? 제한은 무엇인가요?
시맨틱 메모리 검색에 OpenAI API 키가 필요한가요?
시맨틱 메모리 검색에 OpenAI API 키가 필요한가요?
OPENAI_API_KEY 또는 models.providers.openai.apiKey)가 필요합니다.provider를 명시적으로 설정하지 않으면, OpenClaw는 API 키를 확인할 수 있을 때
provider를 자동 선택합니다(auth profile, models.providers.*.apiKey, 또는 env var).
OpenAI 키가 확인되면 OpenAI를 우선 사용하고, 그렇지 않으면 Gemini 키가 확인될 때
Gemini, 그다음 Voyage, 그다음 Mistral 순서로 사용합니다. 사용할 수 있는 원격 키가 없으면,
구성할 때까지 메모리 검색은 비활성화된 상태로 유지됩니다. 로컬 모델 경로가
구성되어 있고 존재하면 OpenClaw는
local을 우선합니다. Ollama는 memorySearch.provider = "ollama"를 명시적으로 설정한 경우 지원됩니다.로컬로 유지하고 싶다면 memorySearch.provider = "local"을 설정하세요(선택적으로
memorySearch.fallback = "none"도 설정). Gemini 임베딩을 사용하려면
memorySearch.provider = "gemini"를 설정하고 GEMINI_API_KEY(또는
memorySearch.remote.apiKey)를 제공하세요. OpenAI, Gemini, Voyage, Mistral, Ollama 또는 로컬 임베딩
모델을 지원합니다. 설정 세부 정보는 메모리를 참조하세요.디스크에서 항목이 있는 위치
OpenClaw와 함께 사용하는 모든 데이터가 로컬에 저장되나요?
OpenClaw와 함께 사용하는 모든 데이터가 로컬에 저장되나요?
- 기본적으로 로컬: 세션, 메모리 파일, 구성, 워크스페이스는 Gateway 호스트에 있습니다
(
~/.openclaw+ 워크스페이스 디렉터리). - 필요상 원격: 모델 provider(Anthropic/OpenAI 등)로 보내는 메시지는 해당 API로 전송되고, 채팅 플랫폼(WhatsApp/Telegram/Slack 등)은 메시지 데이터를 자체 서버에 저장합니다.
- 범위는 사용자가 제어: 로컬 모델을 사용하면 프롬프트가 사용자 머신에 머물지만, 채널 트래픽은 여전히 채널 서버를 거칩니다.
OpenClaw는 데이터를 어디에 저장하나요?
OpenClaw는 데이터를 어디에 저장하나요?
$OPENCLAW_STATE_DIR 아래에 있습니다(기본값: ~/.openclaw).| 경로 | 목적 |
|---|---|
$OPENCLAW_STATE_DIR/openclaw.json | 기본 구성(JSON5) |
$OPENCLAW_STATE_DIR/credentials/oauth.json | 레거시 OAuth 가져오기(처음 사용할 때 auth profile로 복사됨) |
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth-profiles.json | auth profile(OAuth, API 키, 선택적 keyRef/tokenRef) |
$OPENCLAW_STATE_DIR/secrets.json | file SecretRef provider용 선택적 파일 기반 secret payload |
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth.json | 레거시 호환성 파일(정적 api_key 항목 제거됨) |
$OPENCLAW_STATE_DIR/credentials/ | provider 상태(예: whatsapp/<accountId>/creds.json) |
$OPENCLAW_STATE_DIR/agents/ | 에이전트별 상태(agentDir + 세션) |
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/ | 대화 기록 및 상태(에이전트별) |
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/sessions.json | 세션 메타데이터(에이전트별) |
~/.openclaw/agent/*(openclaw doctor로 마이그레이션됨).워크스페이스(AGENTS.md, 메모리 파일, skills 등)는 별도이며 agents.defaults.workspace로 구성됩니다(기본값: ~/.openclaw/workspace).AGENTS.md / SOUL.md / USER.md / MEMORY.md는 어디에 있어야 하나요?
AGENTS.md / SOUL.md / USER.md / MEMORY.md는 어디에 있어야 하나요?
~/.openclaw가 아니라 에이전트 워크스페이스에 있습니다.- 워크스페이스(에이전트별):
AGENTS.md,SOUL.md,IDENTITY.md,USER.md,MEMORY.md,memory/YYYY-MM-DD.md, 선택적HEARTBEAT.md. 소문자 루트memory.md는 레거시 복구 입력 전용입니다. 두 파일이 모두 있으면openclaw doctor --fix가 이를MEMORY.md로 병합할 수 있습니다. - 상태 디렉터리(
~/.openclaw): 구성, 채널/provider 상태, auth profile, 세션, 로그, 공유 skills(~/.openclaw/skills).
~/.openclaw/workspace이며, 다음으로 구성할 수 있습니다.권장 백업 전략
권장 백업 전략
~/.openclaw 아래의 어떤 것도 커밋하지 마세요(자격 증명, 세션, 토큰 또는 암호화된 secret payload).
전체 복원이 필요하다면 워크스페이스와 상태 디렉터리를
별도로 모두 백업하세요(위의 마이그레이션 질문 참조).문서: 에이전트 워크스페이스.OpenClaw를 완전히 제거하려면 어떻게 하나요?
OpenClaw를 완전히 제거하려면 어떻게 하나요?
에이전트가 워크스페이스 밖에서 작업할 수 있나요?
에이전트가 워크스페이스 밖에서 작업할 수 있나요?
agents.defaults.sandbox 또는 에이전트별 sandbox 설정을 사용하세요. repo를 기본 작업 디렉터리로
사용하려면 해당 에이전트의 workspace를 repo 루트로 지정하세요. OpenClaw repo는 단지 소스 코드입니다.
에이전트가 그 안에서 작업하기를 의도한 경우가 아니라면 워크스페이스를 별도로 유지하세요.예시(repo를 기본 cwd로 사용):원격 모드: 세션 저장소는 어디에 있나요?
원격 모드: 세션 저장소는 어디에 있나요?
구성 기본 사항
구성 형식은 무엇인가요? 어디에 있나요?
구성 형식은 무엇인가요? 어디에 있나요?
$OPENCLAW_CONFIG_PATH에서 선택적 JSON5 구성을 읽습니다(기본값: ~/.openclaw/openclaw.json).~/.openclaw/workspace 기본 워크스페이스 포함).gateway.bind: "lan"(또는 "tailnet")을 설정했는데 이제 아무것도 수신하지 않거나 UI가 unauthorized라고 표시합니다
gateway.bind: "lan"(또는 "tailnet")을 설정했는데 이제 아무것도 수신하지 않거나 UI가 unauthorized라고 표시합니다
이제 localhost에서 토큰이 필요한 이유는 무엇인가요?
이제 localhost에서 토큰이 필요한 이유는 무엇인가요?
gateway.auth.token, gateway.auth.password, OPENCLAW_GATEWAY_TOKEN 또는 OPENCLAW_GATEWAY_PASSWORD를 명시적으로 구성하세요. 이렇게 하면 다른 로컬 프로세스가 Gateway를 호출하는 것을 차단합니다.다른 auth 경로를 선호한다면 password 모드를 명시적으로 선택할 수 있습니다(또는 identity-aware reverse proxy의 경우 trusted-proxy). 정말로 열린 loopback을 원한다면 구성에서 gateway.auth.mode: "none"을 명시적으로 설정하세요. Doctor는 언제든 토큰을 생성해 줄 수 있습니다: openclaw doctor --generate-gateway-token.구성을 변경한 후 재시작해야 하나요?
구성을 변경한 후 재시작해야 하나요?
gateway.reload.mode: "hybrid"(기본값): 안전한 변경은 hot-apply하고, 중요한 변경은 재시작hot,restart,off도 지원됩니다
재미있는 CLI 태그라인을 비활성화하려면 어떻게 하나요?
재미있는 CLI 태그라인을 비활성화하려면 어떻게 하나요?
cli.banner.taglineMode를 설정하세요.off: 태그라인 텍스트를 숨기지만 배너 제목/버전 줄은 유지합니다.default: 매번All your chats, one OpenClaw.를 사용합니다.random: 순환되는 재미/계절 태그라인(기본 동작).- 배너를 전혀 원하지 않는다면 env
OPENCLAW_HIDE_BANNER=1을 설정하세요.
웹 검색(및 웹 가져오기)을 활성화하려면 어떻게 하나요?
웹 검색(및 웹 가져오기)을 활성화하려면 어떻게 하나요?
web_fetch는 API 키 없이 작동합니다. web_search는 선택한
provider에 따라 달라집니다.- Brave, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Perplexity, Tavily 같은 API-backed provider에는 일반적인 API 키 설정이 필요합니다.
- Ollama Web Search는 키가 필요 없지만, 구성된 Ollama 호스트를 사용하며
ollama signin이 필요합니다. - DuckDuckGo는 키가 필요 없지만, 비공식 HTML 기반 통합입니다.
- SearXNG는 키가 필요 없고/self-hosted입니다.
SEARXNG_BASE_URL또는plugins.entries.searxng.config.webSearch.baseUrl을 구성하세요.
openclaw configure --section web을 실행하고 provider를 선택하세요.
환경 대안:- Brave:
BRAVE_API_KEY - Exa:
EXA_API_KEY - Firecrawl:
FIRECRAWL_API_KEY - Gemini:
GEMINI_API_KEY - Grok:
XAI_API_KEY - Kimi:
KIMI_API_KEY또는MOONSHOT_API_KEY - MiniMax Search:
MINIMAX_CODE_PLAN_KEY,MINIMAX_CODING_API_KEY또는MINIMAX_API_KEY - Perplexity:
PERPLEXITY_API_KEY또는OPENROUTER_API_KEY - SearXNG:
SEARXNG_BASE_URL - Tavily:
TAVILY_API_KEY
plugins.entries.<plugin>.config.webSearch.* 아래에 있습니다.
레거시 tools.web.search.* 공급자 경로는 호환성을 위해 일시적으로 계속 로드되지만, 새 구성에는 사용하지 않아야 합니다.
Firecrawl 웹 가져오기 폴백 구성은 plugins.entries.firecrawl.config.webFetch.* 아래에 있습니다.참고:- 허용 목록을 사용하는 경우
web_search/web_fetch/x_search또는group:web을 추가하세요. web_fetch는 기본적으로 활성화되어 있습니다(명시적으로 비활성화하지 않는 한).tools.web.fetch.provider를 생략하면 OpenClaw는 사용 가능한 자격 증명에서 준비된 첫 번째 가져오기 폴백 공급자를 자동 감지합니다. 현재 번들 공급자는 Firecrawl입니다.- 데몬은
~/.openclaw/.env또는 서비스 환경에서 env vars를 읽습니다.
config.apply가 내 구성을 지웠습니다. 어떻게 복구하고 방지하나요?
config.apply가 내 구성을 지웠습니다. 어떻게 복구하고 방지하나요?
config.apply는 전체 구성을 교체합니다. 부분 객체를 보내면 그 외의 모든 항목이 제거됩니다.현재 OpenClaw는 의도치 않은 덮어쓰기를 여러 방식으로 방지합니다.- OpenClaw가 소유한 구성 쓰기는 쓰기 전에 변경 후 전체 구성을 검증합니다.
- 유효하지 않거나 파괴적인 OpenClaw 소유 쓰기는 거부되고
openclaw.json.rejected.*로 저장됩니다. - 직접 편집으로 시작 또는 핫 리로드가 깨지면 Gateway는 닫힌 상태로 실패하거나 리로드를 건너뜁니다.
openclaw.json을 다시 쓰지는 않습니다. openclaw doctor --fix가 복구를 담당하며 거부된 파일을openclaw.json.clobbered.*로 저장하면서 마지막으로 정상 작동한 구성을 복원할 수 있습니다.
openclaw logs --follow에서Invalid config at,Config write rejected:, 또는config reload skipped (invalid config)를 확인하세요.- 활성 구성 옆의 최신
openclaw.json.clobbered.*또는openclaw.json.rejected.*를 검사하세요. openclaw config validate와openclaw doctor --fix를 실행하세요.- 의도한 키만
openclaw config set또는config.patch로 다시 복사하세요. - 마지막으로 정상 작동한 구성이나 거부된 페이로드가 없으면 백업에서 복원하거나
openclaw doctor를 다시 실행한 뒤 채널/모델을 다시 구성하세요. - 예상치 못한 일이었다면 버그를 신고하고 마지막으로 알려진 구성이나 백업을 포함하세요.
- 로컬 코딩 에이전트는 종종 로그나 기록에서 작동하는 구성을 재구성할 수 있습니다.
- 작은 변경에는
openclaw config set을 사용하세요. - 대화형 편집에는
openclaw configure를 사용하세요. - 정확한 경로나 필드 형태가 확실하지 않을 때는 먼저
config.schema.lookup을 사용하세요. 드릴다운을 위한 얕은 스키마 노드와 바로 아래 자식 요약을 반환합니다. - 부분 RPC 편집에는
config.patch를 사용하세요.config.apply는 전체 구성 교체에만 사용하세요. - 에이전트 실행에서 소유자 전용
gateway도구를 사용하는 경우에도tools.exec.ask/tools.exec.security에 대한 쓰기는 거부됩니다(동일한 보호된 exec 경로로 정규화되는 레거시tools.bash.*별칭 포함).
여러 기기에서 특화된 워커와 함께 중앙 Gateway를 실행하려면 어떻게 하나요?
여러 기기에서 특화된 워커와 함께 중앙 Gateway를 실행하려면 어떻게 하나요?
- Gateway(중앙): 채널(Signal/WhatsApp), 라우팅, 세션을 소유합니다.
- 노드(기기): Mac/iOS/Android가 주변 기기로 연결되어 로컬 도구(
system.run,canvas,camera)를 노출합니다. - 에이전트(워커): 특수 역할(예: “Hetzner 운영”, “개인 데이터”)을 위한 별도의 두뇌/작업 공간입니다.
- 하위 에이전트: 병렬 처리를 원할 때 메인 에이전트에서 백그라운드 작업을 생성합니다.
- TUI: Gateway에 연결하고 에이전트/세션을 전환합니다.
OpenClaw 브라우저를 헤드리스로 실행할 수 있나요?
OpenClaw 브라우저를 헤드리스로 실행할 수 있나요?
false(창 표시)입니다. 헤드리스는 일부 사이트에서 봇 방지 검사를 유발할 가능성이 더 높습니다. 브라우저를 참조하세요.헤드리스는 동일한 Chromium 엔진을 사용하며 대부분의 자동화(양식, 클릭, 스크래핑, 로그인)에서 작동합니다. 주요 차이점은 다음과 같습니다.- 보이는 브라우저 창이 없습니다(시각 자료가 필요하면 스크린샷을 사용하세요).
- 일부 사이트는 헤드리스 모드의 자동화에 더 엄격합니다(CAPTCHA, 봇 방지). 예를 들어 X/Twitter는 헤드리스 세션을 자주 차단합니다.
브라우저 제어에 Brave를 사용하려면 어떻게 하나요?
브라우저 제어에 Brave를 사용하려면 어떻게 하나요?
browser.executablePath를 Brave 바이너리(또는 Chromium 기반 브라우저)로 설정하고 Gateway를 다시 시작하세요.
전체 구성 예시는 브라우저를 참조하세요.원격 게이트웨이 및 노드
명령은 Telegram, gateway, 노드 사이에서 어떻게 전파되나요?
명령은 Telegram, gateway, 노드 사이에서 어떻게 전파되나요?
node.* → 노드 → Gateway → Telegram노드는 인바운드 공급자 트래픽을 보지 않습니다. 노드 RPC 호출만 수신합니다.Gateway가 원격으로 호스팅되는 경우 에이전트가 내 컴퓨터에 어떻게 액세스할 수 있나요?
Gateway가 원격으로 호스팅되는 경우 에이전트가 내 컴퓨터에 어떻게 액세스할 수 있나요?
node.* 도구(화면, 카메라, 시스템)를 호출할 수 있습니다.일반적인 설정:- 항상 켜져 있는 호스트(VPS/홈 서버)에서 Gateway를 실행합니다.
- Gateway 호스트와 컴퓨터를 같은 tailnet에 둡니다.
- Gateway WS에 접근 가능한지 확인합니다(tailnet 바인드 또는 SSH 터널).
- 로컬에서 macOS 앱을 열고 SSH를 통한 원격 모드(또는 직접 tailnet)로 연결하여 노드로 등록되게 합니다.
-
Gateway에서 노드를 승인합니다.
system.run을 사용할 수 있습니다. 신뢰하는 기기만
페어링하고 보안을 검토하세요.문서: 노드, Gateway 프로토콜, macOS 원격 모드, 보안.Tailscale은 연결되어 있는데 답장이 없습니다. 이제 어떻게 하나요?
Tailscale은 연결되어 있는데 답장이 없습니다. 이제 어떻게 하나요?
- Gateway 실행 중:
openclaw gateway status - Gateway 상태:
openclaw status - 채널 상태:
openclaw channels status
- Tailscale Serve를 사용하는 경우
gateway.auth.allowTailscale이 올바르게 설정되어 있는지 확인하세요. - SSH 터널로 연결하는 경우 로컬 터널이 실행 중이고 올바른 포트를 가리키는지 확인하세요.
- 허용 목록(DM 또는 그룹)에 계정이 포함되어 있는지 확인하세요.
두 OpenClaw 인스턴스가 서로 통신할 수 있나요(로컬 + VPS)?
두 OpenClaw 인스턴스가 서로 통신할 수 있나요(로컬 + VPS)?
openclaw agent --message ... --deliver로
다른 Gateway를 호출하는 스크립트를 실행합니다. 한 봇이 원격 VPS에 있다면 SSH/Tailscale을 통해 CLI가
해당 원격 Gateway를 가리키게 하세요(원격 액세스 참조).예시 패턴(대상 Gateway에 접근할 수 있는 머신에서 실행):여러 에이전트에 별도의 VPS가 필요한가요?
여러 에이전트에 별도의 VPS가 필요한가요?
VPS에서 SSH를 사용하는 대신 개인 노트북의 노드를 사용하는 이점이 있나요?
VPS에서 SSH를 사용하는 대신 개인 노트북의 노드를 사용하는 이점이 있나요?
- 인바운드 SSH가 필요 없습니다. 노드는 Gateway WebSocket으로 아웃바운드 연결하고 기기 페어링을 사용합니다.
- 더 안전한 실행 제어.
system.run은 해당 노트북의 노드 허용 목록/승인으로 제한됩니다. - 더 많은 기기 도구. 노드는
system.run외에도canvas,camera,screen을 노출합니다. - 로컬 브라우저 자동화. Gateway는 VPS에 두고, 노트북의 노드 호스트를 통해 Chrome을 로컬로 실행하거나, Chrome MCP를 통해 호스트의 로컬 Chrome에 연결하세요.
노드가 gateway 서비스를 실행하나요?
노드가 gateway 서비스를 실행하나요?
gateway, discovery, 호스팅된 Plugin 표면 변경에는 전체 재시작이 필요합니다.구성을 적용하는 API / RPC 방식이 있나요?
구성을 적용하는 API / RPC 방식이 있나요?
config.schema.lookup: 쓰기 전에 얕은 스키마 노드, 일치한 UI 힌트, 직계 하위 요약과 함께 하나의 config 하위 트리를 검사합니다config.get: 현재 스냅샷 + 해시를 가져옵니다config.patch: 안전한 부분 업데이트(대부분의 RPC 편집에 권장); 가능하면 핫 리로드하고 필요하면 재시작합니다config.apply: 전체 config를 검증 + 교체합니다; 가능하면 핫 리로드하고 필요하면 재시작합니다- 소유자 전용
gateway런타임 도구는 여전히tools.exec.ask/tools.exec.security재작성을 거부합니다. 레거시tools.bash.*별칭은 동일한 보호된 exec 경로로 정규화됩니다
첫 설치를 위한 최소한의 합리적인 config
첫 설치를 위한 최소한의 합리적인 config
VPS에서 Tailscale을 설정하고 Mac에서 연결하려면 어떻게 하나요?
VPS에서 Tailscale을 설정하고 Mac에서 연결하려면 어떻게 하나요?
-
VPS에 설치 + 로그인
-
Mac에 설치 + 로그인
- Tailscale 앱을 사용하고 같은 tailnet에 로그인합니다.
-
MagicDNS 활성화(권장)
- Tailscale 관리자 콘솔에서 MagicDNS를 활성화해 VPS가 안정적인 이름을 갖도록 합니다.
-
tailnet 호스트 이름 사용
- SSH:
ssh user@your-vps.tailnet-xxxx.ts.net - Gateway WS:
ws://your-vps.tailnet-xxxx.ts.net:18789
- SSH:
Mac node를 원격 Gateway(Tailscale Serve)에 연결하려면 어떻게 하나요?
Mac node를 원격 Gateway(Tailscale Serve)에 연결하려면 어떻게 하나요?
- VPS + Mac이 같은 tailnet에 있는지 확인하세요.
- Remote mode에서 macOS 앱을 사용하세요(SSH target은 tailnet 호스트 이름일 수 있습니다). 앱이 Gateway port를 터널링하고 node로 연결됩니다.
-
gateway에서 node를 승인합니다.
두 번째 laptop에 설치해야 하나요, 아니면 node만 추가하면 되나요?
두 번째 laptop에 설치해야 하나요, 아니면 node만 추가하면 되나요?
Env vars 및 .env 로딩
OpenClaw는 환경 변수를 어떻게 로드하나요?
OpenClaw는 환경 변수를 어떻게 로드하나요?
- 현재 작업 디렉터리의
.env ~/.openclaw/.env(즉$OPENCLAW_STATE_DIR/.env)의 전역 fallback.env
.env 파일 모두 기존 env vars를 덮어쓰지 않습니다.config에서 inline env vars를 정의할 수도 있습니다(프로세스 env에 없을 때만 적용됨).서비스를 통해 Gateway를 시작했더니 env vars가 사라졌습니다. 이제 어떻게 해야 하나요?
서비스를 통해 Gateway를 시작했더니 env vars가 사라졌습니다. 이제 어떻게 해야 하나요?
- 누락된 키를
~/.openclaw/.env에 넣으면 서비스가 shell env를 상속하지 않아도 선택됩니다. - shell import를 활성화합니다(선택형 편의 기능).
OPENCLAW_LOAD_SHELL_ENV=1, OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000.COPILOT_GITHUB_TOKEN을 설정했는데 models status에 "Shell env: off."가 표시됩니다. 왜 그런가요?
COPILOT_GITHUB_TOKEN을 설정했는데 models status에 "Shell env: off."가 표시됩니다. 왜 그런가요?
openclaw models status는 shell env import가 활성화되어 있는지 보고합니다. “Shell env: off”는
env vars가 누락되었다는 의미가 아닙니다. 단지 OpenClaw가 login shell을 자동으로 로드하지
않는다는 뜻입니다.Gateway가 서비스(launchd/systemd)로 실행되면 shell
environment를 상속하지 않습니다. 다음 중 하나로 해결하세요.-
token을
~/.openclaw/.env에 넣습니다. -
또는 shell import(
env.shellEnv.enabled: true)를 활성화합니다. -
또는 config
env블록에 추가합니다(없을 때만 적용됨).
COPILOT_GITHUB_TOKEN(또한 GH_TOKEN / GITHUB_TOKEN)에서 읽습니다.
/concepts/model-providers 및 /environment를 참조하세요.Sessions 및 여러 chats
새 conversation을 시작하려면 어떻게 하나요?
새 conversation을 시작하려면 어떻게 하나요?
/new 또는 /reset을 보내세요. Session management를 참조하세요./new를 보내지 않으면 sessions가 자동으로 reset되나요?
/new를 보내지 않으면 sessions가 자동으로 reset되나요?
session.idleMinutes 이후 만료될 수 있지만, 이는 기본적으로 비활성화되어 있습니다(기본값 0).
idle expiry를 활성화하려면 양수 값으로 설정하세요. 활성화되면 idle 기간 이후의 다음
메시지가 해당 chat key에 대한 새 session id를 시작합니다.
이는 transcripts를 삭제하지 않으며, 새 session을 시작할 뿐입니다.OpenClaw 인스턴스 팀(CEO 한 명과 여러 에이전트)을 만드는 방법이 있나요?
OpenClaw 인스턴스 팀(CEO 한 명과 여러 에이전트)을 만드는 방법이 있나요?
작업 중간에 컨텍스트가 잘린 이유는 무엇인가요? 어떻게 방지하나요?
작업 중간에 컨텍스트가 잘린 이유는 무엇인가요? 어떻게 방지하나요?
- 봇에게 현재 상태를 요약해서 파일에 쓰도록 요청합니다.
- 긴 작업 전에는
/compact를 사용하고, 주제를 전환할 때는/new를 사용합니다. - 중요한 컨텍스트를 워크스페이스에 보관하고 봇에게 다시 읽도록 요청합니다.
- 길거나 병렬로 진행되는 작업에는 하위 에이전트를 사용하여 메인 채팅을 더 작게 유지합니다.
- 이런 일이 자주 발생하면 더 큰 컨텍스트 창이 있는 모델을 선택합니다.
OpenClaw는 설치된 상태로 유지하면서 완전히 초기화하려면 어떻게 하나요?
OpenClaw는 설치된 상태로 유지하면서 완전히 초기화하려면 어떻게 하나요?
- 기존 config가 감지되면 온보딩에서도 초기화를 제공합니다. 온보딩(CLI)을 참고하세요.
- 프로필(
--profile/OPENCLAW_PROFILE)을 사용했다면 각 상태 디렉터리를 초기화하세요(기본값은~/.openclaw-<profile>). - 개발 초기화:
openclaw gateway --dev --reset(개발 전용; 개발 config + 자격 증명 + 세션 + 워크스페이스를 삭제합니다).
"context too large" 오류가 발생합니다. 어떻게 초기화하거나 압축하나요?
"context too large" 오류가 발생합니다. 어떻게 초기화하거나 압축하나요?
-
압축(대화는 유지하지만 이전 턴을 요약합니다):
또는 요약 방향을 지정하려면
/compact <instructions>를 사용하세요. -
초기화(동일한 채팅 키에 대해 새 세션 ID 사용):
- 이전 도구 출력을 정리하도록 세션 정리(
agents.defaults.contextPruning)를 활성화하거나 조정합니다. - 더 큰 컨텍스트 창이 있는 모델을 사용합니다.
"LLM request rejected: messages.content.tool_use.input field required"가 표시되는 이유는 무엇인가요?
"LLM request rejected: messages.content.tool_use.input field required"가 표시되는 이유는 무엇인가요?
input 없이 tool_use 블록을 생성했다는 뜻입니다.
일반적으로 세션 기록이 오래되었거나 손상되었음을 의미합니다(긴 스레드 이후나
도구/스키마 변경 후에 자주 발생).해결: /new로 새 세션을 시작하세요(독립 메시지).30분마다 Heartbeat 메시지를 받는 이유는 무엇인가요?
30분마다 Heartbeat 메시지를 받는 이유는 무엇인가요?
HEARTBEAT.md가 존재하지만 사실상 비어 있는 경우(빈 줄과 # Heading 같은 Markdown
헤더만 있는 경우), OpenClaw는 API 호출을 절약하기 위해 Heartbeat 실행을 건너뜁니다.
파일이 없으면 Heartbeat는 계속 실행되고 모델이 수행할 작업을 결정합니다.에이전트별 재정의는 agents.list[].heartbeat를 사용합니다. 문서: Heartbeat.WhatsApp 그룹에 "봇 계정"을 추가해야 하나요?
WhatsApp 그룹에 "봇 계정"을 추가해야 하나요?
groupPolicy: "allowlist").본인만 그룹 답장을 트리거할 수 있게 하려면:WhatsApp 그룹의 JID는 어떻게 얻나요?
WhatsApp 그룹의 JID는 어떻게 얻나요?
OpenClaw가 그룹에서 답장하지 않는 이유는 무엇인가요?
OpenClaw가 그룹에서 답장하지 않는 이유는 무엇인가요?
그룹/스레드는 DM과 컨텍스트를 공유하나요?
그룹/스레드는 DM과 컨텍스트를 공유하나요?
워크스페이스와 에이전트를 몇 개까지 만들 수 있나요?
워크스페이스와 에이전트를 몇 개까지 만들 수 있나요?
- 디스크 증가: 세션 + 트랜스크립트는
~/.openclaw/agents/<agentId>/sessions/아래에 저장됩니다. - 토큰 비용: 에이전트가 많을수록 동시 모델 사용량이 늘어납니다.
- 운영 부담: 에이전트별 인증 프로필, 워크스페이스, 채널 라우팅이 필요합니다.
- 에이전트마다 하나의 활성 워크스페이스를 유지하세요(
agents.defaults.workspace). - 디스크가 커지면 오래된 세션(JSONL 또는 스토어 항목)을 정리하세요.
openclaw doctor를 사용해 남은 워크스페이스와 프로필 불일치를 찾으세요.
여러 봇이나 채팅을 동시에 실행할 수 있나요(Slack), 그리고 어떻게 설정해야 하나요?
여러 봇이나 채팅을 동시에 실행할 수 있나요(Slack), 그리고 어떻게 설정해야 하나요?
- 항상 켜져 있는 Gateway 호스트(VPS/Mac mini).
- 역할별 에이전트 하나(바인딩).
- 해당 에이전트에 바인딩된 Slack 채널.
- 필요할 때 Chrome MCP 또는 Node를 통한 로컬 브라우저.
모델, 장애 조치, 인증 프로필
모델 Q&A — 기본값, 선택, 별칭, 전환, 장애 조치, 인증 프로필 — 는 모델 FAQ에 있습니다.Gateway: 포트, “이미 실행 중”, 원격 모드
Gateway는 어떤 포트를 사용하나요?
Gateway는 어떤 포트를 사용하나요?
gateway.port는 WebSocket + HTTP(Control UI, 훅 등)를 위한 단일 멀티플렉스 포트를 제어합니다.우선순위:openclaw gateway status가 "Runtime: running"이라고 하지만 "Connectivity probe: failed"라고 표시되는 이유는 무엇인가요?
openclaw gateway status가 "Runtime: running"이라고 하지만 "Connectivity probe: failed"라고 표시되는 이유는 무엇인가요?
openclaw gateway status를 사용하고 다음 줄을 신뢰하세요.Probe target:(프로브가 실제로 사용한 URL)Listening:(포트에 실제로 바인딩된 항목)Last gateway error:(프로세스는 살아 있지만 포트가 리스닝하지 않을 때 흔한 근본 원인)
openclaw gateway status에서 "Config (cli)"와 "Config (service)"가 다르게 표시되는 이유는 무엇인가요?
openclaw gateway status에서 "Config (cli)"와 "Config (service)"가 다르게 표시되는 이유는 무엇인가요?
--profile / OPENCLAW_STATE_DIR 불일치).수정:--profile / 환경에서 실행하세요."another gateway instance is already listening"은 무슨 뜻인가요?
"another gateway instance is already listening"은 무슨 뜻인가요?
ws://127.0.0.1:18789). 바인딩이 EADDRINUSE로 실패하면 다른 인스턴스가 이미 리스닝 중임을 나타내는 GatewayLockError를 던집니다.수정: 다른 인스턴스를 중지하거나, 포트를 비우거나, openclaw gateway --port <port>로 실행하세요.OpenClaw를 원격 모드(클라이언트가 다른 곳의 Gateway에 연결)로 실행하려면 어떻게 하나요?
OpenClaw를 원격 모드(클라이언트가 다른 곳의 Gateway에 연결)로 실행하려면 어떻게 하나요?
gateway.mode: "remote"를 설정하고 원격 WebSocket URL을 가리키세요. 선택적으로 공유 비밀 원격 자격 증명을 함께 사용할 수 있습니다.openclaw gateway는gateway.mode가local일 때만 시작됩니다(또는 오버라이드 플래그를 전달한 경우).- macOS 앱은 설정 파일을 감시하고 이 값들이 변경되면 실시간으로 모드를 전환합니다.
gateway.remote.token/.password는 클라이언트 측 원격 자격 증명일 뿐이며, 그 자체로 로컬 Gateway 인증을 활성화하지 않습니다.
Control UI에 "unauthorized"가 표시됩니다(또는 계속 재연결됩니다). 이제 어떻게 해야 하나요?
Control UI에 "unauthorized"가 표시됩니다(또는 계속 재연결됩니다). 이제 어떻게 해야 하나요?
gateway.bind를 tailnet으로 설정했지만 바인딩할 수 없고 아무것도 리스닝하지 않습니다
gateway.bind를 tailnet으로 설정했지만 바인딩할 수 없고 아무것도 리스닝하지 않습니다
tailnet 바인딩은 네트워크 인터페이스에서 Tailscale IP(100.64.0.0/10)를 선택합니다. 머신이 Tailscale에 연결되어 있지 않거나 인터페이스가 내려가 있으면 바인딩할 대상이 없습니다.수정:- 해당 호스트에서 Tailscale을 시작하세요(100.x 주소를 갖도록), 또는
gateway.bind: "loopback"/"lan"으로 전환하세요.
tailnet은 명시적입니다. auto는 loopback을 선호합니다. tailnet 전용 바인딩을 원할 때는 gateway.bind: "tailnet"을 사용하세요.같은 호스트에서 여러 Gateway를 실행할 수 있나요?
같은 호스트에서 여러 Gateway를 실행할 수 있나요?
OPENCLAW_CONFIG_PATH(인스턴스별 설정)OPENCLAW_STATE_DIR(인스턴스별 상태)agents.defaults.workspace(워크스페이스 격리)gateway.port(고유 포트)
- 인스턴스마다
openclaw --profile <name> ...를 사용하세요(~/.openclaw-<name>자동 생성). - 각 프로필 설정에서 고유한
gateway.port를 설정하세요(또는 수동 실행 시--port전달). - 프로필별 서비스를 설치하세요:
openclaw --profile <name> gateway install.
ai.openclaw.<profile>; 레거시 com.openclaw.*, openclaw-gateway-<profile>.service, OpenClaw Gateway (<profile>)).
전체 가이드: 여러 Gateway."invalid handshake" / 코드 1008은 무슨 뜻인가요?
"invalid handshake" / 코드 1008은 무슨 뜻인가요?
connect 프레임이기를 기대합니다. 다른 것을 받으면 연결을
코드 1008(정책 위반)로 닫습니다.흔한 원인:- WS 클라이언트 대신 브라우저에서 HTTP URL(
http://...)을 열었습니다. - 잘못된 포트나 경로를 사용했습니다.
- 프록시 또는 터널이 인증 헤더를 제거했거나 Gateway가 아닌 요청을 보냈습니다.
- WS URL을 사용하세요:
ws://<host>:18789(또는 HTTPS라면wss://...). - 일반 브라우저 탭에서 WS 포트를 열지 마세요.
- 인증이 켜져 있으면
connect프레임에 토큰/비밀번호를 포함하세요.
로깅 및 디버깅
로그는 어디에 있나요?
로그는 어디에 있나요?
logging.file을 통해 안정적인 경로를 설정할 수 있습니다. 파일 로그 수준은 logging.level로 제어됩니다. 콘솔 상세도는 --verbose와 logging.consoleLevel로 제어됩니다.가장 빠른 로그 tail:- macOS:
$OPENCLAW_STATE_DIR/logs/gateway.log및gateway.err.log(기본값:~/.openclaw/logs/...; 프로필은~/.openclaw-<profile>/logs/...사용) - Linux:
journalctl --user -u openclaw-gateway[-<profile>].service -n 200 --no-pager - Windows:
schtasks /Query /TN "OpenClaw Gateway (<profile>)" /V /FO LIST
Gateway 서비스를 시작/중지/재시작하려면 어떻게 하나요?
Gateway 서비스를 시작/중지/재시작하려면 어떻게 하나요?
Windows에서 터미널을 닫았습니다. OpenClaw를 어떻게 재시작하나요?
Windows에서 터미널을 닫았습니다. OpenClaw를 어떻게 재시작하나요?
Gateway는 올라와 있지만 응답이 도착하지 않습니다. 무엇을 확인해야 하나요?
Gateway는 올라와 있지만 응답이 도착하지 않습니다. 무엇을 확인해야 하나요?
"Gateway에서 연결이 끊어짐: 이유 없음" - 이제 어떻게 해야 하나요?
"Gateway에서 연결이 끊어짐: 이유 없음" - 이제 어떻게 해야 하나요?
Telegram setMyCommands가 실패합니다. 무엇을 확인해야 하나요?
Telegram setMyCommands가 실패합니다. 무엇을 확인해야 하나요?
BOT_COMMANDS_TOO_MUCH: Telegram 메뉴 항목이 너무 많습니다. OpenClaw는 이미 Telegram 제한에 맞게 줄이고 더 적은 명령으로 다시 시도하지만, 일부 메뉴 항목은 여전히 제거해야 합니다. Plugin/skill/사용자 지정 명령을 줄이거나, 메뉴가 필요하지 않다면channels.telegram.commands.native를 비활성화하세요.TypeError: fetch failed,Network request for 'setMyCommands' failed!또는 비슷한 네트워크 오류: VPS를 사용 중이거나 프록시 뒤에 있다면 outbound HTTPS가 허용되어 있고api.telegram.org에 대해 DNS가 동작하는지 확인하세요.
TUI에 출력이 표시되지 않습니다. 무엇을 확인해야 하나요?
TUI에 출력이 표시되지 않습니다. 무엇을 확인해야 하나요?
Gateway를 완전히 중지한 다음 시작하려면 어떻게 하나요?
Gateway를 완전히 중지한 다음 시작하려면 어떻게 하나요?
쉽게 설명: openclaw gateway restart와 openclaw gateway
쉽게 설명: openclaw gateway restart와 openclaw gateway
openclaw gateway restart: 백그라운드 서비스(launchd/systemd)를 다시 시작합니다.openclaw gateway: 이 터미널 세션에서 Gateway를 포그라운드로 실행합니다.
openclaw gateway를 사용하세요.무언가 실패할 때 더 자세한 정보를 가장 빠르게 얻는 방법
무언가 실패할 때 더 자세한 정보를 가장 빠르게 얻는 방법
--verbose로 Gateway를 시작하세요. 그런 다음 채널 인증, 모델 라우팅, RPC 오류에 대한 로그 파일을 확인하세요.미디어 및 첨부 파일
내 skill이 이미지/PDF를 생성했지만 아무것도 전송되지 않았습니다
내 skill이 이미지/PDF를 생성했지만 아무것도 전송되지 않았습니다
MEDIA:<path-or-url> 줄(한 줄 단독)이 포함되어야 합니다. OpenClaw 어시스턴트 설정 및 에이전트 전송을 참조하세요.CLI 전송:- 대상 채널이 outbound 미디어를 지원하고 허용 목록에 의해 차단되지 않아야 합니다.
- 파일이 provider의 크기 제한 안에 있어야 합니다(이미지는 최대 2048px로 리사이즈됨).
tools.fs.workspaceOnly=true는 로컬 경로 전송을 작업 영역, temp/media-store, sandbox 검증 파일로 제한합니다.tools.fs.workspaceOnly=false는 에이전트가 이미 읽을 수 있는 호스트 로컬 파일을MEDIA:로 전송할 수 있게 하지만, 미디어와 안전한 문서 유형(이미지, 오디오, 비디오, PDF, Office 문서)에만 해당합니다. 일반 텍스트와 비밀처럼 보이는 파일은 여전히 차단됩니다.
보안 및 액세스 제어
OpenClaw를 인바운드 DM에 노출해도 안전한가요?
OpenClaw를 인바운드 DM에 노출해도 안전한가요?
- DM 가능 채널의 기본 동작은 페어링입니다.
- 알 수 없는 발신자는 페어링 코드를 받으며, bot은 해당 메시지를 처리하지 않습니다.
- 다음으로 승인:
openclaw pairing approve --channel <channel> [--account <id>] <code> - 대기 중인 요청은 채널당 3개로 제한됩니다. 코드가 도착하지 않았다면
openclaw pairing list --channel <channel> [--account <id>]를 확인하세요.
- DM을 공개적으로 열려면 명시적 opt-in이 필요합니다(
dmPolicy: "open"및 allowlist"*").
openclaw doctor를 실행하세요.프롬프트 인젝션은 공개 bot에서만 문제가 되나요?
프롬프트 인젝션은 공개 bot에서만 문제가 되나요?
- 신뢰할 수 없는 콘텐츠를 요약할 때 읽기 전용 또는 도구 비활성화 “reader” 에이전트 사용
- 도구가 활성화된 에이전트에서는
web_search/web_fetch/browser를 꺼두기 - 디코딩된 파일/문서 텍스트도 신뢰할 수 없는 것으로 취급하기: OpenResponses
input_file및 미디어 첨부 파일 추출은 원시 파일 텍스트를 전달하는 대신 추출된 텍스트를 명시적인 외부 콘텐츠 경계 마커로 감쌉니다 - sandboxing 및 엄격한 도구 allowlist 사용
내 bot에 자체 이메일, GitHub 계정 또는 전화번호가 있어야 하나요?
내 bot에 자체 이메일, GitHub 계정 또는 전화번호가 있어야 하나요?
내 문자 메시지를 자율적으로 처리하게 해도 되며, 안전한가요?
내 문자 메시지를 자율적으로 처리하게 해도 되며, 안전한가요?
- DM을 페어링 모드 또는 엄격한 allowlist로 유지하세요.
- 사용자를 대신해 메시지를 보내게 하려면 별도 번호 또는 계정을 사용하세요.
- 초안을 작성하게 한 뒤, 전송 전에 승인하세요.
개인 비서 작업에 더 저렴한 모델을 사용할 수 있나요?
개인 비서 작업에 더 저렴한 모델을 사용할 수 있나요?
Telegram에서 /start를 실행했지만 페어링 코드를 받지 못했습니다
Telegram에서 /start를 실행했지만 페어링 코드를 받지 못했습니다
dmPolicy: "pairing"이 활성화된 경우에만 전송됩니다. /start 자체로는 코드가 생성되지 않습니다.대기 중인 요청 확인:dmPolicy: "open"을 설정하세요.WhatsApp: 내 연락처에 메시지를 보내나요? 페어링은 어떻게 동작하나요?
WhatsApp: 내 연락처에 메시지를 보내나요? 페어링은 어떻게 동작하나요?
channels.whatsapp.selfChatMode를 활성화하세요.채팅 명령, 작업 중단, 그리고 “멈추지 않음”
내부 시스템 메시지가 채팅에 표시되지 않게 하려면 어떻게 하나요?
내부 시스템 메시지가 채팅에 표시되지 않게 하려면 어떻게 하나요?
verboseDefault가 on으로 설정된 bot 프로필을
사용 중이 아닌지 확인하세요.문서: 생각 및 verbose, 보안.실행 중인 작업을 중지/취소하려면 어떻게 하나요?
실행 중인 작업을 중지/취소하려면 어떻게 하나요?
/로 시작하는 독립 메시지로 보내야 하지만, 일부 단축 명령(예: /status)은 allowlist에 있는 발신자에게 inline으로도 동작합니다.Telegram에서 Discord 메시지를 보내려면 어떻게 하나요? ("Cross-context messaging denied")
Telegram에서 Discord 메시지를 보내려면 어떻게 하나요? ("Cross-context messaging denied")
bot이 빠르게 연속으로 보내는 메시지를 "무시"하는 것처럼 느껴지는 이유는 무엇인가요?
bot이 빠르게 연속으로 보내는 메시지를 "무시"하는 것처럼 느껴지는 이유는 무엇인가요?
/queue를 사용하세요.steer- 현재 실행의 다음 모델 경계까지 대기 중인 모든 steering을 큐에 넣음queue- 기존의 한 번에 하나씩 steeringfollowup- 메시지를 한 번에 하나씩 실행collect- 메시지를 배치 처리하고 한 번만 답장steer-backlog- 지금 steer한 다음 backlog 처리interrupt- 현재 실행을 중단하고 새로 시작
steer입니다. 후속 모드에는 debounce:0.5s cap:25 drop:summarize 같은 옵션을 추가할 수 있습니다. 명령 큐 및 스티어링 큐를 참조하세요.기타
API 키를 사용할 때 Anthropic의 기본 모델은 무엇인가요?
API 키를 사용할 때 Anthropic의 기본 모델은 무엇인가요?
ANTHROPIC_API_KEY를 설정하거나 인증 프로필에 Anthropic API 키를 저장하면 인증이 활성화되지만, 실제 기본 모델은 agents.defaults.model.primary에 구성한 값입니다(예: anthropic/claude-sonnet-4-6 또는 anthropic/claude-opus-4-6). No credentials found for profile "anthropic:default"가 표시되면, 실행 중인 에이전트의 예상 auth-profiles.json에서 Gateway가 Anthropic 자격 증명을 찾지 못했다는 뜻입니다.아직 막혀 있나요? Discord에서 질문하거나 GitHub 토론을 여세요.