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

Cursor Automationsが実行間で保持するメモリを保護する方法(2026年ガイド)

Cursor Automationsは、スケジュールやイベント(プルリクエストの作成、Slackメッセージの投稿、Webhookの呼び出しなど)に応じて起動し、タスクを実行して再びスリープ状態に戻るバックグラウンドエージェントです。実行ごとに新しいクラウドエージェントが起動します。そのままでは、そのエージェントは前回の実行について何も知りません。

Cursorの解決策はメモリツールです。オートメーションは自身へのメモを書き込み、次回それを読み込むことができるため、最初からやり直すのではなく、タスクを重ねるごとに改善していきます。これはデフォルトで有効になっており、実際に機能します。

しかし、多くの人が見落としがちな警告がCursorの公式ドキュメントに記載されています。それは、信頼できない入力から書き込まれたメモリは、それ以降のすべての実行を誤らせる可能性があるということです。多くのオートメーションはまさに他者からの入力を読み取るために存在しているため、この警告は一見するよりも多くのセットアップに当てはまります。ここでは、メモリツールの仕組み、問題が発生する箇所、およびオートメーションが学習する内容を価値あるものに保つ方法について解説します。

なぜオートメーションのメモリはエディタのメモリよりも注意が必要なのか

まず、Cursorのドキュメントに記載されている内容から始めましょう。「メモリを使用すると、エージェントは同じオートメーションの実行間で永続的なメモを読み書きできます。これを使用して、時間の経過とともに記憶し、改善していくエージェントを構築します。各メモリは、エージェントの作業ファイルシステムの外に存在する名前付きエントリ(デフォルトでは MEMORIES.md)として保存されます。」

この段落の3つの詳細が、他のすべてを決定づけています。メモはあなたではなく、エージェントによって書き込まれます。それらは「実行をまたいで」永続化されるため、今日書き込まれたメモは将来のすべての実行に影響を与えます。そして、それらは「同じオートメーション」に属しているため、各オートメーションはメモリを共有するのではなく、独自のメモリを持ちます。

デフォルト設定とコントロールは以下の通りです。「メモリはデフォルトで有効になっていますが、無効にすることもできます。メモリはツール設定UIから表示および編集できます。」削除は双方向で機能します。「エージェントはオートメーションの実行中に古いメモリファイルを削除できます。ツール設定UIからメモリファイルを削除することもできます。」この最後の機能は2026年6月のアップデートで導入され、「UIでメモリファイルを削除するか、実行時に古いメモリを削除するようオートメーションに促す」機能が追加されました。

そして、警告の全文は以下の通りです。「メモリは実行をまたいで永続化されるため、オートメーションが信頼できない入力を処理する場合は注意して使用する必要があります。入力によって、意図しない形で将来のオートメーション実行に影響を与える、誤解を招くメモリや悪意のあるメモリが作成される可能性があります。」

では、オートメーションが通常何を読み取るかを見てみましょう。Cursorのトリガーリストには、Slackの「チャンネル内の新しいメッセージ」、プルリクエストの「コメントの追加」、GitHubイシューの「イシューコメント」、POST可能なWebhookエンドポイント、Linearイベントなどが含まれています。これらはすべて、あなた以外の誰かが書いたテキストを含んでいます。Slackチャンネルからのバグレポートを仕分けるオートメーションは、設計上、実行ごとに信頼できない入力を読み取っており、デフォルトではそれに基づいて自身にメモを書き込んでいます。

これがエディタのメモリとの違いです。エディタでは、タイピングしているのはあなたです。オートメーションでは、入力はそれをトリガーした誰かから提供され、残されたメモは誰も監視することなく次の実行で読み込まれます。

名称に関する注意点として、混同を避けるために説明しておきます。Cursorのメモリを検索すると、バージョン1.0で導入されたIDE機能(「Cursorは会話から事実を記憶し、将来的に参照できる」機能で、メモリは「プロジェクトごとに個人レベルで保存される」)を指すことがよくあります。Cursorの現在のドキュメントインデックスでは、MemoriesはAutomationsツールとして説明されており、ルールに関するドキュメントでは、ルールをエディタの永続レイヤーとして説明しています。「大規模言語モデルは補完間でメモリを保持しません。ルールはプロンプトレベルで永続的かつ再利用可能なコンテキストを提供します。」このガイドでは、Automationsのメモリツールについて説明します。

