import について
エクスポートしたメモリを現在のプロジェクトに取り込む Mem0 スキルです。複数の AI コーディングツールの設定や Claude Code の MEMORY.md からの取り込みにも対応します。
主な機能
- 01Mem0 エクスポートファイルの解析
- 02メタデータ付きレコードの取り込み
- 03指定したコーディングツール設定の取り込み
- 04Claude Code MEMORY.md の取り込み
活用シーン
- 01エクスポートからメモリを復元
- 02対応するコーディングツールのルールを移行
- 03Claude Code のメモリを Mem0 に取り込み
MCP 対応
add_memory などの Mem0 MCP ツールを呼び出し、インポートしたレコードをプロジェクトに追加します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mem0ai/ mem0 --skill importインストール後、Claude Code で/importを入力して読み込まれたか確認します。
詳細
Mem0 のインポート
mem0 のエクスポートファイルから、現在のプロジェクトにメモリをインポートします。
実行
ステップ 1:インポートするエクスポートファイルを決定する
ユーザーが /mem0:import <filename> の引数としてファイル名を指定した場合は、そのファイルを使用します。
それ以外の場合は、現在のディレクトリにある名前に mem0-export を含む .md ファイルを一覧表示します。
ls -1 *.md 2>/dev/null | grep mem0-export || echo "No export files found"
複数のファイルが見つかった場合は、どのファイルをインポートするかユーザーに尋ねます。ファイルが見つからない場合は、次を出力します。
No mem0-export files found in the current directory.
Run /mem0:export first, or provide the filename: /mem0:import <path-to-file>
ステップ 2:エクスポートファイルを解析する
プラグインのルートを特定します。現在のプラットフォームに対応する変数を使用します。
- Claude Code:
${CLAUDE_PLUGIN_ROOT} - Codex:
${CODEX_PLUGIN_ROOT} - Cursor:
${CURSOR_PLUGIN_ROOT}
パーサースクリプトを実行して、メモリレコードを JSON として抽出します。
python3 "<PLUGIN_ROOT>/scripts/parse_export_file.py" "<path-to-export-file>"
次の要素を持つ JSON 配列が出力されます。
id— 元のメモリ ID(参照用のみ。インポート時に新しい ID が割り当てられます)type— メタデータのタイプconfidence— メタデータの信頼度branch— メタデータのブランチfiles— 関連ファイルのリストcategories— カテゴリのリストcontent— メモリのテキスト
スクリプトが失敗した場合、または [] を出力した場合は、次を出力します。
Failed to parse <filename> or file contains no valid memory blocks.
その後、停止します。
ステップ 3:ID を解決する
アクティブな ID を特定します。
user_idはMEM0_USER_ID環境変数、なければ$USER、それもなければ"default"から取得します。project_id(app_idとして使用)は、MEM0_PROJECT_ID環境変数、またはプロジェクトリゾルバーから取得します。
ステップ 4:各メモリをインポートする
解析した JSON 配列の各レコードについて、次の内容で add_memory を呼び出します。
text="<record.content>"user_id=<active_user_id>app_id=<active_project_id>metadata={"type": "<record.type>"(空でない場合)"confidence": "<record.confidence>"(空でない場合)"branch": "<record.branch>"(空でない場合)"files": <record.files>(空でない場合はリスト)"source": "import"}
infer=False
注意:
- 元の
idは渡さないでください。新しい ID はプラットフォームによって割り当てられます。 contentが空のレコードはスキップします(パーサーで既に除外されていますが、念のため確認してください)。- 個々のレコードのインポートに失敗しても処理を続け、成功数を記録します。
ステップ 5:結果を出力する
Imported <N> memories into project <project_id>
ここで、<N> はインポートに成功したメモリの数です。
失敗があった場合:
Imported <N>/<total> memories into project <project_id> (<failed> failed)
競合する AI ツールからのインポート(--tools)
--tools(例:/mem0:import --tools)を指定して呼び出された場合は、競合する AI ツールの設定ファイルを検出してインポートします。
対応ツール
| ツール | ファイル/ディレクトリ |
|---|---|
| Cursor | .cursorrules |
| GitHub Copilot | .github/copilot-instructions.md |
| Cline | memory-bank/(.md ファイルのディレクトリ) |
| Continue | .continue/rules.md |
T1:検出
test -f .cursorrules && echo "cursor: .cursorrules"
test -f .github/copilot-instructions.md && echo "copilot: .github/copilot-instructions.md"
test -d memory-bank/ && echo "cline: memory-bank/"
test -f .continue/rules.md && echo "continue: .continue/rules.md"
T2:ユーザーに尋ねる
見つかったファイルを一覧表示し、どれをインポートするか尋ねます(番号をカンマ区切りで指定するか、"all" を指定)。 見つからない場合:
No competing tool configuration files found.
Checked: .cursorrules, .github/copilot-instructions.md, memory-bank/, .continue/rules.md
T3:インポートを実行する
選択した各ツールについて:
python3 "<PLUGIN_ROOT>/scripts/import_competing_tools.py" <tool> --path <file>
ツール:cursorrules、copilot、cline、continue。
T4:結果を報告する
Imported <N> memories into <project_id> (cursor: <N>, copilot: <N>)
注意:infer=False を指定し、metadata.source=<tool>-import のタグを付けます。50 文字未満のセクションはスキップされ、10k 文字を超えるチャンクは切り詰められます。安全に再実行できます(重複排除によって処理されます)。
Claude Code のネイティブな MEMORY.md のインポート
Claude Code のネイティブな MEMORY.md ファイル(通常は
~/.claude/projects/<proj-key>/memory/MEMORY.md)のパスを指定して呼び出された場合、または
on_session_start.sh がネイティブの自動メモリーを検出し、ユーザーがインポートを選択した場合:
- ファイルを読み込みます。改行で区切られたメモリー項目(1 行につき 1 つの事実。場合によっては
-の箇条書き記号付き)が含まれています。 - 空でない行に分割します。各行が 1 つのメモリーになります。
- 20 文字未満の行と、見出しだけの行(
#)はスキップします。 - 各行について、次の内容で
add_memoryを呼び出します:text="<line>"user_id=<active_user_id>app_id=<active_project_id>metadata={"type": "task_learning", "source": "memory-md-import", "confidence": 0.8}infer=False
- 次のように報告します:
Imported <N> memories from MEMORY.md into project <project_id> - ネイティブの自動メモリーを無効にするよう提案します:
To avoid duplicate memory systems, add to ~/.claude/settings.json: "autoMemoryEnabled": false
これにより、Claude Code のネイティブなメモリーを使っていたユーザーが mem0 に切り替える際のコールドスタートギャップに対応できます。
エラー処理
- パーサースクリプトが
<PLUGIN_ROOT>/scripts/parse_export_file.pyに見つからない場合は、エラーを出力して停止します。 add_memoryの呼び出しが継続的に失敗する場合(認証エラーなど)は、問題を報告して早期に停止します。