短い答え
Cursorが以前のセッションを忘れるのは、新しいチャットが新しいコンテキストウィンドウから始まり、エージェントにはデフォルトで持続的なセッション間の記憶がないからです。.cursorrulesファイルとノートパッドは残りますが、過去のチャットのやり取り — 決定、推論、中途半端な作業 — は残りません。修正方法は、エージェントが新しいセッションごとに読み取れるプロジェクト記憶レイヤーです。
なぜCursorは以前のセッションを忘れるのか
Cursorはチャット履歴をローカルに保存しますが、ストレージはリコールとは異なります。忘却を引き起こす3つの設計選択があります:
1. エージェントにはセッション間の記憶がありません。 新しいComposerまたはChatセッションを開くと、Cursorは.cursorrules、開いているファイル、現在のプロンプトを読み込みます。昨日のチャットのメッセージ履歴は読み込まれません。エージェントはあなたが何を話したかを見ることができません。
2. コンテキストウィンドウは毎回リセットされます。 Cursor 2.xは、選択したモデルに応じて200Kから1Mトークンのウィンドウで動作しますが、そのウィンドウはセッションごとです。新しいチャットを始めると、すべてがリセットされます。長いセッションは上限に近づくと要約されるため、セッション中でも以前の推論が1行のメモに圧縮されます。
3. 古いチャットはリストアイテムであり、記憶ではありません。 サイドバーをスクロールして以前のチャットを再オープンすることはできますが、エージェントはできません。エージェントが過去のセッションを取得または検索するためのAPIはありません。
結果として、あなたの.cursorrulesファイルは残り、コードは残りますが、あなたの決定は消えます。
Cursorが以前のセッションを忘れたときに失うもの
新しいチャットは再調整の時間を必要とし、その損失はスプリント全体にわたって累積します:
- 推論が消えます。 「キューのボリュームがそれを正当化しないため、今はRedisをスキップすることに決めました」 — そのスレッドは消えました。明日のエージェントは再び喜んでRedisを提案します。
- 中途半端な作業が再試行されます。 昨日のチャットでエージェントが書き始めた関数は、あなたが説明したコーナーケースを含め、最初から再説明しなければなりません。
- あなたは常に自分を繰り返します。 同じアーキテクチャの注意点、同じ命名規則、同じ「いいえ、私たちはPrismaではなくDrizzleを使用します」 — 何度も何度も貼り付けられます。
これはワークフロープロブレムではありません。これは記憶アーキテクチャの問題です。
Cursorの組み込みワークアラウンド(それぞれの短所)
Cursorは部分的に役立つ3つの機能を提供しています。どれも本当のセッション間の記憶を提供するものではありません。
`.cursorrules`と`.cursor/rules/`ディレクトリは、すべてのチャットに読み込まれるMarkdownルールを書くことを可能にします。これらは安定した規約(「Tailwindを使用し、インラインスタイルは使用しない」)には最適ですが、動的なコンテキスト(「昨日、auth.tsを3つのファイルにリファクタリングすることに決めました」)には無用です。ルールは静的です。セッションはそうではありません。
ノートパッドは、チャットに@できる持続的なテキストブロックです。セッションをまたいで生き残りますが、手動で書き込みと更新を行う必要があります。ノートパッドは仕様を記載するのに最適ですが、エージェントがそれを通じて推論した記録ではありません。
Cursor Memories(Cursor 2.xで展開)は、エージェントがチャット間であなたについての短いメモを保存する機能です。アカウントレベルで、制限があり、要約されます — プロジェクト記憶ストアよりもChatGPTのアカウント全体の記憶に近いです。「ユーザーはTypeScriptを好む」と覚えますが、先週のセッションで決定したAPI契約は覚えません。
公式のCursor MCPドキュメントを読んで、エディタの拡張性がどのように機能するかを確認できます。
静的なルールには、ネイティブが適しています。セッションをまたぐプロジェクト記憶には、短所があります。
Cursorの組み込み記憶が不足している点
より深刻な問題は、セッション記憶がCursor内だけでは生きられないことです。私たちが話すほとんどの開発者は、Cursorを迅速な反復のために使用し、Claude Codeを長期的なエージェントの実行に使用し、ChatGPTをデザインディスカッションに使用します。それぞれのツールは独自の孤立した履歴を保持します。どれも共有しません。
したがって、「昨日のセッション」が実際にはCursorとClaude Codeに分かれていた場合、どちらのツールにもそれを再構築するネイティブ機能はありません。プロジェクトが作業の単位であり、記憶はプロジェクトに従う必要があります。
MemoryLakeがCursorの以前のセッションを忘れる問題を解決する方法
MemoryLakeは、MCPを介してCursorに接続するクロスモデルの記憶レイヤーです。エディタに昨日を記憶させるのではなく、プロジェクトに独自の記憶ストアを与え、Cursorが新しいチャットの開始時にそれを読み取ります。
- プロジェクトごとのセッション記憶。 過去のすべてのCursorチャットからの会話、決定、推論がプロジェクトに対して保存されます。新しいチャットが開くと、エージェントは先週の決定をすでに知っています。
- 生のプロンプトよりも10,000倍のコンテキスト。 MemoryLakeの取得エンジンは、数十億のトークンのプロジェクト記憶から読み取り、ターンごとに関連するものだけを表示します。コンテキストの上限に達することはなく、昨日を再度貼り付ける必要もありません。
- ツール間の連続性。 同じプロジェクト記憶がClaude Code、Windsurf、ChatGPT、Claude Desktop、およびMCPまたはRESTに対応する任意のツールで機能します。プロジェクトを別のエディタに渡すと、コンテキストがあなたに従います。
MemoryLakeはLoCoMoの長いコンテキストベンチマークで94.03%を記録しました — 2026年時点での最高の公開結果で、ミリ秒単位の取得とAES-256のエンドツーエンド暗号化を実現しています。
MemoryLakeをCursorに接続する3つのステップ
- プロジェクトを作成し、コンテキストを読み込む。 MemoryLakeにサインインし、プロジェクト管理を開き、「プロジェクトを作成」をクリックして、リポジトリにちなんだ名前を付けます(例:「acme-app — Cursorセッション」)。既存の仕様、ADR、および過去のチャットのトランスクリプトをドキュメントドライブを通じてアップロードします(PDF、Markdown、Word、Excel、画像すべて対応)、またはメモタブにスタンディングコンテキストを貼り付けます。
- MCPサーバーエンドポイントを生成する。 プロジェクト内のMCPサーバータブを開き、「MCPサーバーを追加」をクリックし、「Cursor統合」と名付けて「生成」をクリックします。MemoryLakeはAPIキーID、シークレット、およびエンドポイントURLを返します。シークレットは一度だけ表示されるので、すぐにコピーしてください。
- サーバーをCursorのMCP設定に追加する。 プロジェクトルートにある
.cursor/mcp.jsonを開くか作成します(またはグローバルアクセス用に~/.cursor/mcp.json)。mcpServersの下にエンドポイントURLとBearerトークンをenvブロックに追加してmemorylakeエントリを追加します。Cursorを再起動します。エージェントは新しいセッションの開始時にプロジェクト記憶を読み込むために呼び出すことができるmemorylakeツールを持つようになります。