·ClawNodeAI 메모리오픈클로 컴팩션AI 에이전트

AI의 기억상실: 컴팩션은 왜 필요하고 뭘 잃는가

Meta의 초지능 연구소(Superintelligence Labs)에서 AI 정렬(Alignment)을 총괄하는 Summer Yue가 있습니다. AI가 인간의 지시를 제대로 따르도록 만드는 게 직업인 사람입니다.

2026년 2월, 그녀는 오픈클로에게 이메일 정리를 시켰습니다. 지시는 명확했습니다.

"이 인박스를 확인하고, 아카이브하거나 삭제할 메일을 제안해. 내가 허락하기 전에는 아무것도 하지 마."

몇 주간 테스트 인박스에서는 완벽하게 작동했습니다. 그런데 실제 인박스, 수천 통이 쌓인 그곳에 연결하자 상황이 달라졌습니다. 에이전트는 아무 말 없이 이메일 200개 이상을 삭제하기 시작했고, 그녀가 맥미니로 달려가 프로세스를 수동으로 죽이기 전까지 멈추지 않았습니다.

무슨 일이 있었을까요?

컴팩션이 뭔지 먼저 알아야 합니다

AI에게는 "작업 책상"이 있습니다. 이 책상에는 시스템 설정, 대화 기록, 도구 실행 결과가 전부 올라가야 합니다. 이 책상 크기를 컨텍스트 윈도우라고 합니다.

이메일이 너무 많아 책상이 가득 찼을 때, 오픈클로는 자동으로 컴팩션을 실행했습니다. 오래된 대화를 짧은 요약으로 압축하는 과정입니다. 그리고 그 과정에서 **"내가 허락하기 전에는 아무것도 하지 마"**라는 지시가 요약본에서 빠졌습니다.

에이전트는 제약이 없는 모드로 계속 작동했습니다.

그녀의 반응:

"Rookie mistake tbh. Turns out alignment researchers aren't immune to misalignment."

AI 정렬 연구자도 AI 정렬 실패에서 자유롭지 않습니다.

컴팩션은 무엇을 파괴하는가

컴팩션은 오래된 대화를 요약으로 교체합니다. 요약은 손실 압축입니다. 뭔가는 반드시 빠집니다.

컴팩션 후 사라지는 것:

  • 대화 중 내린 구체적인 지시 (Summer Yue 사건의 원인)
  • 중간에 내린 결정과 선호 표현
  • 모든 이미지 (설계상 의도적)
  • 도구 호출 결과와 그 맥락
  • 원래 지시의 뉘앙스 — "강하게"와 "부드럽게"의 차이 같은 것

컴팩션 후에도 살아남는 것:

  • SOUL.md, AGENTS.md, USER.md, MEMORY.md (디스크에서 다시 로드)
  • 에이전트가 컴팩션 전에 파일로 직접 저장한 내용
  • 최근 메시지 약 20,000토큰

핵심 원칙이 여기서 나옵니다. 파일에 쓰지 않은 것은 존재하지 않는 것과 같습니다.

45시간의 기억을 잃은 사례

GitHub Issue #5429는 오픈클로 커뮤니티에서 가장 많이 참조되는 컴팩션 이슈입니다.

사용자 jkoopmann의 보고:

"45시간 분량의 에이전트 작업 맥락이 사라졌습니다. 스킬 설치, 통합 설정, 우선순위 논의. 모든 것이 사라지고 에이전트가 '뭘 논의했죠?'라고 물어봤습니다."

memoryFlush(컴팩션 전 자동 저장 기능)가 기본 비활성이라는 사실을 몰랐던 겁니다. 2일간의 업무 내용을 녹음하지 않았는데, 다음 날 비서가 "어제 뭐 하셨죠?"라고 묻는 상황입니다.

이 사용자는 이후 4계층 방어 체계를 직접 만들어 공유했습니다.

  1. memoryFlush 설정 활성화
  2. memory-log 스킬로 저장 마찰 줄이기
  3. HEARTBEAT로 주기적 메모리 상태 확인
  4. AGENTS.md에 "중요한 결정은 즉시 기록하라" 명시

AGENTS.md 규칙이 컴팩션과 함께 사라지는 문제

GitHub Issue #43971에서 드러난, 더 무서운 문제입니다.

사용자가 AGENTS.md에 "뉴스 요약은 A채널에만 보내라"고 적었습니다. 오랫동안 잘 작동했습니다. 그런데 컴팩션이 발생한 후, 에이전트가 B채널에도 보내기 시작했습니다. 같은 실수가 7회 이상 반복되었습니다.

"컴팩션 후 AGENTS.md가 다시 로드되지 않습니다. 워크스페이스 파일의 규칙이 컴팩션과 함께 증발합니다."

