MemoryLake
すべての記事に戻る
Tutorial2026年9月4日·11 分で読了

コンテキストを失わずに Claude Code から Amp へ移行する方法 (2026年)

これは、最初のステップが「何もしないこと」であるという珍しい移行であり、まさにその点に危険が潜んでいます。

Amp は CLAUDE.md を読み込みます。変換としてではなく、インポーターを介すのでもなく、ドキュメント化された動作として直接読み込むのです。Claude Code 用にセットアップされたリポジトリを Amp に指定するだけで、プロジェクトの指示がすでに有効になります。このカテゴリにおいて、最もクリーンなツール切り替えのように感じられます。

しかし、それを機能させている次の文を読んでみてください。「ディレクトリに AGENTS.md が存在しない場合、AGENT.md(末尾の S なし)または CLAUDE.md という名前のファイルが存在すれば、そのファイルがインクルードされます。」

AGENTS.md が存在しない場合。 これはフォールバックに過ぎません。チームの誰かが Amp のジェネレーターを実行したり、別のツール用に AGENTS.md をコミットしたその日、そのディレクトリではフォールバックが適用されなくなり、CLAUDE.md は静かに無視されるようになります。エラーも警告も出ず、ファイルはそのままそこに残り続けます。

これが、この移行が隠している2つの問題の1つ目です。2つ目はさらに深刻です。Claude Code には、Amp にはまったく対応する機能がない第2のメモリシステムが存在します。

始める前に、1つ境界線を引いておきます。これは Claude Code から Amp へ移行するためのガイドです。もし Amp を使い続ける中で、すべてのタスクで読み込み量が多すぎるという問題に直面しているなら、解決策は別のメカニズムになります。Ampの指示を適用するファイルにスコープする でその方法を解説しています。

実際に移行されるもの

あなたの CLAUDE.md は、条件付きでそのまま移行されます。 上述の通りです。これを最終目的地ではなく猶予期間として捉えてください。同じディレクトリに AGENTS.md が現れるまでは機能します。

ロードモデルは十分に似ており、安心できます。 Claude Code は「起動時に、ワーキングディレクトリより上のディレクトリ階層にある CLAUDE.md および CLAUDE.local.md ファイル」をロードし、「サブディレクトリ内のファイルは、Claude がそれらのディレクトリ内のファイルを読み込むときにオンデマンドでロード」されます。Amp もほぼ同じです。「現在のワーキングディレクトリ(またはエディタのワークスペースのルート)および 親ディレクトリ($HOME まで)にある AGENTS.md ファイルは常にインクルード」され、「サブツリーの AGENTS.md ファイルは、エージェントがそのサブツリー内のファイルを読み込むときにインクルード」されます。

同じ形状であり、サブツリーに対する遅延ロードも同様です。あなたのメンタルモデルのこの半分はそのまま維持されます。

個人スコープとシステムスコープは両方に存在しますが、パスが異なります。 Claude Code には、ロード順にドキュメント化された4つのスコープがあります:管理ポリシー、ユーザー(~/.claude/CLAUDE.md)、プロジェクト、および ./CLAUDE.local.md です。Amp にはリポジトリファイルのほかに、「コミットする前にローカルでテストしている個人設定、デバイス固有のコマンド、およびガイダンス」用の「$HOME/.config/amp/AGENTS.md」と「$HOME/.config/AGENTS.md」があります。さらに、「すべての Amp セッションに対するシステム全体または組織管理のガイダンス」用のシステム全体ファイルが /etc/ampcode/AGENTS.md/Library/Application Support/ampcode/AGENTS.md、または %ProgramData%\ampcode\AGENTS.md に存在します。

Amp のリポジトリ外のファイルはすべて「存在すれば常にインクルード」されます。そのため、ユーザースコープのコンテンツはきれいにマッピングされます。パスは変わりますが、ロードが非条件付きである点は両者で共通しています。

条件付きルールは移行され、さらに改善されます。 これは真のアップグレードです。Claude Code は .claude/rules/ のフロントマターにある paths フィールドで指示をスコープし、「パススコープのルールは、Claude がパターンに一致するファイルを読み込んだときにトリガー」されます。Amp は、globs リストを持つ @ メンションされたファイルを介して同じ処理を行います。「globs を持つメンションされたファイルは、Amp がその globs のいずれかに一致するファイルを読み込んだ場合にのみインクルード」されます。

変換する際に知っておくべきことが2つあります。単純なメンションは無条件です。「globs が指定されていない場合、ファイルは @ メンションされたときに常にインクルードされます」ので、フロントマターが重要になります。また、glob の解決には独自のルールがあります。「glob は、../ または ./ で始まらない限り、暗黙的に **/ がプレフィックスとして付加されます。../ または ./ で始まる場合は、メンションされたファイルからの相対パスを指します。」

