OpenClaw 로 개인 비서 구축하기
OpenClaw 는 Pi 에이전트를 위한 WhatsApp + Telegram + Discord + iMessage 게이트웨이입니다. 플러그인은 Mattermost 를 추가합니다. 이 가이드는 “개인 비서” 설정입니다: 항상 켜져 있는 에이전트처럼 동작하는 전용 WhatsApp 번호 하나.⚠️ 먼저 안전을 고려하세요
에이전트를 위치시키게 됩니다:- (Pi 도구 설정에 따라) 기기에서 명령어를 실행
- 작업공간에서 파일 읽기/쓰기
- WhatsApp/Telegram/Discord/Mattermost(플러그인)을 통해 메시지 전송
- 항상
channels.whatsapp.allowFrom을 설정하세요(개인 Mac 을 외부에 열어두지 말 것). - 비서를 위한 전용 WhatsApp 번호를 사용하세요.
- 하트비트는 이제 기본적으로 30분마다입니다. 설정을 신뢰할 때까지
agents.defaults.heartbeat.every: "0m"으로 비활성화하세요.
필요조건
- OpenClaw 설치 및 온보딩 완료 — 아직 하지 않았다면 시작하기를 참조하세요
- 비서를 위한 두 번째 전화번호(SIM/eSIM/선불)
권장되는 두 전화 설정
이것을 원합니다: 개인 WhatsApp 을 OpenClaw 에 연결하면, 당신에게 오는 모든 메시지가 “에이전트 입력”이 됩니다. 이것은 드물게 원하는 것입니다.5분 퀵 스타트
- WhatsApp 웹 연결(QR 표시; 비서 전화로 스캔):
- 게이트웨이 시작(실행 상태 유지):
- 최소한의 설정을
~/.openclaw/openclaw.json에 배치하세요:
gateway.auth.token 에서 토큰을 제어 UI 설정에 붙여 넣으세요. 나중에 다시 열려면: openclaw dashboard.
에이전트에게 작업공간 제공하기 (AGENTS)
OpenClaw 는 작업 공간 디렉토리에서 운영 지침과 “메모리”를 읽습니다. 기본적으로 OpenClaw 는 에이전트 작업 공간으로~/.openclaw/workspace 를 사용하며, 설정/첫 에이전트 실행 시 이를 자동으로 생성합니다(시작 AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md). BOOTSTRAP.md 는 작업 공간이 처음일 때만 생성됩니다(삭제 후 다시 생기지 않음). MEMORY.md 는 선택 사항입니다(자동 생성되지 않음); 존재할 경우 일반 세션에 로드됩니다. 서브 에이전트 세션에는 AGENTS.md 와 TOOLS.md 만 주입됩니다.
팁: 이 폴더를 OpenClaw의 “메모리”로 취급하고, git 저장소(이상적으로는 비공개)로 만들어 AGENTS.md + 메모리 파일이 백업되도록 하세요. git이 설치되어 있다면, 새 작업 공간들은 자동 초기화됩니다.
agents.defaults.workspace 옵션으로 다른 작업 공간 선택(지원 ~).
“비서”로 전환시키는 설정
OpenClaw 는 기본적으로 훌륭한 비서 설정으로 작동하지만, 보통 아래를 조정하고 싶을 것입니다:SOUL.md에서 페르소나/지침- 사고 기본값(원하는 경우)
- 하트비트(신뢰가 쌓일 때까지)
세션과 메모리
- 세션 파일:
~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl - 세션 메타데이터(토큰 사용, 마지막 경로 등):
~/.openclaw/agents/<agentId>/sessions/sessions.json(이전:~/.openclaw/sessions/sessions.json) /new또는/reset은 그 채팅의 새로운 세션을 시작합니다(resetTriggers로 구성 가능). 단독으로 전송 시, 에이전트는 리셋 확인을 위한 짧은 인사로 응답합니다./compact [instructions]는 세션 컨텍스트를 압축하고 남은 컨텍스트 예산을 보고합니다.
하트비트(적극적 모드)
기본적으로 OpenClaw 는 30분마다 다음 프롬프트로 하트비트를 실행합니다:HEARTBEAT.md 가 존재한다면 읽습니다(작업 공간 컨텍스트). 엄격히 따르세요. 이전 채팅의 작업을 추론하거나 반복하지 마세요. 주의할 사항이 없다면 HEARTBEAT_OK 로 응답하세요.
비활성화하려면 agents.defaults.heartbeat.every: "0m" 을 설정하세요.
HEARTBEAT.md가 존재하지만 내용이 사실상 비어 있다면(# 헤딩과 같은 마크다운 헤더와 빈 줄만 존재), OpenClaw 는 하트비트 실행을 건너 API 호출을 절약합니다.- 파일이 없으면, 하트비트는 여전히 실행되며 모델이 할 일을 결정합니다.
- 에이전트가
HEARTBEAT_OK로 응답하면(옵션으로 짧은 패딩 포함;agents.defaults.heartbeat.ackMaxChars참조), 해당 하트비트에 대해 발신 전달을 억제합니다. - 하트비트는 전체 에이전트 턴을 실행합니다 — 짧은 간격은 더 많은 토큰을 소모합니다.
미디어 입출력
들어오는 첨부 파일(이미지/오디오/문서)은 템플릿을 통해 명령어로 표시될 수 있습니다:{{MediaPath}}(로컬 임시 파일 경로){{MediaUrl}}(가상 URL){{Transcript}}(오디오 전사가 활성화된 경우)
MEDIA:<path-or-url> 을 포함시키세요(공백 없음). 예:
작업 검사 목록
/tmp/openclaw/ 에 저장됨(기본: openclaw-YYYY-MM-DD.log).
다음 단계
- WebChat: WebChat
- 게이트웨이 운영: 게이트웨이 실행서
- Cron + 기상: Cron 작업
- macOS 메뉴 바 동반 앱: OpenClaw macOS 앱
- iOS 노드 앱: iOS 앱
- Android 노드 앱: Android 앱
- Windows 상태: Windows (WSL2)
- Linux 상태: Linux 앱
- 보안: 보안