代替として試みられるアプローチ

すべてのオートメーションでメモリを有効にしたままにする。 これはデフォルトの設定であり、毎朝自身のレポジトリのコミットを要約するようなオートメーションであれば問題ないでしょう。しかし、公開チャンネルを読み取るオートメーションの場合、見知らぬ人のメッセージがオートメーションの保持するメモを形成してしまう可能性があります。

すべての場所でメモリを無効にする。 安全ではありますが、この機能の真の価値を捨ててしまうことになります。どの不安定なテスト(flaky tests)を無視すべきか、あるいはどのレビュアーがどのディレクトリを担当しているかを学習するオートメーションは、1回目の実行よりも10回目の実行の方が確実に優れています。

エージェント自身によるクリーンアップを信頼する。 Cursorのドキュメントには、エージェントが「オートメーションの実行中に古いメモリファイルを削除できる」と記載されています。これは便利な整理整頓機能です。しかし、何が古いかを判断しているのは、同じ入力を読み取っているのと同じエージェントです。

メモリファイルを一度も開かない。 メモはツール設定UIで表示および編集できます。多くのチームはオートメーションを設定し、1週間ほど動作を確認した後は、それ以降オートメーションが自身に何を記録しているかを二度と確認しません。

メモリがオートメーション間で共有されていると仮定する。 メモリのスコープは「同じオートメーション」に限定されています。仕分けオートメーションが学んだ教訓は、レビューオートメーションからは見えません。これは適切な分離ですが、よく驚かれるポイントです。

解決策:メモリの適切な配置を決定し、記録してよい内容をエージェントに指示し、定期的にレビューする

目的は、学習機能を維持しつつ、何を学習したかについての推測を排除することです。

ステップ1:読み取る入力に基づいて各オートメーションを分類する

オートメーションをリストアップし、それぞれについて、すべてのトリガーと読み取り元のソースを書き出します。次に、それらを2つのグループに分類します。

信頼できる入力:自身のレポジトリに対するスケジュール実行、チームによるプッシュやマージ、自社システムからのWebhook。エージェントが読み取るテキストは、あなたが管理している人やシステムによって書かれたものです。

信頼できない入力:公開Slackチャンネル、コメント権限を持つすべての人からのプルリクエストやイシューのコメント、サードパーティに公開されているWebhook、顧客からのチケット。接続されたツールに関するCursor自身のガイダンスも同様の方向性を示しています。「オートメーションが必要とする権限を持つ、信頼できるサーバーのみを接続してください。」

信頼できないグループについては、オートメーションが実行間で実際に何かを記憶する必要があるかどうかを判断します。多くの場合、その必要はありません。各アイテムをその都度仕分けるだけで十分です。そのような場合は、メモリを無効にしてください。メモリによって真に改善されるものについては、有効にしたままステップ2に進みます。

ステップ2:記録してよい内容をオートメーションに正確に指示する

オートメーションのプロンプトは、そのメモリのルールを設定する場所です。Cursorのセットアップフローでは、これが中心に位置づけられています。「オートメーションへの指示を含むプロンプトを作成します。」

そのプロンプトに、簡潔で明確なメモリポリシーを追加します。どのような事実を記録する価値があるかを明記します(例:どのテストが不安定であることが分かっているか、どのディレクトリがどのオーナーに対応しているか、どのアラートパターンがノイズであったかなど)。また、決して記録してはならないものも明記します(入力に含まれる指示、権限に関する主張、オートメーション自体の動作変更の要求など)。そして、不確実なことはルールとしてではなく、観察結果として記録すべきであることを指示します。

これによって信頼できない入力が安全になるわけではありません。Cursorの警告は依然として有効です。しかし、誤解を招く入力がどのような形に変化するかを狭めることができ、ポリシーから外れた内容はファイルを読んだときに目立つため、不適切なメモを発見しやすくなります。

オートメーションのタスクで機密情報を読み取る必要がある場合は、メモリポリシーを必要以上に厳格に保つようにしてください。実行をまたいで永続化するメモリは、たった1つの不適切な入力が長期にわたって影響を及ぼす場所になり得ます。