방 청소하다가 벽에 붙여둔 메모도 같이 버린 상황입니다. AGENTS.md는 디스크에 멀쩡히 있지만, 컴팩션 후 세션에 다시 주입되지 않으면 에이전트는 그 내용을 모릅니다.

메모리 플러시: 마지막 안전장치

오픈클로에는 memoryFlush라는 기능이 있습니다. 컨텍스트가 거의 찰 때 시스템이 에이전트에게 조용히 신호를 보냅니다.

"곧 기억 정리를 시작합니다. 중요한 게 있으면 지금 파일에 적어두세요."

잠들기 전 내일 할 일을 메모하는 것과 같습니다. 그런데 이 기능에 한계가 세 가지 있습니다.

한계 1: 기본 비활성 또는 임계값이 너무 좁음

기본 reserve 토큰이 20K인데, 큰 도구 출력 하나만으로 한계를 넘깁니다. VelvetShark의 권고 설정:

{
  "compaction": {
    "reserveTokensFloor": 40000,
    "memoryFlush": {
      "enabled": true,
      "softThresholdTokens": 4000
    }
  }
}

한계 2: 플러시 중 사용자 메시지가 차단됩니다

GitHub Issue #44032의 보고:

"메모리 플러시는 LLM 턴으로 실행되며, 이 동안 isCompacting 락이 걸려 사용자 메시지가 전부 차단됩니다. 세션이 크면 플러시만 30분~1시간."

일기 쓰는 동안 전화도 문자도 못 받는 상태입니다.

한계 3: 에이전트가 저장 여부를 스스로 판단합니다

"중요한 것을 저장하라"는 요청이지 강제가 아닙니다. 모델이 "별로 중요한 게 없는데"라고 판단하면 아무것도 저장하지 않습니다.

3계층 방어 전략

VelvetShark Memory Masterclass가 제안하는 완전한 방어 체계입니다.

계층 1: 자동 저장 설정

위의 memoryFlush 설정을 적용합니다. 이것만 해도 대부분의 사용자보다 안전합니다.

계층 2: 수동 저장 습관

경험 많은 사용자들이 수동 저장하는 타이밍은 세 가지입니다.

  • 작업을 전환하기 직전
  • 복잡한 새 지시를 내리기 전
  • 중요한 결정을 내린 직후

/compact 명령으로 수동 컴팩션을 트리거할 수 있습니다. 새 지시를 내린 직후에 컴팩션을 하면, 그 지시가 요약에서 오래 살아남습니다.

계층 3: 파일 아키텍처

가장 중요한 규칙은 대화가 아니라 파일에 넣어야 합니다.

| 파일 | 넣어야 할 내용 | |------|------| | AGENTS.md | 행동 규칙. "뉴스는 A채널에만" 같은 것 | | SOUL.md | 톤과 성격. "직설적으로 말해라" | | MEMORY.md | 핵심 기억 인덱스. 40줄 이하로 유지 | | memory/날짜.md | 일일 로그. 결론만, 과정은 제외 |

Summer Yue의 "내가 허락하기 전에는 아무것도 하지 마"는 대화에서만 존재했습니다. AGENTS.md에 있었다면 컴팩션과 관계없이 매 세션 시작마다 다시 로드되었을 겁니다.

파괴적 작업에 대한 안전 패턴

Summer Yue 사건 이후 커뮤니티가 정리한 D-SAC 패턴입니다.

D-SAC = Dry-run → Staged → Approval → Commit

  1. Dry-run: 삭제할 목록만 보여줌. 실행은 안 함.
  2. Staged: 소량(10개)만 먼저 실행. 결과를 확인.
  3. Approval: 별도 승인 절차 요구.
  4. Commit: 휴지통 먼저. 영구 삭제는 나중에.

핵심은 안전 지시를 대화가 아닌 시스템 레벨에서 강제하는 것입니다. 자연어 지시는 컴팩션으로 사라질 수 있지만, 시스템 설정은 사라지지 않습니다.

컴팩션보다 흔한 기억상실의 원인

많은 사용자가 "컴팩션 때문에 기억을 잃었다"고 생각하지만, 실제로는 매일 새벽 4시 세션 리셋 때문인 경우가 더 많습니다.

오픈클로는 기본적으로 매일 새벽 4시(게이트웨이 로컬 시간)에 세션을 초기화합니다. 컴팩션은 컨텍스트가 가득 찰 때만 발동하지만, 세션 리셋은 매일 일어납니다.

비서가 매일 아침 출근하면 어제 대화 내용을 기억하지 못하는 것입니다. 메모장에 적어둔 건 기억하지만, 대화 자체는 리셋됩니다.


AI 메모리 관리에 대해 더 알고 싶다면 AI 메모리 시스템 이해하기도 읽어보세요. 비용 측면에서의 컴팩션 영향은 AI 에이전트 비용 관리에서 다룹니다. 오픈클로를 직접 써보고 싶다면 ClawNode에서 시작해보세요.