Memories は、会話をまたいでコンテキストを共有し、保持するためのシステムです。
Windsurf には、これを実現するための仕組みが 2 つあります。Cascade によって自動的に生成される メモリ と、ユーザーがグローバル、ワークスペース、またはシステムレベルで手動で定義する ルール です。
メモリ、ルール、Workflows、それとも Skills?
| Feature | 何をするものか | どのように有効化されるか | いつ使うか |
|---|---|---|---|
| Rules | Cascade に どう振る舞うか を伝える (例: 「npm ではなく bun を使う」) | always_on、glob、model_decision、または manual (以下を参照) | コーディング規約、スタイルガイド、プロジェクト上の制約 |
| AGENTS.md | 設定不要で、配置場所に応じて適用されるルール | 自動 — ルート = 常時有効、サブディレクトリ = glob | frontmatter なしでディレクトリ固有の規約を適用したい場合 |
| Workflows | 繰り返し使う複数ステップのタスク向けプロンプトテンプレート | /[workflow-name] スラッシュコマンドによる 手動のみ | デプロイ、PR レビュー、リリースチェックリスト |
| Skills | 補助ファイル (スクリプト、テンプレート) と一緒にまとめられた複数ステップの手順 | モデルが動的に呼び出す、または @mention | Cascade が参照ファイルを必要とする複雑なタスク — ここに注力してください |
| Memories | 会話中に Cascade が自動生成するコンテキスト | 関連する場合に自動取得 | Cascade に単発の情報を覚えさせたい場合。長く使う知識には、ルール または AGENTS.md を推奨 |
メモリの管理方法
Customizations アイコン、または右下隅の「Windsurf - Settings」からいつでもアクセスして設定できます。既存のメモリを編集するには、対象のメモリを開いてから Edit ボタンをクリックします。
Memories
~/.codeium/windsurf/memories/ にローカル保存されます。関連があると判断したときに Cascade がそれらを取得します。あるワークスペースで生成されたメモリは、別のワークスペースでは利用できず、リポジトリにもコミットされません。
自動生成されたメモリは、お使いのマシン上にのみ保存されます。Cascade に何かを永続的に記憶させ、チームと共有したい場合は、代わりに
.windsurf/rules/ 内の ルール またはリポジトリの AGENTS.md に書き込むよう Cascade に依頼してください。Rules
| Scope | Location | Notes |
|---|---|---|
| グローバル | ~/.codeium/windsurf/memories/global_rules.md | 単一ファイルで、すべてのワークスペースに適用されます。常時有効です。6,000 文字までに制限されています。 |
| ワークスペース | .windsurf/rules/*.md | ルールごとに 1 ファイルで、それぞれに独自の有効化モードがあります。各ファイルは 12,000 文字までに制限されています。 |
| AGENTS.md | ワークスペース内の任意のディレクトリ | 同じルールエンジンで処理されます — ルートレベル = 常時有効、サブディレクトリ = そのディレクトリに対する auto-glob。 |
| System (Enterprise) | OS 固有 (例: /etc/windsurf/rules/) | IT によって展開され、エンドユーザーは読み取り専用です。 |
ルールの検出
- 現在のワークスペースとサブディレクトリ: 現在のワークスペースおよびそのサブディレクトリ内のすべての
.windsurf/rulesディレクトリ - Git リポジトリ構造: Git リポジトリの場合、Windsurf は親ディレクトリ内のルールを見つけるために Git のルートディレクトリまでさかのぼって検索します
- 複数ワークスペースのサポート: 同一ワークスペースで複数フォルダを開いている場合、ルールは重複が排除され、最短の相対パスで表示されます
ルールの保存場所
- 現在のワークスペースディレクトリ内の
.windsurf/rules - ワークスペース内の任意のサブディレクトリにある
.windsurf/rules - 親ディレクトリ (git リポジトリでは git ルートまで) にある
.windsurf/rules
.windsurf/rules ディレクトリに保存されます。
ルールを使い始めるには、Cascade の右上のスライダーメニューで Customizations アイコンをクリックし、Rules パネルに移動します。ここで、+ Global または + Workspace ボタンをクリックして、それぞれグローバルまたはワークスペースレベルで新しいルールを作成できます。
ワークスペースのルールファイルは各 12,000 文字までに制限されています。グローバルルールファイルは 6,000 文字までに制限されています。
有効化モード
trigger フィールドで有効化モードを宣言します。これにより、ルールの内容が いつ Cascade に渡されるか、また コンテキストウィンドウをどれだけ消費するか が決まります:
| モード | trigger: の値 | Cascade に渡される仕組み | コンテキストコスト |
|---|---|---|---|
| 常時有効 | always_on | ルールの内容全体が、すべてのメッセージでシステムプロンプトに含まれます。 | すべてのメッセージ |
| モデル判断 | model_decision | システムプロンプトには description のみが表示されます。Cascade は、その説明が関連すると判断した場合にルールファイル全体を読み込みます。 | 説明は常時、全文は必要時のみ |
| Glob | glob | Cascade が globs パターンに一致するファイル (例: *.js、src/**/*.ts) を読み取るか編集するときに、ルールが適用されます。 | 一致するファイルに触れた場合のみ |
| 手動 | manual | ルールは システムプロンプトに含まれません。Cascade の入力ボックスで @rule-name と入力して有効化します。 | @ でメンションされた場合のみ |
グローバルルールファイル (
global_rules.md) とルートレベルの AGENTS.md ファイルではフロントマターは使用されません。これらは常時有効です。ベストプラクティス
- ルールはシンプル・簡潔・具体的に保ちましょう。長すぎたり曖昧だと、Cascade が混乱するおそれがあります。
- 一般的なルール (例: “write good code”) を追加する必要はありません。これらはすでに Cascade の学習データに組み込まれています。
- ルールは箇条書き、番号付きリスト、Markdown を用いて記述しましょう。長文の段落よりも Cascade が理解・遵守しやすくなります。例えば:
- XML タグは、類似するルールを伝え、まとめて整理するための効果的な手段になり得ます。例えば:
システムレベルのルール (Enterprise)
.md ファイル) を、お使いのオペレーティングシステムごとの所定のディレクトリに配置してください。システムはこれらのディレクトリから、すべての .md ファイルを自動的に読み込みます。
システムレベルのルールの仕組み
重要: システムレベルのルールは、IT チームやセキュリティチームによって管理される必要があります。組織のポリシーに従って、社内チームがデプロイ、更新、およびコンプライアンス対応を行うようにしてください。そのための手段として、Mobile Device Management (MDM) や構成管理 (Configuration Management) などの標準的なツールやワークフローを利用できます。