factsGemini CLIauto-memory

beta4 日前 · 2026-08-09

Auto Memory

概要

過去の Gemini CLI セッションをバックグラウンドで掘り起こし、恒久的なメモリの更新案と再利用可能な Agent Skills を提案する experimental な機能(活発に開発中)。候補はすべてレビューを経てから将来のセッションで使えるようになる。

仕様

位置づけ

  • セッションのトランスクリプトを走査し、セッション横断で繰り返される恒久的な事実、好み、ワークフローの制約、手順的パターンを探す
  • メモリ更新は unified diff の .patch ファイル、再利用可能な手順は SKILL.md として下書きされる
  • すべての候補はプロジェクトローカルの inbox に保持され、承認または破棄するまで適用されない
  • 明示的なメモリファイル編集を補完する位置づけ。エージェントは引き続き Markdown のメモリファイルを直接編集して明示的な指示を永続化できる

前提

  • Gemini CLI がインストール・認証済み
  • 10 件以上のユーザーメッセージを含む、アイドルなプロジェクトセッションが最低 1 つアクティブなセッション、些末なセッション、sub-agent のセッションは無視される

有効化

  • 既定で off
  • ~/.gemini/settings.json(プロジェクト単位にしたい場合はそのプロジェクトの .gemini/settings.json)に experimental.autoMemory: true を追加する
  • 抽出サービスはセッション起動時に開始するため、このフラグには Gemini CLI の再起動が必要

動作

セッション起動時のバックグラウンドタスクとして走る。UI をブロックせず、対話ターンを消費せず、ツールのプロンプトも出さない。

  1. Eligibility scan: ~/.gemini/tmp/<project>/chats/ の最近のセッションをインデックスする。対象になるのは 3 時間以上アイドルで、ユーザーメッセージが 10 件以上あるセッションのみ
  2. Lock acquisition: プロジェクトのメモリディレクトリのロックファイルで複数の CLI インスタンス間を調整し、抽出が同時に 1 つだけ走るようにする。state ファイルが処理済みセッションのバージョンを記録し、短時間に連続で CLI を起動しても履歴を繰り返し走査しないようスロットリングする
  3. Candidate extraction: バックグラウンドの抽出エージェントがセッションインデックスを見て、恒久的なメモリや繰り返しの手順を含みそうなセッションを読み、候補を下書きする。根拠が強くない限り成果物を作らないのが既定のため、多くの実行では inbox に何も出ない
  4. Safety boundaries: 候補はレビュー用 inbox に書かれる。アクティブなメモリファイル、設定、資格情報、プロジェクトの GEMINI.md を直接編集することはできない
  5. Patch validation: skill の更新パッチは提示前にパースされ dry-run される。メモリパッチはパースされ、対象が allowlist で確認され、inbox から承認したときにのみアトミックに適用される
  6. Notification: 新しい候補ができると、待ち件数を伝えるインラインメッセージが出る

レビュー(/memory inbox

ダイアログは保留中の項目を new skills / skill updates / memory updates に分けて表示する。

  • SKILL.md の全文を読んでから判断する

  • skill を user(~/.gemini/skills/)または workspace(.gemini/skills/)へ promote する

  • 不要な skill を discard する

  • 既存 skill に対する .patch 提案を apply または拒否する

  • メモリの差分をアクティブなファイルに触れる前に review する

  • private / global のメモリパッチを apply または dismiss する。private パッチはプロジェクトのメモリディレクトリ、global パッチは自分の ~/.gemini/GEMINI.md のみを対象とする

  • promote した skill は次のセッションから発見可能になり、標準の skill discovery の優先順位に従う

  • 適用したメモリパッチは元のメモリファイルを更新し、現在のセッションのメモリを再読み込みする

無効化

  • experimental.autoMemoryfalse に戻して再起動する
  • 次のセッション開始時にバックグラウンドサービスが即座に止まる
  • 既存の inbox 項目はディスクに残る。 /memory inbox で処理するか、プロジェクトのメモリディレクトリを手動で消す

データとプライバシー

  • ローカルに既に存在するセッションファイルのみを読む
  • 抽出時にモデル呼び出しを使って選ばれたローカルのトランスクリプト内容を解析する。候補が自動適用されることはないが、トランスクリプトの抜粋が設定済みモデルへ送られうる
  • 抽出エージェントは、遭遇した秘密・トークン・資格情報を redact し、大きなツール出力を逐語コピーしないよう指示されている
  • 下書きの skill とメモリパッチは、promote / apply / dismiss / discard するまでプロジェクトのメモリディレクトリに置かれ、どのセッションにも自動的には読み込まれない

設定

{
  "experimental": {
    "autoMemory": true
  }
}

制約・注意点

  • 抽出エージェントは preview の Gemini Flash モデルで動く。 抽出品質は、恒久的なパターンと一度きりの出来事を見分けるモデルの能力に依存する
  • 現在のセッションからは抽出しない。 3 時間以上アイドルなセッションのみが対象
  • プロジェクトの GEMINI.md にある project / workspace 共有の指示は自動抽出できない。 提案できるのは private なプロジェクトメモリ、global な個人メモリ、skill
  • inbox の項目はプロジェクトごとに保存される。 あるワークスペースで抽出された skill は、user スコープの skills ディレクトリへ promote するまで他のワークスペースからは見えない

関連

  • facts/gemini-cli/gemini-md.md
  • facts/gemini-cli/skills.md
  • facts/gemini-cli/configuration.md
  • facts/gemini-cli/commands.md