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

DevinのCascade専用メモリをスキルに移行する方法 (2026年版)

Devin Desktopをしばらく使っているなら、一度も見直したことのない自動生成されたメモリが山のように溜まっていることでしょう。これらは会話中にCascadeによって書き込まれ、関連性があるときに取得され、コストは一切かかりません。ドキュメントでも「自動生成メモリの作成と使用はクレジットを消費しません」と明記されています。

ここで知っておくべき重要なポイントがあります。ほとんどの新しい作業において、これらのメモリはまったく機能していません。

「メモリはレガシーなCascadeエージェントにのみ適用されます。新しいタブのデフォルトエージェントであるDevin Localエージェントは、メモリを永続化しません。依存しているメモリは、Devin: Open Cascade Migration Wizard コマンドを使用してスキルに移行してください。」

順を追って整理しましょう。メモリはCascadeの機能です。新しいタブのデフォルトエージェントはCascadeではありません。そして、依存しているデータを引き続き適用される場所に移行するための、公式のウィザードが用意されています。

誤解のないように補足すると、Devin Desktopには永続的なコンテキストが豊富に存在します。Rules(ルール)、AGENTS.md、Workflows(ワークフロー)、Skills(スキル)はすべて永続化され、ドキュメント化された4つのアクティベーションモードが用意されています。今回のピンポイントな問題は、自動生成されたメモリレイヤーが特定のエージェント(Cascade)に属しており、新しいタブを開いたときに起動するエージェントがそれではなくなったという点です。

始める前に一つ境界線を引いておきます。これはドキュメント化されたコマンドを使用した移行タスクであり、会話の中でCascadeが文脈を見失う問題の診断ではありません。そちらは原因が異なり、why Devin loses task context で解説しています。以下で説明するのは、すでに存在する知識を再配置することについてです。

メモリがエージェントに届いていない理由

機能の裏でデフォルトエージェントが変更された

先ほど引用した一文は、2つのことを同時に示しています。メモリの適用範囲を「レガシーなCascadeエージェントのみ」に限定していること、そして、あなたが実際に使用しているエージェントが「新しいタブのデフォルトエージェントであるDevin Localエージェント」であるということです。

何かが壊れたわけではありません。より新しいエージェントがデフォルトになり、古い永続化メカニズムの1つが引き継がれなかっただけです。しかし、蓄積されたコンテキストが常に自分に付いてきていると思い込んでいた人にとって、その実質的な影響は無視できません。新しいタブを開いた瞬間、そのコンテキストは存在しないのです。

開発元もすでにメモリへの依存を非推奨としている

これはドキュメントと実態が矛盾しているケースではありません。エージェントの問題が発生する前から、Devin自身のガイドラインには永続的な知識をどこに置くべきかが明記されていました。

推奨事項: Cascadeに確実に再利用させたい知識については、自動生成されたメモリに頼るのではなく、ルールとして記述するか、リポジトリの AGENTS.md に追加してください。ルールはバージョン管理が可能で、チームと共有でき、アクティベーションを明示的に制御できます。」

また、機能比較表でもメモリの用途について率直に述べられています。「単発の事実はCascadeに記憶させ、永続的な知識にはルールまたは AGENTS.md を優先してください。」

したがって、移行ウィザードはデグレードに対する回避策ではありません。ドキュメントがそもそも推奨していた方法を実践するための支援ツールなのです。

トリガーが異なる4つの永続化メカニズム

「単にルールに移動する」だけでは済まない理由は、Devin Desktopが4つの仕組みを区別しており、持っている情報に応じて適切な移行先が異なるためです。

Rules(ルール)は「Cascadeにどのように動作すべきかを指示する(例:'npmではなくbunを使用する')」もので、always_onglobmodel_decisionmanual のいずれかでアクティブになります。「コーディング規約、スタイルガイド、プロジェクトの制約」に最適です。

AGENTS.mdは「ゼロ設定で場所ごとにスコープされたルール」を提供し、「ルート = always-on、サブディレクトリ = glob」として自動的にアクティブになります。「フロントマターなしのディレクトリ固有の規約」に最適です。