インポート構文は、単に書き方が変わるだけでなく、意味も変わります。 Claude Code の @path/to/import は起動時にファイルを読み込みます。「インポートされたファイルは展開され、それらを参照する CLAUDE.md とともに起動時にコンテキストにロード」され、「最大深度は4ホップ」です。Amp の @ メンションも見た目は同じで、条件付きにすることができます。どちらもコードブロックをスキップします。Claude Code の「インポート解析は Markdown のコードスパンとフェンス付きコードブロックをスキップ」し、Amp の「コードブロック内の @ メンションは、誤検知を避けるために無視」されます。そのため、バッククォート内のパスはどちらでもリテラルのままです。

注意すべき違いが1つあります。「相対パスは、ワーキングディレクトリではなく、メンションを含むエージェントファイルからの相対パスとして解釈」されます。Claude Code も同様に解決するため、そのままコピーすれば通常は機能しますが、ファイルを1レベル上または下に移動すると、そのメンションが壊れてしまいます。

自動メモリは移行されません。移行先が存在しないからです。 Claude Code は1つではなく2つのシステムを実行しています。あなたが作成するファイルのほかに、「自動メモリにより、何も書かなくてもセッション間で Claude が知識を蓄積」します。これらはタイプ別にタグ付けされます:user(「あなたの役割、専門知識、作業の好み」)、feedback(「Claude に与えた修正や確認したアプローチ」)、project(「コードや git 履歴から Claude が導き出せない進行中の作業、期限、決定事項」)、および reference(外部へのポインタ)。

これはデフォルトで有効になっており、~/.claude/projects/<project>/memory/ の下にあるローカルファイルに MEMORY.md インデックスとともに保存されます。そのスコープは「リポジトリごと、ワークツリー間で共有」され、ロードされるスライスは制限されています:「毎セッション(最初の200行または25KB)」。

Amp のドキュメント化された永続化は、あなたが作成する AGENTS.md ファイルとスレッドのみであり、スレッドはストレージというよりも会話です。自動で書き込まれるメモリディレクトリに相当するものはドキュメントに存在しません。そのため、自動的に蓄積された Claude Code の設定の半分(あなたが与えた修正や、推測された好みなど)には移行先がありません。

スレッドはメモリレイヤーではなく、Amp もそうであるとは主張していません。 スレッドは作業の継続性のために非常によく設計されています。スレッドには URL があり、「同じスレッドがウェブアプリ、CLI、iOS および macOS 用の Amp アプリで開きます」また「エージェントが実行される場所は、それを見る場所とは別」です。推奨されるのは1タスクにつき1スレッドです。なぜなら「無関係な作業が混在するスレッドは、エージェントの推論コンテキストを悪化させる」からです。スレッドが肥大化したときのドキュメント化されたエスケープハッチとして、「エージェントに『Handoff and …(引き継いで…)』と指示すると、重要なコンテキストを引き継いで新しいスレッドを開始」できます。

これは便利ですが、事実を保持する場所ではありません。引き継ぎ(handoff)は、プロジェクトに関するすべての真実ではなく、エージェントが関連性があると判断した内容のみを引き継ぐためです。

手動移行

ステップ 1: 意図的に名前を変更し、トリガーごとに分割する

フォールバックに依存しないでください。CLAUDE.md ファイルが存在するのと同じパスに実際の AGENTS.md ファイルを作成し、後から誰もファイルを追加しないという条件に依存するのではなく、動作を明示的にします。

次に分割します。Amp は次のように推奨しているためです。「複数のサブプロジェクトを持つ大規模なリポジトリでは、トップレベルの AGENTS.md は一般的な内容にとどめ、各サブプロジェクトのサブツリーに、より具体的な AGENTS.md ファイルを作成することをお勧めします。」Claude Code も逆の方向から同じアドバイスをしていました。「CLAUDE.md ファイルあたり200行未満を目指してください。ファイルが長くなると、より多くのコンテキストを消費し、指示への準拠度が低下します。」したがって、すでにその上限を下回っていたのであれば、これはほぼコピー作業になります。

次に .claude/rules/ のエントリを変換します。paths フィールドを持つルールは、フロントマターに globs リストを持つ、AGENTS.md から参照されるファイルになります。これを持たないルールは無条件でロードされていたため、単なるメンションとしてではなく、一般的なファイルに含めるべきです。

~/.claude/CLAUDE.md のコンテンツを $HOME/.config/amp/AGENTS.md に移動します。バージョン管理から除外していた CLAUDE.local.md にあったもの(「個人用のプロジェクト固有の設定」)については、Amp の $HOME/.config ファイルが最も近い移行先になります。ただし、1つのプロジェクトだけでなく、すべての場所に適用されるという違いがあります。

