# 26.02.22 오픈클로 특집 캠프 자료

# 윈도우에서 WSL로 설치하기

준비물: [안티그래비티](https://antigravity.google/) (다운로드하여 설치 후 구글 로그인하기)

자료 영상

[https://youtu.be/3LKf_pe_WZk](https://youtu.be/3LKf_pe_WZk)

마크다운 파일( 다운받거나 복사하여 안티그래비티에 넣어 요청하기)

setup.md

setup-en.md

# 맥에서 셋팅

설치 :`openclaw onboard` 

# 모델 연동하기

[chatgpt oauth](https://chatgpt.com/)(계정연동방식) 추천

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/160101_ks6OBLvECuVdYNaRz9?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/160049_4FluaMuV10aryajC5O?q=80&s=1280x180&t=outside&f=webp)

> 화면에는 없지만 gpt-5.3-codex를 권장, 주의: claude / gemini 계정은 공식적으로 연동을 금지함

- 계정 정지될 수 있음, 구글 계정 정지되면 상당히 피곤(메일 보내서 풀어야하고 안풀어줄 수 있음)

- claudecode 에서 특히 자주 발생하는 문제

# 텔레그램 연동하기 

기본 에이전트 연동

`openclaw onboard`에서 telegram연동

- bot token이 필요함 → @BotFather 를 검색해서 `/newbot`입력하고 bot 이름 만들기, 반드시 끝을 bot으로 끝내야함

- 마지막에 bot token을 복사해서 오픈클로에 붙여넣기

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/173059_DaGyIYAI3dhYgbwPpv?q=80&s=1280x180&t=outside&f=webp)

- 가끔 allowlist를 요구하는 경우가 있는데, 그때는 @idbot 을 이용해서 자기의 번호 찾아서 넣기

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/155932_McKHWe1qzAMIJbKIU6?q=80&s=1280x180&t=outside&f=webp)

## 텔레그램 에이전트를 추가하는 방법(텔레그램에 여러 에이전트 추가 방법)

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/160334_uVTobPOgSp4gPYFKnZ?q=80&s=1280x180&t=outside&f=webp)

`openclaw agents add 봇이름 `  하면 에이전트를 만들 수 있음

나머지 과정은 동일하고 telegram account > add a new account 해서 봇 이름을 입력

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/212543_wulSxJUmPeOUm4yKyS?q=80&s=1280x180&t=outside&f=webp)

텔레그램에서 @BotFather 로 토큰 입력하기

만들고 게이트웨이 재시작이 필요함

/status를 입력했을때 아래와 같이 연결된 내용이 표시

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/162127_tFCL3lrN5V2b6jd1T6?q=80&s=1280x180&t=outside&f=webp)

allowlist 요청할때 

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/184124_BiK9sSm50bIvSjD5nQ?q=80&s=1280x180&t=outside&f=webp)

페어링 코드로 인증할때

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/183354_7mTXVSJrCZvOM4NFnn?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/183545_EexTCFZNFWe65VKLBb?q=80&s=1280x180&t=outside&f=webp)

## 주요 문제 발생 원인과 해결방법

주로 openclaw update, 에이전트 추가 등 설정 변경 이후 게이트웨이 리셋문제

게이트웨이 완전 종료하기

`pkill -9 -f openclaw-gateway ` 

대쉬보드 띄우기

`openclaw dashboard ` 

게이트웨이 포트 지정하기

`openclaw gateway --port 18789 ` 

텔레그램 연결이 끊겨서 안되는 경우

openclaw agents list 로 리스트 확인 후에 다시 덮어 씌우기

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/225554_eGu8o5wE7Lh9HrsRre?q=80&s=1280x180&t=outside&f=webp)

openclaw agents add windowbot으로 다시 에이전트 생성

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/225625_0zDt3d5jBO4j9vJfrb?q=80&s=1280x180&t=outside&f=webp)

## 게이트웨이 포그라운드 vs 백그라운드 

Foreground - 터미널 닫으면 종료됨

Background/Daemon - 터미널 닫아도 아래에서 돌아감

포그라운드 : `openclaw gateway` 

백그라운드: `openclaw gateway start —deamon` 

