OpenClaw 스마트폰 제어 및 카카오톡 Messenger Bot R 연동 작업 보고서
OpenClaw 스마트폰 제어 및 카카오톡 Messenger Bot R 연동 작업 보고서
작성일: 2026-06-21
대상 기기: Samsung SM-A325N / Android 13
작성 목적: WordPress 게시 및 검토용 작업 경과 보고
보안 기준: 비밀번호, API 키, webhook URL, 토큰 원문은 본 보고서에 포함하지 않음
1. 요약
2026년 6월 21일에는 OpenClaw가 Android 스마트폰을 원격 제어하고, 해당 스마트폰의 카카오톡 및 Messenger Bot R을 통해 OpenClaw와 대화할 수 있도록 기반 구성을 진행했다.
핵심 결과는 다음과 같다.
- OpenClaw 호스트에서 스마트폰 Termux SSH 접속을 구성했다.
- Android 무선 ADB 페어링 및 재페어링 절차를 구축했다.
- Messenger Bot R 앱의
AI소통스크립트를 OpenClaw/n8n 릴레이와 연결했다. - 카카오톡 1:1 대화에서는
이름계정의 일반 문장을 OpenClaw로 전달하도록 설정했다. - 단체방에서는
!!접두 메시지에만 응답하도록 설정했다. - 단체방 메시지는 날짜별 JSONL 파일로 스마트폰에 저장하도록 구성했다.
- Messenger Bot R 응답 timeout을 30초에서 120초로 늘려 긴 응답에서 발생하던 timeout 오류를 완화했다.
현재 구조는 운영 가능한 수준까지 구성되었지만, 카카오톡 알림의 답장 액션 생성 여부에 따라 실제 자동 답장 성공 여부가 달라질 수 있다. 특히 카카오톡이 전면에 떠 있거나 알림이 답장 가능한 형태로 생성되지 않으면 Messenger Bot R이 응답하지 못할 수 있다.
2. 전체 구성도
현재 목표 구조는 다음과 같다.
카카오톡 메시지
-> Android 카카오톡 알림
-> Messenger Bot R 알림 리스너
-> AI소통 JavaScript 스크립트
-> n8n webhook 릴레이
-> OpenClaw
-> n8n 응답
-> Messenger Bot R replier.reply()
-> 카카오톡 답장
스마트폰 제어 경로는 다음 두 가지로 나뉜다.
OpenClaw -> SSH -> Termux
OpenClaw -> ADB wireless debugging -> Android shell / UI control
SSH는 장기 유지용 기본 통로이고, ADB는 Android UI 제어와 상태 점검을 위한 보조 통로다.
3. 스마트폰 접속 구성
3.1 SSH 설정
스마트폰 Termux에서 SSH 서버가 8022/tcp 포트로 동작하는 것을 확인했다. OpenClaw 호스트에서는 전용 SSH 키를 생성하고 스마트폰 Termux의 authorized_keys에 공개키를 등록했다.
설정 결과:
- 스마트폰 IP:
192.168.219.112 - SSH 사용자:
u0_a326 - SSH 포트:
8022 - OpenClaw SSH 별칭:
openclaw-phone - 접속 명령:
ssh openclaw-phone
검증 결과:
- SSH 접속 성공
- 원격 명령 실행 성공
- Termux 홈 경로 확인
- 스마트폰 모델 및 Android 버전 확인
비밀번호는 지속 저장하지 않았고, 이후 접속은 키 기반으로 처리하도록 구성했다.
3.2 ADB 설정
OpenClaw 호스트에는 시스템 패키지 설치 권한이 없어 Google Android platform-tools를 사용자 홈 아래에 로컬 설치했다.
설치 위치:
~/.local/share/android-platform-tools/platform-tools/adb
~/.local/bin/adb
무선 디버깅은 Android 정책상 화면에서 일회성 페어링 코드를 확인해야 한다. OpenClaw가 코드를 임의로 생성하거나 승인 과정을 우회할 수는 없다.
구축한 보조 스크립트:
scripts/openclaw_phone_adb_connect.sh
scripts/openclaw_phone_adb_pair.sh
scripts/openclaw_phone_open_adb_settings.sh
각 역할은 다음과 같다.
openclaw_phone_adb_connect.sh: mDNS에서 현재 ADB 연결 포트를 찾아 자동 연결openclaw_phone_adb_pair.sh: 페어링 코드와 포트를 받아 자동 페어링 후 연결openclaw_phone_open_adb_settings.sh: SSH를 통해 스마트폰 개발자 옵션 화면 열기
현재까지 확인된 ADB 연결 상태:
- 모델:
SM-A325N - Android:
13 - 상태:
device - 개통 후 최종 사용 포트 예:
192.168.219.112:43777
ADB 포트는 무선 디버깅 재시작, 네트워크 변동, Android 상태에 따라 바뀔 수 있다.
4. 상시 연결 보강
Termux SSH가 더 오래 유지되도록 스마트폰에 keepalive 스크립트를 구성했다.
스마트폰 내부 스크립트:
~/.termux/openclaw-keepalive.sh
~/.termux/boot/start-sshd
동작:
termux-wake-lock실행sshd가 내려가 있으면 시작- 실행 로그 기록
로그 경로:
~/.termux/logs/openclaw-keepalive.log
추가로 Android 배터리/idle 예외에 다음 앱을 추가했다.
com.termuxcom.xfl.msgbot
단, 재부팅 후 Termux SSH를 완전 자동으로 시작하려면 별도 Termux:Boot 앱 설치가 필요하다. 현재는 해당 앱이 설치되어 있지 않기 때문에 재부팅 이후 완전 무인 복구는 제한될 수 있다.
5. 스마트폰 개통 및 통신 상태
스마트폰 개통 후 모뎀 및 SIM 상태를 점검했다.
확인 결과:
- SIM 상태:
LOADED - 통신사 표시:
KT - 네트워크 타입:
LTE - 로밍: 아님
- 음성망 등록:
IN_SERVICE - 데이터망 등록:
IN_SERVICE - LTE 신호: 양호
- Wi-Fi도 동시에 연결 중
신호 예시:
LTE RSRP: -89 dBm
LTE RSRQ: -12
Signal level: 4
모바일 데이터 사용자 설정은 꺼진 상태로 확인되었다.
mobile_data=0
mUserMobileDataState=false
현재 운영은 Wi-Fi 기반으로 충분하지만, Wi-Fi 장애 시 LTE 데이터까지 사용하려면 별도로 모바일 데이터를 켜야 한다.
6. Messenger Bot R 구성
6.1 앱 상태
스마트폰에는 Messenger Bot R 앱이 설치되어 있으며 패키지명과 버전은 다음과 같다.
Package: com.xfl.msgbot
Version: 0.7.29a
확인된 상태:
- 프로세스 실행 중
- 앱 활성화 켜짐
AI소통스크립트 존재- 스크립트 전원 켜짐
- 컴파일 상태
compiled - 알림 접근 권한 허용
- 배터리 예외 적용
- 백그라운드 실행 허용
6.2 스크립트 주입 방법
Messenger Bot R 앱은 일반 ADB run-as로 내부 데이터에 직접 접근할 수 없었다.
확인된 제한:
run-as com.xfl.msgbot: package not debuggable- Android 기본
cmd clipboard: 이 기기에서 사용 불가 - Termux clipboard 명령: 정상적으로 값이 들어가지 않음
따라서 임시로 오픈소스 ADBKeyBoard APK를 설치하여 ADB base64 입력 방식으로 긴 JavaScript 스크립트를 편집기에 주입했다.
운영 원칙:
- ADBKeyBoard는 스크립트 주입 중에만 설치
- 작업 후 삼성 키보드로 복구
- ADBKeyBoard 제거
이 방식은 반복적으로 사용했으며, 매번 작업 후 제거했다.
7. OpenClaw/n8n 릴레이
Messenger Bot R의 AI소통 스크립트는 n8n webhook으로 JSON 요청을 보내고, n8n이 OpenClaw에 전달한 뒤 응답을 반환하는 구조다.
요청에 포함되는 주요 값:
- 방 이름
- 발신자 이름
- 메시지 본문
- 그룹 채팅 여부
- 패키지명
민감 정보:
- webhook 상세 URL
- 인증 토큰
위 두 값은 로컬 secret 파일에서 관리하며 본 보고서에 포함하지 않는다.
검증 결과:
- n8n webhook 직접 호출 HTTP 200 확인
ok=true확인reply필드 존재 확인- 짧은 직접 요청 응답 시간 약 7.8초 확인
8. 대화 처리 규칙
현재 AI소통 스크립트의 대화 처리 규칙은 다음과 같다.
8.1 1:1 대화
이름 계정과 봇 계정의 1:1 대화방에서는 일반 문장도 OpenClaw로 전달한다.
예:
오늘 상태 어때?
처리 방식:
isGroupChat == false
sender == "이름"
위 조건을 만족하면 !ai 접두어 없이도 OpenClaw로 전달한다.
8.2 단체방 대화
단체방에서는 !! 접두어가 붙은 메시지만 응답한다.
예:
!!현재 상황 요약해줘
일반 단체방 메시지는 응답하지 않는다. 이는 단체방에서 봇이 불필요하게 개입하는 것을 막기 위한 안전장치다.
8.3 체크 명령
다음 명령은 로컬 Messenger Bot R 상태 확인용으로 유지했다.
!ai체크
!!체크
정상 응답:
메신저봇 R 로컬 응답 정상
9. 단체방 대화 로그 저장
단체방 메시지는 별도 파일에 저장하도록 구성했다.
초기에는 단일 파일 저장 방식이었다.
/sdcard/OpenClaw/msgbot/group_messages.jsonl
이후 날짜별 저장 방식으로 변경했다.
현재 저장 경로:
/sdcard/OpenClaw/msgbot/group_logs/YYYY-MM-DD.jsonl
예:
/sdcard/OpenClaw/msgbot/group_logs/2026-06-21.jsonl
저장 형식은 JSON Lines다. 각 줄은 하나의 메시지 기록을 의미한다.
기록 필드:
ts: 저장 시각room: 방 이름sender: 발신자message: 메시지 내용packageName: 패키지명
주의:
단체방 대화 내용 저장은 개인정보와 대화 프라이버시 이슈가 있을 수 있다. 실제 운영 전에는 해당 방 구성원에게 로그 저장 여부를 고지하거나, 최소한 운영 목적과 보관 기간을 정해야 한다.
10. Timeout 오류 조치
1:1 카카오톡 테스트 중 다음 오류가 확인되었다.
봇 오류: JavaException: java.net.SocketTimeoutException: timeout
원인:
Messenger Bot R JavaScript에서 OpenClaw/n8n 응답을 기다리는 HTTP read timeout이 30초로 설정되어 있었다. 모델 응답이 길거나 n8n/OpenClaw 처리 시간이 길어지면 30초를 넘을 수 있다.
조치:
connectTimeout: 10000ms -> 15000ms
readTimeout: 30000ms -> 120000ms
결과:
- 긴 응답에서 timeout 발생 가능성 완화
- 짧은 요청은 HTTP 200으로 정상 확인
잔여 리스크:
- 120초를 넘는 장기 응답은 여전히 실패할 수 있다.
- 카카오톡 알림 답장 액션 자체가 제한시간을 가질 수 있다.
- 매우 긴 답변은 카카오톡 메시지 길이 제한이나 사용자 경험 측면에서 분할 응답이 필요할 수 있다.
11. 1:1 카카오톡 테스트 관찰
1:1 테스트 중 Messenger Bot R 자체 상태는 정상으로 확인되었다.
정상 확인 항목:
- 프로세스 실행
- 앱 활성화
- 스크립트 켜짐
- 컴파일 정상
- 알림 접근 권한 허용
- n8n/OpenClaw 직접 릴레이 정상
다만 실제 1:1 카카오톡 메시지 알림에서 답장 액션이 보이지 않고 읽음 액션만 보이는 상황이 있었다.
Messenger Bot R은 카카오톡 알림의 답장 액션을 이용해 자동 답장한다. 따라서 알림이 답장 가능한 형태로 생성되지 않으면 OpenClaw/n8n이 정상이어도 봇이 답장을 보낼 수 없다.
조치 및 권장 테스트 조건:
- 봇 폰에서 카카오톡 방을 전면에 열지 않는다.
- 봇 폰을 홈 화면 또는 대기 상태로 둔다.
- 개인 계정
이름에서 봇 계정 1:1방으로 메시지를 보낸다. - 새 카카오톡 알림에
답장액션이 생기는지 확인한다.
현재 판단:
시스템 설정과 스크립트는 정상이다. 실제 자동 답장 성공 여부는 카카오톡 알림이 답장 가능한 형태로 생성되는지에 달려 있다.
12. 이미지, 파일, 이모지 처리 검토
검토 결과는 다음과 같다.
가능한 부분:
- 이모지 포함 텍스트 수신
- 이모지 포함 텍스트 답변
- 일반 텍스트 대화 응답 속도 개선
제한이 큰 부분:
- 이미지 파일 원본 수신
- 첨부파일 원본 수신
- 카카오톡 내부 이미지 파일 직접 접근
- OpenClaw가 카카오톡에 이미지/파일을 직접 첨부해 답장
이유:
Messenger Bot R은 주로 카카오톡 알림 텍스트와 알림 답장 액션을 기반으로 동작한다. 이미지가 오더라도 알림에는 “사진을 보냈습니다” 같은 텍스트만 나타날 수 있으며, 이미지 원본 바이너리에 안정적으로 접근하기 어렵다.
향후 이미지 분석을 하려면 별도 업로드 경로 또는 별도 파일 전달 구조가 필요하다.
13. 현재 운영 명령 요약
SSH 접속
ssh openclaw-phone
ADB 자동 연결
scripts/openclaw_phone_adb_connect.sh
ADB 재페어링
scripts/openclaw_phone_adb_pair.sh PAIRING_CODE [PAIRING_PORT]
스마트폰 개발자 옵션 열기
scripts/openclaw_phone_open_adb_settings.sh
현재 ADB shell 예시
adb -s 192.168.219.112:43777 shell '명령어'
단, ADB 포트는 변경될 수 있으므로 실제 운영 시에는 openclaw_phone_adb_connect.sh를 먼저 실행하는 것이 안정적이다.
14. 보안 및 개인정보 주의사항
이번 작업에서 다음 정보는 보고서에 포함하지 않았다.
- 스마트폰 SSH 비밀번호
- OpenClaw/n8n webhook 전체 URL
- OpenClaw 인증 토큰
- API 키
- 개인 메시지 원문
- 전화번호, IMEI, IMSI, ICCID 등 고유 식별자
운영 시 주의할 점:
- 단체방 로그 저장은 사전 고지가 필요할 수 있다.
- 로그 파일에는 대화 내용이 저장되므로 접근 권한 관리가 필요하다.
- 스마트폰 분실 시 Termux, 카카오톡, Messenger Bot R, 저장 로그가 노출될 수 있다.
- ADB 무선 디버깅은 가능하면 신뢰된 내부 네트워크에서만 사용해야 한다.
- 페어링 코드는 일회성이므로 공개 저장하지 않는다.
15. 남은 과제
15.1 실제 카카오톡 자동 답장 최종 검증
아직 가장 중요한 검증 포인트는 실제 1:1 카카오톡 알림에 답장 액션이 붙고 Messenger Bot R이 답장을 보내는지다.
테스트 문구:
오늘 상태 어때?
또는 로컬 체크:
!ai체크
확인할 항목:
- 카카오톡 알림 생성 여부
- 알림에
답장액션 존재 여부 - Messenger Bot R 응답 여부
- n8n/OpenClaw 호출 흔적
- timeout 재발 여부
15.2 Termux:Boot 설치 검토
재부팅 후 SSH 자동 시작을 보장하려면 Termux:Boot 앱 설치가 필요하다.
현재는 다음이 준비되어 있다.
~/.termux/boot/start-sshd
하지만 Termux:Boot 앱이 없으면 부팅 후 자동 실행은 보장되지 않는다.
15.3 모바일 데이터 활성화 여부 결정
개통 후 LTE 망 등록은 정상으로 보이나, 모바일 데이터 사용자 설정은 꺼져 있었다. Wi-Fi 장애 대비까지 고려하면 모바일 데이터를 켤지 결정해야 한다.
15.4 로그 보관 정책 수립
단체방 로그가 날짜별로 저장되므로 보관 기간, 삭제 정책, 외부 백업 여부를 정해야 한다.
권장:
- 7일 또는 30일 보관
- 민감 방은 저장 제외
- WordPress 공개 게시 전 원문 로그는 포함하지 않기
15.5 응답 속도 최적화
현재 구조는 n8n과 OpenClaw를 경유하므로 응답이 느릴 수 있다.
개선 후보:
- 응답 길이 제한
- 빠른 모델 프로필 사용
- “처리 중” 선응답 후 후속 답변
- OpenClaw 직접 릴레이 구조 검토
16. 결론
오늘 작업으로 OpenClaw와 Android 스마트폰, 카카오톡, Messenger Bot R, n8n 릴레이를 연결하는 기본 구조는 대부분 구축되었다.
현재 완성된 부분:
- 스마트폰 SSH 제어
- ADB 무선 제어 및 재페어링 보조 스크립트
- Messenger Bot R OpenClaw 릴레이
- 1:1 자연 대화 규칙
- 단체방
!!호출 규칙 - 단체방 메시지 일별 로그 저장
- timeout 완화
- 배터리/백그라운드 실행 보강
남은 핵심 검증:
- 실제 카카오톡 1:1 메시지에서 Messenger Bot R이 자동 답장하는지 최종 확인
- 카카오톡 알림에
답장액션이 안정적으로 붙는지 확인 - 재부팅 후 자동 복구를 위한 Termux:Boot 도입 여부 결정
운영 관점에서 보면, 현재 시스템은 “실험 운영 가능” 단계에 도달했다. 다만 카카오톡 알림 기반 자동화의 특성상, 카카오톡 앱 상태와 알림 형태에 따라 응답 가능 여부가 달라질 수 있으므로 며칠간 실제 사용 테스트를 통해 안정성을 검증하는 것이 필요하다.
