OpenClaw でセッションを賢く管理する方法:プライバシー保護と継続性の両立
AI エージェントを開発していると、会話のコンテキスト管理に頭を悩ませることがよくあります。「さっきの話の続き」をスマートに覚えていてほしい一方で、別のユーザーとの会話が混ざってしまうことは絶対に避けなければなりません。
特に複数のプラットフォームでエージェントを運用する場合、セッションの境界線をどこに引くかは非常に重要な問題です。OpenClaw では、これらのセッション動作を柔軟にコントロールできる仕組みが備わっています。
- OpenClaw Gateway (セッション状態を管理するマスター)
- 設定ファイル (
~/.openclaw/openclaw.json) - 動作確認用のチャットクライアント (Telegram, Discord, WebChat など)
- 有効なエージェント ID
Quick Start: 5分でできるセキュア設定
Section titled “Quick Start: 5分でできるセキュア設定”複数のユーザーがエージェントにダイレクトメッセージ (DM) を送る可能性がある場合、デフォルト設定のままではプライバシー上のリスクがあります。まずは「Secure DM mode」を有効にして、ユーザーごとにセッションを分離しましょう。
~/.openclaw/openclaw.jsonを開きます。sessionオブジェクト内にdmScopeを追加します。- 設定を保存して Gateway を再起動します。
{ session: { // Secure DM mode: チャンネルと送信者ごとにコンテキストを分離します dmScope: "per-channel-peer", },}これで、ユーザー A とユーザー B の会話が混ざる心配はなくなります。
セッション管理の仕組み
Section titled “セッション管理の仕組み”OpenClaw のセッション管理において、覚えておくべき重要なポイントがいくつかあります。
Gateway が唯一の真実 (Source of Truth)
Section titled “Gateway が唯一の真実 (Source of Truth)”セッションの状態はすべて Gateway が所有しています。macOS アプリや WebChat などの UI クライアントは、ローカルファイルを直接読むのではなく、必ず Gateway にセッションリストやトークン数を問い合わせます。リモートモードで使用している場合、セッションデータは手元の Mac ではなく、リモートの Gateway ホスト上に保存されます。
データの保存場所
Section titled “データの保存場所”Gateway ホスト上の以下のパスにデータが蓄積されます。
- セッション情報:
~/.openclaw/agents/<agentId>/sessions/sessions.json - 会話履歴 (Transcripts):
~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl
セッションのリセット
Section titled “セッションのリセット”デフォルトでは、Gateway ホストの現地時間で午前 4:00 に毎日リセットが行われます。それ以前のメッセージは「古い」とみなされ、新しいメッセージが届いたタイミングで新しいセッション ID が発行されます。また、チャット内で /new または /reset と送信することで、手動でセッションを新しくすることも可能です。
トラブルシューティング
Section titled “トラブルシューティング”ユーザー間で会話内容が漏洩してしまう
Section titled “ユーザー間で会話内容が漏洩してしまう”問題: ユーザー A がプライベートな内容を話し、その直後にユーザー B が「さっき何の話をしてた?」と聞くと、エージェントがユーザー A の内容を答えてしまう。
解決策:
これはデフォルトの dmScope: "main" が原因です。複数のユーザーとやり取りする場合は、必ず dmScope を per-channel-peer または per-account-channel-peer に変更してください。
UI に表示されるトークン数が実際の履歴と合わない
Section titled “UI に表示されるトークン数が実際の履歴と合わない”問題: JSONL ファイルを自分で計算した結果と、画面上の表示が異なる。
解決策:
UI に表示されるトークン数は Gateway が管理する inputTokens や outputTokens フィールドの値をそのまま表示しています。クライアント側で JSONL を解析して再計算することはありません。最新の状態を確認するには、Gateway 経由で情報を取得してください。
便利なコマンド
Section titled “便利なコマンド”エージェントの状態を確認するために、チャット内で以下のコマンドを直接送信してみてください。
/status: エージェントの接続状況、コンテキストの使用量、思考プロセスの表示設定などを確認できます。/context list: システムプロンプトの内容や、現在読み込まれている Workspace ファイルのリストを表示します。/stop: 現在の実行を強制停止し、キューに入っているフォローアップをクリアします。/compact: 古いコンテキストを要約し、トークンウィンドウの空き容量を確保します。
設定の詳細や困ったことがあれば、AI Setup Assistant に相談してみてください。
次のステップ
Section titled “次のステップ”- Security ガイド: セキュリティ監査コマンドの使い方
- Session Pruning について: コンテキストの自動整理の仕組み
- Memory と Compaction: 長期記憶と要約の設定
- Send Policy の設定: セッションタイプごとの配信制限
OpenClaw Expert
まだ解決しませんか?
このページで解決しない場合は、OpenClaw Expertに直接質問してください。