tinchak0207/Hippocampus

エージェントが経験から学び、同じ過ちを繰り返さないようにします。非自明なタスク開始前には過去の教訓を検索し、間違いや修正の後には教訓を記録します。

Hippocampus とは?

Hippocampus は、AI エージェント(Claude Code、Cursor、Codex など)がタスクの経験を構造化された方法で記録・検索できるようにするスキルです。エージェントは、過去の判断ミスや決定事項をローカルファイルに保存し、次に類似したタスクを開始する前にそれらを簡単に参照できます。記憶は `$MEM_HOME` ディレクトリにプレーンテキストで保存され、`mem build` コマンドで `notes/` フォルダから 4 層のインデックス(MEMORY.md、packs/*.md、catalog.tsv、notes/*.md)が自動生成されます。エージェントは非自明なタスクの開始時やユーザーが「以前」「前に言った」と発言した場合に `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/ から残りの 3 層を生成します。

使用タイミング

  • 非自明なタスクを始める前:そのタスクを以前やったことがあるか、決定事項や落とし穴がないか調べる。
  • ユーザーが「前回」「前に言った」「いつものやり方で」と言った時。
  • サブエージェントを派遣する前:関連する記憶を仕様書に書き込む。
  • 再利用可能な結果を完了した時、繰り返し発生する問題を解決した時、ユーザーから訂正を受けた後:ノートを書く。

4 層モデル

層ファイル内容誰が書く
Tier-0MEMORY.mdルーティングテーブル:読み書きの協定、パック一覧、最新 12 件のノート;バイト予算あり(デフォルト 12000)mem build
Tier-1packs/<id>.md各分野 1 ページ、各ノート 1 行の description + パスmem build
Tier-2catalog.tsv各ノート 1 行: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 があればそれを使用し、そうでなければキーワードでスコアリング(strong +3、keywords +1)、0 点は misc に入ります。

読み取りパス(順番に実行、十分なら停止)

  1. MEMORY.md 全文を読む(小さいファイルなので、全文読むことを前提としています)。
  2. 「いつ読むか」のリストから分野を特定 → mem pack <id> でその分野をざっと読む。
  3. 特定の項目を探す必要がある場合 → mem find <キーワード> [--pack <id>] [--limit N]、catalog 行のみ返す。
  4. 該当する 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/

関連スキル