※ 출처: Reddit/Clawdbot
I Spent 5 Days Fixing My AI Agent’s Memory. Here’s Everything That Actually Worked.
요약
- 작성자는 OpenClaw 기반 AI 에이전트가 “대화 중 기억을 잃음” 문제를 5일간 분석·수정해 실제로 작동하는 개선책들을 정리했다.
문제들(요약)
- 긴 세션에서 이전 컨텍스트가 갑자기 사라짐(전부 compaction으로 요약되어 구체 정보 상실).
- 디스크에 쓴 메모가 있어도 검색이 부정확하거나(벡터 검색만으로는 고유명사/숫자/정확어구 처리 부족) 에이전트가 관련 정보를 자동으로 불러오지 않음.
- 여러 번의 compaction(오래가는 세션)에서 메모 플러시가 한 번만 동작해 이후의 중요한 정보가 유실됨.
- 시스템 프롬프트가 불필요하게 비대해 성능·토큰 비용 악화, 자동 로드되지 않는 부트 파일(BOOT.md) 사용으로 지시가 적용되지 않음.
- 모델 전환 시 컨텍스트 인계(handover)가 없어 정보 손실 발생.
핵심 해결책(날짜별 요약)
- Day 1: compaction 이전에 중요한 내용을 디스크로 쓰는 “memory flush” 활성화 → 요약으로 사라질 정보 보존.
- Day 2: 검색 백엔드를 SQLite(임베딩)에서 QMD( BM25 + 임베딩 + 재정렬)로 전환 → 고유명사·정확일치 검색 개선.
- Day 3: 검색이 자동으로 트리거되지 않으므로 부트 시점에 명시적 검색 지침 추가(예: 매 작업 전 일일 로그 / LEARNINGS 검색 등) 및 마커 테스트로 검증.
- Day 4: 여러 compaction을 견디도록 context pruning(예: cache-ttl, ttl 6h, keepLastAssistants 3)과 함께 메모 플러시 적용. 마커 테스트로 재검증.
- Day 5: 시스템 프롬프트·자동로딩 파일 정리(사용 안 하는 스킬 제거, AGENTS.md 최상단에 부트 시퀀스 배치), 핸드오버 프로토콜 추가(세션 혹은 모델 전환 전 현재 상태를 daily log에 기록).
운영 원칙·교훈
- Auto-loaded 파일은 AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, MEMORY.md뿐. 그 외 파일은 AGENTS.md에서 읽으라고 명시해야 함.
- 읽기(read)보다 쓰기(write) 규율이 더 중요: 에이전트가 결정·결과·실수 등을 파일로 기록해야 영구화됨.
- MEMORY.md는 큐레이팅된 장기 기억으로, 작업 중에 아무것이나 직접 덤프하면 금방 비대해짐. 일일 로그 → 주기적 리뷰로 요약·이관.
- LEARNINGS.md는 실수에서 얻은 규칙을 한 줄 규칙으로 쌓는 것이 강력함.
- 검색은 하이브리드(BM25 + vectors + reranker)가 현실적 성능에서 우수.
- 모델 전환 전 핸드오버로 상태를 디스크에 남겨야 함.
- /context detail로 무엇이 토큰을 먹는지 정기 점검.
성과
- 시스템 프롬프트: 11,887 → 8,529 토큰(약 28% 경량화).
- 로드 스킬: 51 → 32.
- 세션 토큰: 18,280 → 14,627.
- 워크스페이스 구조(핵심 파일·폴더) 정리.
간단 체크리스트(권장 우선순위)
- AGENTS.md 상단에 부트 시퀀스·검색 지침·쓰기 규율 넣기.
- 메모 플러시(memoryFlush) 활성화 및 compaction/응급 시디스크 쓰기 확인.
- 검색 백엔드를 하이브리드(QMD 등)로 교체.
- 핸드오버 프로토콜 작성(모델 스위치/세션 종료 전 daily log에 상태 기록).
- /context detail로 불필요 파일·스킬 토큰 확인 후 정리.
- 마커 테스트로 저장→검색→인출 테스트 자동화(세션/모델 전환 포함).
- MEMORY.md 규칙 수립(작업 중 직접 쓰지 않음), LEARNINGS.md 활성화.
관련 게시글
AD
AD

