Workflows(ワークフロー)は「繰り返し実行するマルチステップタスク用のプロンプトテンプレート」で、「/[workflow-name] スラッシュコマンドによる手動実行のみ」でアクティブになります。「デプロイ、PRレビュー、リリースのチェックリスト」に最適です。

Skills(スキル)は「サポートファイル(スクリプト、テンプレート)とバンドルされたマルチステップの手順」であり、「モデルによって動的に呼び出されるか、@メンション」されます。ドキュメントでは「Cascadeが参照ファイルを必要とする複雑なタスク — ここに投資してください」と特に強調されています。

この最後の一行こそが、ウィザードがルールではなくスキルを明確なターゲットにしている理由です。

ドキュメント化されているアクティベーションモードのコンテキストコスト

大量のコンテンツをルールに移動しようとしているなら、まずこのコストに関する説明を読むべきです。Devinは各モードのコストを公開しているからです。

always_on は「ルールの全コンテンツをすべてのメッセージのシステムプロンプトに含める」ため、コストは「すべてのメッセージ」にかかります。model_decision は「システムプロンプトには説明(description)のみを含め、Cascadeがその説明を関連性があると判断したときにのみルールの全ファイルを読み込む」ため、コストは「説明は常に、全コンテンツはオンデマンド」となります。glob は「Cascadeがglobパターンに一致するファイルを読み込むか編集するとき」に適用され、コストは「一致するファイルが操作されたときのみ」です。manual は「システムプロンプトには含まれず」、@rule-name と入力したときにアクティブになります。

覚えておくべき2つの例外:「グローバルルールファイル(global_rules.md)とルートレベルの AGENTS.md ファイルはフロントマターを使用せず、常にオン(always-on)になります。」

厳格な文字数制限

移行の途中で多くの人が直面する制約がこれです。

「ワークスペースのルールファイルはそれぞれ12,000文字に制限されています。グローバルルールファイルは6,000文字に制限されています。」

