Tools

思考レベル

機能

  • 任意の受信本文内のインラインディレクティブ: /t <level>/think:<level>、または /thinking <level>
  • レベル(エイリアス): off | minimal | low | medium | high | xhigh | adaptive | max
    • minimal → "think"
    • low → "think hard"
    • medium → "think harder"
    • high → "ultrathink"(最大バジェット)
    • xhigh → "ultrathink+"(GPT-5.2+ と Codex モデル、さらに Anthropic Claude Opus 4.7 effort)
    • adaptive → プロバイダー管理の適応的思考(Anthropic/Bedrock 上の Claude 4.6、Anthropic Claude Opus 4.7、Google Gemini の動的思考でサポート)
    • max → プロバイダー最大推論(Anthropic Claude Opus 4.7。Ollama はこれをネイティブの最高 think effort にマップ)
    • x-highx_highextra-highextra highextra_highxhigh にマップされます。
    • highesthigh にマップされます。
  • プロバイダーメモ:
    • 思考メニューとピッカーはプロバイダープロファイル駆動です。Provider plugins は、バイナリの on などのラベルを含め、選択されたモデルの正確なレベルセットを宣言します。
    • adaptivexhighmax は、それらをサポートするプロバイダー/モデルプロファイルでのみ提示されます。サポートされていないレベルの型付きディレクティブは、そのモデルの有効な選択肢とともに拒否されます。
    • 既存の保存済みの非サポートレベルは、プロバイダープロファイルのランクで再マップされます。adaptive は非適応モデルでは medium にフォールバックし、xhighmax は選択されたモデルでサポートされる最大の非 off レベルにフォールバックします。
    • Anthropic Claude 4.6 モデルは、明示的な思考レベルが設定されていない場合、デフォルトで adaptive になります。
    • Anthropic Claude Opus 4.7 は適応的思考をデフォルトにしません。その API effort のデフォルトは、思考レベルを明示的に設定しない限り、引き続きプロバイダー所有です。
    • Anthropic Claude Opus 4.7 は /think xhigh を適応的思考と output_config.effort: "xhigh" にマップします。これは、/think が思考ディレクティブであり、xhigh が Opus 4.7 の effort 設定であるためです。
    • Anthropic Claude Opus 4.7 は /think max も公開します。これは同じプロバイダー所有の最大 effort パスにマップされます。
    • 直接 DeepSeek V4 モデルは /think xhigh|max を公開します。どちらも DeepSeek の reasoning_effort: "max" にマップされ、低い非 off レベルは high にマップされます。
    • OpenRouter 経由の DeepSeek V4 モデルは /think xhigh を公開し、OpenRouter がサポートする reasoning_effort 値を送信します。保存済みの max オーバーライドは xhigh にフォールバックします。
    • Ollama の思考対応モデルは /think low|medium|high|max を公開します。max はネイティブの think: "high" にマップされます。Ollama のネイティブ API は lowmediumhigh の effort 文字列を受け付けるためです。
    • OpenAI GPT モデルは、モデル固有の Responses API effort サポートを通じて /think をマップします。/think off は、ターゲットモデルがサポートする場合にのみ reasoning.effort: "none" を送信します。それ以外の場合、OpenClaw はサポートされない値を送るのではなく、無効化された推論ペイロードを省略します。
    • カスタム OpenAI 互換カタログエントリは、models.providers.<provider>.models[].compat.supportedReasoningEfforts"xhigh" を含めることで /think xhigh を有効にできます。これは送信時の OpenAI 推論 effort ペイロードをマップするものと同じ compat メタデータを使うため、メニュー、セッション検証、エージェント CLI、llm-task がトランスポート動作と一致します。
    • 古い設定済み OpenRouter Hunter Alpha 参照は、プロキシ推論注入をスキップします。その廃止されたルートは、推論フィールド経由で最終回答テキストを返す可能性があったためです。
    • Google Gemini は /think adaptive を Gemini のプロバイダー所有の動的思考にマップします。Gemini 3 リクエストは固定の thinkingLevel を省略し、Gemini 2.5 リクエストは thinkingBudget: -1 を送信します。固定レベルは引き続き、そのモデルファミリーに最も近い Gemini の thinkingLevel またはバジェットにマップされます。
    • Anthropic 互換ストリーミングパス上の MiniMax(minimax/*)は、モデルパラメーターまたはリクエストパラメーターで思考を明示的に設定しない限り、デフォルトで thinking: { type: "disabled" } になります。これにより、MiniMax の非ネイティブ Anthropic ストリーム形式から reasoning_content デルタが漏れるのを避けます。
    • Z.AIzai/*)はバイナリ思考(on/off)のみをサポートします。任意の非 off レベルは on として扱われます(low にマップ)。
    • Moonshot(moonshot/*)は /think offthinking: { type: "disabled" } に、任意の非 off レベルを thinking: { type: "enabled" } にマップします。思考が有効な場合、Moonshot は tool_choiceauto|none のみを受け付けます。OpenClaw は互換性のない値を auto に正規化します。

解決順序

  1. メッセージ上のインラインディレクティブ(そのメッセージにのみ適用)。
  2. セッションオーバーライド(ディレクティブのみのメッセージを送信して設定)。
  3. エージェントごとのデフォルト(設定内の agents.list[].thinkingDefault)。
  4. グローバルデフォルト(設定内の agents.defaults.thinkingDefault)。
  5. フォールバック: 利用可能な場合はプロバイダー宣言のデフォルト。それ以外の場合、推論対応モデルは medium またはそのモデルで最も近いサポート済みの非 off レベルに解決され、非推論モデルは off のままです。

セッションデフォルトの設定

  • ディレクティブのみのメッセージを送信します(空白は許可)。例: /think:medium または /t high
  • これは現在のセッションに固定されます(デフォルトでは送信者ごと)。/think:off またはセッションアイドルリセットでクリアされます。
  • 確認返信が送信されます(Thinking level set to high. / Thinking disabled.)。レベルが無効な場合(例: /thinking big)、コマンドはヒントとともに拒否され、セッション状態は変更されません。
  • 現在の思考レベルを確認するには、引数なしで /think(または /think:)を送信します。

エージェントごとの適用

  • 組み込み Pi: 解決されたレベルはインプロセス Pi エージェントランタイムに渡されます。
  • Claude CLI バックエンド: claude-cli を使用している場合、非 off レベルは --effort として Claude Code に渡されます。CLI バックエンドを参照してください。

高速モード(/fast)

  • レベル: on|off
  • ディレクティブのみのメッセージはセッションの高速モードオーバーライドを切り替え、Fast mode enabled. / Fast mode disabled. と返信します。
  • 現在有効な高速モード状態を確認するには、モードなしで /fast(または /fast status)を送信します。
  • OpenClaw は高速モードを次の順序で解決します:
    1. インライン/ディレクティブのみの /fast on|off
    2. セッションオーバーライド
    3. エージェントごとのデフォルト(agents.list[].fastModeDefault
    4. モデルごとの設定: agents.defaults.models["<provider>/<model>"].params.fastMode
    5. フォールバック: off
  • openai/* では、高速モードはサポートされる Responses リクエストで service_tier=priority を送信することで OpenAI の優先処理にマップされます。
  • openai-codex/* では、高速モードは Codex Responses で同じ service_tier=priority フラグを送信します。OpenClaw は両方の認証パスで共有される 1 つの /fast トグルを維持します。
  • OAuth 認証済みで api.anthropic.com に送信されるトラフィックを含む、直接公開の anthropic/* リクエストでは、高速モードは Anthropic サービスティアにマップされます。/fast onservice_tier=auto を設定し、/fast offservice_tier=standard_only を設定します。
  • Anthropic 互換パス上の minimax/* では、/fast on(または params.fastMode: true)は MiniMax-M2.7MiniMax-M2.7-highspeed に書き換えます。
  • 明示的な Anthropic の serviceTier / service_tier モデルパラメーターは、両方が設定されている場合に高速モードのデフォルトを上書きします。OpenClaw は引き続き、非 Anthropic プロキシベース URL では Anthropic サービスティア注入をスキップします。
  • /status は高速モードが有効な場合にのみ Fast を表示します。

詳細ディレクティブ(/verbose または /v)

  • レベル: on(最小) | full | off(デフォルト)。
  • ディレクティブのみのメッセージはセッション詳細を切り替え、Verbose logging enabled. / Verbose logging disabled. と返信します。無効なレベルは状態を変更せずにヒントを返します。
  • /verbose off は明示的なセッションオーバーライドを保存します。Sessions UI で inherit を選択してクリアします。
  • インラインディレクティブはそのメッセージにのみ影響します。それ以外の場合はセッション/グローバルデフォルトが適用されます。
  • 現在の詳細レベルを確認するには、引数なしで /verbose(または /verbose:)を送信します。
  • 詳細がオンの場合、構造化ツール結果を発行するエージェント(Pi、その他の JSON エージェント)は、各ツール呼び出しを独自のメタデータのみメッセージとして返し、利用可能な場合は <emoji> <tool-name>: <arg> が先頭に付きます。これらのツール要約は、各ツールが開始されるとすぐに送信されます(別々のバブル)。ストリーミングデルタとしてではありません。
  • ツール失敗要約は通常モードでも表示されたままですが、生のエラー詳細サフィックスは詳細が on または full でない限り非表示になります。
  • 詳細が full の場合、ツール出力も完了後に転送されます(別バブル、安全な長さに切り詰め)。実行中に /verbose on|full|off を切り替えると、以降のツールバブルは新しい設定に従います。
  • agents.defaults.toolProgressDetail/verbose ツール要約と進行状況ドラフトのツール行の形を制御します。🛠️ Exec: checking JS syntax のようなコンパクトな人間向けラベルには "explain"(デフォルト)を使用します。デバッグのために生のコマンド/詳細も追加したい場合は "raw" を使用します。エージェントごとの agents.list[].toolProgressDetail はデフォルトを上書きします。
    • explain: 🛠️ Exec: check JS syntax for /tmp/app.js
    • raw: 🛠️ Exec: check JS syntax for /tmp/app.js, node --check /tmp/app.js

Plugin トレースディレクティブ(/trace)

  • レベル: on | off(デフォルト)。
  • ディレクティブのみのメッセージはセッション Plugin トレース出力を切り替え、Plugin trace enabled. / Plugin trace disabled. と返信します。
  • インラインディレクティブはそのメッセージにのみ影響します。それ以外の場合はセッション/グローバルデフォルトが適用されます。
  • 現在のトレースレベルを確認するには、引数なしで /trace(または /trace:)を送信します。
  • /trace/verbose より範囲が狭く、Active Memory デバッグ要約など Plugin 所有のトレース/デバッグ行のみを公開します。
  • トレース行は /status 内、および通常のアシスタント返信後のフォローアップ診断メッセージとして表示されることがあります。

推論の可視性(/reasoning)

  • レベル: on|off|stream
  • ディレクティブのみのメッセージは、思考ブロックを返信に表示するかどうかを切り替えます。
  • 有効な場合、推論は Reasoning: が先頭に付いた別メッセージとして送信されます。
  • stream(Telegram のみ): 返信生成中に推論を Telegram のドラフトバブルへストリーミングし、その後、推論なしで最終回答を送信します。
  • エイリアス: /reason
  • 現在の推論レベルを確認するには、引数なしで /reasoning(または /reasoning:)を送信します。
  • 解決順序: インラインディレクティブ、次にセッションオーバーライド、次にエージェントごとのデフォルト(agents.list[].reasoningDefault)、次にフォールバック(off)。

不正なローカルモデル推論タグは保守的に処理されます。閉じられた <think>...</think> ブロックは通常の返信では非表示のままであり、すでに表示されたテキストの後の閉じられていない推論も非表示になります。返信全体が単一の閉じられていない開始タグで囲まれており、そのままでは空テキストとして配信される場合、OpenClaw は不正な開始タグを削除し、残りのテキストを配信します。

関連

Heartbeats

  • Heartbeat プローブ本文は設定済みの Heartbeat プロンプトです(デフォルト: Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.)。Heartbeat メッセージ内のインラインディレクティブは通常どおり適用されます(ただし Heartbeat からセッションデフォルトを変更することは避けてください)。
  • Heartbeat 配信はデフォルトで最終ペイロードのみです。別の Reasoning: メッセージも送信するには(利用可能な場合)、agents.defaults.heartbeat.includeReasoning: true またはエージェントごとの agents.list[].heartbeat.includeReasoning: true を設定します。

Web チャット UI

  • Web チャットの思考セレクターは、ページ読み込み時に受信セッションストア/設定からセッションの保存済みレベルを反映します。
  • 別のレベルを選択すると、sessions.patch 経由でセッションオーバーライドが即座に書き込まれます。次の送信を待たず、1 回限りの thinkingOnce オーバーライドでもありません。
  • 最初の選択肢は常に Default (<resolved level>) です。解決済みデフォルトは、アクティブなセッションモデルのプロバイダー思考プロファイルと、/status および session_status が使用するものと同じフォールバックロジックから得られます。
  • ピッカーは Gateway セッション行/デフォルトから返される thinkingLevels を使用し、thinkingOptions はレガシーラベルリストとして保持されます。ブラウザー UI は独自のプロバイダー正規表現リストを保持しません。モデル固有のレベルセットは plugins が所有します。
  • /think:<level> は引き続き機能し、同じ保存済みセッションレベルを更新するため、チャットディレクティブとピッカーは同期されたままです。

プロバイダープロファイル

  • プロバイダーPluginは、モデルがサポートするレベルとデフォルトを定義するために resolveThinkingProfile(ctx) を公開できます。
  • Claude モデルをプロキシするプロバイダーPluginは、直接 Anthropic とプロキシのカタログの整合性を保つため、openclaw/plugin-sdk/provider-model-sharedresolveClaudeThinkingProfile(modelId) を再利用する必要があります。
  • 各プロファイルレベルには、保存される正規の idoffminimallowmediumhighxhighadaptive、または max)があり、表示用の label を含めることができます。バイナリープロバイダーは { id: "low", label: "on" } を使用します。
  • 明示的な thinking オーバーライドを検証する必要があるツールPluginは、api.runtime.agent.resolveThinkingPolicy({ provider, model })api.runtime.agent.normalizeThinkingLevel(...) を使用する必要があります。独自のプロバイダー/モデルのレベル一覧を保持するべきではありません。
  • 構成済みのカスタムモデルメタデータにアクセスできるツールPluginは、resolveThinkingPolicycatalog を渡すことで、compat.supportedReasoningEfforts のオプトインをPlugin側の検証に反映できます。
  • 公開済みのレガシーフック(supportsXHighThinkingisBinaryThinking、および resolveDefaultThinkingLevel)は互換アダプターとして残りますが、新しいカスタムレベルセットでは resolveThinkingProfile を使用する必要があります。
  • Gateway 行/デフォルトは thinkingLevelsthinkingOptions、および thinkingDefault を公開するため、ACP/チャットクライアントはランタイム検証で使用されるものと同じプロファイル ID とラベルを表示します。