BQ개발자입니다.
지난 편에서 Skills와 Plugins가 Claude의 "기능"을 추가하는 게 아니라 Claude의 "판단 기준"을 바꾼다고 했는데요,
오늘은 그 판단이 세션이 끝나면 어떻게 되는가라는 질문을 다뤄보겠습니다.
"세션이 끝나면 Claude는 다 잊는 건데, 그걸 어떻게 기억하게 해?"
🤔 환각의 원인에 대한 오해
Claude가 틀린 답을 낼 때, 가장 흔한 설명은 이겁니다.
"LLM이 원래 그래요. 모델 한계예요."
근데 실제로 해보면 패턴이 있습니다. 세션 초반엔 정확한데, 세션이 길어질수록 틀리는 빈도가 늘어나거든요.
이미 결정한 설계를 재발명하거나, 없는 파일 경로를 있는 것처럼 응답하는 일이 생깁니다.
저는 이게 모델이 멍청해서가 아니라고 생각합니다.
Claude Code의 컨텍스트 윈도우가 일정 한도에 도달하면 자동 압축(compaction)이 트리거됩니다.
이 압축이 세션 초기의 정밀한 정보들 — 특정 변수명, 에러 메시지 원문, 설계 결정의 이유 — 을 요약으로 뭉개버리거든요.
⚡ 환각은 의존 구조의 문제다
Claude가 정보를 가져오는 경로는 두 가지입니다.
하나는 컨텍스트에 올라온 텍스트를 읽는 것이고, 다른 하나는 모델 내부의 추론으로 "그럴 것 같은" 것을 생성하는 거예요.
컨텍스트에 정확한 정보가 있으면 Claude는 그걸 읽습니다. 없으면 추론에 의존하고요. 압축이 바로 컨텍스트에서 정확한 정보를 지워버리는 과정이에요. 압축 이후 Claude가 초기 설계 결정을 재발명하는 건, "기억이 나빠서"가 아니라 정확한 정보 소스가 컨텍스트에서 사라졌기 때문에 추론이 그 자리를 채우는 상황인 것 같아요.
그러면 해결책이 보이죠. 모델을 교체하거나 파인튜닝하는 게 아니라, 다음 세션이 시작될 때 정확한 정보를 컨텍스트에 올려놓으면 됩니다. 이게 Session Wrap의 설계 원리예요.
🎯 Session Wrap이 하는 일
제가 개인적으로 많이 활용하는 스킬인데요,
/wrap 명령을 실행하면 멀티에이전트 파이프라인이 돌아갑니다.
Sonnet 모델 4개가 병렬로 세션에서 추출해야 할 것들을 각자 담당해요
문서 업데이트 내용, 자동화 가능한 반복 패턴, 오늘의 발견과 실수,
다음 세션 우선순위. 이 결과가 CLAUDE.md와 context.md 외부 파일에 저장됩니다.
다음 세션이 시작되면 Claude는 그 파일을 읽어요.
이전 세션의 결정 사항들이 "정확한 텍스트"로 컨텍스트에 올라오는 거죠. 모델이 내부 추론에 의존할 이유가 없어집니다.
핵심은 의존 구조를 교체했다는 거예요. 불확실한 내부 기억 의존 → 명확한 외부 파일 참조. 모델을 바꾸지 않았는데 환각이 줄어드는 이유가 여기 있는 것 같습니다.
🚀 작업 이력이 지식 자산이 되는 구조
Session Wrap에는 automation-scout라는 구성요소가 있습니다.
세션마다 반복 패턴을 발견해서 새 Skill 후보로 제안하는 역할이에요.
1회 세션에서 발견한 패턴이 Skill로 만들어지면, 2회 세션에서 그게 자동 트리거됩니다.
3회엔 이미 내재화된 방법론이 되고요. 작업할수록 Claude의 판단 기준이 업그레이드되는 복리 구조인 거죠.
1편에서 얘기한 "방법론의 코드화"가 Session Wrap으로 자동화되는 겁니다.
💡 팁: /wrap을 세션 종료 루틴으로 만들어두면 CLAUDE.md가 스스로 업데이트되는 시스템이 됩니다. 처음엔 빈 파일이지만 쌓일수록 달라져요.
하지만 이 구조를 팀 단위로 확장하려면 새로운 문제가 생깁니다.
한 팀원이 만든 Skill을 다른 팀원은 어떻게 공유하고, 권한은 어떻게 관리할까요? (다음편에서 다뤄볼게요)
여러분의 좋아요와 공유는 사랑입니다 🥰
BQ개발자 #LLM애플리케이션 #SessionWrap #AIEngineering
