コンテンツにスキップ

OpenClaw でセッションを賢く管理する方法:プライバシー保護と継続性の両立

AI エージェントを開発していると、会話のコンテキスト管理に頭を悩ませることがよくあります。「さっきの話の続き」をスマートに覚えていてほしい一方で、別のユーザーとの会話が混ざってしまうことは絶対に避けなければなりません。

特に複数のプラットフォームでエージェントを運用する場合、セッションの境界線をどこに引くかは非常に重要な問題です。OpenClaw では、これらのセッション動作を柔軟にコントロールできる仕組みが備わっています。

  • OpenClaw Gateway (セッション状態を管理するマスター)
  • 設定ファイル (~/.openclaw/openclaw.json)
  • 動作確認用のチャットクライアント (Telegram, Discord, WebChat など)
  • 有効なエージェント ID

Quick Start: 5分でできるセキュア設定

Section titled “Quick Start: 5分でできるセキュア設定”

複数のユーザーがエージェントにダイレクトメッセージ (DM) を送る可能性がある場合、デフォルト設定のままではプライバシー上のリスクがあります。まずは「Secure DM mode」を有効にして、ユーザーごとにセッションを分離しましょう。

  1. ~/.openclaw/openclaw.json を開きます。
  2. session オブジェクト内に dmScope を追加します。
  3. 設定を保存して Gateway を再起動します。
~/.openclaw/openclaw.json
{
session: {
// Secure DM mode: チャンネルと送信者ごとにコンテキストを分離します
dmScope: "per-channel-peer",
},
}

これで、ユーザー A とユーザー B の会話が混ざる心配はなくなります。

OpenClaw のセッション管理において、覚えておくべき重要なポイントがいくつかあります。

Gateway が唯一の真実 (Source of Truth)

Section titled “Gateway が唯一の真実 (Source of Truth)”

セッションの状態はすべて Gateway が所有しています。macOS アプリや WebChat などの UI クライアントは、ローカルファイルを直接読むのではなく、必ず Gateway にセッションリストやトークン数を問い合わせます。リモートモードで使用している場合、セッションデータは手元の Mac ではなく、リモートの Gateway ホスト上に保存されます。

Gateway ホスト上の以下のパスにデータが蓄積されます。

  • セッション情報: ~/.openclaw/agents/<agentId>/sessions/sessions.json
  • 会話履歴 (Transcripts): ~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl

デフォルトでは、Gateway ホストの現地時間で午前 4:00 に毎日リセットが行われます。それ以前のメッセージは「古い」とみなされ、新しいメッセージが届いたタイミングで新しいセッション ID が発行されます。また、チャット内で /new または /reset と送信することで、手動でセッションを新しくすることも可能です。

ユーザー間で会話内容が漏洩してしまう

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 経由で情報を取得してください。

エージェントの状態を確認するために、チャット内で以下のコマンドを直接送信してみてください。

  • /status: エージェントの接続状況、コンテキストの使用量、思考プロセスの表示設定などを確認できます。
  • /context list: システムプロンプトの内容や、現在読み込まれている Workspace ファイルのリストを表示します。
  • /stop: 現在の実行を強制停止し、キューに入っているフォローアップをクリアします。
  • /compact: 古いコンテキストを要約し、トークンウィンドウの空き容量を確保します。

設定の詳細や困ったことがあれば、AI Setup Assistant に相談してみてください。

OpenClaw

OpenClaw Expert

まだ解決しませんか?

このページで解決しない場合は、OpenClaw Expertに直接質問してください。