--- id: memory title: メモリと学習 category: advanced order: 120 keywords: [メモリ, memory, MEMORY.md, 学習, Memory & Learning] --- # メモリと学習 エージェントは、ユーザーごとの **メモリ** を保持します。あなたの好み・役割・プロジェクトの文脈・参照資料を覚えておくことで、毎回ゼロから説明しなくても「あなたを理解した」状態で動けます。 ## メモリの構造 メモリは `data/users/{userId}/memory/` 配下に置かれ、2 つの要素で構成されます。 ### MEMORY.md(インデックス) エントリの一覧(description 行のリンク集)です。**タスク起動時に system prompt へ自動注入**されます(注入サイズには上限あり)。エージェントは、まず一覧で「何を覚えているか」を把握します。 ### 個別エントリ({name}.md) 1 ファイル = 1 エントリ。frontmatter(name / type / description)+ 本文の構造です。本文はインデックスには載らず、エージェントが必要に応じて `ReadUserMemory` で読み込みます。 ## メモリの 4 タイプ | type | 用途 | |---|---| | user | あなた固有の好み・役割 | | feedback | 過去のフィードバック・教訓 | | project | プロジェクト別の文脈 | | reference | 参照資料・外部情報 | ## どう使われるか エージェントは毎セッションで MEMORY.md のインデックスを参照し、関連しそうなエントリを `ReadUserMemory` で開いて作業に反映します。書き込みは `UpdateUserMemory` ツールで行われ、「これは覚えておくべき」と判断した内容を自動で記録します。 手動で書いたメモリは Reflection が動いていなくても確実に注入されるため、「いつも忘れられる」と感じる指示はメモリに 1 件書くのが確実です。 ## メモリの閲覧・編集(Settings → Memory & Learning) Settings → **メモリと学習** で管理します。2 つのパネルが縦に並びます。 ### メモリエントリ - 既存エントリの一覧(name・type バッジ・概要・本文プレビュー) - **+ 新しいエントリ** で追加。編集モーダルで以下を入力: - **名前**(新規時のみ。英数字・ハイフン・アンダースコア) - **概要**(一覧に出る 1 行説明) - **タイプ**(user / feedback / project / reference) - **本文**(Markdown またはプレーンテキスト) - 各行の **編集** / **削除** ボタンで更新 メモリは User Folder の memory/ タブからは閲覧のみで、編集はこの画面で行います(→「[User Folder](09-userfolder.md)」)。 ### Reflection タイムライン 自動学習(Reflection)の実行履歴です。各行を展開すると、推論・変更前後の差分・revert コントロールを確認できます。 - バッジ: `N mem`(メモリ変更数)/ `piece`(piece 編集あり)/ 結果(適用済み・一部適用・学習なし・却下・失敗) - **revert**: 気に入らない変更はスナップショット単位で変更前に戻せる - 下部に 30 日間のサマリ(合計実行回数・適用率・学習なし率・Tokens・Piece 編集数) ## Reflection との関係 メモリエントリは、手動だけでなく **Reflection(自動学習)** によっても追加・更新されます。タスク完了後に専用ワーカーが振り返り、メモリ更新を提案します。完全自動 apply はデフォルト OFF です。 仕組み・有効化・rejection の詳細は「[自動学習(Reflection)](18-reflection.md)」を参照してください。 ## メモリと AGENTS.md の使い分け User Folder の AGENTS.md(→「[User Folder](09-userfolder.md)」)は全文が毎回注入される固定の恒久指示、メモリはインデックスのみ注入し本文は必要時に読む構造です。 - **AGENTS.md**: 短く要約された必須ルール・トーン・出力フォーマットの好み - **メモリ**: 個別の人物・プロジェクト・経験的に得た知見(数を増やせる) ## TIP > 「いつも忘れられる」と感じたら、その情報を 1 件メモリに書いて 2〜3 回タスクを回す。手動メモリは Reflection の有無に関わらず確実に注入される。 > メモリが増えすぎてインデックスが肥大化したら、不要なエントリは削除する。注入トークンの節約になる。