`openclaw logs --follow`로 확인 가능

백그라운드의 동작 서비스 매니져(맥/리눅스/윈도우) : launchd (LaunchAgent) / systemd / Task Scheduler

백그라운드 서비스(launchd)설치: `openclaw gateway install --force` 

## 메모리 기능 개선하기

기본값은 openai api모델을 이용해서 백터 변환 → sqlite(로컬) 저장

provider를 local로 바꿨을때 

로컬에서 직접 백터 변환하여 저장하는 형태

> 다른 llm을 사용하면 이 부분이 작동하고 있지 않을 가능성이 높음!

- 키워드(bm25)만 사용하거나 비활성 가능성 높음

 확인 방법: `openclaw memory status` 

 

설정하기(로컬모델 사용)

- Ollama 설치 : `curl -fsSL https://ollama.com/install.sh | sh` 

- 임베딩 모델 다운로드

  `ollama pull nomic-embed-text`  

    - nomic-embed-text는 영어 중심이라 한국어 문서 RAG에는 한계

    - bge-m3, qwen3-embedding:0.6b 추천

- 스킬 적용

    - 모델 다운받고 에이전트에게 아래처럼 요청하면 자동으로 설정됨

        - "qwen3-embedding:0.6b 이걸로 메모리 임베딩 설정해줘"

  또는 스킬 문서를 직접 주고 해달라고 하기

SKILL.en.md

설치이후 리인덱싱하기 : `openclaw memory index --force`

![Image](https://upload.cafenono.com/image/slashpageHome/20260222/000311_zndnoF3mB6yjrafcrU?q=80&s=1280x180&t=outside&f=webp)

## 플러그인(스킬 설치)

기본 플러그인 확인방법 : openclaw plugins list 

openclaw onboard 에서 처음에 다 선택하기

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/173155_w3nQvvmbmcwKzYnUwb?q=80&s=1280x180&t=outside&f=webp)

hook도 다 선택하기

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/173238_rFPXdi4kH5GdFEnZDs?q=80&s=1280x180&t=outside&f=webp)

윈도우에서 homebrew가 없어서 기본 스킬 설치가 안될때 

-  윈도우에서는 Homebrew를 직접 설치할 수 없으므로, WSL을 통해 Linux 환경을 먼저 구성한 뒤 그 안에서 Homebrew를 설치하고, OpenClaw 스킬의 의존성을 해결해야 함.

- wsl 열어서 homebrew 설치하고 환경변수 설정

windows-homebrew-install-guide.md

windows-homebrew-install-guide-en.md

## 오픈클로 보안체크

`openclaw security audit ` 

입력했을때 critical에 하나라도 떠있으면 즉시 패치할것

`openclaw security audit --fix` 

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/161901_NEXh9waUfkVeRz3KmS?q=80&s=1280x180&t=outside&f=webp)

가장 똑똑한 모델을 추론에 사용하기

- 특히 웹 자동화시에 프롬프트 인젝션 공격 취약할수 있어 조심

- 

## 업데이트가 안되는 현상

openclaw update 로 업데이트가 안되는 경우가 종종 발생함

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/163135_K6rM7hOR06HsZspii3?q=80&s=1280x180&t=outside&f=webp)

npm i -g openclaw@latest 로 안되면 재설치를 권장

`iwr -useb https://openclaw.ai/install.ps1 | iex` 

기본 파일 위치 확인

mac: `~/.openclaw`

windows: `%USERPROFILE%\.openclaw ` 

오픈클로 셋팅값이 저장된 json 파일 확인

~/.openclaw/openclaw.json

## 이메일 연동하기(gog사용)

### 1. Google Cloud Console에서 프로젝트 만들기

- 브라우저를 열고 아래 주소로 이동
- [https://console.cloud.google.com](https://console.cloud.google.com)

- 새 프로젝트 만들기

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/190911_TfOIztPssY4dugXLSi?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/190925_wurYEu9iLddeO9Ei09?q=80&s=1280x180&t=outside&f=webp)

- 라이브러리 활성화

1. 왼쪽 메뉴에서 “API 및 서비스” → “라이브러리”를 클릭

2. 검색창에 Google Calendar, Gmail를 각각 검색

