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.list[].skills を設定していないエージェント向けの任意のデフォルト skill 許可リスト。
- デフォルトで Skills を無制限にするには、
agents.defaults.skillsを省略します。 - デフォルトを継承するには、
agents.list[].skillsを省略します。 - Skills なしにするには、
agents.list[].skills: []を設定します。 - 空でない
agents.list[].skillsリストは、そのエージェントの最終セットです。 デフォルトとはマージされません。
agents.defaults.skipBootstrap
ワークスペースのブートストラップファイル(AGENTS.md、SOUL.md、TOOLS.md、IDENTITY.md、USER.md、HEARTBEAT.md、BOOTSTRAP.md)の自動作成を無効にします。
agents.defaults.skipOptionalBootstrapFiles
必須のブートストラップファイル(AGENTS.md、TOOLS.md、BOOTSTRAP.md)は書き込みつつ、選択した任意のワークスペースファイルの作成をスキップします。有効な値: SOUL.md、USER.md、HEARTBEAT.md、IDENTITY.md。
agents.defaults.contextInjection
ワークスペースのブートストラップファイルをいつシステムプロンプトへ注入するかを制御します。デフォルト: "always"。
"continuation-skip": 安全な継続ターン(完了したアシスタント応答の後)ではワークスペースブートストラップの再注入をスキップし、プロンプトサイズを削減します。Heartbeat 実行と Compaction 後のリトライでは引き続きコンテキストを再構築します。"never": すべてのターンでワークスペースブートストラップとコンテキストファイル注入を無効にします。これは、プロンプトのライフサイクルを完全に自前で管理するエージェント(カスタムコンテキストエンジン、自前でコンテキストを構築するネイティブランタイム、またはブートストラップ不要の特殊なワークフロー)でのみ使用してください。Heartbeat と Compaction リカバリーターンでも注入はスキップされます。
agents.list[].contextInjection。省略された値は
agents.defaults.contextInjection を継承します。
agents.defaults.bootstrapMaxChars
切り詰め前の、ワークスペースブートストラップファイルごとの最大文字数。デフォルト: 20000。
agents.list[].bootstrapMaxChars。省略された値は
agents.defaults.bootstrapMaxChars を継承します。
agents.defaults.bootstrapTotalMaxChars
すべてのワークスペースブートストラップファイルにわたって注入される合計最大文字数。デフォルト: 60000。
agents.list[].bootstrapTotalMaxChars。省略された値は
agents.defaults.bootstrapTotalMaxChars を継承します。
エージェントごとのブートストラッププロファイル上書き
あるエージェントで共有デフォルトとは異なるプロンプト注入動作が必要な場合は、エージェントごとのブートストラッププロファイル上書きを使用します。省略されたフィールドはagents.defaults から継承します。
agents.defaults.bootstrapPromptTruncationWarning
ブートストラップコンテキストが切り詰められたときの、エージェントに見えるシステムプロンプト通知を制御します。
デフォルト: "always"。
"off": 切り詰め通知テキストをシステムプロンプトへ注入しません。"once": 一意の切り詰めシグネチャごとに、簡潔な通知を一度だけ注入します。"always": 切り詰めがある場合、実行ごとに簡潔な通知を注入します(推奨)。
コンテキスト予算の所有マップ
OpenClaw には大容量のプロンプト/コンテキスト予算が複数あり、それらは 1つの汎用ノブにすべて流すのではなく、意図的にサブシステムごとに分割されています。| 予算 | 対象 |
|---|---|
agents.defaults.bootstrapMaxChars / bootstrapTotalMaxChars | 通常のワークスペースブートストラップ注入 |
agents.defaults.startupContext.* | 直近の日次 memory/*.md ファイルを含む、リセット/起動時モデル実行の一回限りの前置き。素のチャット /new と /reset はモデルを呼び出さずに確認応答されます |
skills.limits.* | システムプロンプトへ注入されるコンパクトな Skills リスト |
agents.defaults.contextLimits.* | 境界付けされたランタイム抜粋と、ランタイム所有の注入ブロック |
memory.qmd.limits.* | インデックス済みメモリ検索スニペットと注入サイズ |
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextInjectionagents.list[].bootstrapMaxCharsagents.list[].bootstrapTotalMaxCharsagents.list[].contextLimits.*
agents.defaults.startupContext
リセット/起動時のモデル実行で注入される初回ターンの起動前置きを制御します。
素のチャット /new と /reset コマンドは、モデルを呼び出さずにリセットを確認応答するため、
この前置きを読み込みません。
agents.defaults.contextLimits
境界付けされたランタイムコンテキストサーフェスの共有デフォルト。
memoryGetMaxChars: 切り詰めメタデータと継続通知が追加される前の、デフォルトのmemory_get抜粋上限。memoryGetDefaultLines:linesが省略された場合の、デフォルトのmemory_get行ウィンドウ。toolResultMaxChars: 永続化された結果とオーバーフローリカバリーに使用される、高度なライブツール結果の上限。モデルコンテキスト自動上限を使用するには未設定のままにします: 100K トークン未満では16000文字、100K+ トークンでは32000文字、200K+ トークンでは64000文字。長コンテキストモデル向けに1000000までの明示値を受け付けますが、 実効上限は引き続きモデルコンテキストウィンドウのおよそ 30% に制限されます。openclaw doctor --deepは実効上限を表示し、 doctor は明示的な上書きが古い、または効果がない場合にのみ警告します。postCompactionMaxChars: Compaction 後の更新注入時に使用される AGENTS.md 抜粋上限。
agents.list[].contextLimits
共有 contextLimits ノブのエージェントごとの上書き。省略されたフィールドは
agents.defaults.contextLimits から継承します。
skills.limits.maxSkillsPromptChars
システムプロンプトへ注入されるコンパクトな Skills リストのグローバル上限。これは
必要に応じて SKILL.md ファイルを読む動作には影響しません。
agents.list[].skillsLimits.maxSkillsPromptChars
Skills プロンプト予算のエージェントごとの上書き。
agents.defaults.imageMaxDimensionPx
プロバイダー呼び出し前に transcript/tool の画像ブロックで使用する、画像の最長辺の最大ピクセルサイズ。
デフォルト: 1200。
通常、低い値にすると、スクリーンショットが多い実行で vision-token の使用量とリクエストペイロードサイズを削減できます。
高い値にすると、より多くの視覚的詳細を保持できます。
agents.defaults.imageQuality
ファイルパス、URL、メディア参照から読み込まれた画像に対する、画像ツールの圧縮/詳細設定。
デフォルト: auto。
OpenClaw は、選択された画像モデルに合わせてリサイズ段階を調整します。たとえば、Claude Opus 4.8、OpenAI GPT-5.5、Qwen VL、ホスト型 Llama 4 vision モデルは、古い/デフォルトの高詳細 vision パスより大きな画像を使用できます。一方、複数画像ターンでは、トークンとレイテンシのコストを制御するため、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 自動スレッドタイトルで使われます。未設定の場合、これらのタスクはエージェントのプライマリモデルにフォールバックします。agents.list[].utilityModelはデフォルトを上書きし、操作固有のモデル上書きはその両方より優先されます。ユーティリティタスクは個別のモデル呼び出しを行い、タスク固有の内容を選択されたモデルプロバイダーへ送信します。ダッシュボードタイトル生成では、最初の非コマンドメッセージの先頭最大 1,000 文字を送信します。コストとデータ処理要件に合うプロバイダーを選択してください。imageModel: 文字列("provider/model")またはオブジェクト({ primary, fallbacks })を受け付けます。imageツールパスで、そのビジョンモデル設定として使われます。- 選択済みまたはデフォルトのモデルが画像入力を受け付けられない場合のフォールバックルーティングにも使われます。
- 明示的な
provider/model参照を推奨します。互換性のため裸の ID も受け付けます。裸の ID がmodels.providers.*.models内の設定済み画像対応エントリに一意に一致する場合、OpenClaw はそのプロバイダーで修飾します。設定済みの一致が曖昧な場合は、明示的なプロバイダー接頭辞が必要です。
imageGenerationModel: 文字列("provider/model")またはオブジェクト({ primary, fallbacks })を受け付けます。- 共有の画像生成機能と、画像を生成する将来のツール/Plugin サーフェスで使われます。
- 典型的な値: ネイティブ Gemini 画像生成には
google/gemini-3.1-flash-image-preview、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 順に試します。
musicGenerationModel: 文字列("provider/model")またはオブジェクト({ primary, fallbacks })を受け付けます。- 共有の音楽生成機能と組み込みの
music_generateツールで使われます。 - 典型的な値:
google/lyria-3-clip-preview、google/lyria-3-pro-preview、またはminimax/music-2.6。 - 省略した場合でも、
music_generateは認証に裏付けられたプロバイダーデフォルトを推論できます。現在のデフォルトプロバイダーを最初に試し、その後、残りの登録済み音楽生成プロバイダーをプロバイダー ID 順に試します。 - プロバイダー/モデルを直接選択する場合は、一致するプロバイダー認証/API キーも設定してください。
- 共有の音楽生成機能と組み込みの
videoGenerationModel: 文字列("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にフォールバックし、その後、解決済みのセッション/デフォルトモデルにフォールバックします。
pdfMaxBytesMb: 呼び出し時にmaxBytesMbが渡されていない場合の、pdfツールのデフォルト PDF サイズ上限です。pdfMaxPages:pdfツールの抽出フォールバックモードで考慮されるデフォルトの最大ページ数です。verboseDefault: エージェントのデフォルト verbose レベルです。値:"off"、"on"、"full"。デフォルト:"off"。toolProgressDetail:/verboseツール要約と進行中ドラフトのツール行の詳細モードです。値:"explain"(デフォルト、コンパクトな人間向けラベル)または"raw"(利用可能な場合に生のコマンド/詳細を追加)。エージェントごとのagents.list[].toolProgressDetailはこのデフォルトを上書きします。reasoningDefault: エージェントのデフォルト推論表示です。値:"off"、"on"、"stream"。エージェントごとのagents.list[].reasoningDefaultはこのデフォルトを上書きします。設定済みの推論デフォルトは、メッセージごとまたはセッションの推論上書きが設定されていない場合に限り、所有者、認可済み送信者、または operator-admin Gateway コンテキストに対してのみ適用されます。elevatedDefault: エージェントのデフォルト elevated-output レベルです。値:"off"、"on"、"ask"、"full"。デフォルト:"on"。model.primary: 形式はprovider/model(例: OpenAI API キーまたは Codex OAuth アクセス用のopenai/gpt-5.5)。プロバイダーを省略した場合、OpenClaw は最初にエイリアスを試し、次にその正確なモデル ID について一意の設定済みプロバイダー一致を試し、その後にだけ設定済みデフォルトプロバイダーへフォールバックします(非推奨の互換性動作のため、明示的なprovider/modelを推奨)。そのプロバイダーが設定済みデフォルトモデルを公開しなくなった場合、OpenClaw は古い削除済みプロバイダーのデフォルトを表面化させる代わりに、最初の設定済みプロバイダー/モデルへフォールバックします。models:/model用に設定されたモデルカタログと許可リストです。各エントリにはalias(ショートカット)とparams(プロバイダー固有。例:temperature、maxTokens、cacheRetention、context1m、responsesServerCompaction、responsesCompactThreshold、OpenRouterproviderルーティング、chat_template_kwargs、extra_body/extraBody)を含められます。"openai/*": {}や"vllm/*": {}のようなprovider/*エントリを使うと、すべてのモデル ID を手動で列挙せずに、選択したプロバイダーで検出された全モデルを表示できます。- そのプロバイダーで動的に検出されるすべてのモデルに同じランタイムを使わせる場合は、
provider/*エントリにagentRuntimeを追加します。正確なprovider/modelランタイムポリシーは引き続きワイルドカードより優先されます。 - 安全な編集: エントリを追加するには
openclaw config set agents.defaults.models '<json>' --strict-json --mergeを使います。config setは、--replaceを渡さない限り、既存の許可リストエントリを削除する置換を拒否します。 - プロバイダースコープの configure/オンボーディングフローは、選択されたプロバイダーモデルをこのマップにマージし、すでに設定済みの無関係なプロバイダーを保持します。
- 直接 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.list[].params(一致するエージェント ID)がキーごとに上書きします。詳細は Prompt Caching を参照してください。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: vLLM/OpenAI 互換のチャットテンプレート引数で、トップレベルのapi: "openai-completions"リクエスト本文にマージされます。思考がオフのvllm/nemotron-3-*では、バンドルされた vLLM Plugin が自動的にenable_thinking: falseとforce_nonempty_content: trueを送信します。明示的なchat_template_kwargsは生成されたデフォルトを上書きし、extra_body.chat_template_kwargsが引き続き最終優先されます。設定済みの vLLM Qwen と Nemotron 思考モデルは、多段階の effort ラダーではなく、二値の/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 互換 reasoning effort リストです。本当に受け付けるカスタムエンドポイントには"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")をプローブし、エンドポイントがダウンしている場合はcommandをargs付きで起動し、最大readyTimeoutMsまで待機してからモデルリクエストを送信します。commandは絶対パスでなければなりません。idleStopMs: 0は OpenClaw が終了するまでプロセスを生存させます。正の値は、OpenClaw が生成したプロセスを、そのミリ秒数だけアイドルになった後に停止します。ローカルモデルサービス を参照してください。- ランタイムポリシーは
agents.defaultsではなく、プロバイダーまたはモデルに属します。プロバイダー全体のルールにはmodels.providers.<provider>.agentRuntimeを使い、モデル固有のルールにはagents.defaults.models["provider/model"].agentRuntime/agents.list[].models["provider/model"].agentRuntimeを使います。公式 OpenAI プロバイダー上の OpenAI エージェントモデルは、デフォルトで Codex を選択します。 - これらのフィールドを変更する設定ライター(たとえば
/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.list[].models["provider/model"]、agents.defaults.models["provider/model"]、またはmodels.providers.<provider>.models[])、次にagents.list[]/agents.defaults.models["provider/*"]、最後にmodels.providers.<provider>.agentRuntimeのプロバイダー全体ポリシーです。 - エージェント全体のランタイムキーはレガシーです。
agents.defaults.agentRuntime、agents.list[].agentRuntime、セッションランタイムのピン留め、OPENCLAW_AGENT_RUNTIMEはランタイム選択で無視されます。古い値を削除するにはopenclaw doctor --fixを実行してください。 - OpenAI エージェントモデルはデフォルトで Codex ハーネスを使用します。明示したい場合、プロバイダー/モデルの
agentRuntime.id: "codex"は引き続き有効です。 - Claude CLI デプロイでは、
model: "anthropic/claude-opus-4-8"と、モデルスコープのagentRuntime.id: "claude-cli"を推奨します。レガシーなclaude-cli/<model>参照は互換性のため引き続き動作しますが、新しい設定ではプロバイダー/モデル選択を正規の形に保ち、実行バックエンドをプロバイダー/モデルのランタイムポリシーに置いてください。 - これはテキストのエージェントターン実行のみを制御します。メディア生成、ビジョン、PDF、音楽、動画、TTS は引き続き各プロバイダー/モデル設定を使用します。
agents.defaults.models にある場合にのみ適用):
| エイリアス | モデル |
|---|---|
opus | anthropic/claude-opus-4-8 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.4 |
gpt-mini | openai/gpt-5.4-mini |
gpt-nano | openai/gpt-5.4-nano |
gemini | google/gemini-3.1-pro-preview |
gemini-flash | google/gemini-3-flash-preview |
gemini-flash-lite | google/gemini-3.1-flash-lite |
--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 のプロバイダー所有の effort デフォルトは high です。Claude 4.6 モデルは、明示的な思考レベルが設定されていない場合、デフォルトで adaptive になります。
agents.defaults.cliBackends
テキストのみのフォールバック実行(ツール呼び出しなし)用の任意の CLI バックエンド。API プロバイダーが失敗した場合のバックアップとして便利です。
- CLI バックエンドはテキスト優先です。ツールは常に無効です。
sessionArgが設定されている場合、セッションがサポートされます。imageArgがファイルパスを受け付ける場合、画像のパススルーがサポートされます。reseedFromRawTranscriptWhenUncompacted: trueを使用すると、最初の Compaction サマリーが存在する前に、境界付きの生 OpenClaw トランスクリプト末尾から、バックエンドが安全に無効化されたセッションを復元できます。認証プロファイルや認証情報エポックの変更では、生の再シードは引き続き決して行われません。
agents.defaults.promptOverlays
OpenClaw が組み立てるプロンプトサーフェス上で、モデルファミリーごとに適用されるプロバイダー非依存のプロンプトオーバーレイ。GPT-5 ファミリーのモデル ID は、OpenClaw/プロバイダールート全体で共有の動作契約を受け取ります。personality は、親しみやすい対話スタイルレイヤーのみを制御します。ネイティブ Codex アプリサーバールートは、この OpenClaw GPT-5 オーバーレイの代わりに Codex 所有のベース/モデル指示を保持し、OpenClaw はネイティブスレッドで Codex の組み込み personality を無効にします。
"friendly"(デフォルト)と"on"は、親しみやすい対話スタイルレイヤーを有効にします。"off"は親しみやすいレイヤーのみを無効にします。タグ付きの GPT-5 動作契約は有効なままです。- レガシーな
plugins.entries.openai.config.personalityは、この共有設定が未設定の場合に引き続き読み取られます。
agents.defaults.heartbeat
定期的な Heartbeat 実行。
every: 期間文字列(ms/s/m/h)。デフォルト:30m(API キー認証)または1h(OAuth 認証)。無効にするには0mに設定します。includeSystemPromptSection: false の場合、システムプロンプトから Heartbeat セクションを省略し、ブートストラップコンテキストへのHEARTBEAT.md注入をスキップします。デフォルト:true。suppressToolErrorWarnings: true の場合、Heartbeat 実行中のツールエラー警告ペイロードを抑制します。timeoutSeconds: Heartbeat エージェントターンが中止されるまでに許可される最大秒数。未設定の場合は、設定されていればagents.defaults.timeoutSecondsを使用し、そうでなければ Heartbeat 間隔を最大 600 秒に制限した値を使用します。directPolicy: ダイレクト/DM 配信ポリシー。allow(デフォルト)はダイレクトターゲット配信を許可します。blockはダイレクトターゲット配信を抑制し、reason=dm-blockedを出力します。lightContext: true の場合、Heartbeat 実行は軽量ブートストラップコンテキストを使用し、ワークスペースのブートストラップファイルからHEARTBEAT.mdのみを保持します。isolatedSession: true の場合、各 Heartbeat は以前の会話履歴なしの新しいセッションで実行されます。cron のsessionTarget: "isolated"と同じ分離パターンです。Heartbeat あたりのトークンコストを約 100K から約 2-5K トークンに削減します。skipWhenBusy: true の場合、Heartbeat 実行はそのエージェントの追加のビジーレーン、つまり自身のセッションキー付きサブエージェントやネストされたコマンド作業で延期されます。Cron レーンは、このフラグがなくても常に Heartbeat を延期します。- エージェントごと:
agents.list[].heartbeatを設定します。いずれかのエージェントがheartbeatを定義している場合、それらのエージェントのみ が Heartbeat を実行します。 - Heartbeat は完全なエージェントターンを実行します。間隔を短くすると、より多くのトークンを消費します。
agents.defaults.compaction
mode:defaultまたはsafeguard(長い履歴向けのチャンク化された要約)。Compaction を参照してください。provider: 登録済みの Compaction プロバイダー Plugin の id。設定すると、組み込み LLM 要約の代わりにプロバイダーのsummarize()が呼び出されます。失敗時は組み込みにフォールバックします。プロバイダーを設定するとmode: "safeguard"が強制されます。Compaction を参照してください。timeoutSeconds: OpenClaw が中止するまでに、1 回の Compaction 操作に許可される最大秒数。デフォルト:180。reserveTokens: Compaction 後に、モデル出力と将来のツール結果のために確保しておくトークンの余裕。モデルのコンテキストウィンドウが既知の場合、OpenClaw は有効な予約量を制限し、プロンプト予算を消費しすぎないようにします。reserveTokensFloor: 埋め込みランタイムによって強制される最小予約量。下限を無効にするには0を設定します。この下限は引き続き、アクティブなコンテキストウィンドウ上限の対象になります。keepRecentTokens: 直近のトランスクリプト末尾をそのまま保持するためのエージェントの切断点予算。手動の/compactは明示的に設定されている場合これを尊重します。それ以外の場合、手動 Compaction はハードチェックポイントです。recentTurnsPreserve: safeguard 要約の外側でそのまま保持される、直近のユーザー/アシスタントのターン数。デフォルト:3。maxHistoryShare: Compaction 後に保持される履歴に許可される、総コンテキスト予算の最大割合(範囲0.1-0.9)。identifierPolicy:strict(デフォルト)、off、またはcustom。strictは、Compaction 要約中に組み込みの不透明識別子保持ガイダンスを前置します。identifierInstructions:identifierPolicy=customのときに使われる、任意のカスタム識別子保持テキスト。qualityGuard: safeguard 要約の不正形式出力に対するリトライチェック。safeguard モードではデフォルトで有効です。監査をスキップするにはenabled: falseを設定します。midTurnPrecheck: 任意のツールループ圧力チェック。enabled: trueの場合、OpenClaw はツール結果が追加された後、次のモデル呼び出しの前にコンテキスト圧力を確認します。コンテキストが収まらなくなっている場合、プロンプト送信前に現在の試行を中止し、既存の事前チェック復旧パスを再利用してツール結果を切り詰めるか、Compaction してリトライします。defaultとsafeguardの両方の Compaction モードで動作します。デフォルト: 無効。postIndexSync: Compaction 後のセッションメモリ再インデックスモード。デフォルト:"async"。最も強い鮮度には"await"、Compaction レイテンシを下げるには"async"、セッションメモリ同期が別の場所で処理される場合のみ"off"を使用します。postCompactionSections: Compaction 後に再注入する任意の AGENTS.md H2/H3 セクション名。未設定または[]に設定されている場合、再注入は無効です。["Session Startup", "Red Lines"]を明示的に設定するとそのペアが有効になり、従来のEvery Session/Safetyフォールバックが保持されます。Compaction 要約にすでに取り込まれたプロジェクトガイダンスを重複させるリスクに見合うだけの追加コンテキストがある場合のみ有効にしてください。model: Compaction 要約だけに使う任意のprovider/model-idまたはagents.defaults.modelsのベアエイリアス。ベアエイリアスはディスパッチ前に解決されます。設定済みのリテラルモデル ID は、衝突時に優先順位を保持します。メインセッションでは 1 つのモデルを維持しつつ、Compaction 要約を別のモデルで実行したい場合に使用します。未設定の場合、Compaction はセッションのプライマリモデルを使用します。truncateAfterCompaction: Compaction 後にアクティブなセッション JSONL をローテーションし、将来のターンが要約と未要約の末尾だけを読み込むようにします。一方で、以前の完全なトランスクリプトはアーカイブされたまま残ります。長時間実行されるセッションで、アクティブなトランスクリプトが無制限に増えるのを防ぎます。デフォルト:false。maxActiveTranscriptBytes: アクティブ JSONL がしきい値を超えて増加したときに、実行前に通常のローカル Compaction をトリガーする任意のバイトしきい値(numberまたは"20mb"のような文字列)。Compaction 成功後に、より小さい後続トランスクリプトへローテーションできるようにするため、truncateAfterCompactionが必要です。未設定または0の場合は無効です。notifyUser:trueの場合、短いコンテキストメンテナンス通知をユーザーに送信します。Compaction の開始時と完了時(例: 「Compacting context…」と「Compaction complete」)、および Compaction 前のメモリフラッシュを使い切り、応答が劣化状態で続行される場合(例: 「Memory maintenance temporarily failed; continuing your reply.」)です。これらの通知を無音に保つため、デフォルトでは無効です。memoryFlush: 耐久メモリを保存するための、自動 Compaction 前のサイレントなエージェントターン。このハウスキーピングターンをローカルモデルに留めたい場合は、modelにollama/qwen3:8bのような正確な provider/model を設定します。このオーバーライドは、アクティブセッションのフォールバックチェーンを継承しません。forceFlushTranscriptBytesは、トークンカウンターが古くなっていても、トランスクリプトファイルサイズがしきい値に達したときにフラッシュを強制します。ワークスペースが読み取り専用の場合はスキップされます。
agents.defaults.runRetries
障害復旧中の無限実行ループを防ぐための、埋め込みエージェントランタイム向け外側実行ループのリトライ反復境界。この設定は埋め込みエージェントランタイムにのみ適用され、ACP または CLI ランタイムには適用されません。
base: 外側実行ループの実行リトライ反復の基本数。デフォルト:24。perProfile: フォールバックプロファイル候補ごとに付与される追加の実行リトライ反復。デフォルト:8。min: 実行リトライ反復の絶対最小上限。デフォルト:32。max: 暴走実行を防ぐための、実行リトライ反復の絶対最大上限。デフォルト:160。
agents.defaults.contextPruning
LLM に送信する前に、メモリ内コンテキストから古いツール結果を剪定します。ディスク上のセッション履歴は変更しません。デフォルトでは無効です。有効にするには mode: "cache-ttl" を設定します。
cache-ttl mode behavior
cache-ttl mode behavior
mode: "cache-ttl"は剪定パスを有効にします。ttlは(最後のキャッシュ接触後に)剪定を再実行できる頻度を制御します。デフォルト:5m。- 剪定はまず大きすぎるツール結果をソフトトリムし、必要に応じて古いツール結果をハードクリアします。
softTrimRatioとhardClearRatioは0.0から1.0までの値を受け付けます。設定検証はその範囲外の値を拒否します。
... を挿入します。ハードクリアはツール結果全体をプレースホルダーに置き換えます。注記:- 画像ブロックはトリム/クリアされません。
- 比率は文字ベース(概算)であり、正確なトークン数ではありません。
keepLastAssistantsより少ないアシスタントメッセージしか存在しない場合、剪定はスキップされます。
ブロックストリーミング
- Telegram 以外のチャネルでは、ブロック返信を有効にするために明示的な
*.blockStreaming: trueが必要です。 - チャネルオーバーライド:
channels.<channel>.blockStreamingCoalesce(およびアカウントごとのバリアント)。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を使用します(未設定の境界は natural 範囲にフォールバックします)。エージェントごとのオーバーライド:agents.list[].humanDelay。
タイピングインジケーター
- デフォルト: 直接チャット/メンションでは
instant、メンションされていないグループチャットではmessage。 typingIntervalSecondsのデフォルト:6。- セッションごとのオーバーライド:
session.typingMode、session.typingIntervalSeconds。
agents.defaults.sandbox
埋め込みエージェント向けの任意のサンドボックス化。完全なガイドは Sandboxing を参照してください。
off/docker/agent/none/bookworm-slim イメージ/none ネットワークなど)は、単なる例示値ではなく、実際の OpenClaw デフォルトです。
Sandbox の詳細
Sandbox の詳細
バックエンド:OpenShell モード:
docker: ローカル Docker ランタイム(デフォルト)ssh: 汎用 SSH ベースのリモートランタイムopenshell: OpenShell ランタイム
backend: "openshell" が選択されている場合、ランタイム固有の設定は
plugins.entries.openshell.config に移動します。SSH バックエンド設定:target:user@host[:port]形式の SSH ターゲットcommand: SSH クライアントコマンド(デフォルト:ssh)workspaceRoot: スコープごとのワークスペースに使用される絶対リモートルート(デフォルト:/tmp/openclaw-sandboxes)identityFile/certificateFile/knownHostsFile: OpenSSH に渡される既存のローカルファイルidentityData/certificateData/knownHostsData: OpenClaw が実行時に一時ファイルへ具現化するインライン内容または SecretRefstrictHostKeyChecking/updateHostKeys: OpenSSH ホストキー・ポリシーの調整項目(どちらもデフォルトはtrue)
identityDataはidentityFileより優先されますcertificateDataはcertificateFileより優先されますknownHostsDataはknownHostsFileより優先されます- SecretRef ベースの
*Data値は、Sandbox セッションが開始する前に、アクティブなシークレットランタイムスナップショットから解決されます
- 作成または再作成後にリモートワークスペースへ一度シードします
- その後はリモート SSH ワークスペースを正準として維持します
exec、ファイルツール、メディアパスを SSH 経由でルーティングします- リモート変更をホストへ自動的には同期しません
- Sandbox ブラウザーコンテナには対応しません
none:~/.openclaw/sandboxes配下のスコープごとの Sandbox ワークスペース(デフォルト)ro:/workspaceの Sandbox ワークスペース、読み取り専用で/agentにマウントされたエージェントワークスペースrw: 読み書き可能で/workspaceにマウントされたエージェントワークスペース
session: セッションごとのコンテナ + ワークスペースagent: エージェントごとに 1 つのコンテナ + ワークスペース(デフォルト)shared: 共有コンテナとワークスペース(セッション間の分離なし)
mirror: exec の前にローカルからリモートへシードし、exec の後に同期して戻します。ローカルワークスペースが正準のままですremote: Sandbox 作成時に一度リモートへシードし、その後はリモートワークスペースを正準として維持します
remote モードでは、OpenClaw の外部で行われたホストローカルの編集は、シード手順の後に Sandbox へ自動的には同期されません。
トランスポートは OpenShell Sandbox への SSH ですが、Sandbox のライフサイクルと任意のミラー同期は Plugin が所有します。setupCommand はコンテナ作成後に一度実行されます(sh -lc 経由)。ネットワーク送信、書き込み可能なルート、root ユーザーが必要です。コンテナのデフォルトは network: "none" です。エージェントにアウトバウンドアクセスが必要な場合は、"bridge"(またはカスタムブリッジネットワーク)に設定してください。
"host" はブロックされます。"container:<id>" は、明示的に
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true(ブレークグラス)を設定しない限り、デフォルトでブロックされます。
アクティブな OpenClaw Sandbox 内の Codex アプリサーバーターンは、ネイティブコードモードのネットワークアクセスにこの同じ送信設定を使用します。受信添付ファイル は、アクティブなワークスペース内の media/inbound/* にステージングされます。docker.binds は追加のホストディレクトリをマウントします。グローバルバインドとエージェントごとのバインドはマージされます。Sandbox 化ブラウザー(sandbox.browser.enabled、デフォルト false): コンテナ内の Chromium + CDP。noVNC URL がシステムプロンプトに注入されます。openclaw.json の browser.enabled は不要です。
noVNC オブザーバーアクセスはデフォルトで VNC 認証を使用し、OpenClaw は共有 URL でパスワードを公開する代わりに短命のトークン URL を発行します。allowHostControl: false(デフォルト)は、Sandbox 化セッションがホストブラウザーを対象にすることをブロックします。networkのデフォルトはopenclaw-sandbox-browser(専用ブリッジネットワーク)です。グローバルブリッジ接続を明示的に必要とする場合にのみbridgeに設定してください。ここでも"host"はブロックされます。cdpSourceRangeは任意で、コンテナ境界での CDP 入口を CIDR 範囲に制限します(例:172.21.0.1/32)。sandbox.browser.bindsは、追加のホストディレクトリを Sandbox ブラウザーコンテナにのみマウントします。設定された場合([]を含む)、ブラウザーコンテナではdocker.bindsを置き換えます。- Sandbox ブラウザーコンテナの Chromium は常に
--no-sandbox --disable-setuid-sandbox付きで起動します(コンテナには Chrome 自身の Sandbox が必要とするカーネルプリミティブがありません)。このための設定トグルはありません。 - 起動デフォルトは
scripts/sandbox-browser-entrypoint.shで定義され、コンテナホスト向けに調整されています:--remote-debugging-address=127.0.0.1--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>--user-data-dir=${HOME}/.chrome--no-first-run--no-default-browser-check--disable-dev-shm-usage--disable-background-networking--disable-breakpad--disable-crash-reporter--no-zygote--metrics-recording-only--password-store=basic--use-mock-keychain--disable-3d-apis、--disable-gpu、および--disable-software-rasterizerは デフォルトで有効化され、WebGL/3D の使用に必要な場合はOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0で無効化できます。--disable-extensions(デフォルトで有効)。ワークフローが拡張機能に依存している場合は、OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0で拡張機能を再有効化します。--renderer-process-limit=2がデフォルトです。OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>で変更し、0に設定すると Chromium の デフォルトプロセス制限を使用します。--headless=newはheadlessが有効な場合のみです。- デフォルトはコンテナイメージのベースラインです。コンテナデフォルトを変更するには、カスタム エントリーポイントを持つカスタムブラウザーイメージを使用してください。
sandbox.docker.binds は Docker 専用です。
イメージをビルドします(ソースチェックアウトから):
docker build コマンドについて Sandbox 化 § イメージとセットアップ を参照してください。
agents.list(エージェントごとのオーバーライド)
agents.list[].tts を使用して、エージェントに独自の TTS プロバイダー、音声、モデル、
スタイル、または自動 TTS モードを指定します。エージェントブロックはグローバルの
messages.tts に対してディープマージされるため、共有認証情報を 1 か所に置いたまま、個々の
エージェントは必要な音声フィールドまたはプロバイダーフィールドのみをオーバーライドできます。アクティブなエージェントの
オーバーライドは、自動音声返信、/tts audio、/tts status、および
tts エージェントツールに適用されます。プロバイダー例と優先順位については テキスト読み上げ
を参照してください。
id: 安定したエージェント ID(必須)。default: 複数設定されている場合は、最初のものが優先されます(警告がログに記録されます)。何も設定されていない場合は、リストの最初のエントリがデフォルトになります。model: 文字列形式では、モデルフォールバックなしの厳密なエージェント単位のプライマリを設定します。オブジェクト形式{ primary }も、fallbacksを追加しない限り厳密です。そのエージェントでフォールバックを有効にするには{ primary, fallbacks: [...] }を使用し、厳密な動作を明示するには{ primary, fallbacks: [] }を使用します。primaryのみを上書きする Cron ジョブは、fallbacks: []を設定しない限り、引き続きデフォルトのフォールバックを継承します。utilityModel: 生成されたセッションやスレッドのタイトルなど、短い内部タスク向けの任意のエージェント単位の上書きです。agents.defaults.utilityModelにフォールバックし、その後このエージェントのプライマリモデルにフォールバックします。params:agents.defaults.models内の選択されたモデルエントリにマージされる、エージェント単位のストリームパラメータです。モデルカタログ全体を複製せずに、cacheRetention、temperature、maxTokensなどのエージェント固有の上書きに使用します。tts: 任意のエージェント単位のテキスト読み上げ上書きです。このブロックはmessages.ttsにディープマージされるため、共有プロバイダー認証情報とフォールバックポリシーはmessages.ttsに保持し、ここではプロバイダー、音声、モデル、スタイル、自動モードなどペルソナ固有の値のみを設定します。skills: 任意のエージェント単位の Skills 許可リストです。省略した場合、設定されていればエージェントはagents.defaults.skillsを継承します。明示的なリストはデフォルトとマージせずに置き換え、[]は 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はデフォルトを派生します:ackReactionはemojiから、mentionPatternsはname/emojiから派生します。subagents.allowAgents: 明示的なsessions_spawn.agentIdターゲットに対する、設定済みエージェント ID の許可リスト(["*"]= 設定済みの任意のターゲット、デフォルト: 同じエージェントのみ)。自己ターゲットのagentId呼び出しを許可する必要がある場合は、リクエスター ID を含めます。エージェント設定が削除された古いエントリはsessions_spawnによって拒否され、agents_listから省略されます。クリーンアップするにはopenclaw doctor --fixを実行するか、そのターゲットがデフォルトを継承しながら引き続きスポーン可能であるべき場合は、最小限のagents.list[]エントリを追加します。- サンドボックス継承ガード: リクエスターセッションがサンドボックス化されている場合、
sessions_spawnはサンドボックスなしで実行されるターゲットを拒否します。 subagents.requireAgentId: true の場合、agentIdを省略するsessions_spawn呼び出しをブロックします(明示的なプロファイル選択を強制します。デフォルト: false)。subagents.maxConcurrent: サブエージェント実行全体で同時実行できる子エージェント実行の最大数。デフォルト:8。subagents.maxChildrenPerAgent: 単一のエージェントセッションがスポーンできるアクティブな子の最大数。デフォルト: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 + account + 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などの Dock コマンドは同じマップを使い、アクティブセッションの返信ルートを別のリンク済みチャネルピアに切り替えます。チャネルドッキングを参照してください。reset: 主要なリセットポリシー。dailyはatHourのローカル時刻にリセットします。idleはidleMinutesの経過後にリセットします。両方が設定されている場合、先に期限切れになった方が優先されます。日次リセットの鮮度はセッション行のsessionStartedAtを使用します。アイドルリセットの鮮度はlastInteractionAtを使用します。Heartbeat、Cron ウェイクアップ、exec 通知、Gateway の管理処理などのバックグラウンド/システムイベント書き込みはupdatedAtを更新できますが、日次/アイドルセッションを新鮮な状態には保ちません。resetByType: タイプ別の上書き (direct、group、thread)。レガシーのdmはdirectのエイリアスとして受け入れられます。resetByChannel: プロバイダー/チャネル ID をキーにしたチャネル別リセット上書き。セッションのチャネルに一致するエントリがある場合、そのセッションではresetByType/resetより無条件に優先されます。1 つのチャネルだけがタイプレベルのポリシーと異なるリセット動作を必要とする場合のみ使用してください。mainKey: レガシーフィールド。ランタイムはメインの直接チャットバケットに常に"main"を使用します。agentToAgent.maxPingPongTurns: エージェント間交換中にエージェント間で返信し合う最大ターン数 (整数、範囲:0-20、デフォルト:5)。0はピンポン連鎖を無効にします。sendPolicy:channel、chatType(direct|group|channel、レガシーのdmエイリアスあり)、keyPrefix、またはrawKeyPrefixで照合します。最初の拒否が優先されます。maintenance: セッションストアのクリーンアップ + 保持制御。mode:enforceはクリーンアップを適用し、デフォルトです。warnは警告のみを出します。pruneAfter: 古いエントリの経過時間しきい値 (デフォルト30d)。maxEntries:sessions.json内の最大エントリ数 (デフォルト500)。ランタイムは、本番規模の上限向けに小さな高水位バッファ付きでバッチクリーンアップを書き込みます。openclaw sessions cleanup --enforceは上限を即座に適用します。- 短命の Gateway モデル実行プローブセッションは固定の
24h保持を使用しますが、クリーンアップは圧力ゲート付きです。セッションエントリのメンテナンス/上限圧力に達した場合のみ、古い厳密なモデル実行プローブ行を削除します。対象になるのはagent:*:explicit:model-run-<uuid>に一致する厳密な明示プローブキーのみです。通常の direct、group、thread、Cron、hook、Heartbeat、ACP、サブエージェントセッションはこの 24h 保持を継承しません。モデル実行クリーンアップが実行される場合、より広いpruneAfterの古いエントリのクリーンアップとmaxEntries上限より前に実行されます。 rotateBytes: 非推奨で無視されます。openclaw doctor --fixは古い設定からこれを削除します。resetArchiveRetention:*.reset.<timestamp>トランスクリプトアーカイブの保持期間。デフォルトはpruneAfterです。無効にするにはfalseを設定します。maxDiskBytes: 任意のセッションディレクトリのディスク予算。warnモードでは警告をログに記録します。enforceモードでは最も古いアーティファクト/セッションから削除します。highWaterBytes: 予算クリーンアップ後の任意の目標値。デフォルトはmaxDiskBytesの80%です。
writeLock: セッショントランスクリプトの書き込みロック制御。正当なトランスクリプト準備、クリーンアップ、Compaction、またはミラー処理がデフォルトポリシーより長く競合する場合のみ調整してください。acquireTimeoutMs: ロック取得中、セッションをビジーとして報告するまで待機するミリ秒。デフォルト:60000。環境変数上書き:OPENCLAW_SESSION_WRITE_LOCK_ACQUIRE_TIMEOUT_MS。staleMs: 既存のロックを古いものとして扱い、再取得するまでのミリ秒。デフォルト:1800000。環境変数上書き:OPENCLAW_SESSION_WRITE_LOCK_STALE_MS。maxHoldMs: 保持中のプロセス内ロックを、ウォッチドッグが解放するまで保持できるミリ秒。デフォルト:300000。環境変数上書き:OPENCLAW_SESSION_WRITE_LOCK_MAX_HOLD_MS。
threadBindings: スレッドに紐づくセッション機能のグローバルデフォルト。enabled: マスターデフォルトスイッチ (プロバイダーが上書き可能。Discord はchannels.discord.threadBindings.enabledを使用)idleHours: 非アクティブ時の自動フォーカス解除のデフォルト時間 (0で無効。プロバイダーが上書き可能)maxAgeHours: ハード最大経過時間のデフォルト時間 (0で無効。プロバイダーが上書き可能)spawnSessions:sessions_spawnと ACP スレッドスポーンからスレッドに紐づく作業セッションを作成するためのデフォルトゲート。スレッドバインディングが有効な場合、デフォルトはtrueです。プロバイダー/アカウントが上書き可能です。defaultSpawnContext: スレッドに紐づくスポーン向けのデフォルトネイティブサブエージェントコンテキスト ("fork"または"isolated")。デフォルトは"fork"です。
メッセージ
応答プレフィックス
チャネル/アカウント別の上書き:channels.<channel>.responsePrefix、channels.<channel>.accounts.<id>.responsePrefix。
解決順序 (最も具体的なものが優先): アカウント → チャネル → グローバル。"" は無効化し、カスケードを停止します。"auto" は [{identity.name}] を生成します。
テンプレート変数:
| 変数 | 説明 | 例 |
|---|---|---|
{model} | 短いモデル名 | claude-opus-4-6 |
{modelFull} | 完全なモデル識別子 | anthropic/claude-opus-4-6 |
{provider} | プロバイダー名 | anthropic |
{thinkingLevel} | 現在の思考レベル | high, low, off |
{identity.name} | エージェント ID 名 | ("auto" と同じ) |
{think} は {thinkingLevel} のエイリアスです。
Ack リアクション
- デフォルトはアクティブエージェントの
identity.emoji、なければ"👀"です。無効にするには""を設定します。 - チャネル別の上書き:
channels.<channel>.ackReaction、channels.<channel>.accounts.<id>.ackReaction。 - 解決順序: アカウント → チャネル →
messages.ackReaction→ ID フォールバック。 - スコープ:
group-mentions(デフォルト)、group-all、direct、all、またはoff/none(Ack リアクションを完全に無効化)。 removeAckAfterReply: Slack、Discord、Signal、Telegram、WhatsApp、iMessage など、リアクション対応チャネルで返信後に Ack を削除します。messages.statusReactions.enabled: Slack、Discord、Signal、Telegram、WhatsApp でライフサイクル状態リアクションを有効にします。 Discord では未設定の場合、Ack リアクションがアクティブなら状態リアクションも有効のままになります。 Slack、Signal、Telegram、WhatsApp では、ライフサイクル状態リアクションを有効にするには明示的にtrueに設定します。 Slack はデフォルトで、進捗にネイティブのアシスタントスレッド状態とローテーションする読み込みメッセージを使用し、設定済みの Ack リアクションは静的に保ちます。messages.statusReactions.emojis: ライフサイクル絵文字キーを上書きします:queued、thinking、compacting、tool、coding、web、deploy、build、concierge、done、error、stallSoft、stallHard。 Telegram は固定のリアクションセットのみを許可するため、サポートされていない設定済み絵文字は そのチャットで最も近い対応状態バリアントにフォールバックします。
キュー
mode: セッション実行がアクティブな間に到着した受信メッセージのキュー戦略。デフォルト:"steer"。steer: 新しいプロンプトをアクティブな実行に注入します。followup: アクティブな実行の完了後に新しいプロンプトを実行します。collect: 互換性のあるメッセージをまとめ、後で一緒に実行します。interrupt: 最新のプロンプトを開始する前に、アクティブな実行を中止します。
debounceMs: キュー済み/ステア済みメッセージをディスパッチする前の遅延。デフォルト:500。cap: ドロップポリシーが適用されるまでの最大キュー済みメッセージ数。デフォルト:20。drop: 上限を超えた場合の戦略。"summarize"(デフォルト) は最も古いエントリをドロップしますが、コンパクトな要約を保持します。"old"は要約なしで最も古いものをドロップします。"new"は最新の項目を拒否します。byChannel: プロバイダー ID をキーにしたチャネル別のmode上書き。debounceMsByChannel: プロバイダー ID をキーにしたチャネル別のdebounceMs上書き。
受信デバウンス
同じ送信者からの短時間に連続するテキストのみのメッセージを、単一のエージェントターンにまとめます。メディア/添付ファイルは即座にフラッシュします。制御コマンドはデバウンスをバイパスします。デフォルトのdebounceMs: 2000。
その他のメッセージキー
messages.messagePrefix: エージェントランタイムに届く前に、受信ユーザーメッセージの先頭に付加されるプレフィックステキスト。チャネルコンテキストマーカーとして控えめに使用してください。messages.visibleReplies: direct、group、channel 会話全体での可視ソース返信を制御します ("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 (テキスト読み上げ)
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 サーバーとして扱い、モデル/音声の検証を緩和します。
Talk
Talk モード(macOS/iOS/Android とブラウザー Control UI)のデフォルト。- 複数の Talk プロバイダーが設定されている場合、
talk.providerはtalk.providers内のキーと一致している必要があります。 - 従来のフラットな Talk キー(
talk.voiceId、talk.voiceAliases、talk.modelId、talk.outputFormat、talk.apiKey)は互換性専用です。永続化された設定をtalk.providers.<provider>に書き換えるには、openclaw doctor --fixを実行します。 - 音声 ID は
ELEVENLABS_VOICE_IDまたはSAG_VOICE_IDにフォールバックします(macOS Talk クライアントの挙動)。 providers.*.apiKeyはプレーンテキスト文字列または SecretRef オブジェクトを受け入れます。ELEVENLABS_API_KEYフォールバックは、Talk API キーが設定されていない場合にのみ適用されます。providers.*.voiceAliasesにより、Talk ディレクティブでわかりやすい名前を使用できます。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 Talk リアルタイムのopenclaw_agent_consult呼び出しの背後で実行される完全な OpenClaw エージェント実行の思考レベルを制御します。通常のセッション/モデルの挙動を維持するには未設定のままにします。consultFastModeは、セッションの通常の高速モード設定を変更せずに、Control UI Talk リアルタイム consult のための一回限りの高速モード上書きを設定します。speechLocaleは、iOS/macOS Talk 音声認識で使用される BCP 47 ロケール ID を設定します。デバイスのデフォルトを使用するには未設定のままにします。silenceTimeoutMsは、ユーザーの無音後、Talk モードが文字起こしを送信するまで待機する時間を制御します。未設定の場合は、プラットフォームのデフォルトの一時停止時間(macOS と Android では 700 ms、iOS では 900 ms)が維持されます。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 経由でルーティングします。