자기 개선 스킬
학습 내용과 오류를 마크다운 파일에 기록하여 지속적인 개선을 이루세요. 코딩 에이전트는 나중에 이를 처리하여 수정 사항을 적용하고, 중요한 학습 내용은 프로젝트 메모리로 승격됩니다.
빠른 참조
| 상황 | 조치 |
|---|---|
| 명령어/작업 실패 | .learnings/ERRORS.md에 기록 |
| 사용자가 수정함 | .learnings/LEARNINGS.md에 correction 카테고리로 기록 |
| 사용자가 없는 기능 요청 | .learnings/FEATURE_REQUESTS.md에 기록 |
| API/외부 도구 실패 | .learnings/ERRORS.md에 통합 세부 정보와 함께 기록 |
| 지식이 오래됨 | .learnings/LEARNINGS.md에 knowledge_gap 카테고리로 기록 |
| 더 나은 접근 방식 발견 | .learnings/LEARNINGS.md에 best_practice 카테고리로 기록 |
| 반복 패턴 간소화/강화 | .learnings/LEARNINGS.md에 Source: simplify-and-harden과 안정적인 Pattern-Key로 기록/업데이트 |
| 기존 항목과 유사함 | **See Also**로 연결하고 우선순위 상향 고려 |
| 광범위하게 적용 가능한 학습 | CLAUDE.md, AGENTS.md 및/또는 .github/copilot-instructions.md로 승격 |
| 워크플로 개선 | AGENTS.md로 승격 (OpenClaw 워크스페이스) |
| 도구 사용 시 주의사항 | TOOLS.md로 승격 (OpenClaw 워크스페이스) |
| 행동 패턴 | SOUL.md로 승격 (OpenClaw 워크스페이스) |
OpenClaw 설정 (권장)
OpenClaw는 이 스킬의 기본 플랫폼입니다. 워크스페이스 기반 프롬프트 주입과 자동 스킬 로딩을 사용합니다.
설치
ClawdHub를 통한 설치 (권장):
clawdhub install self-improving-agent
수동 설치:
git clone https://github.com/peterskoett/self-improving-agent.git ~/.openclaw/skills/self-improving-agent
원본 저장소에서 OpenClaw용으로 리메이크: https://github.com/pskoett/pskoett-ai-skills - https://github.com/pskoett/pskoett-ai-skills/tree/main/skills/self-improvement
워크스페이스 구조
OpenClaw는 모든 세션에 다음 파일들을 주입합니다:
~/.openclaw/workspace/
├── AGENTS.md # 다중 에이전트 워크플로, 위임 패턴
├── SOUL.md # 행동 지침, 성격, 원칙
├── TOOLS.md # 도구 기능, 통합 시 주의사항
├── MEMORY.md # 장기 기억 (메인 세션 전용)
├── memory/ # 일일 기억 파일
│ └── YYYY-MM-DD.md
└── .learnings/ # 이 스킬의 로그 파일
├── LEARNINGS.md
├── ERRORS.md
└── FEATURE_REQUESTS.md
학습 파일 생성
mkdir -p ~/.openclaw/workspace/.learnings
그런 다음 로그 파일을 생성합니다 (assets/에서 복사해도 됩니다):
LEARNINGS.md— 수정 사항, 지식 격차, 모범 사례ERRORS.md— 명령어 실패, 예외FEATURE_REQUESTS.md— 사용자 요청 기능
승격 대상
학습 내용이 광범위하게 적용 가능하다고 판단되면 워크스페이스 파일로 승격하세요:
| 학습 유형 | 승격 대상 | 예시 |
|---|---|---|
| 행동 패턴 | SOUL.md | "간결하게 말하고, 면책 조항은 피하세요" |
| 워크플로 개선 | AGENTS.md | "긴 작업은 하위 에이전트를 생성하여 처리하세요" |
| 도구 사용 시 주의사항 | TOOLS.md | "Git push는 먼저 인증 설정이 필요합니다" |
세션 간 통신
OpenClaw는 세션 간 학습 내용을 공유하는 도구를 제공합니다:
- sessions_list — 활성/최근 세션 보기
- sessions_history — 다른 세션의 기록 읽기
- sessions_send — 다른 세션으로 학습 내용 보내기
- sessions_spawn — 백그라운드 작업을 위한 하위 에이전트 생성
선택 사항: Hook 활성화
세션 시작 시 자동 알림을 받으려면:
# Hook을 OpenClaw hooks 디렉토리로 복사
cp -r hooks/openclaw ~/.openclaw/hooks/self-improvement
# 활성화
openclaw hooks enable self-improvement
자세한 내용은 references/openclaw-integration.md를 참조하세요.
일반 설정 (다른 에이전트)
Claude Code, Codex, Copilot 또는 다른 에이전트의 경우, 프로젝트에 .learnings/를 생성하세요:
mkdir -p .learnings
assets/에서 템플릿을 복사하거나 헤더와 함께 파일을 생성하세요.
에이전트 파일에 참조 추가
AGENTS.md, CLAUDE.md, 또는 .github/copilot-instructions.md에 학습을 기록하라는 알림을 추가하세요. (이는 Hook 기반 알림의 대안입니다.)
자기 개선 워크플로
오류나 수정 사항이 발생하면:
.learnings/ERRORS.md,LEARNINGS.md, 또는FEATURE_REQUESTS.md에 기록- 광범위하게 적용 가능한 학습 내용을 검토하고 다음으로 승격:
CLAUDE.md- 프로젝트 사실 및 규칙AGENTS.md- 워크플로 및 자동화.github/copilot-instructions.md- Copilot 컨텍스트
로깅 형식
학습 항목
.learnings/LEARNINGS.md에 추가:
## [LRN-YYYYMMDD-XXX] category
**Logged**: ISO-8601 timestamp
**Priority**: low | medium | high | critical
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config
### Summary
배운 내용을 한 줄로 설명
### Details
전체 컨텍스트: 무슨 일이 있었는지, 무엇이 잘못되었는지, 무엇이 올바른지
### Suggested Action
수행할 특정 수정 또는 개선 사항
### Metadata
- Source: conversation | error | user_feedback
- Related Files: path/to/file.ext
- Tags: tag1, tag2
- See Also: LRN-20250110-001 (기존 항목과 관련된 경우)
- Pattern-Key: simplify.dead_code | harden.input_validation (선택 사항, 반복 패턴 추적용)
- Recurrence-Count: 1 (선택 사항)
- First-Seen: 2025-01-15 (선택 사항)
- Last-Seen: 2025-01-15 (선택 사항)
---
오류 항목
.learnings/ERRORS.md에 추가:
## [ERR-YYYYMMDD-XXX] skill_or_command_name
**Logged**: ISO-8601 timestamp
**Priority**: high
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config
### Summary
실패한 내용을 간략히 설명
### Error
실제 오류 메시지 또는 출력
### Context
- 시도한 명령어/작업
- 사용된 입력 또는 매개변수
- 관련 환경 세부 정보
### Suggested Fix
식별 가능하다면, 문제를 해결할 수 있는 방법
### Metadata
- Reproducible: yes | no | unknown
- Related Files: path/to/file.ext
- See Also: ERR-20250110-001 (반복되는 경우)
---
기능 요청 항목
.learnings/FEATURE_REQUESTS.md에 추가:
## [FEAT-YYYYMMDD-XXX] capability_name
**Logged**: ISO-8601 timestamp
**Priority**: medium
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config
### Requested Capability
사용자가 원했던 기능
### User Context
그들이 왜 그것을 필요로 했는지, 어떤 문제를 해결하려고 했는지
### Complexity Estimate
simple | medium | complex
### Suggested Implementation
이것이 어떻게 구축될 수 있는지, 무엇을 확장할지
### Metadata
- Frequency: first_time | recurring
- Related Features: existing_feature_name
---
ID 생성
형식: TYPE-YYYYMMDD-XXX
- TYPE:
LRN(학습),ERR(오류),FEAT(기능) - YYYYMMDD: 현재 날짜
- XXX: 순차 번호 또는 무작위 3자 (예:
001,A7B)
예시: LRN-20250115-001, ERR-20250115-A3F, FEAT-20250115-002
항목 해결
문제가 해결되면 항목을 업데이트하세요:
**Status**: pending을**Status**: resolved로 변경- Metadata 뒤에 해결 블록 추가:
### Resolution
- **Resolved**: 2025-01-16T09:00:00Z
- **Commit/PR**: abc123 or #42
- **Notes**: 수행된 작업에 대한 간략한 설명
기타 상태 값:
in_progress— 활발히 작업 중wont_fix— 해결하지 않기로 결정 (Resolution 노트에 이유 추가)promoted—CLAUDE.md,AGENTS.md, 또는.github/copilot-instructions.md로 승격됨
프로젝트 메모리로 승격
학습 내용이 광범위하게 적용 가능할 때(일회성 수정이 아닌 경우), 영구적인 프로젝트 메모리로 승격하세요.
승격 시기
- 학습 내용이 여러 파일/기능에 적용됨
- 기여자(인간 또는 AI)가 알아야 할 지식
- 반복적인 실수 방지
- 프로젝트별 규칙 문서화
승격 대상
| 대상 | 해당 내용 |
|---|---|
CLAUDE.md | 모든 Claude 상호작용에 대한 프로젝트 사실, 규칙, 주의사항 |
AGENTS.md | 에이전트별 워크플로, 도구 사용 패턴, 자동화 규칙 |
.github/copilot-instructions.md | GitHub Copilot을 위한 프로젝트 컨텍스트 및 규칙 |
SOUL.md | 행동 지침, 의사소통 스타일, 원칙 (OpenClaw 워크스페이스) |
TOOLS.md | 도구 기능, 사용 패턴, 통합 시 주의사항 (OpenClaw 워크스페이스) |
승격 방법
- 추출: 학습 내용을 간결한 규칙 또는 사실로 요약
- 추가: 대상 파일의 적절한 섹션에 추가 (필요시 파일 생성)
- 원본 항목 업데이트:
**Status**: pending을**Status**: promoted로 변경**Promoted**: CLAUDE.md,AGENTS.md또는.github/copilot-instructions.md추가
승격 예시
학습 내용 (상세):
프로젝트에서 pnpm 워크스페이스를 사용합니다.
npm install을 시도했지만 실패했습니다. 잠금 파일은pnpm-lock.yaml입니다.pnpm install을 사용해야 합니다.
CLAUDE.md에 작성 (간결):
## Build & Dependencies
- 패키지 매니저: pnpm (npm 아님) - `pnpm install` 사용
학습 내용 (상세):
API 엔드포인트를 수정할 때 TypeScript 클라이언트를 다시 생성해야 합니다. 이를 잊으면 런타임에 타입 불일치가 발생합니다.
AGENTS.md에 작성 (실행 가능):
## API 변경 후
1. 클라이언트 재생성: `pnpm run generate:api`
2. 타입 오류 확인: `pnpm tsc --noEmit`
반복 패턴 감지
기존 항목과 유사한 내용을 로깅하는 경우:
- 먼저 검색:
grep -r "keyword" .learnings/ - 항목 연결: Metadata에
**See Also**: ERR-20250110-001추가 - 우선순위 상향: 문제가 계속 반복되면 우선순위 높임
- 시스템적 수정 고려: 반복되는 문제는 종종 다음을 나타냄:
- 문서 부족 (→ CLAUDE.md 또는 .github/copilot-instructions.md로 승격)
- 자동화 부족 (→ AGENTS.md에 추가)
- 아키텍처 문제 (→ 기술 부채 티켓 생성)
간소화 및 강화 피드
이 워크플로를 사용하여 simplify-and-harden 스킬의 반복 패턴을 수집하고 지속적인 프롬프트 지침으로 전환하세요.
수집 워크플로
- 작업 요약에서
simplify_and_harden.learning_loop.candidates를 읽습니다. - 각 후보에 대해
pattern_key를 안정적인 중복 제거 키로 사용합니다. .learnings/LEARNINGS.md에서 해당 키가 있는 기존 항목을 검색합니다:grep -n "Pattern-Key: <pattern_key>" .learnings/LEARNINGS.md
- 찾은 경우:
Recurrence-Count증가Last-Seen업데이트- 관련 항목/작업에
See Also링크 추가
- 찾지 못한 경우:
- 새
LRN-...항목 생성 Source: simplify-and-harden설정Pattern-Key,Recurrence-Count: 1,First-Seen/Last-Seen설정
- 새
승격 규칙 (시스템 프롬프트 피드백)
다음 조건을 모두 만족하면 반복 패턴을 에이전트 컨텍스트/시스템 프롬프트 파일로 승격하세요:
Recurrence-Count >= 3- 최소 2개의 별도 작업에서 발견됨
- 30일 이내에 발생
승격 대상:
CLAUDE.mdAGENTS.md.github/copilot-instructions.mdSOUL.md/TOOLS.md(OpenClaw 워크스페이스 수준 지침, 해당하는 경우)
승격된 규칙은 긴 사고 보고서가 아닌, (코딩 전/중에 무엇을 해야 하는지에 대한) 짧은 예방 규칙으로 작성하세요.
정기적 검토
자연스러운 중단점에서 .learnings/를 검토하세요:
검토 시기
- 새로운 주요 작업을 시작하기 전
- 기능 완료 후
- 과거 학습 내용이 있는 영역에서 작업할 때
- 활발한 개발 중 매주
빠른 상태 확인
# 보류 중인 항목 수 계산
grep -h "Status\*\*: pending" .learnings/*.md | wc -l
# 보류 중인 높은 우선순위 항목 나열
grep -B5 "Priority\*\*: high" .learnings/*.md | grep "^## \["
# 특정 영역의 학습 내용 찾기
grep -l "Area\*\*: backend" .learnings/*.md
검토 조치
- 수정된 항목 해결
- 적용 가능한 학습 승격
- 관련 항목 연결
- 반복 문제 에스컬레이션
감지 트리거
다음을 발견하면 자동으로 기록하세요:
수정 사항 (→ correction 카테고리의 학습):
- "아니요, 그건 틀렸습니다..."
- "사실은, 이렇게 해야 합니다..."
- "당신이 틀렸습니다..."
- "그것은 오래된 정보입니다..."
기능 요청 (→ 기능 요청):
- "또한 ~을 할 수 있나요..."
- "~을 할 수 있었으면 좋겠네요..."
- "~을 할 방법이 있나요..."
- "왜 ~을 할 수 없나요..."
지식 격차 (→ knowledge_gap 카테고리의 학습):
- 사용자가 당신이 몰랐던 정보를 제공
- 참조한 문서가 오래됨
- API 동작이 당신의 이해와 다름
오류 (→ 오류 항목):
- 명령어가 0이 아닌 종료 코드 반환
- 예외 또는 스택 추적
- 예상치 못한 출력 또는 동작
- 시간 초과 또는 연결 실패
우선순위 지침
| 우선순위 | 사용 시기 |
|---|---|
critical | 핵심 기능 차단, 데이터 손실 위험, 보안 문제 |
high | 중대한 영향, 일반적인 워크플로에 영향, 반복 문제 |
medium | 중간 정도의 영향, 해결 방법 존재 |
low | 사소한 불편, 드문 경우, 있으면 좋은 기능 |
영역 태그
코드베이스 영역별로 학습 내용을 필터링하는 데 사용:
| 영역 | 범위 |
|---|---|
frontend | UI, 컴포넌트, 클라이언트 측 코드 |
backend | API, 서비스, 서버 측 코드 |
infra | CI/CD, 배포, Docker, 클라우드 |
tests | 테스트 파일, 테스트 유틸리티, 커버리지 |
docs | 문서, 주석, README |
config | 설정 파일, 환경, 설정 |
모범 사례
- 즉시 기록 - 문제 발생 직후 컨텍스트가 가장 선명함
- 구체적으로 작성 - 미래의 에이전트가 빨리 이해해야 함
- 재현 단계 포함 - 특히 오류의 경우
- 관련 파일 연결 - 수정이 쉬워짐
- 구체적인 수정 제안 - 단순히 "조사"가 아닌
- 일관된 카테고리 사용 - 필터링 가능
- 적극적으로 승격 - 의심스러우면
CLAUDE.md또는.github/copilot-instructions.md에 추가 - 정기적으로 검토 - 오래된 학습은 가치를 잃음
Gitignore 옵션
로컬에서만 학습 유지 (개발자별):
.learnings/
저장소에서 학습 추적 (팀 전체): .gitignore에 추가하지 않음 - 학습 내용이 공유 지식이 됨.
하이브리드 (템플릿 추적, 항목 무시):
.learnings/*.md
!.learnings/.gitkeep
Hook 통합
에이전트 Hook을 통해 자동 알림을 활성화하세요. 이는 옵트인 방식입니다. Hook을 명시적으로 구성해야 합니다.
빠른 설정 (Claude Code / Codex)
...
[번역을 위해 잘림]