콘텐츠로 이동

OpenClaw Docker 샌드박스 설정 및 메모리 관리 가이드

에이전트를 직접 운영하다 보면 보안과 기억력 사이에서 고민이 깊어지곤 합니다. 내 시스템을 안전하게 보호하면서도, 에이전트가 어제 나눈 대화를 잊지 않고 똑똑하게 행동하길 바라게 되죠. OpenClaw에서 Docker Sandboxing과 Memory를 어떻게 다루는지 알면 이런 고민을 깔끔하게 해결할 수 있습니다.

OpenClaw의 Docker Sandboxing과 Memory 작동 방식에 대한 모든 것을 정리해 드릴게요.


네, 있습니다. Sandboxing 문서를 확인해 보세요. Docker 전용 설정 방법은 Docker 문서에 자세히 나와 있습니다.


Docker가 제한적으로 느껴지는데, 모든 기능을 어떻게 활성화하나요?

섹션 제목: “Docker가 제한적으로 느껴지는데, 모든 기능을 어떻게 활성화하나요?”

기본 이미지는 보안을 최우선으로 고려하여 node 사용자로 실행됩니다. 그래서 시스템 패키지나 Homebrew, 내장 브라우저 등이 포함되어 있지 않아요. 더 강력한 환경을 원하신다면 다음 방법을 추천합니다.

  • 캐시가 유지되도록 OPENCLAW_HOME_VOLUME을 사용해 /home/node 경로를 유지하세요.
  • OPENCLAW_DOCKER_APT_PACKAGES를 사용해 필요한 시스템 의존성을 이미지에 포함하세요.
  • 다음 명령어로 Playwright 브라우저를 설치하세요: node /app/node_modules/playwright-core/cli.js install chromium
  • PLAYWRIGHT_BROWSERS_PATH를 설정하고 해당 경로가 잘 유지되는지 확인하세요.

하나의 에이전트로 DM은 개인적으로 유지하고 그룹은 공개/샌드박스화할 수 있나요?

섹션 제목: “하나의 에이전트로 DM은 개인적으로 유지하고 그룹은 공개/샌드박스화할 수 있나요?”

네, 가능합니다. 개인적인 트래픽은 DM으로, 공개적인 트래픽은 그룹으로 분리되어 있다면 말이죠.

agents.defaults.sandbox.mode: "non-main" 설정을 사용해 보세요. 이렇게 하면 그룹이나 채널 세션(non-main keys)은 Docker 내에서 실행되고, 메인 DM 세션은 호스트 환경에 그대로 유지됩니다.


호스트 폴더를 Sandbox에 어떻게 바인딩하나요?

섹션 제목: “호스트 폴더를 Sandbox에 어떻게 바인딩하나요?”

agents.defaults.sandbox.docker.binds 설정을 ["host:path:mode"] 형식으로 지정하면 됩니다.

{
agents: {
defaults: {
sandbox: {
docker: {
binds: ["/home/user/src:/src:ro"]
}
}
}
}
}

민감한 데이터가 포함된 경우 반드시 :ro (읽기 전용) 옵션을 사용하세요. 바인딩을 사용하면 Sandbox의 파일 시스템 벽을 우회하게 된다는 점도 잊지 마세요.


OpenClaw의 Memory는 에이전트 workspace에 저장되는 Markdown 파일일 뿐입니다.

  • 일일 노트: memory/YYYY-MM-DD.md에 저장됩니다.
  • 정리된 장기 노트: MEMORY.md에 저장됩니다 (메인/비공개 세션 전용).

또한 OpenClaw는 silent pre-compaction memory flush 기능을 실행합니다. 이는 자동 압축(auto-compaction)이 일어나기 전에 모델이 중요한 내용을 지속 가능한 노트로 기록하도록 유도하는 역할을 합니다.


Memory가 자꾸 잊어버려요. 어떻게 기억하게 만드나요?

섹션 제목: “Memory가 자꾸 잊어버려요. 어떻게 기억하게 만드나요?”

에이전트에게 특정 사실을 Memory에 기록해달라고 직접 요청해 보세요. 장기적으로 기억해야 할 내용은 MEMORY.md에, 단기적인 맥락은 memory/YYYY-MM-DD.md에 기록하는 것이 좋습니다.

만약 계속해서 기억하지 못한다면, Gateway가 매번 실행될 때마다 동일한 workspace를 사용하고 있는지 확인해 보세요.


Semantic Memory 검색에 OpenAI API key가 필요한가요?

섹션 제목: “Semantic Memory 검색에 OpenAI API key가 필요한가요?”

OpenAI embeddings를 사용할 때만 필요합니다. Codex OAuth는 채팅과 대화 완성(completions) 기능만 제공하며, embeddings 접근 권한은 주지 않기 때문입니다.

OpenClaw는 OpenAI, Gemini, 또는 로컬 임베딩 모델을 모두 지원합니다. 외부 API를 쓰고 싶지 않다면 memorySearch.provider = "local"로 설정해서 로컬 모델을 사용하세요.


Memory는 영구적으로 유지되나요? 제한 사항은 무엇인가요?

섹션 제목: “Memory는 영구적으로 유지되나요? 제한 사항은 무엇인가요?”

Memory 파일은 디스크에 저장되며 사용자가 직접 삭제하기 전까지 영구적으로 유지됩니다. 제한 요소는 모델의 성능이 아니라 여러분의 저장 공간 용량입니다.

하지만 **세션 컨텍스트(session context)**는 여전히 모델의 컨텍스트 윈도우 크기에 제한을 받습니다. 대화가 길어지면 내용이 압축되거나 잘릴 수 있죠. 바로 이럴 때 필요한 부분만 다시 컨텍스트로 불러오기 위해 Memory 검색 기능이 존재하는 것입니다.

더 궁금한 점이 있다면 AI Setup Assistant에게 물어보세요!

OpenClaw

OpenClaw Expert

아직 막혀 있나요?

이 문서에서 답을 못 찾았다면 OpenClaw Expert에게 바로 물어보세요.