メインコンテンツへスキップ

何をするか

  • 任意の受信本文内のインラインディレクティブ: /t <level>/think:<level>、または /thinking <level>
  • レベル (エイリアス): off | minimal | low | medium | high | xhigh | adaptive | max。おおよそ Anthropic の古典的な 「think」 < 「think hard」 < 「think harder」 < 「ultrathink」 というマジックワードの段階に対応します:
    • minimal ~ 「think」
    • low ~ 「think hard」
    • medium ~ 「think harder」
    • high ~ 「ultrathink」 (最大予算)
    • xhigh ~ 「ultrathink+」 (GPT-5.2+ と Codex モデル、および Anthropic Claude Opus 4.7+ effort)
    • adaptive → プロバイダー管理の adaptive thinking (Anthropic/Bedrock の Claude 4.6、Anthropic Claude Opus 4.7+、および Google Gemini dynamic thinking で対応)
    • max → プロバイダー最大 reasoning (Anthropic Claude Opus 4.7+。Ollama はこれをネイティブの最高 think effort にマップ)
    • x-highx_highextra-highextra high、および extra_highxhigh にマップされます。
    • highesthigh にマップされます。
  • プロバイダーに関する注記:
    • Thinking メニューとピッカーはプロバイダープロファイルによって駆動されます。プロバイダー Plugin は、binary on などのラベルを含め、選択されたモデルの正確なレベルセットを宣言します。
    • adaptivexhighmax は、それらに対応するプロバイダー/モデルプロファイルでのみ表示されます。対応していないレベルの型付きディレクティブは、そのモデルで有効な選択肢とともに拒否されます。
    • 既存の保存済み未対応レベルは、プロバイダープロファイルの順位によって再マップされます。adaptive は非 adaptive モデルでは medium にフォールバックし、xhighmax は選択されたモデルで対応する最大の非 off レベルにフォールバックします。
    • Anthropic Claude 4.6 モデルは、明示的な thinking レベルが設定されていない場合、デフォルトで adaptive になります。
    • Anthropic Claude Opus 4.8 と Opus 4.7 は、thinking レベルを明示的に設定しない限り thinking をオフのままにします。Opus 4.8 のプロバイダー所有 effort デフォルトは、adaptive thinking が有効化された後は high です。
    • Anthropic Claude Opus 4.7+ は /think xhigh を adaptive thinking と output_config.effort: "xhigh" にマップします。これは /think が thinking ディレクティブであり、xhigh が Opus の 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 を公開し、DeepSeek ネイティブのトップレベル reasoning_effort ではなく、OpenRouter 対応の reasoning.effort 値を送信します。より低い非 off レベルは high にマップされ、保存済みの max オーバーライドは xhigh にフォールバックします。
    • Ollama の thinking 対応モデルは /think low|medium|high|max を公開します。Ollama のネイティブ API は lowmediumhigh の effort 文字列を受け入れるため、max はネイティブの think: "high" にマップされます。
    • OpenAI GPT モデルは、モデル固有の Responses API effort 対応を通じて /think をマップします。/think off は対象モデルが対応している場合にのみ reasoning.effort: "none" を送信します。それ以外の場合、OpenClaw は未対応の値を送信する代わりに、無効化された reasoning ペイロードを省略します。
    • カスタム OpenAI 互換カタログエントリーは、models.providers.<provider>.models[].compat.supportedReasoningEfforts"xhigh" を含めることで /think xhigh にオプトインできます。これは送信側 OpenAI reasoning effort ペイロードをマップするものと同じ互換メタデータを使用するため、メニュー、セッション検証、エージェント CLI、llm-task がトランスポート挙動と一致します。
    • 古い設定済みの OpenRouter Hunter Alpha 参照は、その廃止済みルートが reasoning フィールドを通じて最終回答テキストを返す可能性があったため、プロキシ reasoning 注入をスキップします。
    • Google Gemini は /think adaptive を Gemini のプロバイダー所有 dynamic thinking にマップします。Gemini 3 リクエストは固定の thinkingLevel を省略し、Gemini 2.5 リクエストは thinkingBudget: -1 を送信します。固定レベルは引き続き、そのモデルファミリーに最も近い Gemini thinkingLevel または予算にマップされます。
    • Anthropic 互換ストリーミングパス上の MiniMax M2.x (minimax/MiniMax-M2*) は、モデルパラメーターまたはリクエストパラメーターで thinking を明示的に設定しない限り、デフォルトで thinking: { type: "disabled" } になります。これにより、M2.x の非ネイティブ Anthropic ストリーム形式から reasoning_content デルタが漏れることを避けます。MiniMax-M3 (および M3.x) は例外です。M3 は適切な Anthropic thinking ブロックを出力し、thinking が無効な場合は空の content を返すため、OpenClaw は M3 をプロバイダーの省略/adaptive thinking パスのままにします。
    • Z.AI (zai/*) はほとんどの GLM モデルで binary (on/off) です。GLM-5.2 は例外です。これは /think off|low|high|max を公開し、lowhigh を Z.AI reasoning_effort: "high" にマップし、maxreasoning_effort: "max" にマップします。
    • Moonshot Kimi K2.7 Code (moonshot/kimi-k2.7-code) は常に thinking します。そのプロファイルは on のみを公開し、OpenClaw は Moonshot が要求するとおり送信側 thinking フィールドを省略します。他の moonshot/* モデルは /think offthinking: { type: "disabled" } にマップし、任意の非 off レベルを thinking: { type: "enabled" } にマップします。thinking が有効な場合、Moonshot は tool_choice auto|none のみを受け入れます。OpenClaw は互換性のない値を auto に正規化します。

解決順序

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

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

  • ディレクティブのみのメッセージを送信します (空白は許可)。例: /think:medium または /t high
  • これは現在のセッションに固定されます (デフォルトでは送信者ごと)。/think default を使用するとセッションオーバーライドをクリアし、設定済み/プロバイダーデフォルトを継承します。エイリアスには inheritclearresetunpin があります。
  • /think off は明示的な off オーバーライドを保存します。セッションオーバーライドを変更またはクリアするまで thinking を無効にします。
  • 確認返信が送信されます (Thinking level set to high. / Thinking disabled.)。レベルが無効な場合 (例: /thinking big)、コマンドはヒント付きで拒否され、セッション状態は変更されません。
  • 引数なしで /think (または /think:) を送信すると、現在の thinking レベルを確認できます。

エージェントによる適用

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

高速モード (/fast)

  • レベル: auto|on|off|default
  • ディレクティブのみのメッセージはセッション高速モードオーバーライドを切り替え、Fast mode set to auto.Fast mode enabled.、または Fast mode disabled. と返信します。/fast default を使用するとセッションオーバーライドをクリアし、設定済みデフォルトを継承します。エイリアスには inheritclearresetunpin があります。
  • モードなしで /fast (または /fast status) を送信すると、現在有効な高速モード状態を確認できます。
  • OpenClaw は高速モードを次の順序で解決します:
    1. インライン/ディレクティブのみの /fast auto|on|off オーバーライド (/fast default はこの層をクリア)
    2. セッションオーバーライド
    3. エージェントごとのデフォルト (agents.list[].fastModeDefault)
    4. モデルごとの設定: agents.defaults.models["<provider>/<model>"].params.fastMode
    5. フォールバック: off
  • auto はセッション/config モードを auto のままにしますが、新しい各モデル呼び出しを個別に解決します。auto カットオフ前に開始した呼び出しでは高速モードが有効になります。後続の retry、fallback、tool-result、または continuation 呼び出しは高速モード無効で開始します。カットオフのデフォルトは 60 秒です。変更するには、アクティブモデルで agents.defaults.models["<provider>/<model>"].params.fastAutoOnSeconds を設定します。
  • openai/* では、高速モードは対応する Responses リクエストで service_tier=priority を送信することで OpenAI priority processing にマップされます。
  • Codex バックエンドの openai/* / openai-codex/* モデルでは、高速モードは Codex Responses に同じ service_tier=priority フラグを送信します。ネイティブ Codex app-server ターンは turn/start または thread start/resume の場合のみ tier を受け取るため、auto はすでに実行中の app-server ターンを再 tier 化できません。OpenClaw が開始する次のモデルターンに適用されます。
  • OAuth 認証済みで api.anthropic.com に送信されるトラフィックを含む、直接の公開 anthropic/* リクエストでは、高速モードは Anthropic service tiers にマップされます。/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 service-tier 注入をスキップします。
  • /status は、高速モードが有効な場合は Fast を、設定済みモードが auto の場合は Fast:auto を表示します。

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

  • レベル: on (最小) | full | off (デフォルト)。
  • ディレクティブのみのメッセージはセッション verbose を切り替え、Verbose logging enabled. / Verbose logging disabled. と返信します。無効なレベルは状態を変更せずにヒントを返します。
  • /verbose off は明示的なセッションオーバーライドを保存します。Sessions UI で inherit を選択してクリアします。
  • 認可された外部チャネル送信者は、セッション verbose オーバーライドを永続化できます。内部 Gateway/webchat クライアントが永続化するには operator.admin が必要です。
  • インラインディレクティブはそのメッセージにのみ影響します。それ以外の場合はセッション/グローバルデフォルトが適用されます。
  • 引数なしで /verbose (または /verbose:) を送信すると、現在の verbose レベルを確認できます。
  • verbose が on の場合、構造化されたツール結果を出力するエージェントは、各ツール呼び出しをメタデータのみの独立したメッセージとして送り返します。利用可能な場合は <emoji> <tool-name>: <arg> が先頭に付きます。これらのツール要約は、ストリーミングデルタではなく、各ツールの開始直後に送信されます (別バブル)。
  • ツール失敗の要約は通常モードでも表示されたままですが、生のエラー詳細サフィックスは verbose が full でない限り非表示になります。
  • verbose が 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 debug summaries などの Plugin 所有の trace/debug 行のみを公開します。
  • トレース行は /status 内、および通常のアシスタント返信後のフォローアップ診断メッセージとして表示されることがあります。

Reasoning の表示 (/reasoning)

  • レベル: on|off|stream
  • ディレクティブのみのメッセージは、thinking ブロックを返信に表示するかどうかを切り替えます。
  • 有効な場合、reasoning は Thinking というプレフィックス付きの別メッセージとして送信されます。
  • stream: アクティブなチャネルが reasoning プレビューに対応している場合、返信生成中に reasoning をストリーミングし、その後 reasoning なしで最終回答を送信します。
  • エイリアス: /reason
  • 引数なしで /reasoning (または /reasoning:) を送信すると、現在の reasoning レベルを確認できます。
  • 解決順序: インラインディレクティブ、次にセッションオーバーライド、次にエージェントごとのデフォルト (agents.list[].reasoningDefault)、次にグローバルデフォルト (agents.defaults.reasoningDefault)、次にフォールバック (off)。
不正な形式のローカルモデル推論タグは保守的に処理されます。閉じられた <think>...</think> ブロックは通常の返信では非表示のままで、すでに表示されたテキストの後にある閉じられていない推論も非表示になります。返信全体が単一の閉じられていない開始タグで囲まれており、そのままだと空のテキストとして配信される場合、OpenClaw は不正な形式の開始タグを削除し、残りのテキストを配信します。

関連

  • 昇格モードのドキュメントは 昇格モード にあります。

Heartbeat

  • 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 の配信はデフォルトで最終ペイロードのみです。別個の Thinking メッセージ(利用可能な場合)も送信するには、agents.defaults.heartbeat.includeReasoning: true またはエージェントごとの agents.list[].heartbeat.includeReasoning: true を設定します。

Web チャット UI

  • Web チャットの思考セレクターは、ページ読み込み時に受信セッションストア/設定からセッションに保存されたレベルを反映します。
  • 別のレベルを選択すると、sessions.patch を介してセッションの上書きが即座に書き込まれます。次回送信まで待たず、1 回限りの thinkingOnce 上書きでもありません。
  • 最初のオプションは常に上書きをクリアする選択肢です。継承された思考が無効な場合の Inherited: Off を含め、Inherited: <resolved level> と表示されます。
  • 明示的なピッカー選択では、プロバイダーラベルが存在する場合はそれを保持しつつ、直接のレベルラベルを使用します(たとえばプロバイダーラベル付きの max オプションでは Maximum)。
  • ピッカーは Gateway セッション行/デフォルトから返される thinkingLevels を使用し、thinkingOptions はレガシーのラベル一覧として保持されます。ブラウザー UI は独自のプロバイダー正規表現リストを保持しません。モデル固有のレベルセットは Plugin が所有します。
  • /think:<level> は引き続き機能し、同じ保存済みセッションレベルを更新するため、チャットディレクティブとピッカーは同期されたままになります。

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

  • プロバイダー Plugin は、モデルがサポートするレベルとデフォルトを定義するために resolveThinkingProfile(ctx) を公開できます。
  • Claude モデルをプロキシするプロバイダー Plugin は、直接の Anthropic カタログとプロキシカタログの整合性を保つために、openclaw/plugin-sdk/provider-model-sharedresolveClaudeThinkingProfile(modelId) を再利用する必要があります。
  • 各プロファイルレベルには、保存される正規の idoffminimallowmediumhighxhighadaptive、または max)があり、表示用の label を含めることができます。バイナリプロバイダーは { id: "low", label: "on" } を使用します。
  • プロファイルフックは、利用可能な場合、reasoningcompat.thinkingFormatcompat.supportedReasoningEfforts を含む統合済みカタログ情報を受け取ります。これらの情報を使用して、設定済みのリクエスト契約が対応するペイロードをサポートする場合にのみ、バイナリまたはカスタムプロファイルを公開してください。
  • 明示的な思考上書きを検証する必要があるツール Plugin は、api.runtime.agent.resolveThinkingPolicy({ provider, model })api.runtime.agent.normalizeThinkingLevel(...) を使用する必要があります。独自のプロバイダー/モデルレベル一覧を保持してはいけません。
  • 設定済みカスタムモデルメタデータにアクセスできるツール Plugin は、resolveThinkingPolicycatalog を渡すことで、compat.supportedReasoningEfforts のオプトインを Plugin 側の検証に反映できます。
  • 公開済みのレガシーフック(supportsXHighThinkingisBinaryThinkingresolveDefaultThinkingLevel)は互換性アダプターとして残りますが、新しいカスタムレベルセットでは resolveThinkingProfile を使用する必要があります。
  • Gateway 行/デフォルトは thinkingLevelsthinkingOptionsthinkingDefault を公開するため、ACP/チャットクライアントはランタイム検証で使用されるものと同じプロファイル ID とラベルをレンダリングします。