Hippocampus:エージェントが経験から学ぶ
踏んだ轍を notes/ に書き、mem build でインデックスにコンパイル。次に同じ種類のタスクを始める前に、前回どう失敗したかを確認できます。CLI は mem です。
記憶のルートディレクトリは $MEM_HOME(デフォルトは ~/.claude/memory)。すべてプレーンテキストで、mem build が notes/ から残りの 3 層を生成します。
使用タイミング
- 非自明なタスクを始める前:そのタスクを以前やったことがあるか、決定事項や落とし穴がないか調べる。
- ユーザーが「前回」「前に言った」「いつものやり方で」と言った時。
- サブエージェントを派遣する前:関連する記憶を仕様書に書き込む。
- 再利用可能な結果を完了した時、繰り返し発生する問題を解決した時、ユーザーから訂正を受けた後:ノートを書く。
4 層モデル
| 層 | ファイル | 内容 | 誰が書く |
|---|---|---|---|
| Tier-0 | MEMORY.md | ルーティングテーブル:読み書きの協定、パック一覧、最新 12 件のノート;バイト予算あり(デフォルト 12000) | mem build |
| Tier-1 | packs/<id>.md | 各分野 1 ページ、各ノート 1 行の description + パス | mem build |
| Tier-2 | catalog.tsv | 各ノート 1 行: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 があればそれを使用し、そうでなければキーワードでスコアリング(strong +3、keywords +1)、0 点は misc に入ります。
読み取りパス(順番に実行、十分なら停止)
MEMORY.md全文を読む(小さいファイルなので、全文読むことを前提としています)。- 「いつ読むか」のリストから分野を特定 →
mem pack <id>でその分野をざっと読む。 - 特定の項目を探す必要がある場合 →
mem find <キーワード> [--pack <id>] [--limit N]、catalog 行のみ返す。 - 該当する 1〜3 件のみ →
mem show <name>で原文を読む。
記憶と現場の証拠(コード、ログ、コマンド出力)が矛盾する場合は、現場を優先し、どの記憶が古くなったかをユーザーに伝えます。
書き込みパス(この 1 つだけ)
mem add <slug> --type project|feedback|reference [--pack <id>] [--title "タイトル"]
# 出力されたパスを開き、description 1 行 + FACT / 決定事項 / 落とし穴 / 関連事項 を記入
mem build
descriptionは上位 3 層に表示される唯一の内容です。「これは何か+いつ使うか」を 1 行で書いてください。- 既存のノートを変更する場合:
notes/内の該当ファイルを直接編集し、その後mem buildを実行します。 - 書き終えたら
mem doctorを実行して、予算超過、壊れたリンク、description の欠落をチェックできます。
禁止事項
MEMORY.md、packs/*、catalog.tsvを手動で編集しない:これらは生成物であり、次回の build で上書きされます。notes/を一括読み取りしない(cat notes/*、lsした後に各ファイルを読む、ディレクトリ全体を grep して原文を検索するなど):mem findを使用してください。- ユーザーが明示的に要求しない限りノートを削除しない;古くなったものは原文に注釈を付け、description を更新してください。
- シークレット、トークン、パスワード、秘密鍵、個人を特定できる情報をノートに書き込まない。
- 2 つ目の記憶データベースを作成しない;他のツールの古いパスは
$MEM_HOMEへのシンボリックリンクを使用してください。
参考
- 日常メンテナンス:
prompts/maintain.md - セッション終了時の振り返りと能動的な構築:
prompts/proactive-build.md - AGENTS.md / CLAUDE.md に貼り付け可能なルール部分:
prompts/agents-snippet.md - フックの例:
prompts/hooks/