コンテンツにスキップ
このページの翻訳は LLM によって生成されています。誤りに気づいた場合は GitHub で issue を開いてお知らせください。

セッション状態と復元

Preview docs describe unreleased preview builds. Stable docs remain at /docs/.

Nagi には複数の状態管理経路があります。それぞれが異なる問題を解決します。

ケースプロセスは動き続けるレイアウトは戻る直近の画面は戻るエージェントの会話は再開する
デタッチと再アタッチはいはいはい (ライブのターミナルから)はい (プロセスが止まらないため)
サーバー再起動いいえはいペイン画面履歴が有効な場合のみエージェントネイティブのセッション復元がある場合のみ
--handoff なしのアップデート互換性のあるサーバーは動き続ける。再起動が必要なサーバーは停止/再起動が必要な場合がある再起動後は戻るペイン画面履歴が有効な場合のみエージェントネイティブのセッション復元がある場合のみ
--handoff ありのアップデート対応する稼働中サーバーではベストエフォートはいはい (ハンドオフが成功すればライブのターミナルから)はい (ハンドオフが成功すればプロセスが動き続けるため)

以下のセクションでそれぞれの経路を説明します。

通常のデタッチでは Nagi サーバーは動き続けます。ペイン、シェル、エージェント、サーバー、テスト、コマンドプロセスはそのサーバー内で動き続けます。

ctrl+b q でクライアントをデタッチします。あとで再アタッチします:

Terminal window
nagi

元のプロセスが一度も止まらないため、これが最も強力な永続化経路です。

Nagi サーバーが停止して再起動すると、元のペインのプロセスは失われています。Nagi は保存されたセッションの形を復元します: ワークスペース、タブ、ペイン、cwd、レイアウト、フォーカスです。

スナップショット復元は、動作中のシェル、サーバー、テスト、その他任意のプロセスを保存しません。より強力な復元経路が使えないペインは、保存されたディレクトリで新しいシェルとして戻ってきます。

ペイン画面履歴は、サーバーの完全な再起動後に直近のターミナル内容を復元します。復元されるのは Nagi が表示できるものであって、元のプロセスではありません。

ペイン出力にはシークレット、トークン、プロンプト、コマンド出力が含まれうるため、これはデフォルトで無効です。Settings > Experiments > pane screen history から、または次の設定で有効にします:

[experimental]
pane_history = true

有効にすると、Nagi は保存したペイン履歴を session.json の隣の session-history.json に保存します。Nagi の設定/セッションディレクトリはターミナル履歴と同じ感覚で扱ってください。

エージェントネイティブのセッション復元

Section titled “エージェントネイティブのセッション復元”

一部のエージェントは自分の会話セッションを resume できます。Nagi は、公式インテグレーションが報告したセッション参照を使って、Nagi サーバーの再起動後に対応エージェントのペインを再起動できます。

これはデフォルトで有効です。無効にするには:

[session]
resume_agents_on_restore = false

Nagi が resume するのは、現行の公式 Nagi インテグレーションを通じてネイティブセッション参照を報告したペインだけです。

クライアントがアタッチしてターミナルサイズとテーマのコンテキストを提供すると、Nagi は各ペインがフォーカスされるのを待たずに、ワークスペースとタブをまたいで復元対象のエージェントペインを resume します。

エージェントネイティブのセッション復元には、次の Nagi インテグレーションバージョン以上が必要です:

エージェント最低 Nagi インテグレーションバージョンresume コマンド
Pi2pi --session <path-or-id>
OMP3omp --resume=<path-or-id>
Claude Code6claude --resume <id>
Codex5codex resume <id>
Cursor Agent CLI1cursor-agent --resume <id>
GitHub Copilot CLI2copilot --resume=<id>
Devin CLI2devin --resume <id>
Droid2droid --resume <id>
Kimi Code CLI3kimi --session <id>
Qoder CLI2qodercli --resume <id>
OpenCode5opencode --session <id>
Kilo Code CLI1kilo --session <id>
Hermes Agent2hermes --resume <id>
MastraCode1mastracode --thread <id>

インストール済みインテグレーションのバージョンは nagi integration status で確認できます。古いインテグレーションは nagi integration install <agent> で再インストールしてください。

未対応、欠落、無効、重複、または古くなったセッション参照は、保存されたペインディレクトリで通常のシェルとして復元されます。

あるペインにエージェントネイティブのセッション復元が適用される場合、Nagi はそのペインでは保存済みペイン履歴のリプレイではなくエージェントセッションの resume を行います。

ライブハンドオフは、稼働中の Nagi サーバーを置き換える必要があるアップデートやリモートアタッチのフローのためのものです。古いサーバーにライブペインを新しいサーバーへ移すよう依頼し、サーバー交換をまたいでペインのプロセスが動き続けられるようにします。

これはスナップショット復元、ペイン履歴リプレイ、エージェントネイティブのセッション復元とは異なります。ハンドオフは現在のプロセスを生かし続けようとします。他の経路は、古いサーバーが停止した後に状態を再構築します。

ライブハンドオフは実験的機能で、オプトインです:

Terminal window
nagi update --handoff
nagi --remote workbox --handoff

素の nagi update と素の nagi --remote workbox は、デフォルトでは通常の再起動/停止フローを使います。

nagi update --handoff は継承したランタイムに残っていますが、Nagi が署名済み成果物を公開するまで自動更新チャネルは無効です。レビューしたソースを再ビルドし、セッションを再起動してください。