3. 사용버튼 누르기

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/191101_Hfhx8VUaABXj1DI2kk?q=80&s=1280x180&t=outside&f=webp)

### 2.OAuth 2.0 사용자 인증 설정하기

- 왼쪽 메뉴에서 “API 및 서비스” → “OAuth 동의 화면”을 클릭

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/191227_3k1Bp8buapBeSxBEdX?q=80&s=1280x180&t=outside&f=webp)

- “Google 인증 플랫폼이 아직 구성되지 않음” 화면이 나오면 “시작하기”를 클릭

- 앱 정보를 입력합니다:

    - 앱 이름: clawbot

    - 사용자 지원 이메일: 본인 이메일 선택

- 대상에서 "외부"를 선택하고 "다음"을 클릭합니다

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/191311_2kqkxOodzSPlg1fAi7?q=80&s=1280x180&t=outside&f=webp)

-  OAuth 클라이언트 ID 만들기

    - 왼쪽 메뉴에서 “클라이언트”를 클릭한 후 “클라이언트 만들기”를 클릭

    - 애플리케이션 유형에서 “데스크톱 앱”을 선택하고 “만들기”를 클릭

    - “OAuth 클라이언트 생성됨” 화면이 나타나면, “JSON 다운로드”를 클릭해서 인증 파일을 다운로드

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/191444_VXUjdDkt4buFJga1V6?q=80&s=1280x180&t=outside&f=webp)

    - 대상에 들어가서 앱 게시 버튼 누르기

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/191531_uinBKztSrVpVHgVhXk?q=80&s=1280x180&t=outside&f=webp)

확인 버튼을 눌러 프로덕션으로 푸시하기