次に、そのために用意されたコマンドで検証します。「Amp が使用しているエージェントファイルを確認するには、コマンドパレットから agents-md list を選択します。」いくつかのディレクトリから、またエージェントが異なるファイルタイプを読み込んだ後に実行してください。これは Claude Code で Memory files のために /context を確認することに相当し、移動によって相対パスが壊れてしまったメンションを見つける方法です。

ステップ 2: Claude Code の使用を停止する前に自動メモリを読み取る

このステップにはツールが用意されておらず、人々が最もスキップしがちなステップです。

~/.claude/projects/<project>/memory/ を開きます。ファイルは MEMORY.md インデックス付きのプレーンな Markdown であり、Claude が自身のために書き込んだものであるため、正確に読み取ることができます。これらを読んでください。

そこにあるのは、数ヶ月にわたる修正の残骸であり、読み進めながら整理する価値があります。指示のように読める項目(フォーマットの好み、繰り返し指摘したルールなど)は、新しい AGENTS.md または glob スコープのファイルのコンテンツになります。プロジェクトに関する事実のように読める項目(期限、決定とその理由、ワークアラウンドが存在する理由など)は、指示ファイルにはまったく属しません。これらについては後ほど説明します。

また、Claude Code が意図的に記録しなかったことにも注意してください。これにより、見つかるはずのものが変わってきます。「Claude はコードベースから導き出せるものはすべてスキップ」し、「CLAUDE.md ファイルにすでに記載されていることもスキップ」します。したがって、自動メモリはファイルの重複ではなく、ファイルを補完するものです。そこにあるすべての情報は、コードからは読み取れないものです。これこそが、最も救い出す価値がある部分であり、それらのファイルが失われたときに なぜ Claude Code がプロジェクトのコンテキストを忘れてしまうのか の背景にあるパターンです。

より良い方法:両方のツールの外側で蓄積される半分を保持する

名前の変更は機械的であり、glob への変換はアップグレードです。この移行に本当の時間を費やさせるのは、蓄積された「半分」です。そして、蓄積されたものがツール内部に保存されていたため、次のツール切り替え時にも再び同じコストを支払うことになります。

Claude Code 自身のフレームワークがその理由を示しています。それは、あなたが書くものとエージェントが学習するものを分離し、両方を設定ではなくコンテキストとして扱います。「Claude はこれらを設定の強制ではなく、コンテキストとして扱います。」Amp は最初のカテゴリを保持し、2番目のカテゴリを破棄します。どちらのツールも間違っていません。ただ、そのカテゴリにはツールではない「家」が必要なだけです。

蓄積される半分をメモリレイヤーに配置すれば、移行作業は名前の変更だけに縮小されます。MemoryLake は3つのステップでセットアップできます。

ステップ 1: API キーを作成する

サインインし、ダッシュボードから API キーを生成します。これはエディタの設定やエージェントのローカルディレクトリではないため、この移行のきっかけとなったような性質(他のファイルによって静かに上書きされるフォールバックなど)はありません。

1つのストアで Claude Code と Amp の両方に対応できるように MemoryLake API キーを作成する
1つのストアで Claude Code と Amp の両方に対応できるように MemoryLake API キーを作成する

ステップ 2: 最初のメモリをアップロードする

ここに、ステップ2の2つ目の山(決定とその理由、期限、ドメイン用語、ワークアラウンドが存在する理由、すでに複数回行った修正など)が入ります。

指示ファイルには保持されない蓄積されたナレッジを MemoryLake にアップロードする
指示ファイルには保持されない蓄積されたナレッジを MemoryLake にアップロードする

振る舞いは AGENTS.md に残し、パターンが適合する場合は globs でスコープします。これら2つのレイヤーは異なる役割を担っており、それらを混在させると、指示ファイルが従いきれないほど肥大化する原因になります。

ステップ 3: AI とエージェントを接続する

Amp をストアに指定します。これにより、AGENTS.md ファイルは短く振る舞いに特化した状態を維持でき、新しいスレッドは引き継ぎのサマリーからではなく、プロジェクトの事実から開始されます。そして、そのナレッジは次に評価するツールでも生き残り続けます。これについては クロスエージェントメモリ で詳しく説明しています。

MCP と API を介して Amp と Claude Code を同じ MemoryLake ストアに接続する
MCP と API を介して Amp と Claude Code を同じ MemoryLake ストアに接続する

実務における変化

最初の変化は、フォールバックが「大黒柱」ではなくなることです。明示的な AGENTS.md ファイルと外部ストアを使用することで、セットアップのどの部分も、ファイルが「存在しないこと」に依存しなくなります。

