agents.*、multiAgent.*、session.*、
messages.*、talk.* 配下のエージェント単位の設定キー。
チャンネル、ツール、Gateway ランタイム、およびその他のトップレベルキーについては、設定リファレンスを参照してください。
エージェントのデフォルト
agents.defaults.workspace
デフォルト: OPENCLAW_WORKSPACE_DIR が設定されている場合はその値。それ以外は ~/.openclaw/workspace(OPENCLAW_PROFILE がデフォルト以外のプロファイルに設定されている場合は ~/.openclaw/workspace-<profile>)。
agents.defaults.workspace の値は
OPENCLAW_WORKSPACE_DIR より優先されます。設定にパスを書き込みたくない場合は、環境変数を使用してデフォルトのエージェントがマウント済みワークスペースを参照するようにします。
agents.defaults.repoRoot
システムプロンプトの Runtime 行に表示される、オプションのリポジトリルート。未設定の場合、OpenClaw はワークスペースから上位へたどって自動検出します。
agents.defaults.skills
agents.entries.*.skills を設定していないエージェントに適用する、オプションのデフォルト Skills 許可リスト。
- デフォルトで Skills を無制限にするには、
agents.defaults.skillsを省略します。 - デフォルトを継承するには、
agents.entries.*.skillsを省略します。 - Skills を無効にするには、
agents.entries.*.skills: []を設定します。 - 空でない
agents.entries.*.skillsリストが、そのエージェントの最終的なセットになります。デフォルトとは マージされません。
agents.defaults.skipBootstrap
ワークスペースのブートストラップファイル(AGENTS.md、SOUL.md、TOOLS.md、IDENTITY.md、USER.md、BOOTSTRAP.md)の自動作成を無効にします。
agents.defaults.skipOptionalBootstrapFiles
必須のブートストラップファイル(AGENTS.md、TOOLS.md、BOOTSTRAP.md)は引き続き書き込みながら、選択したオプションのワークスペースファイルの作成をスキップします。有効な値: SOUL.md、USER.md、IDENTITY.md(HEARTBEAT.md も受け付けますが、Heartbeat コンテキストは Cron モニターのスクラッチ領域へ移動したため何も行いません)。
agents.defaults.contextInjection
ワークスペースのブートストラップファイルをシステムプロンプトに注入するタイミングを制御します。デフォルト: "always"。
"continuation-skip": 安全に継続できるターン(アシスタントの応答完了後)では、ワークスペースのブートストラップを再注入せず、プロンプトサイズを削減します。Heartbeat の実行と Compaction 後の再試行では、引き続きコンテキストを再構築します。"never": すべてのターンでワークスペースのブートストラップとコンテキストファイルの注入を無効にします。プロンプトのライフサイクルを完全に所有するエージェント(カスタムコンテキストエンジン、独自にコンテキストを構築するネイティブランタイム、ブートストラップを使用しない特殊なワークフロー)でのみ使用してください。Heartbeat および Compaction 復旧ターンでも注入をスキップします。
agents.entries.*.contextInjection。省略した値は
agents.defaults.contextInjection を継承します。
agents.defaults.bootstrapMaxChars
切り詰め前の、ワークスペースのブートストラップファイルごとの最大文字数。デフォルト: 20000。
agents.entries.*.bootstrapMaxChars。省略した値は
agents.defaults.bootstrapMaxChars を継承します。
agents.defaults.bootstrapTotalMaxChars
すべてのワークスペースのブートストラップファイルから注入される合計最大文字数。デフォルト: 60000。
agents.entries.*.bootstrapTotalMaxChars。省略した値は
agents.defaults.bootstrapTotalMaxChars を継承します。
エージェント単位のブートストラッププロファイルのオーバーライド
あるエージェントで共有デフォルトとは異なるプロンプト注入動作が必要な場合は、エージェント単位のブートストラッププロファイルのオーバーライドを使用します。省略したフィールドはagents.defaults から継承されます。
agents.defaults.bootstrapPromptTruncationWarning
ブートストラップコンテキストが切り詰められたとき、エージェントに表示されるシステムプロンプト通知を制御します。
デフォルト: "always"。
"off": 切り詰め通知のテキストをシステムプロンプトに注入しません。"once": 一意の切り詰めシグネチャごとに、簡潔な通知を一度だけ注入します。"always": 切り詰めが存在する場合、実行のたびに簡潔な通知を注入します(推奨)。
コンテキスト予算の所有権マップ
OpenClaw には大容量のプロンプト/コンテキスト予算が複数あり、1 つの汎用設定項目にすべてを集約するのではなく、意図的にサブシステムごとに分割されています。
対応するエージェント単位のオーバーライド:
agents.entries.*.skillsLimits.maxSkillsPromptCharsagents.entries.*.contextInjectionagents.entries.*.bootstrapMaxCharsagents.entries.*.bootstrapTotalMaxCharsagents.entries.*.contextLimits.*
agents.defaults.startupContext
リセット/起動時のモデル実行で最初のターンに注入される起動プレリュードを制御します。
単独のチャット /new および /reset コマンドは、モデルを呼び出さずにリセットを受領確認するため、このプレリュードを読み込みません。
agents.defaults.contextLimits
上限付きランタイムコンテキスト領域の共有デフォルト。
memoryGetMaxChars: 切り詰めメタデータと継続通知が追加される前の、デフォルトのmemory_get抜粋上限。memory_getでlinesが省略されている場合、OpenClaw は組み込みの 120 行ウィンドウを使用し、 その後memoryGetMaxCharsを適用します。- ライブツール結果には、モデルコンテキストに応じた自動上限が適用されます。100K トークン未満では
16000文字、100K+ トークンでは32000文字、200K+ トークンでは64000文字です。 postCompactionMaxChars: Compaction 後の更新注入時に使用される AGENTS.md 抜粋上限。
agents.entries.*.contextLimits
共有 contextLimits 設定項目のエージェント単位のオーバーライド。省略したフィールドは
agents.defaults.contextLimits から継承されます。
skills.limits.maxSkillsPromptChars
システムプロンプトに注入されるコンパクトな Skills リストのグローバル上限。オンデマンドでの SKILL.md ファイルの読み取りには影響しません。
agents.entries.*.skillsLimits.maxSkillsPromptChars
Skills プロンプト予算のエージェント単位のオーバーライド。
agents.defaults.imageMaxDimensionPx
プロバイダー呼び出し前に、トランスクリプト/ツールの画像ブロック内で最も長い画像辺に適用する最大ピクセルサイズ。
デフォルト: 1200。
値を小さくすると通常、スクリーンショットが多い実行でビジョントークン使用量とリクエストペイロードサイズが減少します。
値を大きくすると、より多くの視覚的詳細が保持されます。
agents.defaults.imageQuality
ファイルパス、URL、メディア参照から読み込まれる画像に対する、画像ツールの圧縮/詳細度の設定。
デフォルト: auto。
OpenClaw は、選択された画像モデルに応じてリサイズ段階を調整します。たとえば Claude Opus 4.8、OpenAI GPT-5.6 Sol、Qwen VL、およびホスト型 Llama 4 ビジョンモデルでは、従来またはデフォルトの高詳細ビジョン処理より大きな画像を使用できます。一方、複数画像のターンでは、トークンとレイテンシのコストを抑えるため、auto モードでより積極的に圧縮されます。
値:
auto: モデルの制限と画像数に適応します。efficient: トークンとバイトの使用量を抑えるため、小さい画像を優先します。balanced: 標準的な中間段階を使用します。high: スクリーンショット、図、文書画像でより多くの詳細を保持します。
agents.defaults.userTimezone
システムプロンプトのコンテキストに使用するタイムゾーン(メッセージのタイムスタンプには使用されません)。ホストのタイムゾーンにフォールバックします。
agents.defaults.timeFormat
システムプロンプト内の時刻形式。デフォルト: auto(OS の設定)。
agents.defaults.model
model: 文字列("provider/model")またはオブジェクト({ primary, fallbacks })を受け入れます。- 文字列形式では、プライマリモデルのみを設定します。
- オブジェクト形式では、プライマリモデルと、順序付けられたフェイルオーバーモデルを設定します。
utilityModel: 短い内部タスク用の任意のprovider/model参照またはエイリアスです。現在は、生成される Control UI セッションタイトル、Telegram DM トピックタイトル、Discord 自動スレッドタイトル、および進捗ドラフトのナレーションに使用されます。未設定の場合、OpenClaw は、プライマリプロバイダーに宣言済みの小規模モデルのデフォルトが存在すれば、それを導出します(OpenAI →gpt-5.6-luna、Anthropic →claude-haiku-4-5)。それ以外の場合、タイトルタスクではエージェントのプライマリモデルを使用し、ナレーションは無効のままになります。個別のユーティリティモデルで生成タイトルを準備または完成できない場合、OpenClaw はそのタイトルについてプライマリモデルで一度再試行します。ダッシュボードタイトルでは、ユーティリティモデルの自動導出と通常のフォールバックに、有効なセッションプロバイダーと認証プロファイルが使用されます。明示的なユーティリティモデルでは、設定済みのプロバイダーと認証が維持されます。代替ユーティリティ経路をスキップするにはutilityModel: ""を設定します。ダッシュボードタイトルの生成は、引き続き通常のセッションモデルで直接実行されます。agents.entries.*.utilityModelはデフォルトを上書きし、処理固有のモデルオーバーライドはその両方より優先されます。ユーティリティタスクは個別にモデルを呼び出し、タスク固有の内容を選択したモデルプロバイダーへ送信します。ダッシュボードタイトルの生成では、コマンドではない最初のメッセージの先頭最大 1,000 文字が送信されます。ナレーションでは、受信リクエストと、簡潔に編集されたツール概要が送信されます。コストとデータ処理の要件に合うプロバイダーを選択してください。imageModel: 文字列("provider/model")またはオブジェクト({ primary, fallbacks })を受け入れます。- アクティブなモデルが画像を受け入れられない場合、
imageツール経路でビジョンモデル設定として使用されます。ネイティブにビジョンをサポートするモデルには、読み込まれた画像バイトが代わりに直接渡されます。 - 選択したモデルまたはデフォルトモデルが画像入力を受け入れられない場合のフォールバックルーティングにも使用されます。
- 明示的な
provider/model参照を推奨します。互換性のため、修飾されていない ID も受け入れられます。修飾されていない ID がmodels.providers.*.modelsに設定された画像対応エントリの 1 つと一意に一致する場合、OpenClaw はその ID にプロバイダーを付加します。設定済みエントリとの一致が曖昧な場合は、明示的なプロバイダープレフィックスが必要です。
- アクティブなモデルが画像を受け入れられない場合、
mediaModels.image: 文字列("provider/model")またはオブジェクト({ primary, fallbacks })を受け入れます。- 共有の画像生成機能と、今後追加される画像生成ツールまたは Plugin のサーフェスで使用されます。
- 一般的な値: Gemini のネイティブ画像生成には
google/gemini-3.1-flash-image、fal にはfal/fal-ai/flux/dev、OpenAI Images にはopenai/gpt-image-2、背景が透明な OpenAI PNG/WebP 出力にはopenai/gpt-image-1.5を使用します。 - プロバイダーまたはモデルを直接選択する場合、対応するプロバイダー認証も設定してください(例:
google/*にはGEMINI_API_KEYまたはGOOGLE_API_KEY、openai/gpt-image-2/openai/gpt-image-1.5にはOPENAI_API_KEYまたは OpenAI Codex OAuth、fal/*にはFAL_KEY)。 - 省略した場合でも、
image_generateは認証情報に基づいてプロバイダーのデフォルトを推測できます。最初に現在のデフォルトプロバイダーを試し、続いて登録済みの残りの画像生成プロバイダーをプロバイダー ID 順に試します。
mediaModels.music: 文字列("provider/model")またはオブジェクト({ primary, fallbacks })を受け入れます。- 共有の音楽生成機能と、組み込みの
music_generateツールで使用されます。 - 一般的な値:
google/lyria-3-clip-preview、google/lyria-3-pro-preview、またはminimax/music-2.6。 - 省略した場合でも、
music_generateは認証情報に基づいてプロバイダーのデフォルトを推測できます。最初に現在のデフォルトプロバイダーを試し、続いて登録済みの残りの音楽生成プロバイダーをプロバイダー ID 順に試します。 - プロバイダーまたはモデルを直接選択する場合、対応するプロバイダー認証/API キーも設定してください。
- 共有の音楽生成機能と、組み込みの
mediaModels.video: 文字列("provider/model")またはオブジェクト({ primary, fallbacks })を受け入れます。- 共有の動画生成機能と、組み込みの
video_generateツールで使用されます。 - 一般的な値:
qwen/wan2.6-t2v、qwen/wan2.6-i2v、qwen/wan2.6-r2v、qwen/wan2.6-r2v-flash、またはqwen/wan2.7-r2v。 - 省略した場合でも、
video_generateは認証情報に基づいてプロバイダーのデフォルトを推測できます。最初に現在のデフォルトプロバイダーを試し、続いて登録済みの残りの動画生成プロバイダーをプロバイダー ID 順に試します。 - プロバイダーまたはモデルを直接選択する場合、対応するプロバイダー認証/API キーも設定してください。
- 公式の Qwen 動画生成 Plugin は、最大 1 本の出力動画、1 枚の入力画像、4 本の入力動画、10 秒の長さ、およびプロバイダーレベルの
size、aspectRatio、resolution、audio、watermarkオプションをサポートします。
- 共有の動画生成機能と、組み込みの
pdfModel: 文字列("provider/model")またはオブジェクト({ primary, fallbacks })を受け入れます。- モデルルーティングのために
pdfツールで使用されます。 - 省略した場合、PDF ツールは
imageModel、続いて解決済みのセッションモデルまたはデフォルトモデルへフォールバックします。
- モデルルーティングのために
pdfMaxMb: 呼び出し時にmaxBytesMbが渡されなかった場合に、pdfツールで使用されるデフォルトの PDF サイズ上限です。pdfMaxPages:pdfツールの抽出フォールバックモードで考慮されるデフォルトの最大ページ数です。verboseDefault: エージェントのデフォルトの詳細出力レベルです。値:"off"、"on"、"full"。デフォルト:"off"。toolProgressDetail:/verboseツールの概要と進捗ドラフトのツール行の詳細モードです。値:"explain"(デフォルト、簡潔で人間が読めるラベル)または"raw"(利用可能な場合に未加工のコマンドや詳細を追加)。エージェントごとのagents.entries.*.toolProgressDetailは、このデフォルトを上書きします。reasoningDefault: エージェントのデフォルトの推論表示設定です。値:"off"、"on"、"stream"。エージェントごとのagents.entries.*.reasoningDefaultは、このデフォルトを上書きします。設定された推論のデフォルトは、メッセージ単位またはセッション単位の推論オーバーライドが設定されていない場合に限り、所有者、承認済み送信者、またはオペレーター管理者の Gateway コンテキストにのみ適用されます。elevatedDefault: エージェントのデフォルトの昇格出力レベルです。値:"off"、"on"、"ask"、"full"。デフォルト:"on"。model.primary: 形式はprovider/model(例: Codex OAuth アクセスの場合はopenai/gpt-5.6-sol)。プロバイダーを省略すると、OpenClaw は最初にエイリアスを試し、次にその正確なモデル ID と一意に一致する設定済みプロバイダーを試し、その後に限り設定済みのデフォルトプロバイダーへフォールバックします(非推奨の互換動作であるため、明示的なprovider/modelを推奨します)。そのプロバイダーが設定済みのデフォルトモデルを提供しなくなった場合、OpenClaw は削除済みプロバイダーの古いデフォルトをエラーとして提示する代わりに、最初に設定されたプロバイダー/モデルへフォールバックします。contextTokens: エージェント全体に適用できる任意の上限です。より大きなモデルの有効な予算を引き下げることはできますが、モデルを設定済みまたは検出済みのcontextTokensより引き上げることはできません。個別の OpenAI モデルで、より大きなネイティブウィンドウを有効にするには、そのモデルにmodels.providers.openai.models[].contextWindowとcontextTokensを設定します。OpenAI のコンテキストウィンドウのデフォルトを参照してください。models: 設定済みのエイリアスとモデルごとの設定です。各エントリには、alias(ショートカット)とparams(プロバイダー固有。例:temperature、maxTokens、cacheRetention、context1m、responsesServerCompaction、responsesCompactThreshold、OpenRouter のproviderルーティング、chat_template_kwargs、extra_body/extraBody)を含められます。エントリを追加しても、モデルのオーバーライドは制限されません。- 選択したプロバイダーで検出されたすべてのモデルを、各モデル ID を手動で列挙せずに表示するには、
"openai/*": {}や"vllm/*": {}などのprovider/*エントリを使用します。 - そのプロバイダーで動的に検出されたすべてのモデルに同じランタイムを使用する場合は、
provider/*エントリにagentRuntimeを追加します。正確なprovider/modelランタイムポリシーが、引き続きワイルドカードより優先されます。 - 安全なメタデータ編集: エントリの追加には
openclaw config set agents.defaults.models '<json>' --strict-json --mergeを使用します。--replaceを渡さない限り、config setは既存のエントリを削除する置換を拒否します。
- 選択したプロバイダーで検出されたすべてのモデルを、各モデル ID を手動で列挙せずに表示するには、
modelPolicy.allow: 明示的なオーバーライド許可リストです。エイリアス、正確なprovider/model参照、およびopenai/*やclawrouter/anthropic/*などの末尾プレフィックスワイルドカードを受け入れます。すべてのモデルを許可するには、省略するか[]を使用します。agents.entries.*.modelPolicy.allowは、そのエージェントのデフォルトポリシーを置き換えます。明示的な空のリストを指定すると、そのエージェントではすべてが許可されます。- プロバイダー単位の設定/オンボーディングフローでは、選択したプロバイダーのモデルがこのマップにマージされ、設定済みの無関係なプロバイダーは保持されます。
- OpenAI Responses の直接モデルでは、サーバー側の Compaction が自動的に有効になります。
context_managementの挿入を停止するにはparams.responsesServerCompaction: falseを使用し、しきい値を上書きするにはparams.responsesCompactThresholdを使用します。OpenAI のサーバー側 Compactionを参照してください。
params: すべてのモデルに適用されるグローバルなデフォルトプロバイダーパラメーターです。agents.defaults.paramsで設定します(例:{ cacheRetention: "long" })。paramsのマージ優先順位(設定):agents.defaults.params(グローバルベース)はagents.defaults.models["provider/model"].params(モデル単位)で上書きされ、続いてagents.entries.*.params(一致するエージェント ID)がキー単位で上書きします。詳細はプロンプトキャッシュを参照してください。models.providers.openrouter.params.provider: OpenRouter 全体に適用されるデフォルトのプロバイダールーティングポリシーです。OpenClaw はこれを OpenRouter のリクエストのproviderオブジェクトへ転送します。モデルごとのagents.defaults.models["openrouter/<model>"].params.providerとエージェントのパラメーターがキー単位で上書きします。OpenRouter のプロバイダールーティングを参照してください。params.extra_body/params.extraBody: OpenAI 互換プロキシ向けのapi: "openai-completions"リクエスト本文へマージされる、高度なパススルー JSON です。生成されたリクエストキーと競合する場合は追加本文が優先され、ネイティブではない completions 経路では、その後も OpenAI 専用のstoreが除去されます。params.chat_template_kwargs: トップレベルのapi: "openai-completions"リクエスト本文へマージされる、vLLM/OpenAI 互換のチャットテンプレート引数です。思考が無効なvllm/nemotron-3-*では、同梱の vLLM Plugin がenable_thinking: falseとforce_nonempty_content: trueを自動的に送信します。明示的なchat_template_kwargsは生成されたデフォルトを上書きし、extra_body.chat_template_kwargsが引き続き最終的に優先されます。設定済みの vLLM Qwen および Nemotron 思考モデルでは、複数レベルのエフォート段階ではなく、二値の/think選択肢(off、on)が公開されます。compat.thinkingFormat: OpenAI 互換の思考ペイロード形式です。Together 形式のreasoning.enabledには"together"、Qwen 形式のトップレベルenable_thinkingには"qwen"、vLLM など、リクエスト単位のチャットテンプレート kwargs をサポートする Qwen 系バックエンドのchat_template_kwargs.enable_thinkingには"qwen-chat-template"を使用します。OpenClaw は、思考の無効化をfalse、有効化をtrueに対応付けます。また、設定済みの vLLM Qwen モデルでは、これらの形式に対する二値の/think選択肢が公開されます。compat.supportedReasoningEfforts: モデルごとの OpenAI 互換推論エフォート一覧。実際に受け付けるカスタムエンドポイントには"xhigh"を含めてください。これにより OpenClaw は、その構成済みプロバイダー/モデルについて、コマンドメニュー、Gateway セッション行、セッションパッチ検証、エージェント CLI 検証、およびllm-task検証で/think xhighを公開します。正規レベルに対してバックエンドがプロバイダー固有の値を必要とする場合は、compat.reasoningEffortMapを使用します。params.preserveThinking: 保持された思考を利用するための Z.AI 専用オプトイン。これを有効にして思考をオンにすると、OpenClaw はthinking.clear_thinking: falseを送信し、以前のreasoning_contentを再実行します。Z.AI の思考と保持された思考を参照してください。localService: ローカル/セルフホスト型モデルサーバー向けの、オプションのプロバイダーレベルのプロセスマネージャー。選択したモデルがそのプロバイダーに属する場合、OpenClaw はhealthUrl(またはbaseUrl + "/models")をプローブし、エンドポイントが停止していればargsを指定してcommandを起動し、最大readyTimeoutMs待機してからモデルリクエストを送信します。commandは絶対パスでなければなりません。idleStopMs: 0は OpenClaw が終了するまでプロセスを存続させます。正の値を指定すると、OpenClaw が起動したプロセスを、そのミリ秒数だけアイドル状態が続いた後に停止します。ローカルモデルサービスを参照してください。- ランタイムポリシーは
agents.defaultsではなく、プロバイダーまたはモデルに設定します。プロバイダー全体のルールにはmodels.providers.<provider>.agentRuntime、モデル固有のルールにはagents.defaults.models["provider/model"].agentRuntime/agents.entries.*.models["provider/model"].agentRuntimeを使用します。プロバイダー/モデルのプレフィックスだけでハーネスが選択されることはありません。ランタイムが未設定またはautoの場合、作成者によるリクエストのオーバーライドがなく、公式の HTTPS Platform Responses または ChatGPT Responses のルートに完全一致するときに限り、OpenAI は暗黙的に Codex を選択することがあります。OpenAI の暗黙的なエージェントランタイムを参照してください。 - これらのフィールドを変更する構成ライター(たとえば
/models set、/models set-image、フォールバックの追加/削除コマンド)は、正規のオブジェクト形式で保存し、可能な場合は既存のフォールバック一覧を保持します。 maxConcurrent: セッション全体で並列実行できるエージェント実行の最大数(各セッション内では引き続き直列化されます)。デフォルト:4。
ランタイムポリシー
id:"auto"、"openclaw"、登録済みPluginハーネスID、またはサポートされているCLIバックエンドのエイリアス。バンドルされているCodex Pluginはcodexを登録し、バンドルされているAnthropic Pluginはclaude-cliCLIバックエンドを提供します。id: "auto"を使用すると、登録済みPluginハーネスは、サポート契約を宣言するか、その他の方法で満たす有効なルートを引き受けることができ、一致するハーネスがない場合はOpenClawを使用します。id: "codex"のように明示的なPluginランタイムを指定すると、そのハーネスと互換性のある有効なルートが必要になります。いずれかが利用できない場合や実行に失敗した場合は、フェイルクローズします。id: "pi"は、v2026.5.22以前のリリース済み設定を維持するため、openclawの非推奨エイリアスとしてのみ受け付けられます。新しい設定ではopenclawを使用してください。- ランタイムの優先順位は、最初に完全一致するモデルポリシー(
agents.entries.*.models["provider/model"]、agents.defaults.models["provider/model"]、またはmodels.providers.<provider>.models[])、次にagents.entries.*/agents.defaults.models["provider/*"]、最後にmodels.providers.<provider>.agentRuntimeのプロバイダー全体のポリシーです。 - エージェント全体のランタイムキーはレガシーです。
agents.defaults.agentRuntime、agents.entries.*.agentRuntime、セッションランタイムの固定指定、およびOPENCLAW_AGENT_RUNTIMEは、ランタイムの選択時に無視されます。古い値を削除するにはopenclaw doctor --fixを実行してください。 - 作成者によるリクエストの上書きがない、対象となる完全一致の公式HTTPS OpenAI Responses/ChatGPTルートでは、Codexハーネスが暗黙的に使用される場合があります。プロバイダー/モデルの
agentRuntime.id: "codex"はCodexをフェイルクローズ要件にしますが、互換性のないルートを互換にするものではありません。 - Claude CLIのデプロイでは、
model: "anthropic/claude-opus-5"とモデルスコープのagentRuntime.id: "claude-cli"を組み合わせることを推奨します。レガシーのclaude-cli/<model>参照も互換性のため引き続き機能しますが、新しい設定ではプロバイダー/モデルの選択を正規形に保ち、実行バックエンドをプロバイダー/モデルのランタイムポリシーに配置してください。 - これはテキストエージェントのターン実行のみを制御します。メディア生成、ビジョン、PDF、音楽、動画、TTSでは、引き続きそれぞれのプロバイダー/モデル設定が使用されます。
agents.defaults.modelsに含まれる場合にのみ適用):
設定したエイリアスは、常にデフォルトより優先されます。
Z.AI GLM-4.xモデルでは、
--thinking offを設定するか、agents.defaults.models["zai/<model>"].params.thinkingを独自に定義しない限り、思考モードが自動的に有効になります。
Z.AIモデルでは、ツール呼び出しのストリーミング用にtool_streamがデフォルトで有効になります。無効にするには、agents.defaults.models["zai/<model>"].params.tool_streamをfalseに設定してください。
Anthropic Claude Opus 4.8では、OpenClawで思考がデフォルトで無効になっています。適応的思考を明示的に有効にすると、Anthropicプロバイダーが管理するエフォートのデフォルト値はhighになります。Claude 4.6モデルでは、明示的な思考レベルが設定されていない場合、デフォルトでadaptiveが使用されます。
CLIバックエンドの選択
CLIアダプターの仕組みはPluginによって登録され、エージェントの デフォルトでは設定されません。上記のように、モデルスコープのagentRuntime.idを使用して、
登録済みCLIバックエンドを選択してください。運用についてはCLIバックエンドを、
コマンド、セッション、画像、パーサーの登録については
CLIバックエンドPluginの構築を参照してください。
agents.defaults.promptOverlays
OpenClawが組み立てるプロンプトサーフェスにモデルファミリー単位で適用される、プロバイダーに依存しないプロンプトオーバーレイ。GPT-5ファミリーのモデルIDは、OpenClaw/プロバイダーの各ルートで共通の動作契約を受け取ります。personalityは、親しみやすい対話スタイルのレイヤーのみを制御します。ネイティブCodex app-serverルートでは、このOpenClaw GPT-5オーバーレイの代わりにCodexが管理するベース/モデル命令が維持され、OpenClawはネイティブスレッドでCodexの組み込みパーソナリティを無効にします。
"friendly"(デフォルト)と"on"は、親しみやすい対話スタイルのレイヤーを有効にします。"off"は親しみやすいレイヤーのみを無効にします。タグ付けされたGPT-5の動作契約は引き続き有効です。- この共有設定が未設定の場合、レガシーの
plugins.entries.openai.config.personalityが引き続き読み込まれます。
agents.defaults.heartbeat
定期的なHeartbeatの実行。
every: 期間を表す文字列(ms/s/m/h)。デフォルト:30m(APIキー認証)または1h(OAuth認証)。無効にするには0mに設定します。- 実行間隔は、システムが管理するCronモニター行に書き込まれます。欠落または古くなった行を実体化するには、
openclaw doctor --fixを実行してください。Cronが無効な場合、スケジュールされたHeartbeatは実行されず、Gatewayは起動時の警告をログに記録します。 includeSystemPromptSection: falseの場合、システムプロンプトからHeartbeatセクションを省略します。デフォルト:true。suppressToolErrorWarnings: trueの場合、Heartbeatの実行中にツールエラーの警告ペイロードを抑制します。timeoutSeconds: Heartbeatエージェントのターンが中止されるまでに許容される最大時間(秒)。未設定のままにすると、agents.defaults.timeoutSecondsが設定されている場合はその値を使用し、それ以外の場合はHeartbeatの実行間隔を最大600秒に制限した値を使用します。directPolicy: ダイレクト/DM配信ポリシー。allow(デフォルト)はダイレクトターゲットへの配信を許可します。blockはダイレクトターゲットへの配信を抑制し、reason=dm-blockedを出力します。lightContext: trueの場合、Heartbeatの実行では軽量なブートストラップコンテキストを使用し、ワークスペースのブートストラップファイルをスキップします。どちらの場合も、モニターのスクラッチ情報はHeartbeatランナーによって挿入されます。isolatedSession: trueの場合、各Heartbeatは以前の会話履歴がない新しいセッションで実行されます。CronのsessionTarget: "isolated"と同じ分離パターンです。Heartbeatごとのトークンコストを約100Kから約2-5Kトークンに削減します。skipWhenBusy: trueの場合、そのエージェントに追加のビジーなレーンがある間、Heartbeatの実行を延期します。対象は、そのエージェント自身のセッションキーに紐づくサブエージェントまたはネストされたコマンド処理です。このフラグがなくても、Cronレーンは常にHeartbeatを延期します。- エージェント単位:
agents.entries.*.heartbeatを設定します。いずれかのエージェントがheartbeatを定義すると、それらのエージェントのみがHeartbeatを実行します。 - Heartbeatはエージェントの完全なターンを実行します。間隔を短くすると、より多くのトークンを消費します。
agents.defaults.compaction
mode:defaultまたはsafeguard(長い履歴向けのチャンク分割要約)。Compactionを参照してください。provider: 登録済みの Compaction プロバイダー Plugin の ID。設定すると、組み込みの LLM 要約の代わりにプロバイダーのsummarize()が呼び出されます。失敗時は組み込み機能にフォールバックします。プロバイダーを設定するとmode: "safeguard"が強制されます。Compactionを参照してください。thinkingLevel: 埋め込み OpenClaw の Compaction 要約にのみ使用されるオプションの思考レベル(off、minimal、low、medium、high、xhigh、adaptive、max、またはultra)。セッションの現在の思考レベルを上書きし、選択された Compaction モデル/ランタイムに合わせて制限されます。セッションレベルを継承するには未設定のままにします。ネイティブの compact リクエストには操作単位の思考オーバーライドがないため、ネイティブ Codex app-server の Compaction ではこの設定は無視されます。設定されている場合、OpenClaw は警告をログに記録します。timeoutSeconds: OpenClaw が中止するまでに、1 回の Compaction 操作に許可される最大秒数。デフォルト:180。keepRecentTokens: 最新のトランスクリプト末尾をそのまま保持するためのエージェント切断点予算。明示的に設定されている場合、手動の/compactはこれに従います。それ以外の場合、手動 Compaction はハードチェックポイントになります。recentTurnsPreserve: セーフガード要約の外側でそのまま保持される、直近のユーザー/アシスタントのターン数。デフォルト:3。identifierPolicy:strict(デフォルト)またはoff。strictは、Compaction 要約時に、不透明な識別子を保持するための組み込みガイダンスを先頭に追加します。qualityGuard: セーフガード要約に対する、不正形式の出力時の再試行チェック。セーフガードモードではデフォルトで有効です。監査をスキップするにはenabled: falseを設定します。midTurnPrecheck: オプションのツールループ負荷チェック。enabled: trueの場合、OpenClaw はツール結果の追加後、次のモデル呼び出し前にコンテキスト負荷を確認します。コンテキストが収まらなくなった場合は、プロンプトを送信する前に現在の試行を中止し、既存の事前チェック復旧パスを再利用してツール結果を切り詰めるか、Compaction を実行して再試行します。defaultとsafeguardの両方の Compaction モードで動作します。デフォルト: 無効。postIndexSync: Compaction 後のセッションメモリ再インデックスモード。デフォルト:"async"。鮮度を最優先する場合は"await"、Compaction のレイテンシを抑える場合は"async"、セッションメモリの同期がほかで処理される場合にのみ"off"を使用します。postCompactionSections: Compaction 後に再注入する、オプションの AGENTS.md H2/H3 セクション名。無効にするには未設定のままにするか、[]を使用します。model: Compaction 要約にのみ使用する、オプションのprovider/model-idまたはagents.defaults.modelsの単純なエイリアス。単純なエイリアスはディスパッチ前に解決されます。競合時は、設定されたリテラルモデル ID が優先されます。メインセッションではあるモデルを維持しつつ、Compaction 要約を別のモデルで実行する場合に使用します。未設定の場合、Compaction はセッションのプライマリモデルを使用します。truncateAfterCompaction: Compaction 後にアクティブなセッショントランスクリプトをローテーションし、以降のターンでは要約と未要約の末尾だけを読み込むようにします。以前の完全なトランスクリプトはアーカイブされたままになります。長時間実行されるセッションで、アクティブなトランスクリプトが際限なく増大するのを防ぎます。デフォルト:false。maxActiveTranscriptBytes: トランスクリプト履歴がしきい値を超えたとき、実行前に通常のローカル Compaction を開始するオプションのバイトしきい値(numberまたは"20mb"のような文字列)。Compaction の成功後に、より小さい後継トランスクリプトへローテーションできるようにするため、truncateAfterCompactionが必要です。未設定または0の場合は無効です。notifyUser:trueの場合、簡潔なコンテキスト保守通知をユーザーに送信します。通知されるのは、Compaction の開始時と完了時(例: 「コンテキストを圧縮しています…」「Compaction が完了しました」)、および Compaction 前のメモリフラッシュが枯渇し、機能低下状態で応答を継続する場合(例: 「メモリ保守が一時的に失敗しました。応答を続行します。」)です。これらの通知を表示しないようにするため、デフォルトでは無効です。memoryFlush: 永続メモリを保存するために、自動 Compaction の前に実行されるサイレントなエージェントターン。この保守ターンをローカルモデル上で維持する必要がある場合は、modelをollama/qwen3:8bのような正確なプロバイダー/モデルに設定します。このオーバーライドは、アクティブなセッションのフォールバックチェーンを継承しません。forceFlushTranscriptBytesは、トークンカウンターが古くても、トランスクリプトサイズがしきい値に達した時点でフラッシュを強制します。ワークスペースが読み取り専用の場合はスキップされます。
summarize() を備えた Compaction プロバイダー Plugin を実装し、Compaction 後の
コンテキストを後続のモデルプロンプトへ注入する必要がある場合は
before_prompt_build を使用します。Doctor は廃止された命令フィールドを削除し、これらの
接続点を案内します。
agents.defaults.contextPruning
LLM に送信する前に、メモリ内コンテキストから古いツール結果を除去します。ディスク上のセッション履歴は変更しません。デフォルトでは無効です。有効にするには mode: "cache-ttl" を設定します。
cache-ttl モードの動作
cache-ttl モードの動作
mode: "cache-ttl"は除去処理を有効にします。- 除去では、まず大きすぎるツール結果をソフトトリミングし、必要に応じて古いツール結果を完全に消去します。
... を挿入します。完全消去では、ツール結果全体をプレースホルダーに置き換えます。注:- 画像ブロックはトリミングも消去もされません。
- 比率は文字数に基づく概算であり、正確なトークン数ではありません。
- 直近のアシスタントメッセージは保持されます。
ブロックストリーミング
- Telegram 以外のチャンネルでブロック応答を有効にするには、明示的な
*.streaming.block.enabled: trueが必要です。QQ Bot は例外で、streaming.blockキーがなく、channels.qqbot.streaming.modeが"off"でない限りブロック応答をストリーミングします。 - チャンネル単位のオーバーライド:
channels.<channel>.streaming.block.coalesce(アカウント単位のバリアントも含む)。Discord、Google Chat、Mattermost、MS Teams、Signal、Slack のデフォルトはminChars: 1500/idleMs: 1000です。 blockStreamingChunk.breakPreference: 優先するチャンク境界("paragraph" | "newline" | "sentence")。humanDelay: ブロック応答間のランダムな一時停止。デフォルト:off。natural= 800-2500ms。customはminMs/maxMsを使用します(未設定の境界値には自然な範囲を使用します)。エージェント単位のオーバーライド:agents.entries.*.humanDelay。
入力中インジケーター
- デフォルト: ダイレクトチャット/メンションでは
instant、メンションのないグループチャットではmessage。 typingIntervalSecondsのデフォルト:6。- エージェント単位のオーバーライド:
agents.entries.*.typingMode。
agents.defaults.sandbox
埋め込みエージェント向けのオプションのサンドボックス化。完全なガイドについては、サンドボックス化を参照してください。
off/docker/agent/none/bookworm-slim イメージ/none ネットワークなど)は、単なる例示値ではなく、実際の OpenClaw のデフォルトです。
sandbox.docker.binds は Docker でのみ使用できます。
イメージをビルドする場合(ソースチェックアウトから):
docker build コマンドについて サンドボックス化 § イメージとセットアップを参照してください。
agents.entries(エージェントごとのオーバーライド)
agents.entries.*.tts を使用すると、エージェントごとに独自の TTS プロバイダー、音声、モデル、
スタイル、または自動 TTS モードを指定できます。エージェントブロックはグローバルな
tts にディープマージされるため、共有認証情報を 1 か所に保持しながら、各
エージェントは必要な音声またはプロバイダーフィールドのみをオーバーライドできます。アクティブなエージェントの
オーバーライドは、自動音声応答、/tts audio、/tts status、および
tts エージェントツールに適用されます。プロバイダーの例と優先順位については、
テキスト読み上げを参照してください。
id: 安定したエージェント ID(必須)。default: 複数設定されている場合、最初のものが優先されます(警告がログに記録されます)。何も設定されていない場合、リストの最初のエントリがデフォルトになります。model: 文字列形式では、モデルのフォールバックを使用しない厳密なエージェント単位のプライマリが設定されます。オブジェクト形式の{ primary }も、fallbacksを追加しない限り厳密です。{ primary, fallbacks: [...] }を使用するとそのエージェントでフォールバックが有効になり、{ primary, fallbacks: [] }を使用すると厳密な動作を明示できます。primaryのみを上書きする Cron ジョブは、fallbacks: []を設定しない限り、引き続きデフォルトのフォールバックを継承します。utilityModel: 生成されるセッションやスレッドのタイトルなど、短い内部タスク向けの、エージェント単位のオプションの上書きです。agents.defaults.utilityModel、次に有効なセッションプロバイダーが宣言する小規模モデルのデフォルトへフォールバックします。ダッシュボードのタイトルでは、有効な通常のセッションモデルを使用して 1 回再試行します。空文字列を指定すると、ダッシュボードのタイトル生成を無効にせず、このエージェントの代替ユーティリティルートをスキップします。params:agents.defaults.modelsで選択されたモデルエントリにマージされる、エージェント単位のストリームパラメーターです。モデルカタログ全体を複製せずに、cacheRetention、temperature、maxTokensなどのエージェント固有の上書きを行う場合に使用します。tts: エージェント単位のオプションのテキスト読み上げ上書きです。このブロックはttsにディープマージされるため、共有プロバイダー認証情報とフォールバックポリシーはttsに保持し、ここではプロバイダー、音声、モデル、スタイル、自動モードなど、ペルソナ固有の値のみを設定してください。skills: エージェント単位のオプションのスキル許可リストです。省略した場合、設定されていればエージェントはagents.defaults.skillsを継承します。明示的なリストはデフォルトとマージされず、置き換えます。また、[]はスキルなしを意味します。thinkingDefault: エージェント単位のオプションのデフォルト思考レベル(off | minimal | low | medium | high | xhigh | adaptive | max)。メッセージ単位またはセッション単位の上書きが設定されていない場合、このエージェントではagents.defaults.thinkingDefaultを上書きします。有効な値は、選択したプロバイダー/モデルプロファイルによって決まります。Google Gemini では、adaptiveによりプロバイダー側の動的思考が維持されます(Gemini 3/3.1 ではthinkingLevelを省略、Gemini 2.5 ではthinkingBudget: -1)。reasoningDefault: エージェント単位のオプションのデフォルト推論表示(on | off | stream)。メッセージ単位またはセッション単位の推論上書きが設定されていない場合、このエージェントではagents.defaults.reasoningDefaultを上書きします。fastModeDefault: エージェント単位のオプションの高速モードのデフォルト("auto" | true | false)。メッセージ単位またはセッション単位の高速モード上書きが設定されていない場合に適用されます。models: 完全なprovider/modelID をキーとする、エージェント単位のオプションのモデルカタログ/ランタイム上書きです。エージェント単位のランタイム例外にはmodels["provider/model"].agentRuntimeを使用します。runtime: エージェント単位のオプションのランタイム記述子です。エージェントで ACP ハーネスセッションをデフォルトにする場合は、runtime.acpのデフォルト(agent、backend、mode、cwd)とともにtype: "acp"を使用します。identity.avatar: ワークスペース相対パス、http(s)URL、またはdata:URI。- ローカルのワークスペース相対
identity.avatar画像ファイルは 2 MB に制限されます。http(s)URL とdata:URI には、ローカルファイルサイズの制限は適用されません。 identityはデフォルトを導出します。emojiからackReaction、name/emojiからmentionPatterns。subagents.allowAgents: 明示的なsessions_spawn.agentIdターゲットに使用できる、設定済みエージェント ID の許可リストです(["*"]= 設定済みの任意のターゲット、デフォルト: 同じエージェントのみ)。自身をターゲットとするagentId呼び出しを許可する場合は、リクエスター ID を含めます。エージェント設定が削除された古いエントリはsessions_spawnによって拒否され、agents_listから除外されます。クリーンアップするにはopenclaw doctor --fixを実行します。または、デフォルトを継承しつつそのターゲットを引き続き生成可能にする場合は、最小限のagents.entries.*エントリを追加します。- サンドボックス継承ガード: リクエスターのセッションがサンドボックス化されている場合、
sessions_spawnはサンドボックス外で実行されるターゲットを拒否します。 subagents.requireAgentId: true の場合、agentIdを省略したsessions_spawn呼び出しをブロックします(明示的なプロファイル選択を強制、デフォルト: false)。subagents.maxConcurrent: サブエージェント実行全体で同時に実行できる子エージェントの最大数。デフォルト:8。subagents.maxChildrenPerAgent: 1 つのエージェントセッションが生成できるアクティブな子の最大数。デフォルト:5。subagents.maxSpawnDepth: サブエージェント生成の最大ネスト深度(1~5)。デフォルト:1(ネストなし)。subagents.archiveAfterMinutes: 完了したサブエージェントの状態がアーカイブされるまでの期間。デフォルト:60。
マルチエージェントルーティング
1 つの Gateway 内で、分離された複数のエージェントを実行します。マルチエージェントを参照してください。バインディングの照合フィールド
type(任意): 通常のルーティングではroute(type がない場合は route がデフォルト)、永続的な ACP 会話バインディングではacp。match.channel(必須)match.accountId(任意、*= 任意のアカウント、省略時 = デフォルトアカウント)match.peer(任意、{ kind: direct|group|channel, id })match.guildId/match.teamId(任意、チャンネル固有)acp(任意、type: "acp"のみ):{ mode, label, cwd, backend }
match.peermatch.guildIdmatch.teamIdmatch.accountId(完全一致、peer/guild/team なし)match.accountId: "*"(チャンネル全体)- デフォルトエージェント
bindings エントリが優先されます。
type: "acp" エントリの場合、OpenClaw は会話 ID(match.channel + アカウント + match.peer.id)の完全一致によって解決し、前述のルートバインディングの階層順序は使用しません。
エージェント単位のアクセスプロファイル
フルアクセス(サンドボックスなし)
フルアクセス(サンドボックスなし)
読み取り専用ツール + ワークスペース
読み取り専用ツール + ワークスペース
ファイルシステムアクセスなし(メッセージングのみ)
ファイルシステムアクセスなし(メッセージングのみ)
セッション
セッションフィールドの詳細
セッションフィールドの詳細
scope: グループチャットコンテキストの基本セッショングループ化戦略。per-sender(デフォルト): 各送信者に、チャネルコンテキスト内で分離されたセッションが割り当てられます。global: チャネルコンテキスト内のすべての参加者が単一のセッションを共有します(共有コンテキストを意図する場合にのみ使用してください)。
dmScope: DM のグループ化方法。main: すべての DM がメインセッションを共有します。per-peer: チャネルをまたいで送信者 ID ごとに分離します。per-channel-peer: チャネルと送信者の組み合わせごとに分離します(複数ユーザーの受信トレイに推奨)。per-account-channel-peer: アカウント、チャネル、送信者の組み合わせごとに分離します(複数アカウントに推奨)。
identityLinks: チャネル間でセッションを共有するため、正規 ID をプロバイダー接頭辞付きのピアにマッピングします。/dock_discordなどのドックコマンドも同じマップを使用し、アクティブなセッションの返信経路を、リンクされた別のチャネルピアへ切り替えます。チャネルのドッキングを参照してください。reset: 主要なリセットポリシー。noneは自動リセットを無効にし、デフォルトです。代わりに Compaction がアクティブコンテキストを制限します。dailyは local time のatHourにリセットし、idleはidleMinutes後にリセットします。両方が設定されている場合、先に期限を迎えた方が適用されます。/newと/resetはすべてのモードで引き続き使用できます。日次リセットの鮮度判定にはセッション行のsessionStartedAtを使用し、アイドルリセットの鮮度判定にはlastInteractionAtを使用します。Heartbeat、Cron のウェイクアップ、exec 通知、Gateway の管理処理などのバックグラウンド/システムイベントによる書き込みはupdatedAtを更新することがありますが、日次/アイドルセッションの鮮度は維持しません。resetByType: タイプごとのオーバーライド(direct、group、thread)。Doctor は従来のdmエントリをdirectに移行します。スキーマはdmを拒否します。
resetByChannel: プロバイダー/チャネル ID をキーとする、チャネルごとのリセットオーバーライド。セッションのチャネルに一致するエントリがある場合、そのセッションではresetByType/resetより無条件に優先されます。あるチャネルだけにタイプ単位のポリシーとは異なるリセット動作が必要な場合にのみ使用してください。mainKey: 従来のフィールド。ランタイムはメインのダイレクトチャット用バケットに常に"main"を使用します。sendPolicy:channel、chatType(direct|group|channel、従来のdmエイリアスを含む)、keyPrefix、またはrawKeyPrefixで照合します。最初に一致した拒否が優先されます。maintenance: セッションストアのクリーンアップと保持に関する制御。mode:enforceはクリーンアップを適用し、デフォルトです。warnは警告のみを出力します。pruneAfter: 古いエントリを判定する経過時間のしきい値(デフォルトは30d)。maxEntries: SQLite セッションエントリの最大数(デフォルトは500)。ランタイムによる書き込みでは、本番規模の上限に対して小さな上限超過バッファーを設けて一括クリーンアップを行います。openclaw sessions cleanup --enforceは上限を即時に適用します。- 短時間のみ使用される Gateway モデル実行プローブセッションには固定の
24h保持期間が適用されますが、クリーンアップは負荷に応じて実行されます。セッションエントリのメンテナンス/上限負荷に達した場合にのみ、古い厳密なモデル実行プローブ行を削除します。agent:*:explicit:model-run-<uuid>に一致する、明示された厳密なプローブキーだけが対象です。通常のダイレクト、グループ、スレッド、Cron、フック、Heartbeat、ACP、サブエージェントの各セッションには、この 24h の保持期間は継承されません。モデル実行のクリーンアップは、より広範なpruneAfterによる古いエントリのクリーンアップとmaxEntriesの上限適用より先に実行されます。 - 従来の
rotateBytesは現在のスキーマで拒否されます。openclaw doctor --fixは古い設定からこれを削除します。 resetArchiveRetention: リセット/削除されたトランスクリプトアーカイブの経過時間ベースの保持期間。デフォルトでは、アーカイブはディスク容量の制限によって削除されるまで保持されます。実時間に基づく削除を有効にするには期間を設定し、明示的に無効にするにはfalseを設定します。maxDiskBytes: セッションディレクトリに対する任意のディスク容量制限。warnモードでは警告をログに記録し、enforceモードでは古いアーティファクト/セッションから順に削除します。highWaterBytes: 容量制限のクリーンアップ後に目指す任意の目標値。デフォルトはmaxDiskBytesの80%です。
threadBindings: スレッドに紐付けられたセッション機能のグローバルデフォルト。enabled: 対応チャネルのスレッド紐付けに対するマスタースイッチidleHours: 非アクティブ時に自動でフォーカスを解除するまでのデフォルト時間(時間単位。0で無効化。プロバイダーによるオーバーライドが可能)maxAgeHours: デフォルトの絶対最大存続時間(時間単位。0で無効化。プロバイダーによるオーバーライドが可能)spawnSessions:sessions_spawnおよび ACP スレッド生成からスレッド紐付け作業セッションを作成するためのデフォルトゲート。スレッド紐付けが有効な場合、デフォルトはtrueです。プロバイダー/アカウントによるオーバーライドが可能です。defaultSpawnContext: スレッド紐付け生成に使用するデフォルトのネイティブサブエージェントコンテキスト("fork"または"isolated")。デフォルトは"fork"です。
sharing: 所有者およびoperator.admin接続が選択できるセッションごとのコラボレーションモードを制御します。すべてのフラグのデフォルトはtrueです。いずれかをfalseに設定すると、その選択肢が Control UI から削除され、作成時の公開範囲指定またはsession.visibility.setで拒否されるようになります。Control UI でドラフトとして開始しない限り、新しいセッションはsharedで開始されます。readOnly:read-onlyを許可します。このモードでは、非メンバーは閲覧できますが、送信、誘導、中止、承認、セッション状態の変更はできません。suggest:suggestを許可します。現段階ではread-onlyと同じ参加許可動作を適用します。提案キューは今後追加される機能です。drafts:draftを許可します。これにより、管理者でも所有者でもないユーザーのセッション一覧およびイベントブロードキャストからセッションが非表示になります。
メッセージ
応答接頭辞
チャネル/アカウントごとのオーバーライド:channels.<channel>.responsePrefix、channels.<channel>.accounts.<id>.responsePrefix。
解決順序(最も具体的な設定が優先): アカウント → チャネル → グローバル。"" は無効化し、カスケードを停止します。"auto" は [{identity.name}] を導出します。
テンプレート変数:
変数では大文字と小文字を区別しません。
{think} は {thinkingLevel} のエイリアスです。
確認リアクション
- デフォルトはアクティブなエージェントの
identity.emojiで、設定されていない場合は"👀"です。無効にするには""を設定します。 - チャネルごとのオーバーライド:
channels.<channel>.ackReaction、channels.<channel>.accounts.<id>.ackReaction。 - 解決順序: アカウント → チャネル →
messages.ackReaction→ アイデンティティのフォールバック。 - 範囲:
group-mentions(デフォルト)、group-all、direct、all、またはoff/none(確認リアクションを完全に無効化)。 messages.statusReactions.enabled: Slack、Discord、Signal、Telegram、WhatsApp でライフサイクルステータスのリアクションを有効にします。 Discord では、未設定の場合、確認リアクションが有効であればステータスリアクションも有効のままです。 Slack、Signal、Telegram、WhatsApp では、ライフサイクルステータスのリアクションを有効にするため、明示的にtrueを設定します。 Slack はデフォルトで、ネイティブのアシスタントスレッドステータスと切り替わる読み込みメッセージを進捗表示に使用し、設定済みの確認リアクションは固定したままにします。
キュー
mode: セッション実行中に到着した受信メッセージのキュー戦略。デフォルト:"steer"。steer: 新しいプロンプトをアクティブな実行に挿入します。followup: アクティブな実行が終了した後に新しいプロンプトを実行します。collect: 互換性のあるメッセージをまとめ、後で一括して実行します。interrupt: 最新のプロンプトを開始する前に、アクティブな実行を中止します。
debounceMs: キューに追加/誘導されたメッセージをディスパッチするまでの遅延。デフォルト:500。cap: 破棄ポリシーが適用されるまでのキューメッセージの最大数。デフォルト:20。drop: 上限を超えた場合の戦略。"summarize"(デフォルト)は最も古いエントリを破棄しますが、簡潔な要約は保持します。"old"は要約を残さず最も古いエントリを破棄し、"new"は最新の項目を拒否します。byChannel: プロバイダー ID をキーとする、チャネルごとのmodeオーバーライド。debounceMsByChannel: プロバイダー ID をキーとする、チャネルごとのdebounceMsオーバーライド。
受信デバウンス
同じ送信者から短時間に連続して届いたテキストのみのメッセージを、1 回のエージェントターンにまとめます。メディア/添付ファイルは即座にフラッシュされます。制御コマンドはデバウンスを迂回します。デフォルトのdebounceMs: 2000。
その他のメッセージキー
channels.whatsapp.responsePrefix: WhatsApp の送信返信接頭辞。Doctor は、この正規値が未設定の場合に限り、廃止された受信用messagePrefixの値をここへ移動します。messages.visibleReplies: ダイレクト、グループ、チャネルの各会話で表示される送信元返信を制御します("message_tool"で表示可能な出力を得るにはmessage(action=send)が必要です。"automatic"は従来どおり通常の返信を投稿します)。messages.usageTemplate/messages.responseUsage: カスタム/usageフッターテンプレートと、返信ごとのデフォルト使用モード(off | tokens | full、およびtokensに対する従来のonエイリアス)。messages.groupChat.mentionPatterns/historyLimit: グループメッセージのメンショントリガーと履歴ウィンドウのサイズ設定。messages.suppressToolErrors:trueの場合、ユーザーに表示される⚠️ツールエラー警告を抑制します(エージェントは引き続きコンテキスト内でエラーを確認でき、再試行できます)。デフォルト:false。
TTS(テキスト読み上げ)
~/.openclaw/settings/tts.json、OPENCLAW_TTS_PREFS で上書き可能)。高度な
マルチエージェント構成では、エージェントごとに異なる設定ストアを使用するために
agents.entries.<id>.tts.prefsPath を設定できます。
autoはデフォルトの自動 TTS モードを制御します:off、always、inbound、またはtagged。/tts on|offでローカル設定を上書きでき、/tts statusで有効な状態を確認できます。summaryModelは、自動要約に使用するagents.defaults.model.primaryを上書きします。modelOverridesはデフォルトで有効です(enabled !== false)。modelOverrides.allowProviderは明示的な有効化が必要です。- API キーは、
ELEVENLABS_API_KEY/XI_API_KEYおよびOPENAI_API_KEYにフォールバックします。 - バンドルされた音声プロバイダーは Plugin が所有します。
plugins.allowが設定されている場合は、使用する各 TTS プロバイダー Plugin を含めてください。たとえば、Edge TTS の場合はmicrosoftです。従来のedgeプロバイダー ID は、microsoftのエイリアスとして受け入れられます。 providers.openai.baseUrlは OpenAI TTS エンドポイントを上書きします。解決順序は、設定、OPENAI_TTS_BASE_URL、https://api.openai.com/v1の順です。providers.openai.baseUrlが OpenAI 以外のエンドポイントを指す場合、OpenClaw はそれを OpenAI 互換 TTS サーバーとして扱い、モデルと音声の検証を緩和します。
トーク
トークモード(macOS/iOS/Android およびブラウザーの Control UI)のデフォルト設定です。- 複数のトークプロバイダーを設定する場合、
talk.providerはtalk.providers内のキーと一致する必要があります。 - 従来のフラットなトークキー(
talk.voiceId、talk.voiceAliases、talk.modelId、talk.outputFormat、talk.apiKey)は互換性のためだけに存在します。openclaw doctor --fixを実行して、保存済みの設定をtalk.providers.<provider>に書き換えてください。 - 音声 ID は、
ELEVENLABS_VOICE_IDまたはSAG_VOICE_IDにフォールバックします(macOS トーククライアントの動作)。 providers.*.apiKeyには、プレーンテキスト文字列または SecretRef オブジェクトを指定できます。ELEVENLABS_API_KEYへのフォールバックは、トーク API キーが設定されていない場合にのみ適用されます。providers.*.voiceAliasesを使用すると、トークディレクティブでわかりやすい名前を使用できます。providers.mlx.modelIdは、macOS のローカル MLX ヘルパーが使用する Hugging Face リポジトリを選択します。省略した場合、macOS はmlx-community/Soprano-80M-bf16を使用します。- macOS の MLX 再生は、バンドルされた
openclaw-mlx-ttsヘルパーが存在する場合はそれを介して実行され、存在しない場合はPATH上の実行可能ファイルを使用します。開発時にはOPENCLAW_MLX_TTS_BINでヘルパーのパスを上書きできます。 consultThinkingLevelは、Control UI のトークリアルタイムopenclaw_agent_consult呼び出しの背後で実行される OpenClaw エージェント全体の思考レベルを制御します。通常のセッションやモデルの動作を維持するには、未設定のままにしてください。consultFastModeは、セッションの通常の高速モード設定を変更せずに、Control UI のトークリアルタイムコンサルトに対する一度限りの高速モード上書きを設定します。speechLocaleは、Android、iOS、macOS のトーク音声認識で使用する BCP 47 ロケール ID を設定します。Android では、その言語部分をリアルタイム入力の文字起こしにも使用します。デバイスのデフォルトを使用するには、未設定のままにしてください。silenceTimeoutMsは、ユーザーが話し終えてからトークモードが文字起こしを送信するまでの待機時間を制御します。未設定の場合は、プラットフォームのデフォルトの一時停止時間(700 ms on macOS and Android, 900 ms on iOS)が維持されます。realtime.instructionsは、プロバイダー向けのシステム指示を OpenClaw の組み込みリアルタイムプロンプトに追加します。これにより、デフォルトのopenclaw_agent_consultガイダンスを失うことなく音声スタイルを設定できます。realtime.vadThresholdは、プロバイダーの音声アクティビティしきい値を0(最高感度)から1(最低感度)の範囲で設定します。未設定の場合は、プロバイダーのデフォルトが維持されます。realtime.silenceDurationMsは、プロバイダーがリアルタイムのユーザーターンを確定するまでの無音時間を正の整数で設定します。未設定の場合は、プロバイダーのデフォルトが維持されます。realtime.prefixPaddingMsは、音声の検出が始まる前に保持する音声量を負でない整数で設定します。未設定の場合は、プロバイダーのデフォルトが維持されます。realtime.reasoningEffortは、リアルタイムセッションにおけるプロバイダー固有の推論レベルを設定します。未設定の場合は、プロバイダーのデフォルトが維持されます。realtime.consultRouting:"provider-direct"(デフォルト)は、リアルタイムプロバイダーがopenclaw_agent_consultなしで最終的なユーザー文字起こしを生成した場合に、プロバイダーからの直接応答を維持します。代わりに、"force-agent-consult"は確定したリクエストを OpenClaw 経由で処理します。