※ 출처: 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.
  • 워크스페이스 구조(핵심 파일·폴더) 정리.

간단 체크리스트(권장 우선순위)

  1. AGENTS.md 상단에 부트 시퀀스·검색 지침·쓰기 규율 넣기.
  2. 메모 플러시(memoryFlush) 활성화 및 compaction/응급 시디스크 쓰기 확인.
  3. 검색 백엔드를 하이브리드(QMD 등)로 교체.
  4. 핸드오버 프로토콜 작성(모델 스위치/세션 종료 전 daily log에 상태 기록).
  5. /context detail로 불필요 파일·스킬 토큰 확인 후 정리.
  6. 마커 테스트로 저장→검색→인출 테스트 자동화(세션/모델 전환 포함).
  7. MEMORY.md 규칙 수립(작업 중 직접 쓰지 않음), LEARNINGS.md 활성화.

관련 게시글

AD
AD

LEAVE A REPLY

Please enter your comment!
Please enter your name here