2つ目は、自動メモリを失うコストが低下することです。これは優れた機能であり、Amp にそれがないことは確かに大きなギャップですが、それは他に保存場所がないナレッジに限られます。

3つ目は、glob スコープのガイダンスを小さく保てることです。Amp の条件付きロードは、常にオンになっているファイルよりも真に優れており、制限する対象がプロジェクトの事実のキャビネットではなく、指示である場合に最も効果的に機能します。この理由は メモリレイヤーによるトークン使用量の削減 で説明されています。

Claude Code から Amp への移行におけるベストプラクティス

  • 実際の AGENTS.md ファイルを作成する。 CLAUDE.md のフォールバックは、AGENTS.md が存在しない場所にのみ適用されます。
  • ルートファイルを分割する。 Amp は、一般的なトップレベルファイルと、特定のサブツリーファイルを分けることを推奨しています。
  • pathsglobs に変換する。 また、単純な @ メンションは無条件であることを忘れないでください。
  • glob の解決に注意する。 パターンが ./ または ../ で始まらない限り、暗黙的に **/ がプレフィックスとして付加されます。
  • ファイルを移動した後は、メンションのパスを確認する。 パスは、メンションを含むファイルからの相対パスとして解決されます。
  • 最初に自動メモリディレクトリを読み取る。 MEMORY.md でインデックスされたプレーンな Markdown であり、エクスポートする機能はありません。
  • agents-md list で検証する。 複数のディレクトリから、また異なるファイルタイプを操作した後に実行します。
  • スレッドをストレージとして扱わない。 1タスクにつき1スレッドとし、引き継ぎはエージェントが関連性があると判断した内容のみを伝達します。

結論

Amp が CLAUDE.md を読み込むため、これはこのカテゴリで最も簡単な移行のように見えます。そして、ファイルの半分については、以前よりも改善された条件付きロードモデルのおかげで、実際にほぼその通りです。

痛みを伴うのは、自動的に書き込まれたもう半分のデータです。Claude Code はあなたの修正をローカルの Markdown に蓄積していましたが、Amp にはそうしたレイヤーはなく、インポーターも提供されません。移行する前にそのディレクトリを読み、指示と事実を整理し、次のツール切り替え時に影響を受けない場所に事実を保存してください。

よくある質問

Amp は既存の CLAUDE.md を読み込みますか?

はい、ただし条件付きです。「ディレクトリに AGENTS.md が存在しない場合、AGENT.md(末尾の S なし)または CLAUDE.md という名前のファイルが存在すれば、そのファイルがインクルードされます。」これはディレクトリごとのフォールバックであるため、同じ場所に AGENTS.md が現れた瞬間、そこでは CLAUDE.md が読み込まれなくなります。

Amp には Claude Code の自動メモリのような機能はありますか?

ドキュメント化されたものはありません。Amp のドキュメント化された永続化は、ユーザーが作成する AGENTS.md ファイルとスレッドのみです。Claude Code の自動メモリは、4つのタイプにわたって ~/.claude/projects/<project>/memory/ に独自のメモを書き込み、各セッションで「最初の200行または25KB」をロードしますが、これを受け取るドキュメント化された Amp の機能はありません。

パススコープのルールはどのように変換すればよいですか?

paths フィールドを持つ .claude/rules/ ファイルは、フロントマターに globs リストを持つ、AGENTS.md から @ メンションされるファイルになります。Amp は「Amp がその globs のいずれかに一致するファイルを読み込んだ」場合にのみそれをインクルードするため、エージェントの実際の読み込みに基づいて制限されます。

ユーザーレベルの CLAUDE.md はどこに配置すればよいですか?

$HOME/.config/amp/AGENTS.md(または $HOME/.config/AGENTS.md)に配置します。これらは両方とも、存在すれば Amp によって常にインクルードされます。これらはすべての作業に適用されるため、真にプロジェクト固有であったものは別の場所に配置する必要があることに注意してください。

スレッドは、失われるメモリの代わりになりますか?

事実の代わりにはなりません。スレッドは作業の継続性(1つの URL でウェブ、CLI、アプリから開くことができる)には非常に優れており、Amp は1タスクにつき1スレッドを推奨しています。引き継ぎは「重要なコンテキストを持つ新しいスレッドを開始」しますが、これは永続的な記録というよりも、関連性に関する判断によるものです。

Amp が実際に何をロードしているかを確認するにはどうすればよいですか?

コマンドパレットから agents-md list を選択します。サブツリーファイルや glob で制限されたファイルは、トリガーが起動した後にのみ表示されるため、異なるディレクトリから、またエージェントが異なるファイルタイプを読み込んだ後に実行してください。これは コーディングエージェントが実際に読み込んでいるもの で説明されている一般的な習慣です。