OpenClawSkills
GitHub
Feature • TutorialHeader.readTime

セッションとメモリ

OpenClaw があなたをどう記憶するか。永続コンテキスト、分離、日次メモリファイル。

セッションは OpenClaw における会話管理の基本単位です。会話ごとのコンテキスト/状態/分離を維持します。セッションを理解すると、マルチエージェントのルーティング設定や複雑なワークフロー管理がやりやすくなります。

Tutorial.step

セッションの種類

メインセッション

メインセッションは DM(ダイレクトメッセージ)の既定セッションです。既定では次のとおりです:

  • すべての DM は共有された 1 つのメインセッションに集約される
  • DM 間でコンテキストが共有される
  • ツールはホスト上でフルアクセスで実行される(信頼できる利用を想定)
  • 個人利用で「コンテキストを統一したい」場合に最適

グループセッション

各グループチャットには分離された専用セッションが割り当てられます:

  • 他のグループや DM とはコンテキストが分離される
  • Docker サンドボックス内で実行するよう設定できる
  • メンションによる起動をサポート
  • グループごとに会話履歴を保持する

隔離セッション

次の用途向けに隔離セッションを作成できます:

  • 特定のルーティング要件
  • セキュリティ分離
  • テスト/開発
  • マルチエージェント構成
Tutorial.step

セッションの機能

起動モード

セッション内でエージェントがいつ返信するかを制御します:

  • always - すべてのメッセージに返信する
  • mention - メンションされたときのみ返信する(グループの既定)
  • manual - 明示的に起動したときのみ返信する

キューモード

同時リクエストをセッションがどう扱うか:

  • sequential - メッセージを 1 件ずつ順に処理する
  • parallel - 複数のリクエストを同時に処理する
  • priority - 優先度に基づいて処理する

コンテキスト管理

セッションは自動的に次を行います:

  • 関連するコンテキストとメモリを読み込む
  • 会話履歴を維持する
  • 必要に応じて古いコンテキストを間引く
  • 会話に基づいてメモリを更新する
Tutorial.step

マルチエージェントのルーティング

OpenClaw はさまざまな条件でメッセージを別エージェントへルーティングできます:

チャンネル単位のルーティング

チャンネルごとに別のエージェントへ振り分けます:

Routing via Bindings
{
  "agents": {
    "list": [
      { "id": "whatsapp-agent", "workspace": "~/.openclaw/workspace-whatsapp" },
      { "id": "telegram-agent", "workspace": "~/.openclaw/workspace-telegram" }
    ]
  },
  "bindings": [
    { "match": { "channel": "whatsapp" }, "agentId": "whatsapp-agent" },
    { "match": { "channel": "telegram" }, "agentId": "telegram-agent" }
  ]
}

相手(Peer)単位のルーティング

特定の連絡先を専用エージェントへ振り分けます:

Peer Routing via Bindings
{
  "bindings": [
    { 
      "match": { 
        "channel": "whatsapp",
        "peer": { "kind": "dm", "id": "+1234567890" }
      }, 
      "agentId": "work-agent" 
    }
  ]
}

グループ単位のルーティング

グループごとに専用のエージェントワークスペースを持てます:

  • グループごとにコンテキストを分離
  • グループごとに異なるスキル/ツールを適用
  • メモリと設定を分離

セッション分離

セッション分離はセキュリティとコンテキスト分割を提供します:

  • ワークスペース分離 - エージェントごとに専用ワークスペースを持つ
  • メモリ分離 - エージェントごとに別のメモリファイルを持つ
  • ツール分離 - セッションごとに異なるツールポリシーを適用できる
  • サンドボックス分離 - グループを Docker コンテナ内で実行できる
Tutorial.step

セッション用ツール

OpenClaw はセッション管理のためのツールを提供します:

  • ''sessions_list'' - アクティブなセッション一覧
  • ''sessions_history'' - セッションの会話履歴を表示
  • ''sessions_send'' - 特定セッションへメッセージ送信
  • ''sessions_spawn'' - 新しい隔離セッションを作成

これらのツールにより、エージェントは他セッションの管理や通信ができます。

Tutorial.step

セッション設定

SessionsPage.config.intro

Session Config
{
  "session": {
    "scope": "per-sender",
    "reset": {
      "mode": "daily",
      "atHour": 4
    }
  },
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main"
      }
    }
  }
}
Tutorial.step

セッション圧縮(Compaction)

セッションはトークン使用量を管理するため、コンテキストを自動的に圧縮します:

  • ✂️
    自動プルーニング上限に達すると古いコンテキストを削除します。
  • 📝
    メモリ要約重要な情報を要約して残します。
  • ⚖️
    トークン管理モデルのコンテキスト上限内に収まるようにします。

これにより、重要なコンテキストを保ちつつセッションを効率的に維持できます。