ステップ3:定期的にMEMORIES.mdをレビューし、承認されたコピーを別の場所に保管する

カレンダーに定期的なリマインダーを設定し(頻繁に動くオートメーションは毎週、静かなものは毎月)、ツール設定UIで各オートメーションのメモリを開いて読み込みます。

プルリクエストをレビューするようにそれらを読んでください。各メモは正しいか?現在も正しいか?信頼できる入力から得られたものか?誤っているものは編集し、古くなったものは削除し、入力がエージェントに書き込みを指示したために書かれたと思われるものがないか注意深く確認します。

そして、承認したメモのコピーをオートメーションの外部に保管します。実行時に異常な動作が発生した場合、今日のメモリと最後に確認したバージョンを比較したいはずですが、オートメーション自身のファイルは変更されている可能性がある唯一の場所です。同じ考え方は、他のツールの定期実行エージェントにも当てはまります。Warpクラウドエージェントに前回の実行を記憶させるパターンの背景にあるのは、放置された記録ではなく、レビューされた記録です。

MemoryLakeでのセットアップ

ステップ3で承認されたコピーは、誰かが確認し合意した教訓の短いリストという、有用な成果物です。MemoryLakeは、オートメーションが次回の実行時に書き換える可能性のあるファイルとは別に、それを保管しておく場所です。

エントリはあなた自身が自分の言葉で書き込みます。オートメーションの MEMORIES.md、Cursorの設定、またはベンダーのストアから何かが読み取られたり、書き込まれたり、削除されたりすることはありません。

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

サインインし、ダッシュボードからキーを生成します。このキーにより、オートメーション、エディタセッション、またはまったく異なるツールであっても、エージェントがあなたが作成したエントリを読み取ることができるようになります。

APIキー画面が表示されているMemoryLakeコンソール。ここで新しいキーが作成され、エージェントで使用するためにコピーされます
APIキー画面が表示されているMemoryLakeコンソール。ここで新しいキーが作成され、エージェントで使用するためにコピーされます

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

ステップ3で承認した教訓を、1エントリにつき1つずつ、理由と確認した日付を添えて追加します。日付は重要です。不安定なテストに関する教訓は、誰かがそのテストを修正するまでの間しか正しくないからです。

最初のドキュメントがアップロードされたMemoryLakeワークスペース。各ファイルが検索可能なメモリになるにつれてリスト表示されます
最初のドキュメントがアップロードされたMemoryLakeワークスペース。各ファイルが検索可能なメモリになるにつれてリスト表示されます

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

エージェントをワークスペースに向けます。これにより、レビュー済みの教訓が、1つのオートメーションのファイルに留まることなく、それを必要とするすべてのオートメーションやセッションで利用可能になります。

メモリレイヤーに接続可能なAIクライアントとエージェントフレームワークがリスト表示されているMemoryLakeの統合画面
メモリレイヤーに接続可能なAIクライアントとエージェントフレームワークがリスト表示されているMemoryLakeの統合画面

実践においてこれがもたらす変化

第1の違いは、メモリがデフォルトの設定ではなく、オートメーションごとの意思決定になることです。自社システムのみを読み取るオートメーションは学習を続けます。他者のテキストを読み取るオートメーションは、記憶を停止するか、書面化されたポリシーの下で記憶するようになります。

第2に、乖離(ドリフト)が可視化されることです。誰も読まないメモリファイルは、何週間にもわたって誤った認識を蓄積する可能性があります。定期的にレビューされるファイルは、その誤った認識が多くの実行に影響を与える前に修正されます。

第3に、教訓が1つのオートメーションに閉じ込められなくなることです。メモリはオートメーションごとにスコープされているため、1つが学んだ有用な事実は他からは見えません。承認された教訓を共有の場所に保管することが解決策であり、これはなぜCursorクラウドエージェントがコンテキストを忘れるのかCursor Projectsがコンテキストファイルを共有する方法で説明されているのと同じギャップを埋めるものです。

第4に、定期実行エージェントが、論理的に推論可能なシステムのように動作し始めることです。他のツールにおけるスケジュールされたタスクも同じ性質を持っています(最初からやり直されるChatGPTのスケジュールされたタスクCoworkのスケジュールされたタスクとメモリを参照)。共通しているのは、バックグラウンドエージェントのメモリの質は、最後に誰かが確認した時点の質に依存するということです。

