位于Documentation Index
Fetch the complete documentation index at: https://openclaw.zhcndoc.com/llms.txt
Use this file to discover all available pages before exploring further.
agents.*、multiAgent.*、session.*、messages.* 和 talk.* 下的代理作用域配置键。关于通道、工具、网关运行时以及其他顶级键,请参见 配置参考。
代理默认值
agents.defaults.workspace
默认值:~/.openclaw/workspace。
agents.defaults.repoRoot
可选的仓库根目录,会显示在系统提示词的 Runtime 行中。若未设置,OpenClaw 会从工作区向上遍历自动检测。
agents.defaults.skills
可选的默认技能白名单,适用于未设置 agents.list[].skills 的代理。
- 默认情况下省略
agents.defaults.skills,则不限制技能。 - 省略
agents.list[].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
在仍会写入必需引导文件的同时,跳过创建选定的可选工作区文件。有效值:SOUL.md、USER.md、HEARTBEAT.md 和 IDENTITY.md。
agents.defaults.contextInjection
控制工作区引导文件何时注入到系统提示词中。默认值:"always"。
"continuation-skip":安全的续接轮次(在完成一次助手回复之后)会跳过工作区引导的重新注入,从而减小提示词大小。心跳运行和压缩后重试仍会重建上下文。"never":在每一轮都禁用工作区引导和上下文文件注入。仅适用于完全自行管理提示词生命周期的代理(自定义上下文引擎、自己构建上下文的原生运行时,或专门的无引导工作流)。心跳和压缩恢复轮次也会跳过注入。
agents.defaults.bootstrapMaxChars
每个工作区引导文件的最大字符数,超过后截断。默认值:12000。
agents.defaults.bootstrapTotalMaxChars
跨所有工作区引导文件注入的最大总字符数。默认值:60000。
agents.defaults.bootstrapPromptTruncationWarning
控制当引导上下文被截断时,向代理可见的警告文本。默认值:"once"。
"off":从不将警告文本注入系统提示词。"once":按每个唯一的截断签名注入一次警告(推荐)。"always":只要存在截断,就在每次运行时注入警告。
上下文预算所有权映射
OpenClaw 具有多个高容量的提示词/上下文预算,它们被有意按子系统拆分,而不是全部通过一个通用开关流转。agents.defaults.bootstrapMaxChars/agents.defaults.bootstrapTotalMaxChars: 正常的工作区引导注入。agents.defaults.startupContext.*: 一次性的重置/启动模型运行前奏,包括最近的每日memory/*.md文件。裸聊天/new和/reset命令会被确认,但不会调用模型。skills.limits.*: 注入系统提示词中的紧凑技能列表。agents.defaults.contextLimits.*: 有边界的运行时摘录和注入的运行时拥有块。memory.qmd.limits.*: 索引化的记忆搜索片段和注入大小。
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextLimits.*
agents.defaults.startupContext
控制在重置/启动模型运行时注入的首轮启动前奏。裸聊天 /new 和 /reset 命令会在不调用模型的情况下确认重置,因此不会加载这段前奏。
agents.defaults.contextLimits
有边界的运行时上下文表面的共享默认值。
memoryGetMaxChars:memory_get摘录在添加截断元数据和续接提示前的默认上限。memoryGetDefaultLines:省略lines时,memory_get的默认行窗口。toolResultMaxChars:用于持久化结果和溢出恢复的实时工具结果上限。postCompactionMaxChars:压缩后刷新注入期间使用的 AGENTS.md 摘录上限。
agents.list[].contextLimits
针对共享 contextLimits 开关的逐代理覆盖。省略的字段会继承自 agents.defaults.contextLimits。
skills.limits.maxSkillsPromptChars
注入系统提示词中的紧凑技能列表的全局上限。这不会影响按需读取 SKILL.md 文件。
agents.list[].skillsLimits.maxSkillsPromptChars
针对技能提示词预算的逐代理覆盖。
agents.defaults.imageMaxDimensionPx
传递给提供方调用前,转录/工具图像块中最长边的最大像素尺寸。默认值:1200。
更低的值通常能减少视觉 token 用量,以及对截图密集型运行的请求载荷大小。
更高的值会保留更多视觉细节。
agents.defaults.userTimezone
系统提示词上下文使用的时区(不是消息时间戳)。回退到宿主机时区。
agents.defaults.timeFormat
系统提示词中的时间格式。默认值:auto(操作系统偏好)。
agents.defaults.model
model: accepts either a string ("provider/model") or an object ({ primary, fallbacks }).- String form sets only the primary model.
- Object form sets primary plus ordered failover models.
imageModel: accepts either a string ("provider/model") or an object ({ primary, fallbacks }).- Used by the
imagetool path as its vision-model config. - Also used as fallback routing when the selected/default model cannot accept image input.
- Prefer explicit
provider/modelrefs. Bare IDs are accepted for compatibility; if a bare ID uniquely matches a configured image-capable entry inmodels.providers.*.models, OpenClaw qualifies it to that provider. Ambiguous configured matches require an explicit provider prefix.
- Used by the
imageGenerationModel: accepts either a string ("provider/model") or an object ({ primary, fallbacks }).- Used by the shared image-generation capability and any future tool/plugin surface that generates images.
- Typical values:
google/gemini-3.1-flash-image-previewfor native Gemini image generation,fal/fal-ai/flux/devfor fal,openai/gpt-image-2for OpenAI Images, oropenai/gpt-image-1.5for transparent-background OpenAI PNG/WebP output. - If you select a provider/model directly, configure matching provider auth too (for example
GEMINI_API_KEYorGOOGLE_API_KEYforgoogle/*,OPENAI_API_KEYor OpenAI Codex OAuth foropenai/gpt-image-2/openai/gpt-image-1.5,FAL_KEYforfal/*). - If omitted,
image_generatecan still infer an auth-backed provider default. It tries the current default provider first, then the remaining registered image-generation providers in provider-id order.
musicGenerationModel: accepts either a string ("provider/model") or an object ({ primary, fallbacks }).- Used by the shared music-generation capability and the built-in
music_generatetool. - Typical values:
google/lyria-3-clip-preview,google/lyria-3-pro-preview, orminimax/music-2.6. - If omitted,
music_generatecan still infer an auth-backed provider default. It tries the current default provider first, then the remaining registered music-generation providers in provider-id order. - If you select a provider/model directly, configure the matching provider auth/API key too.
- Used by the shared music-generation capability and the built-in
videoGenerationModel: accepts either a string ("provider/model") or an object ({ primary, fallbacks }).- Used by the shared video-generation capability and the built-in
video_generatetool. - Typical values:
qwen/wan2.6-t2v,qwen/wan2.6-i2v,qwen/wan2.6-r2v,qwen/wan2.6-r2v-flash, orqwen/wan2.7-r2v. - If omitted,
video_generatecan still infer an auth-backed provider default. It tries the current default provider first, then the remaining registered video-generation providers in provider-id order. - If you select a provider/model directly, configure the matching provider auth/API key too.
- The bundled Qwen video-generation provider supports up to 1 output video, 1 input image, 4 input videos, 10 seconds duration, and provider-level
size,aspectRatio,resolution,audio, andwatermarkoptions.
- Used by the shared video-generation capability and the built-in
pdfModel: accepts either a string ("provider/model") or an object ({ primary, fallbacks }).- Used by the
pdftool for model routing. - If omitted, the PDF tool falls back to
imageModel, then to the resolved session/default model.
- Used by the
pdfMaxBytesMb: default PDF size limit for thepdftool whenmaxBytesMbis not passed at call time.pdfMaxPages: default maximum pages considered by extraction fallback mode in thepdftool.verboseDefault: default verbose level for agents. Values:"off","on","full". Default:"off".reasoningDefault: default reasoning visibility for agents. Values:"off","on","stream". Per-agentagents.list[].reasoningDefaultoverrides this default. Configured reasoning defaults are only applied for owners, authorized senders, or operator-admin gateway contexts when no per-message or session reasoning override is set.elevatedDefault: default elevated-output level for agents. Values:"off","on","ask","full". Default:"on".model.primary: formatprovider/model(e.g.openai/gpt-5.5for API-key access oropenai-codex/gpt-5.5for Codex OAuth). If you omit the provider, OpenClaw tries an alias first, then a unique configured-provider match for that exact model id, and only then falls back to the configured default provider (deprecated compatibility behavior, so prefer explicitprovider/model). If that provider no longer exposes the configured default model, OpenClaw falls back to the first configured provider/model instead of surfacing a stale removed-provider default.models: the configured model catalog and allowlist for/model. Each entry can includealias(shortcut) andparams(provider-specific, for exampletemperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold,chat_template_kwargs,extra_body/extraBody).- Safe edits: use
openclaw config set agents.defaults.models '<json>' --strict-json --mergeto add entries.config setrefuses replacements that would remove existing allowlist entries unless you pass--replace. - Provider-scoped configure/onboarding flows merge selected provider models into this map and preserve unrelated providers already configured.
- For direct OpenAI Responses models, server-side compaction is enabled automatically. Use
params.responsesServerCompaction: falseto stop injectingcontext_management, orparams.responsesCompactThresholdto override the threshold. See OpenAI server-side compaction.
- Safe edits: use
params: global default provider parameters applied to all models. Set atagents.defaults.params(e.g.{ cacheRetention: "long" }).paramsmerge precedence (config):agents.defaults.params(global base) is overridden byagents.defaults.models["provider/model"].params(per-model), thenagents.list[].params(matching agent id) overrides by key. See Prompt Caching for details.params.extra_body/params.extraBody: advanced pass-through JSON merged intoapi: "openai-completions"request bodies for OpenAI-compatible proxies. If it collides with generated request keys, the extra body wins; non-native completions routes still strip OpenAI-onlystoreafterward.params.chat_template_kwargs: vLLM/OpenAI-compatible chat-template arguments merged into top-levelapi: "openai-completions"request bodies. Forvllm/nemotron-3-*with thinking off, the bundled vLLM plugin automatically sendsenable_thinking: falseandforce_nonempty_content: true; explicitchat_template_kwargsoverride generated defaults, andextra_body.chat_template_kwargsstill has final precedence. For vLLM Qwen thinking controls, setparams.qwenThinkingFormatto"chat-template"or"top-level"on that model entry.compat.supportedReasoningEfforts: per-model OpenAI-compatible reasoning effort list. Include"xhigh"for custom endpoints that truly accept it; OpenClaw then exposes/think xhighin command menus, Gateway session rows, session patch validation, agent CLI validation, andllm-taskvalidation for that configured provider/model. Usecompat.reasoningEffortMapwhen the backend wants a provider-specific value for a canonical level.params.preserveThinking: Z.AI-only opt-in for preserved thinking. When enabled and thinking is on, OpenClaw sendsthinking.clear_thinking: falseand replays priorreasoning_content; see Z.AI thinking and preserved thinking.agentRuntime: default low-level agent runtime policy. Omitted id defaults to OpenClaw Pi. Useid: "pi"to force the built-in PI harness,id: "auto"to let registered plugin harnesses claim supported models and use PI when none match, a registered harness id such asid: "codex"to require that harness, or a supported CLI backend alias such asid: "claude-cli". Explicit plugin runtimes fail closed when the harness is unavailable or fails. Keep model refs canonical asprovider/model; select Codex, Claude CLI, Gemini CLI, and other execution backends through runtime config instead of legacy runtime provider prefixes. See Agent runtimes for how this differs from provider/model selection.- Config writers that mutate these fields (for example
/models set,/models set-image, and fallback add/remove commands) save canonical object form and preserve existing fallback lists when possible. maxConcurrent: max parallel agent runs across sessions (each session still serialized). Default: 4.
agents.defaults.agentRuntime
agentRuntime 控制哪个底层执行器运行代理轮次。大多数部署应保留默认的 OpenClaw Pi 运行时。当受信任的插件提供原生 harness 时使用它,例如捆绑的 Codex app-server harness,或者当你想使用受支持的 CLI 后端如 Claude CLI 时使用它。关于心智模型,请参见 代理运行时。
id:"auto","pi", a registered plugin harness id, or a supported CLI backend alias. The bundled Codex plugin registerscodex; the bundled Anthropic plugin provides theclaude-cliCLI backend.id: "auto"lets registered plugin harnesses claim supported turns and uses PI when no harness matches. An explicit plugin runtime such asid: "codex"requires that harness and fails closed if it is unavailable or fails.- Environment override:
OPENCLAW_AGENT_RUNTIME=<id|auto|pi>overridesidfor that process. - For Codex-only deployments, set
model: "openai/gpt-5.5"andagentRuntime.id: "codex". - For Claude CLI deployments, prefer
model: "anthropic/claude-opus-4-7"plusagentRuntime.id: "claude-cli". Legacyclaude-cli/claude-opus-4-7model refs still work for compatibility, but new config should keep provider/model selection canonical and put the execution backend inagentRuntime.id. - Older runtime-policy keys are rewritten to
agentRuntimebyopenclaw doctor --fix. - Harness choice is pinned per session id after the first embedded run. Config/env changes affect new or reset sessions, not an existing transcript. Legacy sessions with transcript history but no recorded pin are treated as PI-pinned.
/statusreports the effective runtime, for exampleRuntime: OpenClaw Pi DefaultorRuntime: OpenAI Codex. - This only controls text agent-turn execution. Media generation, vision, PDF, music, video, and TTS still use their provider/model settings.
agents.defaults.models 中时适用):
| 别名 | 模型 |
|---|---|
opus | anthropic/claude-opus-4-6 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.5 或 openai-codex/gpt-5.5 |
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-preview |
--thinking off 或自行定义 agents.defaults.models["zai/<model>"].params.thinking。
Z.AI 模型默认启用 tool_stream 用于工具调用流式输出。将 agents.defaults.models["zai/<model>"].params.tool_stream 设为 false 可禁用它。
如果未显式设置思考级别,Anthropic Claude 4.6 模型默认使用 adaptive 思考。
agents.defaults.cliBackends
用于纯文本回退运行(无工具调用)的可选 CLI 后端。适合作为 API 提供方失败时的备用方案。
- CLI 后端以文本优先;工具始终被禁用。
- 当设置了
sessionArg时支持会话。 - 当
imageArg接受文件路径时支持图像透传。
agents.defaults.systemPromptOverride
用固定字符串替换整段由 OpenClaw 组装的系统提示词。可在默认级别(agents.defaults.systemPromptOverride)或逐代理级别(agents.list[].systemPromptOverride)设置。逐代理值优先;空值或仅空白字符的值会被忽略。适用于受控的提示词实验。
agents.defaults.promptOverlays
按模型家族应用、且与提供方无关的提示词覆盖。GPT-5 家族模型 ID 会跨提供方获得共享行为契约;personality 只控制友好交互风格层。
"friendly"(默认)和"on"会启用友好交互风格层。"off"只会禁用友好层;带标签的 GPT-5 行为契约仍保持启用。- 当此共享设置未设置时,仍会读取旧的
plugins.entries.openai.config.personality。
agents.defaults.heartbeat
定期心跳运行。
every:持续时间字符串(ms/s/m/h)。默认值:30m(API key 认证)或1h(OAuth 认证)。设为0m可禁用。includeSystemPromptSection:为false时,会从系统提示词中省略 Heartbeat 部分,并跳过将HEARTBEAT.md注入到引导上下文。默认值:true。suppressToolErrorWarnings:为true时,在心跳运行期间抑制工具错误警告载荷。timeoutSeconds:心跳代理轮次在被中止前允许的最长秒数。留空则使用agents.defaults.timeoutSeconds。directPolicy:直接/DM 传递策略。allow(默认)允许直接目标传递。block会抑制直接目标传递并发出reason=dm-blocked。lightContext:为true时,心跳运行使用轻量级引导上下文,并且仅保留HEARTBEAT.md作为工作区引导文件。isolatedSession:为true时,每次心跳都在一个没有先前对话历史的新会话中运行。与 cron 的sessionTarget: "isolated"相同的隔离模式。可将每次心跳的 token 成本从约 100K 降到约 2-5K。skipWhenBusy:为true时,心跳会在额外繁忙通道上延后:子代理或嵌套命令工作。Cron 通道始终会延后心跳,即使没有此标志。- 逐代理:设置
agents.list[].heartbeat。当任一代理定义了heartbeat时,只有这些代理会运行心跳。 - 心跳会运行完整的代理轮次——间隔越短,消耗的 token 越多。
agents.defaults.compaction
mode:default或safeguard(用于长历史的分块摘要)。参见 压缩。provider:已注册压缩提供方插件的 id。设置后,会调用该提供方的summarize(),而不是内置的 LLM 摘要。失败时回退到内置实现。设置提供方会强制mode: "safeguard"。参见 压缩。timeoutSeconds:OpenClaw 在中止单次压缩操作前允许的最长秒数。默认值:900。keepRecentTokens:Pi 截断点预算,用于逐字保留最近的转录尾部。手动/compact在显式设置时会遵守此值;否则手动压缩是一个硬检查点。identifierPolicy:strict(默认)、off或custom。strict会在压缩摘要期间附加内置的模糊标识符保留指导。identifierInstructions:当identifierPolicy=custom时使用的可选自定义标识符保留文本。qualityGuard:对 safeguard 摘要的格式错误重试检查。默认在 safeguard 模式中启用;设置enabled: false可跳过审计。midTurnPrecheck:可选的 Pi 工具循环压力检查。启用时,OpenClaw 会在工具结果追加之后、下一次模型调用之前检查上下文压力。如果上下文已无法容纳,它会在提交提示词前中止当前尝试,并重用现有的预检查恢复路径来截断工具结果或压缩后重试。适用于default和safeguard两种压缩模式。默认:禁用。postCompactionSections:压缩后可重新注入的可选 AGENTS.md H2/H3 章节名。默认值为["Session Startup", "Red Lines"];设为[]可禁用重新注入。未设置或显式设为该默认对时,也会接受较旧的Every Session/Safety标题作为兼容回退。model:仅用于压缩摘要的可选provider/model-id覆盖。当主会话需要使用一个模型,而压缩摘要应使用另一个模型时使用此项;未设置时,压缩会使用会话的主模型。maxActiveTranscriptBytes:可选的字节阈值(数字或如"20mb"这样的字符串),当活动 JSONL 增长超过阈值时,会在运行前触发正常的本地压缩。要求设置truncateAfterCompaction,以便成功压缩后可以轮转到更小的后继转录。未设置或设为0时禁用。notifyUser:为true时,在压缩开始和完成时向用户发送简短通知(例如“正在压缩上下文…”和“压缩完成”)。默认禁用,以保持压缩过程静默。memoryFlush:自动压缩前的静默代理轮次,用于存储持久化记忆。当此整理轮次应保持在本地模型上时,将model设置为精确的 provider/model,例如ollama/qwen3:8b;此覆盖不会继承活动会话的回退链。工作区只读时会跳过。
agents.defaults.contextPruning
在发送给 LLM 之前,从内存上下文中清理旧的工具结果。不会修改磁盘上的会话历史。
cache-ttl 模式行为
cache-ttl 模式行为
mode: "cache-ttl"会启用清理流程。ttl控制清理在上一次缓存触碰后多久可以再次运行。- 清理会先对过大的工具结果进行软裁剪,然后在需要时对较旧的工具结果进行硬清除。
...。硬清除会用占位符替换整个工具结果。注意:- 图像块绝不会被裁剪/清除。
- 比例按字符计算(近似值),不是精确的 token 数。
- 如果存在的助手消息少于
keepLastAssistants,则跳过清理。
块流式输出
- 非 Telegram 通道需要显式的
*.blockStreaming: true才能启用块回复。 - 通道覆盖:
channels.<channel>.blockStreamingCoalesce(以及按账号的变体)。Signal/Slack/Discord/Google Chat 默认minChars: 1500。 humanDelay:块回复之间的随机暂停。natural= 800–2500ms。逐代理覆盖:agents.list[].humanDelay。
输入指示器
- 默认值:直接聊天/提及时为
instant,未被提及的群聊为message。 - 按会话覆盖:
session.typingMode、session.typingIntervalSeconds。
agents.defaults.sandbox
嵌入式代理的可选沙箱。完整指南请参见 沙箱。
沙箱详情
沙箱详情
sandbox.docker.binds 仅适用于 Docker。
Build images (从源码检出构建):
docker build 命令。
agents.list(逐代理覆盖)
使用 agents.list[].tts 为某个代理提供其自己的 TTS 提供方、语音、模型、风格或自动 TTS 模式。代理块会在全局 messages.tts 之上进行深度合并,因此共享凭据可以保留在一个地方,而各个代理只覆盖它们需要的语音或提供方字段。当前活动代理的覆盖会应用于自动语音回复、/tts audio、/tts status 和 tts 代理工具。提供方示例和优先级请参见 文字转语音。
id:稳定的代理 id(必需)。default:当设置多个时,第一个生效(会记录警告)。如果未设置,列表中的第一个条目为默认值。model:字符串形式会为该代理设置严格的主模型,不含模型回退;对象形式{ primary }也同样严格,除非你添加fallbacks。使用{ primary, fallbacks: [...] }可让该代理启用回退,或使用{ primary, fallbacks: [] }明确严格行为。仅覆盖primary的 cron 作业仍会继承默认回退,除非你设置fallbacks: []。params:逐代理流式参数,会在agents.defaults.models中所选模型条目之上合并。用于代理特定覆盖,如cacheRetention、temperature或maxTokens,而无需重复整个模型目录。tts:可选的逐代理文字转语音覆盖。该块会在messages.tts上进行深度合并,因此请将共享提供方凭据和回退策略保留在messages.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:可选的逐代理快速模式默认值(true | false)。在未设置逐消息或会话快速模式覆盖时生效。agentRuntime:可选的逐代理底层运行时策略覆盖。使用{ id: "codex" }可让某个代理仅使用 Codex,而其他代理在auto模式下继续保留默认 PI 回退。runtime:可选的逐代理运行时描述符。当代理应默认使用 ACP harness 会话时,使用type: "acp"并设置runtime.acp默认值(agent、backend、mode、cwd)。identity.avatar:相对于工作区的路径、http(s)URL,或data:URI。identity会派生默认值:ackReaction来自emoji,mentionPatterns来自name/emoji。subagents.allowAgents:用于显式sessions_spawn.agentId目标的代理 id 白名单(["*"]= 任意;默认:仅同一代理)。当应允许自指向的agentId调用时,请包含请求者 id。- 沙箱继承保护:如果请求者会话已在沙箱中,
sessions_spawn会拒绝那些会在未沙箱化状态下运行的目标。 subagents.requireAgentId:为true时,阻止省略agentId的sessions_spawn调用(强制显式选择配置文件;默认:false)。
多代理路由
在一个 Gateway 中运行多个彼此隔离的代理。参见 Multi-Agent。绑定匹配字段
type(可选):正常路由使用route(缺省时默认为 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 会按精确会话身份(match.channel + account + match.peer.id)解析,不使用上面的路由绑定层级顺序。
每个代理的访问配置
完全访问(无沙箱)
完全访问(无沙箱)
只读工具 + 工作区
只读工具 + 工作区
无文件系统访问(仅消息功能)
无文件系统访问(仅消息功能)
会话
会话字段详情
会话字段详情
消息
回复前缀
按频道/账户覆盖: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} | 代理身份名称 | (与 "auto" 相同) |
{think} 是 {thinkingLevel} 的别名。
确认反应
- 默认使用活动代理的
identity.emoji,否则为"👀"。设为""可禁用。 - 按频道覆盖:
channels.<channel>.ackReaction、channels.<channel>.accounts.<id>.ackReaction。 - 解析顺序:账户 → 频道 →
messages.ackReaction→ identity 回退。 - 范围:
group-mentions(默认)、group-all、direct、all。 removeAckAfterReply:在 Slack、Discord、Telegram、WhatsApp 和 BlueBubbles 等支持反应的渠道上,在回复后移除确认反应。messages.statusReactions.enabled:在 Slack、Discord 和 Telegram 上启用生命周期状态反应。 在 Slack 和 Discord 上,如果未设置,则在确认反应处于活动状态时保持状态反应启用。 在 Telegram 上,需要显式设置为true才能启用生命周期状态反应。
入站防抖
将来自同一发送者的快速纯文本消息批量合并为一次代理轮次。媒体/附件会立即刷新。控制命令会绕过防抖。TTS(文本转语音)
auto控制默认自动 TTS 模式:off、always、inbound或tagged。/tts on|off可覆盖本地偏好,/tts status会显示生效状态。summaryModel会为自动摘要覆盖agents.defaults.model.primary。modelOverrides默认启用;modelOverrides.allowProvider默认为false(需显式启用)。- API 密钥会回退到
ELEVENLABS_API_KEY/XI_API_KEY和OPENAI_API_KEY。 - 捆绑的语音提供方由插件拥有。如果设置了
plugins.allow,请包含你想使用的每个 TTS 提供方插件,例如用于 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)的默认设置。- 当配置了多个 Talk 提供方时,
talk.provider必须与talk.providers中的某个键匹配。 - 旧版扁平化的 Talk 键(
talk.voiceId、talk.voiceAliases、talk.modelId、talk.outputFormat、talk.apiKey)仅用于兼容,并会自动迁移到talk.providers.<provider>中。 - 语音 ID 会回退到
ELEVENLABS_VOICE_ID或SAG_VOICE_ID。 providers.*.apiKey接受明文字符串或 SecretRef 对象。ELEVENLABS_API_KEY回退仅在未配置 Talk API key 时生效。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会覆盖开发环境中的辅助程序路径。 speechLocale设置 iOS/macOS Talk 语音识别使用的 BCP 47 区域标识符。留空则使用设备默认值。silenceTimeoutMs控制 Talk 模式在用户沉默后等待多久再发送转录结果。未设置时将保留平台默认的暂停窗口(macOS 和 Android 为700 ms,iOS 为900 ms)。