Community생산성 & 협업github.com

tinchak0207/Hippocampus

에이전트가 실수를 반복하지 않도록, 겪은 교훈을 파일에 기록하고 다음 작업 전에 참고합니다. 비일상적인 작업 시작 전에 과거 결정과 실수를 조회하고, 실수나 결정 후에 교훈을 저장합니다.

Hippocampus란 무엇인가요?

Hippocampus는 AI 에이전트가 작업 중 발생한 실수와 교훈을 영구적으로 기록하고, 유사한 작업을 다시 수행할 때 이를 조회하여 반복 실수를 방지하도록 돕는 메모리 관리 도구입니다. Claude Code, Cursor, Codex와 같은 CLI 기반 에이전트에서 사용할 수 있으며, `mem`이라는 명령어로 동작합니다. 이 스킬은 4계층 구조로 메모리를 관리합니다: Tier-0 라우팅 테이블(MEMORY.md), Tier-1 영역 색인(packs), Tier-2 카탈로그(catalog.tsv), Tier-3 원문 노트(notes/). 사용자는 비일상적인 작업 전에 `mem`으로 관련 교훈을 검색하고, 실수나 중요한 결정 후에 `mem add`와 `mem build`로 새 노트를 작성하여 지식을 축적합니다. 핵심 장점은 모든 데이터가 일반 텍스트 파일로 저장되어 투명하고 이식성이 높으며, 에이전트가 능동적으로 학습하는 '지속적 개선 루프'를 구축한다는 점입니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add tinchak0207/Hippocampus

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Hippocampus: 에이전트가 교훈을 얻도록 하기

겪은 시행착오를 notes/에 기록하고, mem build로 인덱스를 컴파일합니다. 다음에 유사한 작업을 시작할 때는 먼저 이전에 어떻게 실패했는지 조회할 수 있습니다. CLI 명령어는 mem입니다.

메모리 루트 디렉토리는 $MEM_HOME(기본값 ~/.claude/memory)입니다. 모든 파일은 일반 텍스트이며, mem build가 notes/에서 나머지 세 계층을 생성합니다.

사용 시기

  • 비일상적인 작업을 시작하기 전: 이전에 이 작업을 해본 적이 있는지, 결정이나 실패한 내용이 있는지 확인.
  • 사용자가 "지난 번에", "전에 말했듯이", "예전 규칙대로" 등의 표현을 사용할 때.
  • 서브 에이전트(subagent)를 파견하기 전: 관련 메모리를 스펙(spec)에 포함.
  • 재사용 가능한 결과를 완성했을 때, 반복되는 문제를 해결했을 때, 사용자로부터 수정을 받은 후: 노트(Note)를 작성.

4계층 모델

계층파일내용작성 주체
Tier-0MEMORY.md라우팅 테이블: 읽기/쓰기 규칙, 팩(pack) 목록, 최근 12개 노트; 바이트 예산 포함(기본 12000)mem build
Tier-1packs/<id>.md각 영역별 한 페이지, 각 노트는 한 줄 설명 + 경로mem build
Tier-2catalog.tsv각 노트는 한 줄: pack date type name title bytes gistmem build
Tier-3notes/*.md원문, YAML front-matter 포함mem add가 파일 생성, 내용은 사용자가 작성

분류 규칙은 $MEM_HOME/.memorypack/packs.json에 있습니다: front-matter의 metadata.pack에 유효한 id가 있으면 해당 id를 사용하고, 그렇지 않으면 키워드로 점수를 매깁니다(strong +3, keywords +1). 0점이면 misc로 분류됩니다.

읽기 경로 (순서대로, 충분하면 중단)

  1. MEMORY.md 전문을 읽습니다(매우 작으므로 전문을 읽도록 설계됨).
  2. "읽을 시기" 열에서 영역을 찾아 → mem pack <id>로 해당 영역을 스캔합니다.
  3. 특정 항목을 찾아야 할 경우 → mem find <키워드> [--pack <id>] [--limit N], 카탈로그 행만 반환합니다.
  4. 찾은 항목 중 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/

관련 스킬