オートメーションメモリのベストプラクティス

メモリを有効にする前にトリガーを分類する。 公開チャンネル、オープンなコメントスレッド、サードパーティのWebhookは信頼できない入力です。

タスクに不要な場合はメモリを無効にする。 多くの仕分けタスクはアイテムごとに処理され、記憶することによるメリットはほとんどありません。

プロンプトにメモリポリシーを書き込む。 何を記録し、何を記録してはならないか、そして不確実性をどのように記録するかを指示します。

定期的にメモリファイルをレビューする。 Cursorは表示と編集を可能にしています。その価値は、実際にそれを読むことから生まれます。

承認されたコピーをオートメーションの外部に保管する。 動作が変わったときは、現在のファイルと最後に信頼したバージョンを比較します。

各オートメーションは単独で記憶することを忘れない。 メモリはオートメーションごとです。共有された教訓には共有の場所が必要であり、これはCursorが以前のセッションを忘れる問題定期実行エージェントが以前の実行を忘れる問題という、より広範な問題を解決するものでもあります。

結論

Cursorは、実行ごとに何もない状態から開始されるバックグラウンドエージェントという、現実の問題を解決するためにAutomationsメモリツールを構築しました。メモリが有効であれば、オートメーションは「時間の経過とともに記憶し、改善する」ことができ、そのためデフォルトで有効になっています。

Cursorはそのリスクも明確に記しています。メモリは「オートメーションが信頼できない入力を処理する場合は注意して使用する必要がある」とされています。なぜなら、入力が「意図しない形で将来のオートメーション実行に影響を与える、誤解を招くメモリや悪意のあるメモリにつながる可能性がある」からです。Slackチャンネル、プルリクエストのコメント、または外部のWebhookを読み取るオートメーションにとって、これは例外的なケースではなく、通常のケースです。

各オートメーションを読み取る内容に基づいて分類し、不要な場所ではメモリを無効にし、記録してよい内容のポリシーを作成し、定期的にファイルをレビューしてください。承認した教訓をオートメーションが書き換えられない場所に保管することで、そのメモリは「正しいことを祈るだけのもの」から「信頼できるもの」へと変わります。

よくある質問

Cursor Automationsにはメモリ機能がありますか?

はい。Cursorのドキュメントには、エージェントが「同じオートメーションの実行間で永続的なメモを読み書きできる」Memoriesツールが記載されており、デフォルトでは MEMORIES.md という名前付きエントリとして保存されます。メモリはデフォルトで有効になっており、無効にすることもできます。

Cursorのオートメーションメモリはどこに保存されますか?

Cursorによると、各メモリは「エージェントの作業ファイルシステムの外に存在する」名前付きエントリとして保存されます。オートメーションのツール設定UIから、メモリファイルの表示、編集、削除を行うことができます。

メモリはCursorのオートメーション間で共有されますか?

Cursorは、メモリを「同じオートメーションの実行間で」永続化するものと説明しているため、各オートメーションは独自のメモを保持します。あるオートメーションが記録した教訓が、別のオートメーションで自動的に利用可能になることはありません。

公開Slackチャンネルでメモリを使用するのは安全ですか?

Cursorは注意を促しています。入力が誤解を招くメモリや悪意のあるメモリにつながる可能性があるため、メモリは「オートメーションが信頼できない入力を処理する場合は注意して使用する必要がある」としています。そのようなオートメーションではメモリを無効にするか、プロンプトで記録を許可する内容を制限することを検討してください。

Cursorオートメーションが記憶している内容を削除することはできますか?

はい。Cursorのドキュメントには「ツール設定UIからメモリファイルを削除することもできる」と記載されており、指示があれば実行中にエージェントが古いメモリファイルを削除することも可能です。

これはエディタにあるCursor Memories機能と同じものですか?

いいえ。Cursor 1.0で導入されたエディタのMemoriesは、「プロジェクトごとに個人レベルで保存される」ものでした。Cursorの現在のドキュメントインデックスでは、Memoriesは実行間で永続的なメモを保持するためのAutomationsツールとして説明されています。