
【最新版】OpenClawのSession Toolsとは?初心者向けにやさしく解説
2026年3月18日
この記事の要点(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などで“送れない”ルールを先に作ると安全
参考
関連記事

AIエージェントのメモリスタックとは?2026年に重要度が上がる理由をやさしく解説
2026年4月8日
OpenClaw vs Hermes vs Claude、創業者はどれを選ぶべき?2026年版の実務比較
2026年4月8日