![Image](https://upload.cafenono.com/image/slashpageHome/20260221/191547_eKvD2e129G5JsZ3bbY?q=80&s=1280x180&t=outside&f=webp)

오픈클로에 요청하기

“다운로드한 credentials 파일로 구글 캘린더 인증해줘. 파일 위치: /Users/사용자이름/Downloads/client_secret_xxxx.json”

`gog auth add 이메일주소 --services gmail, calendar`` ` 

이후 로그인하기

# 스킬설치하기

pptx( 클로드 공식스킬): [https://github.com/anthropics/skills](https://github.com/anthropics/skills)

![Image](https://upload.cafenono.com/image/slashpageHome/20260222/004337_ytKoCwDbWYg3TYovNa?q=80&s=1280x180&t=outside&f=webp)

hwpx(hwpx 문서 형태로 채워줌) : [https://github.com/Canine89/gonggong_hwpxskills](https://github.com/Canine89/gonggong_hwpxskills)

![Image](https://upload.cafenono.com/image/slashpageHome/20260222/004311_9irtS4CDkdoXTpmAiC?q=80&s=1280x180&t=outside&f=webp)

## 인터넷 크롤링

- 크롬 익스텐션 설치 : [https://chromewebstore.google.com/detail/openclaw-browser-relay/nglingapjinhecnfejdcpihlpneeadjp](https://chromewebstore.google.com/detail/openclaw-browser-relay/nglingapjinhecnfejdcpihlpneeadjp)

- 브라우져 타임아웃을 늘려달라고 하기 (기본 1.5초, 3초 → 30초이상 1분 권장)

- 엄청 빠른 브라우져: [https://github.com/jkf87/fast-browser-use](https://github.com/jkf87/fast-browser-use)

## 카카오톡 자동화 

코난쌤 conanssam오픈클로가 이제 카카오톡을 제어합니다.

- 피카부 스킬 사용

    - node, terminal에 권한을 전부 줘야함

        - 개인정보 및 보안 → 손쉬운 사용, 화면 및  시스템 오디오 녹음 권한 활성화하기

    - 그리고 스킬 적용하기

```
---
name: kakaotalk-sequential-send
description: 카카오톡 메시지를 여러 수신자에게 하나씩 안전하게 전송하며, 각 전송마다 엄격히 검증합니다. 사용자가 카카오톡 연락처/오픈채팅을 검색하여 템플릿 인사말이나 공지를 오발송 없이 전송하도록 요청할 때 사용합니다. 특히 "이 목록에 전송해줘" 같은 반복 작업에서, 각 대상을 열고, 확인하고, 전송한 뒤, 닫고 다음으로 넘어가는 방식으로 처리합니다.
---

# 카카오톡 순차 전송

## 개요

카카오톡 메시지 전송을 **검증된 순차 루프**로 실행합니다:

1. 대상 하나를 검색
2. 채팅 열기 (단일 클릭 + 더블 클릭)
3. 열린 창 제목이 대상과 일치하는지 검증
4. 입력 상자를 클릭하고 메시지를 입력한 뒤 전송
5. 채팅 창 닫기
6. 다음 대상으로 이동

대상별 검증 없이 일괄 전송하지 않습니다.

## 워크플로우

### 1) 사전 준비

- 카카오톡으로 전환하고 메인 창(`카카오톡`)에 포커스를 맞춥니다.
- 포커스가 불안정하면 중단하고 사용자에게 카카오톡을 전면으로 가져오도록 요청합니다.
- 사용자가 명시적으로 오픈채팅을 원하지 않는 한 친구 탭(`cmd+1`)을 우선 사용하며, 오픈채팅의 경우 `오픈채팅` 탭을 사용합니다.

### 2) 대상 검색 및 열기

- 검색(`cmd+f`)을 열고 대상 이름을 입력합니다.
- 안정적인 열기를 위한 권장 방법:
  - 검색 결과 행을 단일 클릭
  - 이후 같은 행을 더블 클릭
- `peekaboo window list --app '카카오톡'`으로 예상 이름/핵심 이름을 가진 메인이 아닌 채팅 창이 확인될 때까지 진행하지 **않습니다**.

### 3) 메시지 전송 (창 기준 위치)

- 열린 채팅 창에 포커스를 맞춥니다.
- **해당 창 자체의 바운드** 하단 근처의 입력 영역을 클릭합니다 (전역 추정 좌표가 아닌 창 바운드 기준으로 계산).
- `--clear`로 메시지를 입력한 뒤 `return`으로 전송합니다.

### 4) 닫기 및 계속

- 해당 채팅 창을 `cmd+w`로 닫습니다.
- 카카오톡 메인 창에 다시 포커스를 맞춥니다.
- 다음 대상으로 계속 진행합니다.

## 필수 안전 규칙

- 현재 채팅 열기가 검증되지 않으면 절대 다음 수신자로 넘어가지 않습니다.
- 잘못된 채팅이 열리면 즉시 닫고 검색을 재시도합니다.
- 앱 포커스가 다른 앱(예: Chrome)으로 이동하면 타이핑 전에 포커스를 복구합니다.
- 호칭이 포함된 메시지의 경우, 채팅을 열기 전에 텍스트를 구성하고 전송 전에 한 번 더 확인합니다.

## 메시지 템플릿 규칙 (호칭)

수신자에 호칭이 포함된 경우, 메시지 앞에 호칭을 붙입니다:

- 형님 → `형님, 새해 복 많이 받으세요`
- 선생님 → `선생님, 새해 복 많이 받으세요`
- 대표님 → `대표님, 새해 복 많이 받으세요`
- 교수님 → `교수님, 새해 복 많이 받으세요`
- 부장님 → `부장님, 새해 복 많이 받으세요`
- 호칭 없음 → `새해 복 많이 받으세요`

## 실패 처리

열기가 반복적으로 실패하는 경우:

1. 축소된 검색어(호칭 없이 핵심 이름만)로 재시도
2. 매칭된 행에 단일 클릭 + 더블 클릭 재실행
3. `window list`에서 정확/포함 매치 재확인
4. 그래도 실패하면 사용자에게 해당 채팅을 수동으로 열어달라고 요청한 뒤, 전송/닫기 후 목록 계속 진행

## 간결한 보고 형식

실행 후 간결한 상태를 보고합니다:

- OK 목록: 성공적으로 전송된 이름들
- FAIL 목록: 전송되지 않은 이름 + 한 줄 사유 (`채팅 열기 실패`, `포커스 이탈` 등)

보고는 짧고 실행 가능하게 작성합니다.

```

For the site tree, see the [root Markdown](https://slashpage.com/conanssam.md).
