OpenClawのSession Tools(セッション操作ツール)をイメージする図

【最新版】OpenClawのSession Toolsとは?初心者向けにやさしく解説

この記事の要点(TL;DR)

  • Session Toolsとは: OpenClawが「他の会話(セッション)を一覧・参照・送信・起動」するための、小さくて安全寄りなツールセットです。
  • できることは4つ: sessions_list(一覧)/ sessions_history(履歴)/ sessions_send(別セッションへ送る)/ sessions_spawn(サブエージェント起動)。
  • 初心者のつまずき所: sessionKey の指定。迷ったらまずsessions_listで候補を出して、そこから選ぶのが安全です。

次に聞くべき質問3つ

  • 「別セッションへ送る」は、何のため?(担当者への引き継ぎ/自動化の分業/ログ調査 など)
  • サブエージェントは「一発実行(run)」と「継続セッション(session)」どっちが必要?
  • 安全のために「送信を禁止する(sendPolicy)」ルールを入れる?(例:Discordのグループは送信禁止)

Session Toolsって何?(まずイメージ)

Session Toolsは、OpenClawの中でAIが「いま会話している場所」だけでなく、別の会話(セッション)にも触れるための道具です。

ここはこういう意味:
普通のチャット運用だと「この会話の続き」だけで完結しがちですが、運用が進むと「別の部屋(別チャンネル)に結果を投げたい」「過去ログを調べたい」「別働隊に調査させたい」が出てきます。 それを事故りにくい形で実現するのがSession Toolsです。

イメージ:同じ会社の中で、部署(セッション)をまたいで“連絡・参照・依頼”ができる内線電話+社内Wiki+作業依頼票みたいなものです。

4つのツール(何ができる?)

1)sessions_list:セッション一覧を見る

まずはこれ。どんなセッションがあるかを一覧で出します。
迷ったら最初に sessions_listが鉄則です。

// 例:直近動いたセッションを最大20件
sessions_list({ limit: 20, activeMinutes: 60 })

ここはこういう意味:
messageLimit を増やすと「最後の数メッセージ」も一緒に見れますが、まずは0〜少なめでOKです(情報量が増えるほど迷いがち)。

2)sessions_history:特定セッションの履歴を見る

セッションのログ(会話履歴)を取り出します。ツール実行結果(toolResult)を含めるかどうかも選べます。

// 例:特定セッションの直近30件を取得(ツール結果は除外)
sessions_history({ sessionKey: "main", limit: 30 })

イメージ:その部屋の議事録を開く感じです。

3)sessions_send:別セッションへメッセージを送る

いまの会話から、別のセッションに向けてメッセージを投げられます。

// 例:別セッションに依頼(待ち時間つき)
sessions_send({
  sessionKey: "agent:main:discord:group:1234567890",
  message: "このスレの要点を3行でまとめてください",
  timeoutSeconds: 20,
})

ここはこういう意味:
timeoutSeconds を0にすると「投げて終わり(fire-and-forget)」になり、待たずに返ってきます。 一方で待つ場合は、時間切れ(timeout)もあり得るので「すぐ必要か?」で使い分けます。

4)sessions_spawn:サブエージェントを起動する

別の“作業担当(サブエージェント)”を隔離セッションで起動し、結果を返してもらうための仕組みです。

// 例:調査タスクを別働隊に投げる
sessions_spawn({
  task: "OpenClawのセッションキーの種類を初心者向けに要約して",
  label: "session-tools-research",
})

イメージ:自分は会議を続けつつ、別の人に資料調査を依頼する感じです。

一番大事:sessionKey(セッションの住所)

Session Toolsは「どのセッションに対して操作するか」を sessionKey で指定します。 これが分かると、扱いが一気に楽になります。

main はいつも「main」

OpenClawでは、直接チャットの“本流”は常に main という固定キーで扱われます。

sessionKey: "main"

グループ・チャンネル・Cronなどは「種類つきのキー」

一方で、Discordの特定チャンネルや、Cron(定期実行)、フック、ノードなどは、だいたい次のような“住所”になります。

  • グループ: agent:<agentId>:<channel>:group:<id>
  • Cron: cron:<jobId>
  • Hook: hook:<uuid>

ここはこういう意味:
「どの入口から来た会話か(Discord/Slackなど)」と「どの部屋か(グループ/DMなど)」がキーに埋め込まれていて、取り違えにくくなっています。

安全の考え方(なぜ“硬いツールセット”なの?)

ドキュメントでは、Session Toolsは小さくて、悪用しにくい(hard-to-misuse)設計を目標にしている、と説明されています。

ここはこういう意味:
「セッションを自由に触れる」機能は便利ですが、同時に“誤送信”や“別の会話を覗く”リスクが出ます。 なので、できることを厳選し、さらに設定(ポリシー)で送信をブロックできるようにしています。

sendPolicy(送信の可否ルール)

たとえば「Discordのグループ宛ては自動送信禁止」などのルールを設定できます。

// イメージ:Discordのgroup宛はdeny(設定例)
{
  session: {
    sendPolicy: {
      rules: [
        { match: { channel: "discord", chatType: "group" }, action: "deny" },
      ],
      default: "allow",
    },
  },
}

イメージ:「社外グループには勝手にメール送るな」みたいな社内ルールです。

初心者向け:よくあるつまずき

1)sessionKeyが分からない

まず sessions_list を使い、一覧からキーを拾うのが最短です。 いきなり手打ちしないほうが安全です。

2)履歴にツール結果が出てこない

sessions_history はデフォルトでツール結果(toolResult)を隠します。 必要なら includeTools: true を指定します。

3)サブエージェントが“全部の権限”を持っている気がする

サブエージェントは便利ですが、運用では「何をさせるか」「どこまでツールを許すか」を先に決めるのがコツです。 最初は調査・要約・下書きのような低リスク作業に限定すると安定します。

まとめ

  • Session Toolsは、セッションをまたいで「一覧・履歴・送信・サブエージェント起動」をするためのツールセット
  • 最初は sessions_list → 必要なら sessions_history の順で触ると迷いにくい
  • 誤送信が怖いなら、sendPolicyなどで“送れない”ルールを先に作ると安全

参考

BizClaw 導入支援

OpenClaw の構築を
まるごと代行します

Mac mini のセットアップから Slack・iMessage 連携まで、届いた日から使える状態でお届けします。

サービスを見る

関連記事

Read article
AIエージェントのメモリスタックとは?2026年に重要度が上がる理由をやさしく解説

AIエージェントのメモリスタックとは?2026年に重要度が上がる理由をやさしく解説

Read article
OpenClaw vs Hermes vs Claude、創業者はどれを選ぶべき?2026年版の実務比較

OpenClaw vs Hermes vs Claude、創業者はどれを選ぶべき?2026年版の実務比較

Read article
X公式MCPサーバーとは?AIエージェント運用で何が変わるのかを実務目線で解説

X公式MCPサーバーとは?AIエージェント運用で何が変わるのかを実務目線で解説