Hippocampus: 에이전트가 교훈을 얻도록 하기
겪은 시행착오를 notes/에 기록하고, mem build로 인덱스를 컴파일합니다. 다음에 유사한 작업을 시작할 때는 먼저 이전에 어떻게 실패했는지 조회할 수 있습니다. CLI 명령어는 mem입니다.
메모리 루트 디렉토리는 $MEM_HOME(기본값 ~/.claude/memory)입니다. 모든 파일은 일반 텍스트이며, mem build가 notes/에서 나머지 세 계층을 생성합니다.
사용 시기
- 비일상적인 작업을 시작하기 전: 이전에 이 작업을 해본 적이 있는지, 결정이나 실패한 내용이 있는지 확인.
- 사용자가 "지난 번에", "전에 말했듯이", "예전 규칙대로" 등의 표현을 사용할 때.
- 서브 에이전트(subagent)를 파견하기 전: 관련 메모리를 스펙(spec)에 포함.
- 재사용 가능한 결과를 완성했을 때, 반복되는 문제를 해결했을 때, 사용자로부터 수정을 받은 후: 노트(Note)를 작성.
4계층 모델
| 계층 | 파일 | 내용 | 작성 주체 |
|---|---|---|---|
| Tier-0 | MEMORY.md | 라우팅 테이블: 읽기/쓰기 규칙, 팩(pack) 목록, 최근 12개 노트; 바이트 예산 포함(기본 12000) | mem build |
| Tier-1 | packs/<id>.md | 각 영역별 한 페이지, 각 노트는 한 줄 설명 + 경로 | mem build |
| Tier-2 | catalog.tsv | 각 노트는 한 줄: pack date type name title bytes gist | mem build |
| Tier-3 | notes/*.md | 원문, YAML front-matter 포함 | mem add가 파일 생성, 내용은 사용자가 작성 |
분류 규칙은 $MEM_HOME/.memorypack/packs.json에 있습니다: front-matter의 metadata.pack에 유효한 id가 있으면 해당 id를 사용하고, 그렇지 않으면 키워드로 점수를 매깁니다(strong +3, keywords +1). 0점이면 misc로 분류됩니다.
읽기 경로 (순서대로, 충분하면 중단)
MEMORY.md전문을 읽습니다(매우 작으므로 전문을 읽도록 설계됨).- "읽을 시기" 열에서 영역을 찾아 →
mem pack <id>로 해당 영역을 스캔합니다. - 특정 항목을 찾아야 할 경우 →
mem find <키워드> [--pack <id>] [--limit N], 카탈로그 행만 반환합니다. - 찾은 항목 중 1-3개만 →
mem show <name>으로 원문을 읽습니다.
메모리와 현장 증거(코드, 로그, 명령 출력)가 충돌할 경우 현장 증거를 우선하며, 사용자에게 어떤 메모리가 만료되었는지 알립니다.
쓰기 경로 (하나만 있음)
mem add <slug> --type project|feedback|reference [--pack <id>] [--title "제목"]
# 출력된 경로를 열고, description 한 줄 + FACT / 결정 / 실수 / 관련 내용을 작성
mem build
description은 상위 세 계층에만 표시되는 유일한 내용으로, "이것이 무엇이며 언제 사용해야 하는지"를 한 문장으로 작성합니다.- 기존 노트 수정:
notes/에 있는 해당 파일을 직접 편집한 후mem build를 실행합니다. - 작성 후
mem doctor를 실행하여 예산, 끊긴 링크, description 누락을 확인할 수 있습니다.
금지 사항
MEMORY.md,packs/*,catalog.tsv를 수동으로 수정하지 않습니다(이들은 생성물이며 다음 build 시 덮어쓰기됨).notes/를 일괄 읽지 않습니다(cat notes/*,ls후 각 파일 읽기, 전체 디렉토리에서 원문 grep):mem find를 사용하세요.- 사용자가 명시적으로 요청하지 않는 한 노트를 삭제하지 않습니다. 만료된 노트는 원문에 표시하고 description을 업데이트합니다.
- 시크릿, 토큰, 비밀번호, 개인 키, 개인 식별 정보를 노트에 기록하지 않습니다.
- 두 번째 메모리 저장소를 만들지 않습니다. 다른 도구의 이전 경로는 심볼릭 링크(symlink)로
$MEM_HOME을 가리키도록 합니다.
참고
- 일일 유지보수:
prompts/maintain.md - 세션 종료 시 회고 및 능동적 구축:
prompts/proactive-build.md - AGENTS.md / CLAUDE.md에 붙여넣을 수 있는 규칙 코드 조각:
prompts/agents-snippet.md - 후크(hooks) 예시:
prompts/hooks/