グローバルルールは ~/.codeium/windsurf/memories/global_rules.md にある単一のファイルに保存され、「すべてのワークスペースに適用」され、常にオンで、上限は6,000文字です。ワークスペースルールは「ルールごとに1ファイル、それぞれ独自のアクティベーションモードを持つ」形式で、1ファイルあたり12,000文字、.devin/rules/*.md(推奨)または .windsurf/rules/*.md(フォールバック)に配置されます。また、ワークスペースルートにあるレガシーな単一ファイル .windsurfrules も引き続き読み込まれます。

つまり、グローバルファイルは最も容量制限が厳しく、かつ多くの人が最初に使おうとする場所です。1年分のメモリをそこに流し込もうとしても、収まりきりません。

よくある誤ったアプローチ

メモリが新しいエージェントにも引き継がれると思い込む。 最もよくある誤解であり、この記事が存在する理由でもあります。メモリはレガシーなCascadeエージェントにのみ適用されます。

Devinには永続的なコンテキストがないと結論づける。 これも逆の方向で間違っています。Rules、AGENTS.md、Workflows、Skillsはすべて永続化され、自動生成されたメモリよりも明確なアクティベーション制御が可能です。

すべてを global_rules.md に貼り付ける。 気持ちは分かります。1つのファイルで、常にオン、フロントマターを覚える必要もありません。しかし、これは6,000文字に制限されており、すべてのワークスペースのすべてのメッセージでコストが発生します。

すべてのルールを always_on にする。 安全に思える選択肢ですが、気づかないうちにコンテキストウィンドウを消費してしまいます。長いルールを安価に説明し、必要に応じて読み込むためにこそ model_decision が存在します。

メモリを1つずつ手動で移行する。 その必要はありません。このためのコマンド Devin: Open Cascade Migration Wizard が用意されています。

ルールを書類キャビネットのように扱う。 Devinのベストプラクティスでは、これに対して明確に注意を促しています。「ルールはシンプル、簡潔、かつ具体的に保ってください。長すぎたり曖昧だったりするルールはCascadeを混乱させる可能性があります」「一般的なルール(例:'良いコードを書く')を追加する必要はありません」。プロジェクトの事実は動作の指示ではありません。それらをルールに入れてしまうと、ルールディレクトリが機能しなくなる原因になります。これは、スタイルがどこかに書かれているにもかかわらず why Devin forgets your coding style(Devinがコーディングスタイルを忘れてしまう理由)の背景にあるパターンです。

解決策:メモリを分類し、それぞれを適切な場所に配置する

ステップ1:メモリに実際に何が入っているかを確認する

ウィザードを実行する前に、手元にあるデータを確認しましょう。メモリは「会話中にCascadeが自動生成するコンテキスト」であるため、その内容は多種多様です。そして、その多様性こそが、単一の移行先が不適切である理由です。

読み進めながら、見つかったものを以下の4つのグループに分類してください。

動作(Behavior)。 「npmではなくbunを使用する」「早期リターンを優先する」など。これらはRules(ルール)になり、アクティベーションモードの選択は単なる形式的なものではなく、重要な決定になります。

場所固有の規約(Location-specific conventions)。 特定のディレクトリ内でのみ適用されるルール。これらは AGENTS.md ファイルになり、フロントマターを一切使わずにglobのような動作を実現できます。

サポートファイルを伴う手順(Procedures with supporting files)。 スクリプトやテンプレートを必要とする、複数ステップのプロセス。これらはSkills(スキル)であり、ドキュメントで投資が推奨されている領域です。

事実(Facts)。 なぜAPIのパスにバージョンが含まれているのか、社内用語の定義、どのサービスがどのキューを所有しているかなど。これらは4つのメカニズムのいずれにも綺麗に当てはまりません。これについては後ほど説明します。

ステップ2:ウィザードを実行し、残りをアクティベーションモード別に配置する

コマンドパレットを開き、Devin: Open Cascade Migration Wizard を実行します。これは、依存しているメモリを移行するための公式なルートであり、参照ファイルとバンドルされた手順のために構築された仕組みである「スキル」を対象としています。

ウィザードでカバーされないものについては、意図的に配置場所を決めます。

どこでも適用されるべき動作は ~/.codeium/windsurf/memories/global_rules.md に配置します。6,000文字の上限があり、フロントマターなしで常にオンになることを忘れないでください。

プロジェクトにスコープされた動作は、.devin/rules/*.md に配置します。これは .windsurf/ よりも「優先される」推奨の場所です。フロントマターで各ルールに trigger を指定してください。ファイルタイプのルールにはパターンを指定した glob を使用し、ファイル全体を読み込ませるよりも説明文のコストだけで済ませたい長いルールには model_decision を使用します。本当にすべてのメッセージに適用すべき短いリストにのみ always_on を残しておきます。

ディレクトリの規約は、関連するディレクトリの AGENTS.md に配置します。ルートレベルは常にオン、サブディレクトリは「そのディレクトリに対する自動glob」となります。

デバッグの手間を省くための2つの仕様:Devinは「親ディレクトリのルールを見つけるためにgitルートディレクトリまで」検索します。また、複数のフォルダが開いている場合、「ルールは重複排除され、最も短い相対パスで表示」されます。ただし、ルールを作成すると、それは「gitルートではなく、現在のワークスペースの .devin/rules ディレクトリに保存される」ため、どこに保存されたかを確認してください。

作業の際は、フォーマットのガイダンスに従ってください。Devinは長い段落よりも「箇条書き、番号付きリスト、マークダウン」を求めており、「XMLタグは、同様のルールを伝達しグループ化する効果的な方法になり得る」と述べています。

ステップ3:4つ目のグループの置き場所を作る

4つのグループのうち3つには、適切な移行先が見つかりました。しかし、4つ目のグループ(事実)にはそれがありません。ないものをあるように見せかけることが、ルールディレクトリを形骸化させる原因になります。

プロジェクトに関する事実は、指示ではありません。これらには自然なアクティベーションモードが存在しません。always_on はたまにしか必要としない情報に対して過剰なコストを支払うことになり、glob は事実には存在しないファイルパターンを必要とし、manual はルールが存在することを知っていて @メンション する必要があります。model_decision は比較的近いですが、事実そのものではなく、事実の説明を書く必要があります。一方で、グローバルファイルは6,000文字、ワークスペースルールは12,000文字の制限があり、その貴重な容量を背景知識に割くべきではありません。

メモリレイヤーであれば、アクティベーションモードなしでこれらを保持できます。なぜなら、エージェントはパターンが一致したときではなく、そのトピックが話題に上がったときにそれを読み取るからです。MemoryLake は3つのステップでセットアップできます。

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

サインインし、ダッシュボードからAPIキーを生成します。これは特定のエージェントにスコープされていないため、この記事の冒頭で述べたような問題(Cascadeにのみ属し、Localエージェントには属さないといった性質)はありません。

手順でもルールでもないDevinメモリ用にMemoryLakeのAPIキーを作成する
手順でもルールでもないDevinメモリ用にMemoryLakeのAPIキーを作成する

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

4つ目のグループ(事実)をアップロードします。アーキテクチャの決定とその理由、ドメイン用語、サービスの所有権、ワークアラウンドが存在する理由、これまでに何度も行ってきた修正指示などです。

Cascadeメモリから回収した事実をMemoryLakeにアップロードする
Cascadeメモリから回収した事実をMemoryLakeにアップロードする

動作はルールに、手順はスキルに残しておきます。これらのメカニズムはそれぞれの役割に適しており、ドキュメント化されたアクティベーションセマンティクスを持っています。MemoryLakeは、それらを持たない情報のための場所です。

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

Devin Desktopをこのストアに向けます。文字数の制限は動作の指示に充てられ、常時オンのルールセットは十分に短く保たれ、古いメモリを価値あるものにしていた知識は、タブがどのエージェントで開かれたかに依存しなくなります。これについては turning project docs into AI memory(プロジェクトドキュメントをAIメモリに変換する)で詳しく説明しています。

Devin DesktopをMCP経由でMemoryLakeに接続し、4つ目のグループの置き場所を作る
Devin DesktopをMCP経由でMemoryLakeに接続し、4つ目のグループの置き場所を作る

実務における変化

最初の変化は、エージェントの選択が「知識の有無」を左右しなくなることです。現状では、自動生成されたレイヤーが適用されるかどうかは、タブがCascadeかLocalかに依存しています。知識がタブに依存すべきではありません。

2つ目は、文字数制限が設計上の制約にならなくなることです。グローバルで6,000文字、ワークスペースルールごとに12,000文字という制限は、動作の指示だけであれば十分ですが、動作に加えて事実まで含めると窮屈になります。そして、事実はそこに置く必要がないのです。

3つ目は、バージョン管理のメリットが最終的にすべてに適用されることです。メモリよりもルールを推奨するDevinの根拠は、ルールが「バージョン管理可能で、チームと共有でき、アクティベーションを明示的に制御できる」点にあります。これらは優れた特性であり、背景にある事実も同様にその恩恵を受けるべきです。これは keeping team AI context when someone leaves(メンバー離脱時にチームのAIコンテキストを維持する)の背景にある懸念でもあります。

Devin Desktopのルールとスキルに関するベストプラクティス

  • 手動で移行するのではなく、ウィザードを実行する。 Devin: Open Cascade Migration Wizard が公式に推奨されている移行ルートです。
  • 各メモリを適切なメカニズムに対応させる。 動作はRulesへ、ディレクトリの規約は AGENTS.md へ、ファイルを伴う手順はSkillsへ。
  • trigger は慎重に選択する。 ドキュメントには各モードのコンテキストコストが公開されています。always_on はコストが高くなります。
  • 文字数制限を遵守する。 ワークスペースのルールファイルは1ファイルあたり12,000文字、グローバルファイルは6,000文字までです。
  • .windsurf/ よりも .devin/ を優先する。 こちらが推奨される場所であり、優先されます。なお、レガシーな .windsurfrules も引き続き読み込まれます。
  • 新しいルールがどこに保存されたかを確認する。 必ずしもgitルートではなく、現在のワークスペースの .devin/rules に保存されます。
  • ルールは短く具体的に保つ。 長すぎたり曖昧なルールは「Cascadeを混乱させる可能性」があり、一般的なアドバイスはすでにモデルに組み込まれています。
  • システムルールは上書きではなく追加されることを理解する。 エンタープライズのシステムレベルのルールは「ワークスペースおよびグローバルルールとマージされ、ユーザー定義のルールを上書きすることはありません」。これらにはユーザーが削除できない「System」ラベルが表示されます。

結論

今すぐ実行すべき具体的なアクションはシンプルです。自動生成されたメモリはレガシーなCascadeエージェントにのみ適用され、新しいタブのデフォルトエージェントはそれらを永続化しません。そして、依存しているメモリをスキルに移行するための公式ウィザードが用意されています。これを実行しましょう。

より大きなポイントは、Devin自身のドキュメントが示している通りです。自動生成されたメモリは単発の事実には適していますが、確実に必要となる知識の土台としては不十分です。手元にある情報を分類し、動作や手順を適切なアクティベーションモードとともに適切な場所に配置し、背景となる事実は特定のエージェントに依存しないレイヤーに保持しましょう。

よくある質問

Devinのメモリはまだ機能しますか?

レガシーなCascadeエージェント上では機能します。「メモリはレガシーなCascadeエージェントにのみ適用されます。新しいタブのデフォルトエージェントであるDevin Localエージェントは、メモリを永続化しません。」そのため、デフォルトエージェントで開かれた新しいタブでは、それらのメモリは利用されません。

どのように移行すればよいですか?

コマンドパレットから Devin: Open Cascade Migration Wizard を実行します。ドキュメントではこれを「スキル」に向けて案内しており、スキルは「サポートファイル(スクリプト、テンプレート)とバンドルされたマルチステップの手順」と説明され、投資すべき場所として位置づけられています。

代わりにメモリをルールに変換すべきですか?

動作に関するものであれば、その通りです。Devinはエージェントの変更とは無関係に、次のように推奨しています。「Cascadeに確実に再利用させたい知識については、自動生成されたメモリに頼るのではなく、ルールとして記述するか、リポジトリの AGENTS.md に追加してください。」それぞれのルールに trigger を設定し、コンテキストコストを制御できるようにしましょう。

ルールのサイズ制限はどのくらいですか?

「ワークスペースのルールファイルはそれぞれ12,000文字に制限されています。グローバルルールファイルは6,000文字に制限されています。」ワークスペースルールは .devin/rules/*.md 内のルールごとに1ファイル、グローバルファイルは常にオンの単一の global_rules.md です。

どのアクティベーションモードを使用すべきですか?

コストに合わせて選択してください。always_on はすべてのメッセージにルールの全文を含めます。model_decision はシステムプロンプトに説明のみを含め、関連性がある場合にのみファイル全文を読み込みます。glob はCascadeがglobパターンに一致するファイルを読み込むか編集するときにトリガーされます。manual@rule-name によるメンションが必要です。なお、global_rules.md とルートレベルの AGENTS.md にはフロントマターがなく、常にオン(always-on)になります。

そもそもDevin Desktopに永続的なコンテキストは存在しますか?

はい、いくつかの種類が存在します。Rules、AGENTS.md、Workflows、Skillsはすべて永続化され、自動生成されたメモリよりも明確なアクティベーション制御が可能です。変更されたのはより限定的な部分であり、1つのメカニズムが特定のエージェントにスコープされたという点です。スキルが何に代わることができ、何に代わることができないのかという、より広い疑問については、why agent skills aren't memory(エージェントのスキルがメモリではない理由)を参照してください。