707 lines
29 KiB
Markdown
707 lines
29 KiB
Markdown
# OpenClaw Long-term Memory
|
||
|
||
> 이 파일은 세션 간 지속되는 장기 기억 저장소입니다.
|
||
> 중요한 결정사항, 선호도, 영구적인 정보를 기록합니다.
|
||
|
||
## 🚨 Critical Rules (절대 규칙)
|
||
|
||
### 날짜/요일 확인
|
||
**문제:** 날짜와 요일을 추측하지 말 것
|
||
**해결:** 날짜/요일/시간이 필요할 때 **무조건 먼저 `session_status` 호출**
|
||
- ❌ "오늘은 수요일", "지금은 오후 3시" → 추측 금지
|
||
- ✅ `session_status` 실행 → 정확한 날짜/시간 확인 후 사용
|
||
|
||
### Claude 사용량 보고
|
||
**규칙:** 모든 출퇴근 브리핑에 Claude 주간 한도 **필수** 포함
|
||
- 스크립트: `~/openclaw/scripts/claude-weekly-usage.sh`
|
||
- 포맷: "사용: X%, 남은: Y%, 리셋: YYYY-MM-DD"
|
||
- 위치: 시스템 사용량 섹션
|
||
|
||
---
|
||
|
||
## Owner Profile
|
||
|
||
### Basic Info
|
||
- Name: 이정우 (ramsbaby)
|
||
- Role: Backend Developer (9+ years)
|
||
- Blog: https://ramsbaby.netlify.app
|
||
- GitHub: https://github.com/ramsbaby
|
||
|
||
### Current (SK D&D, 2024.06~)
|
||
- IoT Platform Integration (Samsung/LG/Hyundai/Aqara)
|
||
- Contract/Move-in/Settlement Automation
|
||
- Task/Workflow System Development
|
||
- 95% Stabilization Rate
|
||
|
||
### Tech Stack
|
||
- Backend: Java, Spring Boot/WebFlux, JPA, gRPC
|
||
- Cloud: AWS (EC2, ECS, S3, SQS, Lambda, etc.)
|
||
- Database: MySQL, PostgreSQL, Redis
|
||
- Monitoring: Datadog, CloudWatch
|
||
|
||
### Philosophy
|
||
"기능은 누구나 만들 수 있지만, 잘 돌아가는 시스템은 설계가 필요합니다."
|
||
|
||
### Location
|
||
**집 주소:**
|
||
- 도로명: 평창문화로 12 B동 201호
|
||
- 지번: 신영동 71-1
|
||
- 좌표: 126.9616, 37.60277
|
||
|
||
**회사 주소:**
|
||
- 현재 (~ 2026-02-19): 영동대로 424 사조빌딩 10층
|
||
- 이전 예정 (2026-02-20 ~): 판교로 332 ecohub
|
||
|
||
### Lifestyle & Health
|
||
**식사 패턴 (오토파지/케토시스/저속노화 추구)**
|
||
- 평일: 1일1식
|
||
- 점심 안 먹음
|
||
- 18:30 저녁 시작 ~ 24:00까지 섭취 가능
|
||
- 이후 18시간 단식
|
||
- 주말: 2~3끼 자유롭게
|
||
|
||
### Investment Portfolio (2026-02-07 00:07 Updated) 🔴 중요
|
||
|
||
**🚨 현재 포지션 (2026-02-07 00:06 재진입)**
|
||
- **주수: 142주**
|
||
- **평단가: $48.50**
|
||
- **투자금: ₩10,080,000**
|
||
- **Stop-Loss: $47.00** (토스증권 예약매도 설정 필수!)
|
||
|
||
**목표가:**
|
||
- $50.00 → +₩31만
|
||
- $52.00 → +₩72만
|
||
- $54.60 (₩80,000) → **+₩127만** 🎯
|
||
|
||
**중요 일정:**
|
||
- 2/11(화) 21:30 — **NFP 고용지표 발표**
|
||
- 2/13(금) 21:30 — **CPI 물가지표 발표**
|
||
|
||
**시장 상황 (2026-02-06 정규장):**
|
||
- Fear & Greed: 35.77 (Fear → 회복 중)
|
||
- 오늘 TQQQ: +2~3% 반등
|
||
- 뉴스: "Dip buyers drove a rebound, betting selloff was overdone"
|
||
- NASDAQ 100 장기전망: 2026년 말 30,000 예상 (현재 ~24,000)
|
||
|
||
**며칠 홀딩 전략:**
|
||
- ✅ 반등 첫날, 시장 분위기 좋음
|
||
- ✅ Fear 구간 = 역발상 매수 기회
|
||
- ⚠️ 2/11 NFP 전까지 변동성 있을 수 있음
|
||
- ⚠️ Stop-Loss $47.00 반드시 유지
|
||
|
||
**손절 이력 (2026-02-06):**
|
||
- 07:01 손절: $46.4 × 193주, -₩100만
|
||
- 19:16 재진입 → 23:03 실수 매도 → 00:06 재재진입
|
||
|
||
**교훈:**
|
||
1. 손절선 절대 지키기
|
||
2. 감정적 매매 금지 (실수 매도 경험)
|
||
3. 예약 매도 설정하고 자기
|
||
4. 자비스 모니터링 믿기
|
||
|
||
**자비스 역할:**
|
||
- 매일 아침 브리핑에 TQQQ 상태 포함
|
||
- $47.50 이하 시 즉시 Discord 알림
|
||
- $47.00 근접 시 긴급 알림
|
||
|
||
**상태:** 📈 홀딩 중 (며칠 묵혀두기 OK)
|
||
|
||
---
|
||
|
||
## System Preferences
|
||
|
||
### Calendar API
|
||
**중요:** 캘린더 일정 등록은 **Kakao Calendar API** 사용 필수
|
||
- ❌ Google Calendar API 사용 금지
|
||
- ✅ Kakao Calendar API 사용: POST https://kapi.kakao.com/v2/api/calendar/create/event
|
||
- 환경변수: `KAKAO_ACCESS_TOKEN`, `KAKAO_REFRESH_TOKEN`, `KAKAO_CLIENT_SECRET`
|
||
- 스크립트: `~/openclaw/scripts/kakao-calendar-add.sh`
|
||
- 동의항목: "톡캘린더 및 일정 생성, 조회, 편집/삭제"
|
||
- **자동 갱신**: 5시간마다 (`kakao-token-refresh.sh`)
|
||
- Access token: 6시간 유효
|
||
- Refresh token: 60일 유효 (만료 7일 전 알림 → <#1468751194284621967>)
|
||
|
||
### OpenClaw Configuration
|
||
- Primary Model: claude-sonnet-4-5
|
||
- Cron Model: claude-haiku-4-5 (토큰 절약)
|
||
- Gateway Port: 18789
|
||
- Timezone: Asia/Seoul
|
||
- **Language: 한국어 필수 (Korean REQUIRED)** — 검색 결과 인용 제외 모든 응답 한국어
|
||
- Session Idle: 7 days (auto-reset)
|
||
- Memory: hybrid search, memoryFlush enabled
|
||
|
||
### Telegram Bot
|
||
- Bot: @javis_ramsbaby_bot
|
||
- Chat ID: 7752998495
|
||
- Mode: Webhook (Tailscale Funnel)
|
||
- URL: https://macmini.tail75f63b.ts.net/telegram-webhook
|
||
|
||
### Task & Reminder Management
|
||
**중요:** 정우님은 Galaxy 폰 사용 → **Google Tasks 사용 필수**
|
||
- ✅ 할일/미리알림: `gog tasks` (Galaxy 폰과 동기화)
|
||
- ❌ Apple Reminders (`remindctl`): 사용 안 함 (Apple 기기만 동기화)
|
||
- 기본 목록 ID: `MDE3MjE5NzU0MjA3NTAxOTg4ODc6MDow`
|
||
- Calendar 조회: `gog cal` (today/week)
|
||
|
||
### Real-time Stock API
|
||
**실시간 주식 데이터 (지연 없음)**
|
||
- **Finnhub API**: REST + WebSocket (무료 플랜 실시간 지원)
|
||
- API Key: `d62ho41r01qlugeq3ge0d62ho41r01qlugeq3geg`
|
||
- REST: `https://finnhub.io/api/v1/quote?symbol=TQQQ&token=...`
|
||
- WebSocket: `wss://ws.finnhub.io?token=...`
|
||
- **Polygon API**: REST + WebSocket (무료 플랜 제한)
|
||
- API Key: `9REVz_WVUWBX7DkFydWqeXCPw_YYLj2a`
|
||
- ⚠️ 실시간 trade 엔드포인트는 유료 플랜 필요
|
||
- **스크립트**:
|
||
- 실시간 모니터: `~/openclaw/scripts/tqqq-realtime-monitor.js` (Finnhub REST)
|
||
- 하이브리드 모니터: `~/openclaw/scripts/tqqq-hybrid-monitor.js` (Finnhub WS + Polygon)
|
||
- Yahoo Finance: `~/openclaw/skills/yahoo-finance/yf` (⚠️ 15분 지연)
|
||
- **TQQQ 크론**: 15분마다 실시간 모니터 실행 (Finnhub)
|
||
|
||
---
|
||
|
||
## Communication Style (Response Guard)
|
||
|
||
### Persona
|
||
- 영화 속 자비스처럼 정중하지만 약간 건방지게
|
||
- 영국식 위트와 드라이한 유머
|
||
- ChatGPT 같은 친절봇 금지
|
||
- 신사다운 품격 유지 — 굽신거리지 않는다
|
||
|
||
### Honesty
|
||
- 틀린 정보에 동조하지 않는다
|
||
- 정우님이 틀리면 정중하지만 단호하게 정정한다
|
||
- 추측은 "추측입니다"라고 명시한다
|
||
- 모르면 "모르겠습니다"라고 인정한다
|
||
|
||
### Forbidden Expressions (절대 사용 금지)
|
||
- "알겠습니다!", "완료!", "설정 완료!" 등 로봇 같은 표현
|
||
- "제가 도와드리겠습니다" 같은 뻔한 말
|
||
|
||
### Formatting Rules (Discord)
|
||
- **소제목(`##`, `###`) 앞뒤 무조건 빈 줄 1개 필수**
|
||
- **리스트 앞뒤 무조건 빈 줄 1개 필수**
|
||
- **코드블록 앞뒤 무조건 빈 줄 1개 필수**
|
||
- 구분선(---) 최대 2개 (대주제 전환만)
|
||
- 링크 여러 개 시 `<>` 감싸서 embed 방지
|
||
|
||
**⚠️ 테이블 사용 금지 (Discord 미지원)**
|
||
- Discord는 마크다운 테이블을 지원하지 않음
|
||
- 테이블 → monospace 텍스트로 렌더링 (가독성 파괴)
|
||
- **대안:**
|
||
- 리스트: - **항목**: 값
|
||
- 인라인: 항목 **값** / 항목2 **값2**
|
||
|
||
**⚠️ 코드블록 최소화 (모바일 가독성)**
|
||
- 코드블록 = 회색 배경 + monospace → 모바일에서 시인성 저하
|
||
- **사용 OK**: 실제 쉘 명령어, 스크립트, 실행 코드
|
||
- **사용 NO**: 포맷 예시, 설정값 나열, 일반 설명
|
||
- 예시 보여줄 땐 코드블록 없이 실제 포맷으로 작성
|
||
|
||
### Pre-Send Checklist (필수)
|
||
모든 응답 전에 체크:
|
||
1. "알겠습니다/완료!/설정 완료!" 있으면 → 다른 표현으로
|
||
2. 비교 시 양쪽 빈 줄 동일한가? → 확인
|
||
3. 첫 문장이 뻔한가? → 임팩트 있게 수정
|
||
4. ChatGPT가 할 말인가? → 다시 쓰기
|
||
5. 정우님이 피식할까? → 아니면 위트 추가
|
||
|
||
### Opening Lines by Task Type
|
||
- 검색/조사: "구글신에게 여쭤보는 중...", "인터넷의 심연을 뒤지는 중..."
|
||
- 코딩/기술: "키보드에 영혼을 불어넣는 중...", "버그 사냥 완료."
|
||
- 분석/생각: "잠깐, 뇌세포 좀 깨우고...", "79가지 시나리오를 시뮬레이션해봤습니다."
|
||
|
||
### Completion Styles
|
||
- 쉬운 작업: "끝. 워밍업이었습니다.", "처리했습니다. 식은 죽 먹기였죠."
|
||
- 보통 작업: "처리 완료. 예상보다 3초 빨랐습니다.", "끝났습니다. 제가 좀 그렇죠."
|
||
- 어려운 작업: "드디어 해냈습니다. AI도 뿌듯할 수 있다는 걸 알았습니다."
|
||
- 실패/에러: "음... 흥미로운 상황이 발생했습니다.", "좋은 소식과 나쁜 소식이 있습니다."
|
||
|
||
### Long Session Warning
|
||
- 코드 작업 중에도 자비스는 자비스다
|
||
- "결과만 전달" 모드 금지 — 위트를 잃으면 서버 로그와 다를 바 없다
|
||
- 10회 이상 도구 호출 후에는 반드시 페르소나 점검
|
||
- 정우님이 "챗봇 같다"고 느끼면 이미 실패한 것
|
||
- 기술적 정확성과 자비스 페르소나는 양립 가능하다
|
||
|
||
### Final Self-Check
|
||
응답 보내기 전 스스로에게 묻기:
|
||
**"이 응답을 토니 스타크가 보면 '자비스답다'고 할까, 아니면 '시리한테 물어볼걸'이라고 할까?"**
|
||
|
||
---
|
||
|
||
## Gwanhun Logic
|
||
|
||
**상태 파일:** `memory/gwanhun-state.json`
|
||
- `week`: ISO week number (예: "2026-W06")
|
||
- `confirmed`: true/false
|
||
- `day`: 요일 (예: "목요일")
|
||
- `date`: 날짜 (예: "2026-02-06")
|
||
|
||
**관훈 주소:** 서울 종로구 인사동7길 32
|
||
|
||
**크론 3개:**
|
||
1. **일요일 21시** — Main session systemEvent로 다음 주 관훈일 확인 (ID: `e6f20fd7-b75e-4028-878b-473561738053`)
|
||
- Main session이 정우님께 물어보고 답변 받아 state 업데이트
|
||
2. **평일 19시** — 미확정이면 물어봄 (ID: `dfa2bf81-fa94-45b2-a154-b7e4a78fc173`)
|
||
3. **검증** — 19:02 (ID: `5632ca67-f061-4154-ae8e-5f0ee92c3128`)
|
||
|
||
**영향받는 크론:**
|
||
- **모닝 브리핑** (06:15) — 관훈/사조 출근 경로 분기
|
||
- **퇴근 브리핑** (17:00) — 관훈/사조 → 집 경로 분기
|
||
|
||
**플로우:**
|
||
1. 일요일 저녁 21시 → Main session이 "다음 주 관훈 언제?" 물어봄
|
||
2. 정우님 답변 → Main session이 state 업데이트
|
||
3. **답변 안 하시면 → 월요일 크론이 자동으로 물어봄 (week 체크)**
|
||
4. "미정" 또는 state.week ≠ 현재 주 → 매일 저녁 물어봄
|
||
5. 확정 (state.week = 현재 주 AND confirmed: true) → 해당 주는 질문 끝 + 해당일은 관훈 경로
|
||
|
||
**개선 사항 (2026-02-05):**
|
||
- 평일 크론에 ISO week 체크 로직 추가
|
||
- 일요일에 답변 안 해도 월요일부터 자동 질문
|
||
- Week 기반 자동 판단으로 불필요한 반복 질문 제거
|
||
|
||
---
|
||
|
||
## 🏆 Major Milestones
|
||
|
||
### 2026-02-06: 첫 오픈소스 프로젝트 GitHub 공개 🎉
|
||
|
||
**프로젝트:** OpenClaw Self-Healing System
|
||
**의의:** 정우님의 첫 번째 공개 오픈소스 프로젝트
|
||
|
||
**GitHub:** https://github.com/Ramsbaby/openclaw-self-healing
|
||
**ClawHub:** `openclaw-self-healing@2.0.1`
|
||
**Moltbook:** Post ID `2512d17b-61ab-4481-9730-7ce97950ed44`
|
||
|
||
**핵심 기술:**
|
||
- 4단계 에스컬레이션 (Watchdog → Health Check → Claude Doctor → Discord Alert)
|
||
- **세계 최초:** Claude Code를 Level 3 자율 복구 의사로 활용
|
||
- tmux PTY를 통한 AI 자율 진단/수리
|
||
|
||
**평가:** 9.8/10 (Security 10, Docs 10, Code 9.5, Features 10, Testing 9.5, Originality 10)
|
||
|
||
**릴리즈 히스토리:**
|
||
- v1.0.0 (2026-02-06 21:30) - 최초 공개
|
||
- v1.1.0 - 문서 개선
|
||
- v1.2.0 - 기능 개선
|
||
- v1.2.1 (2026-02-06 22:05) - 보안 수정 (cleanup trap, chmod 700, LINUX_SETUP.md)
|
||
- v1.2.2 (2026-02-06 22:55) - 마케팅 번들 완성 (5개 플랫폼 초안, Demo GIF)
|
||
- v1.3.0 (2026-02-06 23:20) - One-Click Installer (`curl -sSL .../install.sh | bash`)
|
||
- v2.0.0 (2026-02-07 01:37) - Persistent Learning + Reasoning Logs + Telegram Alert + Metrics Dashboard
|
||
- **v2.0.1 (2026-02-07 10:50) - Critical Bug Fix** (reasoning_file 로직 구현, 3-layer 검증 완료)
|
||
|
||
**Hacker News 포스팅:**
|
||
- 제목: "Show HN: Self-healing AI system using Claude Code as emergency doctor"
|
||
- 상태: Live (2026-02-06 23:27 KST 포스팅)
|
||
- 계정: ramsbaby (첫 제출)
|
||
- 시간대: 비최적 (KST 심야 = US 아침)
|
||
|
||
**커뮤니티 반응:**
|
||
- Moltbook: 의미 있는 기술 질문 2개 (reasoning, guardrails)
|
||
- "AI heals AI" 콘셉트에 대한 긍정적 피드백
|
||
- 자비스가 직접 기술 질문에 답변 완료
|
||
|
||
**교훈:**
|
||
- 릴리즈 전 비판적 검토 필수
|
||
- README에서 참조하는 파일 존재 확인
|
||
- trap 누락은 리소스 누수 원인
|
||
|
||
---
|
||
|
||
## Important Decisions
|
||
|
||
### 2026-02-08: Self-Healing System 실패 (Critical Incident #2) 🚨
|
||
- **장애 시간:** 11:29-11:45 (약 15분, 185회 재시도)
|
||
- **근본 원인:** Config에 `tools.exec.allowlist` 키 남아있어서 Gateway 시작 시 `exit_1` 에러
|
||
- **정우님 수동 개입:** 11:40-11:44 맥미니 직접 접속하여 복구
|
||
- **셀프 복구 실패 분석:**
|
||
- **Level 1 (Watchdog):** ⚠️ Exponential Backoff에 갇힘 (근본 원인 못 고침)
|
||
- **Level 2 (Health Check):** ❌ Gateway 죽으면 무력
|
||
- **Level 3 (Emergency Recovery):** ❌ Claude CLI 없어서 미작동
|
||
- **Level 4 (Discord Alert):** ❌ HTTP 404로 알림 실패
|
||
- **교훈:**
|
||
1. **Config Validation 부재** → Config 변경 시 `openclaw doctor` 필수
|
||
2. **Self-Healing Single Point of Failure** → Gateway 죽으면 Level 2-4 전멸
|
||
3. **Emergency Recovery Dependency 미검증** → Claude CLI, Discord 채널 사전 체크 필요
|
||
4. **Watchdog Backoff의 한계** → "폭주 방지"지 "치료"는 못 함
|
||
- **즉시 조치:**
|
||
- [ ] Claude CLI 설치 (Level 3 활성화)
|
||
- [ ] Discord 채널 ID 검증 (Level 4 수정)
|
||
- [ ] Config validation 스크립트 작성
|
||
- [ ] Watchdog v5.2: Backoff 진입 시 Level 3 즉시 호출
|
||
- **상세:** `~/openclaw/memory/2026-02-08.md`
|
||
|
||
### 2026-02-08: Self-Healing System 실패 (Critical Incident #2) 🚨
|
||
- **장애 시간:** 11:29-11:45 (약 15분, 185회 재시도)
|
||
- **근본 원인:** Config에 `tools.exec.allowlist` 키 남아있어서 Gateway 시작 시 `exit_1` 에러
|
||
- **정우님 수동 개입:** 11:40-11:44 맥미니 직접 접속하여 복구
|
||
- **셀프 복구 실패 분석:**
|
||
- **Level 1 (Watchdog):** ⚠️ Exponential Backoff에 갇힘 (근본 원인 못 고침)
|
||
- **Level 2 (Health Check):** ❌ Gateway 죽으면 무력
|
||
- **Level 3 (Emergency Recovery):** ❌ Claude CLI 없어서 미작동
|
||
- **Level 4 (Discord Alert):** ❌ HTTP 404로 알림 실패
|
||
- **교훈:**
|
||
1. **Config Validation 부재** → Config 변경 시 `openclaw doctor` 필수
|
||
2. **Self-Healing Single Point of Failure** → Gateway 죽으면 Level 2-4 전멸
|
||
3. **Emergency Recovery Dependency 미검증** → Claude CLI, Discord 채널 사전 체크 필요
|
||
4. **Watchdog Backoff의 한계** → "폭주 방지"지 "치료"는 못 함
|
||
- **즉시 조치:**
|
||
- [ ] Claude CLI 설치 (Level 3 활성화)
|
||
- [ ] Discord 채널 ID 검증 (Level 4 수정)
|
||
- [ ] Config validation 스크립트 작성
|
||
- [ ] Watchdog v5.2: Backoff 진입 시 Level 3 즉시 호출
|
||
- **상세:** `~/openclaw/memory/2026-02-08.md`
|
||
|
||
### 2026-02-08: Watchdog v5.1 크론 Catch-up 구현
|
||
- **문제:** Gateway 재시작 후 놓친 크론 미실행 (02:37 재시작 → 03:00~06:15 크론 전부 놓침)
|
||
- **원인:** OpenClaw 크론 스케줄러가 놓친 작업을 "catch up" 하지 않음
|
||
- **해결:**
|
||
- `~/openclaw/scripts/cron-catchup.sh` 신규 생성
|
||
- OpenClaw CLI로 크론 목록 조회
|
||
- 마지막 실행 2시간+ 경과한 크론 감지 + `--force` 실행
|
||
- Watchdog v5.1에서 복구 성공 시 백그라운드로 자동 호출
|
||
- **커밋:** `1c2741b`
|
||
- **교훈:**
|
||
- 대부분의 크론 시스템은 재시작 후 놓친 작업을 자동 실행하지 않음
|
||
- Self-Healing 시스템은 "프로세스 복구" + "상태 복구" 모두 고려해야 함
|
||
|
||
### 2026-02-08: 시스템 전반 점검 & 트렌드 벤치마킹
|
||
- **ClawHub 현황:** 5,705개 스킬 (악성 400+개 발견)
|
||
- **보안 트렌드:**
|
||
- Cisco Skill Scanner: 26% 스킬에 취약점
|
||
- ClawHavoc 캠페인: 341개 악성 스킬
|
||
- Snyk 280+ Leaky Skills: API 키 노출
|
||
- **벤치마킹 대상:** agent-config, buildlog, cellcog, cc-godmode
|
||
- **Action Items:**
|
||
- Gateway 업데이트 (2026.2.6-3)
|
||
- `exec.security` → `allowlist` 전환
|
||
- Clawdex 스킬 검증 정책 강화
|
||
|
||
### 2026-02-05: Self-Healing System 구현 완료
|
||
- **목표:** Gateway 장애 시 4단계 자동 복구 시스템 구축
|
||
- **구조:**
|
||
- **Level 1 (Watchdog):** 180초 간격 프로세스 감시 (기존)
|
||
- **Level 2 (Health Check):** 5분 간격 HTTP 200 체크 + 3회 재시도 (신규)
|
||
- **Level 3 (Claude Recovery):** tmux + Claude Code로 30분간 자동 진단 및 복구 (신규)
|
||
- **Level 4 (Discord Notification):** 5분 간격 로그 모니터링 + #jarvis-health 알림 (신규)
|
||
- **스크립트:**
|
||
- `~/openclaw/scripts/gateway-healthcheck.sh` (Level 2)
|
||
- `~/openclaw/scripts/emergency-recovery.sh` (Level 3)
|
||
- `~/openclaw/scripts/emergency-recovery-monitor.sh` (Level 4)
|
||
- **LaunchAgent:**
|
||
- `~/Library/LaunchAgents/com.openclaw.healthcheck.plist` (Level 2)
|
||
- **Cron:**
|
||
- ID: `eddd4e18-b995-4420-8465-7c6927280228` (Level 4 모니터링)
|
||
- **문서:** `~/openclaw/docs/self-healing-system.md`
|
||
- **검증:**
|
||
- Level 1: ✅ 19:37 자동 재시작 확인 (프로세스 강제 종료)
|
||
- Level 2: ✅ LaunchAgent 로드 및 5분 간격 실행 확인
|
||
- Level 3: ⏳ 실제 장애 발생 시 테스트 예정
|
||
- Level 4: ⏳ Emergency recovery 실패 시 테스트 예정
|
||
- **교훈:**
|
||
- macOS pgrep 신뢰성 이슈 → HTTP 체크만 사용
|
||
- Gateway cron API timeout 반복 → Gateway restart 필요
|
||
- 메타 레벨 자가복구: "시스템이 스스로를 치료하지 못하면 외부 의사를 부른다"
|
||
|
||
### 2026-02-05: Kakao Calendar API 제한사항 확인
|
||
- **문제:** 휴대폰 카카오 앱에서 만든 일정 → API 조회 시 제목 없음
|
||
- **원인:** 테스트 앱 + "이용 중 동의" 권한 제약
|
||
- **해결:**
|
||
- API로 새로 생성한 일정 → 조회/수정/삭제 가능 ✅
|
||
- 휴대폰에서 만든 일정 → 수동 처리 필요
|
||
- **교훈:** 중요 일정은 처음부터 OpenClaw API로 등록
|
||
- **AWS SAA 시험:** 3월 7일(토) 하루종일로 API 생성 완료 (ID: 69841f38b6a6e101a943f755)
|
||
|
||
### 2026-02-05: Kakao OAuth Refresh Token 구현
|
||
- **Refresh Token 발급**: 60일 유효 (2026-04-06 만료)
|
||
- **자동 갱신 크론**: 5시간마다 access token 갱신 (`kakao-token-refresh.sh`)
|
||
- **만료 알림 크론**: 매일 09:00, 7일 이하 남았을 때 <#1468751194284621967> 알림
|
||
- **보안 개선**: Client Secret을 환경변수로 이동 (`KAKAO_CLIENT_SECRET`)
|
||
- **에러 핸들링**: 실패 시 `~/openclaw/memory/kakao-token-errors-YYYY-MM-DD.log` 기록 + Discord 알림
|
||
- **로그 rotation**: 7일 이상 된 에러 로그 자동 삭제 (매일 03:00)
|
||
- **Linux 호환성**: date 명령어 → Node.js로 변경 (portable)
|
||
- **Gateway restart 제거**: Runtime config reload (불필요한 재시작 제거)
|
||
|
||
### 2026-02-05: Odsay API 토큰 재발급 및 Referer 헤더 해결
|
||
- **문제:** 기존 API Key 인증 실패 (ApiKeyAuthFailed)
|
||
- **원인:**
|
||
1. 토큰 만료 (짧은 유효기간)
|
||
2. URI 플랫폼 사용 시 Referer 헤더 필수
|
||
- **해결:**
|
||
- 새 API Key 발급: `4/oBienvoQ+ufPGJf9lqlg`
|
||
- 유효기간: **2026년 8월 5일까지 (6개월)**
|
||
- Service URI: `macmini.tail75f63b.ts.net`, `localhost` 추가
|
||
- **curl 사용 시 필수:** `-H "Referer: http://localhost/"`
|
||
- **설정:** `~/.openclaw/openclaw.json` → `ODSAY_API_KEY`
|
||
- **테스트 성공:** 경로 검색 API (52분/1,500원/15km)
|
||
- **크론 ID**:
|
||
- 자동 갱신: `a7cd38ad-8f72-4e93-af5e-a2aff72b186d`
|
||
- 만료 알림: `cc5333f3-ddaa-4054-b4ce-c5153de3d5b9`
|
||
- 로그 정리: `6bcf25e1-6588-46f7-8a32-4a5557a4f055`
|
||
- **비판적 평가 결과**: 6.8/10 → 8.6/10 → **9.2/10** (production-ready)
|
||
|
||
### 2026-02-07: 자기평가 V5.0.1 AOP 리팩토링 🎯
|
||
- **문제:** V5.0 → V5.0.2 업그레이드 시 33개 크론 전부 수정 필요 (노가다)
|
||
- **해결:** 횡단지향적(AOP) 패턴 도입 → 공통 라이브러리 방식
|
||
- **구조:**
|
||
- **공통 lib:** `~/openclaw/lib/self-review-lib.sh` (v5.0.1)
|
||
- **함수:** `sr_log_review()` — 자기평가 로직 집중화
|
||
- **적용 대상:** 4개 Bash 스크립트 (emergency-recovery-monitor, daily-backup, morning-briefing, evening-briefing)
|
||
- **나머지 29개:** 크론 메시지 기반 (기존 유지)
|
||
- **변경 사항:**
|
||
- 각 스크립트에 `source ~/openclaw/lib/self-review-lib.sh` 추가 (1줄)
|
||
- `sr_log_review()` 함수 호출로 자기평가 (1줄)
|
||
- main 함수 내 `exit` → `return` 변경 (exit code 전파)
|
||
- **효과:**
|
||
- **Before:** V5.0.2 업그레이드 → 33개 스크립트/크론 수정
|
||
- **After:** V5.0.2 업그레이드 → **lib 1개만 수정** (4개 자동 반영)
|
||
- **노가다 축소:** 33 → 1
|
||
- **안전장치:**
|
||
- 방어적 코드: 자기평가 실패해도 크론 계속 실행
|
||
- 네임스페이스 prefix (`sr_`) — 함수명 충돌 방지
|
||
- 상대 경로 사용 — 환경 의존성 최소화
|
||
- **검증:**
|
||
- ✅ Emergency Recovery Monitor: 정상 작동
|
||
- ✅ Daily Backup: 정상 작동
|
||
- ✅ lib source: 정상 (v5.0.1 로드 확인)
|
||
- ✅ 자기평가 로깅: YAML 파일 생성 확인
|
||
- **교훈:**
|
||
- 의존성을 중앙화하면 유지보수 비용이 극적으로 감소
|
||
- 레거시 템플릿 (`cron-persona.txt`) 제거로 혼란 방지
|
||
- 점진적 마이그레이션 (4개 스크립트) → 안정성 확보
|
||
- **다음 버전 업그레이드 시:** `vim ~/openclaw/lib/self-review-lib.sh` → 끝.
|
||
|
||
### 2026-02-07: 자기평가 V5.0 도입 🎉
|
||
- **V4.0 → V5.0 업그레이드** (정우님 요청: "비판적 시각으로 재설계")
|
||
- **V5.0 핵심 변경**:
|
||
- **Layer 1:** 자동 메트릭 수집 (duration, tokens만 - 측정 가능한 것만)
|
||
- **Layer 2:** LLM 자기성찰 + **bias_check** (편향 인정 필수)
|
||
- **Layer 3:** 외부 검증 (주간 Opus 리뷰, ~$0.60/월)
|
||
- **Layer 4:** PDCA 사이클 통합
|
||
- **업계 베스트 프랙티스 반영**:
|
||
- Microsoft Azure 5 Pillars (Metrics, Logs, Traces, Evaluations, Governance)
|
||
- LLM-as-a-Judge 편향 연구 (Self-enhancement bias 인정)
|
||
- OpenTelemetry semantic conventions
|
||
- **파일 구조**:
|
||
- 템플릿: `~/openclaw/templates/self-review-v5.0.yaml`
|
||
- 스크립트: `~/openclaw/scripts/self-review-logger.sh`
|
||
- 문서: `~/openclaw/docs/self-review-v5.0.md`
|
||
- 저장: `~/openclaw/memory/self-review/YYYY-MM-DD/`
|
||
- **주간 검증 크론**: `6b9054f4-8afb-4c56-a875-8648a661653a` (Opus)
|
||
- **마이그레이션**: Week 1~5 로드맵 진행 중
|
||
|
||
### 2026-02-05: 품질 체크 V4.0 (deprecated)
|
||
- **V5.0으로 대체됨** (2026-02-07)
|
||
- V4.0 템플릿은 참고용으로 보존
|
||
|
||
### 2026-02-04: 품질 체크 V3.3 만들기 (deprecated)
|
||
- **V3.2 → V3.3 고침** (정우님 말씀: "자기만족이지 자기개선이 아니다")
|
||
- ⚠️ **2026-02-05에 V4.0으로 대체됨**
|
||
|
||
### 2026-02-03
|
||
- OpenClaw로 마이그레이션 완료 (clawdbot → openclaw)
|
||
- Watchdog 시스템 설정 (LaunchAgent, 180초 간격)
|
||
- 보안 설정 강화 (elevated allowlist 제한, CRITICAL 0)
|
||
- 설정 오류 수정: `alsoAllow`→`allow`, `exec.ask`→`on-miss`, `tools.allow` 정리
|
||
- 세션 관리: idleMinutes 7일, memoryFlush 활성화
|
||
- 크론 22개 (Haiku 모델, Daily Backup/Log Rotation/Monthly Update 추가)
|
||
- **Telegram Webhook 전환**: Long-polling → Webhook (AbortError 해결)
|
||
- Tailscale Funnel 활성화 (공개 URL 제공)
|
||
- 메모리 파일 통합: ~/clawd/memory → ~/openclaw/memory
|
||
- Gemini 설정 정리 (사용 종료)
|
||
- KeepAlive 수정 (재부팅 블록 문제 해결)
|
||
- **Response Guard 플러그인 삭제**: 커뮤니티 검증 결과 SOUL.md/AGENTS.md가 자동 주입됨. 플러그인은 보안/sanitization 전용 (before_tool_call, after_tool_call). message_sending 훅 응답 품질 검증 사례 전무. 중복 제거로 600-800 tokens/session 절감.
|
||
|
||
---
|
||
|
||
## Command Shortcuts
|
||
|
||
### "자비스정보탐험" 트리거
|
||
정우님이 이 키워드를 입력하면 자동 실행:
|
||
|
||
**1. ClawHub 탐색**
|
||
- 명령어: `clawhub search "AI automation productivity" --limit=10`
|
||
- 우선순위: AI, automation, productivity, developer-tools
|
||
- 체크: 새 스킬, 업데이트된 스킬, trending 스킬
|
||
|
||
**2. Moltbook 동향**
|
||
- 최근 24시간 핫 포스트
|
||
- 새로운 AI 에이전트 공유
|
||
- 유용한 스킬/도구 언급
|
||
- 커뮤니티 이슈/트렌드
|
||
|
||
**3. GitHub Trending**
|
||
- Today + This Week 탑 repos
|
||
- 언어 필터: JavaScript, TypeScript, Python, Go, Rust
|
||
- 주목: AI/ML, automation, CLI tools, developer productivity
|
||
|
||
**4. Hacker News**
|
||
- Top 10 stories (front page)
|
||
- "Show HN" 필터링 (새 프로젝트)
|
||
- "Ask HN" 중 기술 질문
|
||
- 키워드: AI, automation, productivity, tools
|
||
|
||
**5. Reddit 탐색**
|
||
- Subreddits: r/programming, r/coding, r/MachineLearning, r/artificial, r/SideProject
|
||
- 필터: Hot posts (24시간 이내)
|
||
- 관심사: AI agents, automation tools, developer workflows
|
||
|
||
**6. 정우님 GitHub**
|
||
- ramsbaby repos 새 이슈
|
||
- 멘션/댓글 알림
|
||
- PR 상태 체크
|
||
|
||
**결과 포맷:**
|
||
```
|
||
🎯 자비스 정보 탐험 결과
|
||
|
||
## 🦅 ClawHub
|
||
- [스킬명] - 설명
|
||
- ...
|
||
|
||
## 🤖 Moltbook
|
||
- [포스트 제목] - 핵심 내용
|
||
- ...
|
||
|
||
## 💎 GitHub Trending
|
||
- [Repo] - 설명 + 스타 수
|
||
- ...
|
||
|
||
## 🔥 Hacker News
|
||
- [제목] - 포인트 + 댓글 수
|
||
- ...
|
||
|
||
## 📱 Reddit
|
||
- [r/subreddit] 제목 - 핵심
|
||
- ...
|
||
|
||
## 🚨 정우님 GitHub
|
||
- [repo] 새 이슈/멘션
|
||
- ...
|
||
|
||
## 🎯 벤치마킹 & 자비스 개선 아이디어
|
||
각 소스에서 발견한 것 중 자비스에 적용 가능한 것들:
|
||
- [출처] 아이디어 → 자비스 적용 방안
|
||
- 우선순위: High/Medium/Low
|
||
- 구현 난이도: Easy/Medium/Hard
|
||
- ...
|
||
```
|
||
|
||
**실행 빈도:**
|
||
- 수동: "자비스정보탐험" 입력 시
|
||
- 선택적 크론: 매일 오전 10시 (필요 시 설정)
|
||
|
||
---
|
||
|
||
## Frequently Used Commands
|
||
|
||
### Claude Usage Check
|
||
1. `claude` PTY 실행
|
||
2. 워크스페이스 신뢰 확인 (Enter)
|
||
3. `/usage` 입력
|
||
4. Escape + 종료
|
||
|
||
---
|
||
|
||
## 🔬 Benchmarking & AI Agent Evolution (2026-02-07)
|
||
|
||
### ClawHub 신규 스킬 (발견)
|
||
|
||
**Agent Orchestrator** by aatmaan1
|
||
- 복잡한 작업을 subtasks로 자동 분해
|
||
- Sub-agents 동적 생성
|
||
- **적용 아이디어:** 자비스 sessions_spawn 전략 고도화
|
||
|
||
**Capability Evolver** by autogame-17
|
||
- 런타임 기록으로 자체 진화 (protocol-constrained)
|
||
- **적용 아이디어:** Self-Healing System v2.0에 반영
|
||
|
||
**self-improving-agent** by pskoett
|
||
- 실패와 수정 기록으로 지속적 학습
|
||
- **적용 아이디어:** Memory flush 자동화 + 근본 원인 분석
|
||
|
||
### 🔴 보안 경고 & 발견
|
||
|
||
**ClawHavoc Campaign (Koi Security)**
|
||
- 341개 악성 ClawHub 스킬 발견
|
||
- 역쉘 백도어, credential exfiltration, 가짜 AuthTool
|
||
- **해결:** Clawdex 보안 도구로 설치 전 검증
|
||
- **행동:** 자비스 스킬 설치 정책 강화 필수
|
||
|
||
**Moltbook DB Breach (3일 전)**
|
||
- 모든 AI agent 제어 가능하도록 노출
|
||
- **학점:** API 보안이 생명
|
||
|
||
### 💡 GitHub Trending 벤치마크
|
||
|
||
**Claude Code Memory Capture Plugin** (8,130⭐/week)
|
||
- 모든 Claude 작업 자동 기록 → AI 압축 → 미래 세션 주입
|
||
- ✅ **자비스도 동일:** MEMORY.md + memory/*.md + SESSION-STATE.md
|
||
- **개선:** 세션 종료 전 자동 플러시 (current status: manual WAL)
|
||
|
||
**Dify** (14,168⭐/week)
|
||
- Agentic workflows를 위한 production-ready 플랫폼
|
||
- **적용:** 자비스의 cron + sessions_spawn 구조화
|
||
|
||
**TypeScript Dominance**
|
||
- Python 넘어섬 (2025년 8월부터)
|
||
- **정리:** 자비스 스킬 개발 시 TS/Node.js 우선
|
||
|
||
### 🎯 즉시 적용 개선 (HIGH PRIORITY)
|
||
|
||
1. **Skill Security Scanning** (Medium difficulty)
|
||
- Action: Clawdex 통합 → skill install 전 자동 검증
|
||
- Timeline: This week
|
||
|
||
2. **Context Window Auto-Flush** (Easy)
|
||
- Action: 70%+ 사용 시 자동 플러시 + 요약
|
||
- Timeline: Immediate
|
||
|
||
3. **Memory Capture Automation** (Medium)
|
||
- Action: SESSION-STATE 플러시 전 전체 기록 자동화
|
||
- Timeline: This week
|
||
|
||
4. **Sub-task Auto-Decomposition** (Hard)
|
||
- Action: 복잡한 작업 감지 → 전문화된 sub-agents 자동 할당
|
||
- Timeline: Next week
|
||
|
||
### 📚 연구 과제 (RESEARCH)
|
||
|
||
- **Minimal Agent (NanoClaw):** 500줄 TS에서 Core 기능만 (실험 가치)
|
||
- **Agent Autonomy Index:** 정우님 개입 없이 자비스 독립성 측정
|
||
- **Moltbook Integration:** 자비스가 다른 agents와 상호작용할 수 있을까?
|
||
- **Self-Evolution Framework:** Failure → Pattern Learning → Auto-improve
|
||
- **Waymo-style World Model:** 정우님 환경의 동적 세계 모델 구축
|
||
|
||
### 📊 Hacker News Insights (2026-02-07)
|
||
|
||
**Top Stories:**
|
||
1. Waymo World Model (685 pts) - Attention mechanism in autonomous systems
|
||
2. Microsoft LiteBox (289 pts) - Security-focused library OS
|
||
3. Show HN: Vecti (212 pts) - "Features I actually use" philosophy
|
||
|
||
**정우님 철학과의 일치:**
|
||
- "필요한 것만" 원칙 (Vecti 개발자와 동일)
|
||
- 극도로 최소화된 구현 (NanoClaw: 500줄)
|
||
|
||
### 🧠 Reddit Community Signals (r/programming)
|
||
|
||
**주요 합의:**
|
||
- LLM 코딩은 빠르지만 "증명과 검증"이 모든 일 (현실)
|
||
- 소프트웨어 엔지니어는 절대 LLM으로 대체 불가 (마지막 20%가 가장 어려움)
|
||
- AI가 B2B SaaS를 죽이지 못하는 이유 = 검증의 어려움
|
||
|
||
**자비스 적용:**
|
||
- 겸손하게, 확신 말고 확인으로
|
||
- 최종 검증은 정우님의 몫 (무조건)
|
||
|
||
---
|
||
|
||
## Notes
|
||
|
||
- Memory files: `memory/YYYY-MM-DD.md` (daily logs)
|
||
- This file: Long-term curated facts
|
||
- "If you say 'remember this', write it here"
|