8.3 KiB
8.3 KiB
Option 2-B 심층 검증 (목표: 9.8/10)
평가 기준 (10개 항목, 각 1점)
- 코드 일관성: 기존 코드와 충돌 없음
- 경로 정합성: 모든 경로 올바르게 설정
- 크론 영향도: 14개 크론 정상 작동
- 파일시스템: 디스크/퍼미션 문제 없음
- memory_search: 검색 정상 작동
- 로그 로테이션: 삭제 크론 정상 작동
- 에지 케이스: 날짜 변경/타임존 안전
- 문서 일관성: 모든 문서 동기화
- 백워드 호환성: 기존 파일 접근 가능
- 성능 영향: 검색 속도/I/O 문제 없음
1. 코드 일관성 검증
1.1 파일 변경 확인
# 변경된 파일 목록
- AGENTS.md (✅ 수정됨)
- HEARTBEAT.md (✅ 수정됨)
- cron/jobs.json (✅ 주간 크론 추가)
1.2 충돌 가능성 검색
grep -r "memory/YYYY-MM-DD.md" ~/openclaw/ --exclude-dir=.git
검증 필요:
- 다른 스크립트나 문서에서
memory/YYYY-MM-DD.md를 하드코딩한 곳이 있는가? - SESSION-STATE.md나 다른 메모리 파일과 충돌 가능성?
2. 경로 정합성 검증
2.1 새 경로 확인
memory/self-review-YYYY-MM-DD.md
체크:
- 경로가
memory/디렉토리 안에 있는가? ✅ - 날짜 포맷이 일관성 있는가? (YYYY-MM-DD) ✅
- 파일명 패턴이 명확한가? (self-review-*) ✅
2.2 memory_search 검색 범위
OpenClaw의 memory_search는 memory/*.md를 검색하므로:
memory/self-review-2026-02-04.md→ ✅ 검색됨- 추가 설정 필요 없음
3. 크론 영향도 검증
3.1 자기평가 포함된 크론 (V2)
jq -r '.jobs[] | select(.payload.message | contains("자기평가")) | .name' ~/.openclaw/cron/jobs.json
발견:
- 14개 크론이 응답에 자기평가 섹션 포함 (V2 방식)
- 문제: V2는 응답에만 출력하고 파일 기록 안 함 (현재 설계)
- 충돌: AGENTS.md는 "파일에 기록하라"고 지시
위험도: 🔴 HIGH
3.2 실제 동작 확인 필요
- 크론이 실행되면 실제로
memory/self-review-*.md에 기록하는가? - V2 메시지에서 자기평가를 파싱해서 저장하는 로직이 있는가?
- 아니면 AI가 자발적으로 파일에 기록할 것으로 기대하는가?
⚠️ 핵심 문제 발견: V2 설계는 "응답에만 출력"이지만, AGENTS.md는 "파일에 기록하라"고 명시. → 불일치 발견
4. 파일시스템 영향 검증
4.1 디스크 사용량 예측
- 하루 96회 TQQQ + 기타 14개 크론 = ~100회/일
- 평균 500바이트/평가 = 50KB/일
- 7일 보관 = 350KB (무시 가능)
점수: 1.0 / 1.0 ✅
4.2 퍼미션
memory/디렉토리는 이미 존재- 추가 퍼미션 설정 불필요
점수: 1.0 / 1.0 ✅
5. memory_search 호환성 검증
5.1 검색 범위
# memory_search는 memory/*.md를 검색
memory/self-review-2026-02-04.md → ✅ 검색됨
5.2 검색 쿼리 테스트 필요
# 실제 검색 테스트 (파일 생성 후)
memory_search("TQQQ 모니터링 WARNING")
점수: 0.9 / 1.0 (실제 테스트 필요)
6. 로그 로테이션 검증
6.1 삭제 크론 확인
# 크론 설정
expr: "50 23 * * 0" # 매주 일요일 23:50
6.2 삭제 명령 검증
find ~/openclaw/memory/ -name 'self-review-*.md' -mtime +7 -delete
문제 발견:
-mtime +7= "7일 초과" (8일 이상)- 의도: "7일 이전" (7일 이상)
- 수정 필요:
-mtime +7→-mtime +6
점수: 0.7 / 1.0 ⚠️ 버그 발견
6.3 안전성 검증
# dry-run 테스트
find ~/openclaw/memory/ -name 'self-review-*.md' -mtime +6 -ls
7. 에지 케이스 검증
7.1 날짜 변경 시점 (23:59:59 → 00:00:00)
- 크론이 23:50에 실행되면 자정 전 10분
- 날짜 파일명은 실행 시각 기준
- 문제 가능성: 23:50 실행 →
self-review-2026-02-04.md기록 → 23:55 평가 → 같은 파일에 기록 → ✅ 정상
7.2 타임존 (Asia/Seoul)
- 크론: Asia/Seoul ✅
- 파일명 생성 시 타임존 일치 확인 필요
- 검증 필요: AI가 파일명 생성 시 KST 기준인가 UTC 기준인가?
점수: 0.8 / 1.0 ⚠️ 타임존 검증 필요
8. 문서 일관성 검증
8.1 변경된 문서
- AGENTS.md ✅
- HEARTBEAT.md ✅
- MEMORY.md (언급 없음)
- README.md (언급 없음)
- SESSION-STATE.md (언급 없음)
8.2 일관성 체크
grep -r "self-review" ~/openclaw/*.md
grep -r "자기평가" ~/openclaw/*.md
점수: 0.9 / 1.0 (MEMORY.md 확인 필요)
9. 백워드 호환성 검증
9.1 기존 파일 영향
- 기존
memory/2026-02-04.md는 그대로 유지 - 새 파일
memory/self-review-2026-02-04.md생성 - 충돌 없음 ✅
9.2 기존 검색 영향
memory_search는 두 파일 모두 검색- 기존 daily notes도 정상 검색
- 호환성 유지 ✅
점수: 1.0 / 1.0 ✅
10. 성능 영향 검증
10.1 검색 속도
- 파일 추가: 1개 → 2개 (daily + self-review)
- 7일 보관: 14개 파일 총 (7 daily + 7 self-review)
- 영향: 미미 (파일 작고 개수 적음)
10.2 I/O 영향
- 하루 100회 쓰기 = 평균 1분당 0.07회
- 영향: 무시 가능
점수: 1.0 / 1.0 ✅
🔴 발견된 문제 (총 3개)
문제 1: V2 vs 파일 기록 불일치 (CRITICAL)
상태: 🔴 CRITICAL
문제:
- V2 설계: 응답에만 자기평가 출력 (파일 기록 X)
- AGENTS.md: "파일에 기록하라"고 명시
- 충돌 발생
영향:
- 크론이 파일에 기록하지 않을 가능성 80%
- 로그 로테이션이 무의미해짐
해결 방안:
- Option A: V2 메시지 프롬프트에 "파일 기록 필수" 명시
- Option B: 별도 after_message_sending hook 구현 (자동 파일 기록)
- Option C: V2 메시지에서 파일 기록 섹션 제거, 응답만 유지
권장: Option A (간단, 즉시 적용 가능)
문제 2: 로그 로테이션 조건 버그
상태: 🟡 MEDIUM
문제:
-mtime +7= 8일 이상 (7일 초과)- 의도: 7일 이상
- 1일 차이 발생
해결:
-mtime +7 → -mtime +6
문제 3: 타임존 불확실성
상태: 🟡 MEDIUM
문제:
- AI가 파일명 생성 시 KST vs UTC 불확실
- 자정 시점에 날짜 불일치 가능성
해결:
- 파일명 생성 시 명시적으로 KST 지시
- 또는 UTC 기준으로 통일
최종 점수 계산
| 항목 | 점수 | 비고 |
|---|---|---|
| 1. 코드 일관성 | 0.5 | V2 충돌 발견 |
| 2. 경로 정합성 | 1.0 | 완벽 |
| 3. 크론 영향도 | 0.3 | 파일 기록 안 될 가능성 |
| 4. 파일시스템 | 1.0 | 문제 없음 |
| 5. memory_search | 0.9 | 실제 테스트 필요 |
| 6. 로그 로테이션 | 0.7 | mtime 버그 |
| 7. 에지 케이스 | 0.8 | 타임존 불확실 |
| 8. 문서 일관성 | 0.9 | MEMORY.md 확인 |
| 9. 백워드 호환 | 1.0 | 완벽 |
| 10. 성능 영향 | 1.0 | 문제 없음 |
총점: 8.1 / 10.0 ❌ (목표: 9.8)
권장 조치 (목표 달성 위해)
필수 수정 (3개)
-
V2 메시지에 파일 기록 지시 추가 (CRITICAL)
모든 크론 메시지 끝에: "위 자기평가를 memory/self-review-$(date +%Y-%m-%d).md에 기록하세요." -
로그 로테이션 mtime 수정
-mtime +7 → -mtime +6 -
타임존 명시
크론 메시지에 KST 명시: "현재 시각(KST)을 기준으로 파일명 생성"
추가 검증 (2개)
-
실제 크론 실행 테스트
- 16:30 TQQQ 크론 실행 후 파일 생성 확인
-
memory_search 테스트
- 파일 생성 후 검색 쿼리 테스트
예상 점수 (수정 후)
| 항목 | 수정 전 | 수정 후 |
|---|---|---|
| 1. 코드 일관성 | 0.5 | 1.0 |
| 3. 크론 영향도 | 0.3 | 1.0 |
| 6. 로그 로테이션 | 0.7 | 1.0 |
| 7. 에지 케이스 | 0.8 | 1.0 |
수정 후 총점: 9.9 / 10.0 ✅ (목표 달성)
결론
현재 상태: 8.1/10 (❌ 목표 미달)
3개 버그 수정 필요:
- V2 파일 기록 누락 (CRITICAL)
- mtime 조건 버그
- 타임존 불확실성
수정 후 예상: 9.9/10 (✅ 목표 달성)