智能体范围的配置键位于Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
agents.*、multiAgent.*、session.*、
messages.* 和 talk.* 下。对于渠道、工具、Gateway 网关运行时和其他
顶层键,请参阅 配置参考。
智能体默认值
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":安全的延续轮次(已完成的助手响应之后)会跳过重新注入工作区引导,从而减少提示词大小。Heartbeat 运行和压缩后的重试仍会重建上下文。"never":在每个轮次都禁用工作区引导和上下文文件注入。仅对完全拥有自身提示词生命周期的智能体使用此选项(自定义上下文引擎、会构建自身上下文的原生运行时,或专门的无引导工作流)。Heartbeat 和压缩恢复轮次也会跳过注入。
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:接受字符串("provider/model")或对象({ primary, fallbacks })。- 字符串形式只设置主模型。
- 对象形式会设置主模型和有序故障转移模型。
imageModel:接受字符串("provider/model")或对象({ primary, fallbacks })。- 由
image工具路径用作它的视觉模型配置。 - 当选定/默认模型不能接受图像输入时,也会用作回退路由。
- 优先使用显式
provider/model引用。为兼容性也接受裸 ID;如果裸 ID 唯一匹配models.providers.*.models中已配置的具备图像能力的条目,OpenClaw 会将它限定到该提供商。已配置匹配项存在歧义时,需要显式提供商前缀。
- 由
imageGenerationModel:接受字符串("provider/model")或对象({ primary, fallbacks })。- 由共享图像生成能力以及任何未来生成图像的工具/插件表面使用。
- 典型值:用于原生 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 key。
- 由共享音乐生成能力和内置
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 key。
- 内置 Qwen 视频生成提供商最多支持 1 个输出视频、1 张输入图像、4 个输入视频、10 秒时长,以及提供商级别的
size、aspectRatio、resolution、audio和watermark选项。
- 由共享视频生成能力和内置
pdfModel:接受字符串("provider/model")或对象({ primary, fallbacks })。- 由
pdf工具用于模型路由。 - 如果省略,PDF 工具会回退到
imageModel,然后回退到已解析的会话/默认模型。
- 由
pdfMaxBytesMb:当调用时未传递maxBytesMb时,pdf工具的默认 PDF 大小限制。pdfMaxPages:pdf工具中提取回退模式会考虑的默认最大页数。verboseDefault:智能体的默认详细级别。取值:"off"、"on"、"full"。默认值:"off"。toolProgressDetail:/verbose工具摘要和进度草稿工具行的详细模式。取值:"explain"(默认,紧凑的人类可读标签)或"raw"(可用时附加原始命令/详情)。按智能体配置的agents.list[].toolProgressDetail会覆盖此默认值。reasoningDefault:智能体的默认推理可见性。取值:"off"、"on"、"stream"。按智能体配置的agents.list[].reasoningDefault会覆盖此默认值。配置的推理默认值仅会在没有设置按消息或会话推理覆盖时,应用于所有者、已授权发送者或操作员管理员 Gateway 网关上下文。elevatedDefault:智能体的默认提升权限输出级别。取值:"off"、"on"、"ask"、"full"。默认值:"on"。model.primary:格式为provider/model(例如用于 OpenAI API-key 或 Codex OAuth 访问的openai/gpt-5.5)。如果你省略提供商,OpenClaw 会先尝试别名,然后尝试该精确模型 ID 的唯一已配置提供商匹配,最后才回退到已配置的默认提供商(已弃用的兼容行为,因此优先使用显式provider/model)。如果该提供商不再暴露已配置的默认模型,OpenClaw 会回退到第一个已配置的提供商/模型,而不是显示过期的已移除提供商默认值。models:为/model配置的模型目录和允许列表。每个条目都可以包含alias(快捷方式)和params(提供商特定,例如temperature、maxTokens、cacheRetention、context1m、responsesServerCompaction、responsesCompactThreshold、chat_template_kwargs、extra_body/extraBody)。- 使用
"openai-codex/*": {}或"vllm/*": {}这类provider/*条目,可展示所选提供商的所有已发现模型,而无需手动列出每个模型 ID。 - 安全编辑:使用
openclaw config set agents.defaults.models '<json>' --strict-json --merge添加条目。除非传递--replace,否则config set会拒绝会移除现有允许列表条目的替换。 - 按提供商配置/新手引导流程会将所选提供商模型合并到此映射中,并保留已配置的无关提供商。
- 对于直接 OpenAI Responses 模型,会自动启用服务器端压缩。使用
params.responsesServerCompaction: false停止注入context_management,或使用params.responsesCompactThreshold覆盖阈值。参阅 OpenAI 服务器端压缩。
- 使用
params:应用于所有模型的全局默认提供商参数。在agents.defaults.params设置(例如{ cacheRetention: "long" })。params合并优先级(配置):agents.defaults.params(全局基础)会被agents.defaults.models["provider/model"].params(按模型)覆盖,然后agents.list[].params(匹配的智能体 ID)按键覆盖。详见 提示词缓存。params.extra_body/params.extraBody:高级透传 JSON,会合并到 OpenAI 兼容代理的api: "openai-completions"请求体中。如果它与生成的请求键冲突,额外 body 优先;非原生 completions 路由随后仍会剥离 OpenAI 专用的store。params.chat_template_kwargs:vLLM/OpenAI 兼容的聊天模板参数,会合并到顶层api: "openai-completions"请求体中。对于关闭 thinking 的vllm/nemotron-3-*,内置 vLLM 插件会自动发送enable_thinking: false和force_nonempty_content: true;显式chat_template_kwargs会覆盖生成的默认值,而extra_body.chat_template_kwargs仍拥有最终优先级。对于 vLLM Qwen thinking 控制,请在该模型条目上将params.qwenThinkingFormat设置为"chat-template"或"top-level"。compat.thinkingFormat:OpenAI 兼容的 thinking 载荷样式。对于 Qwen 风格的顶层enable_thinking使用"qwen";对于支持请求级聊天模板 kwargs 的 Qwen 系列后端(如 vLLM),使用"qwen-chat-template"表示chat_template_kwargs.enable_thinking。OpenClaw 会将禁用 thinking 映射为false,将启用 thinking 映射为true。compat.supportedReasoningEfforts:按模型配置的 OpenAI 兼容 reasoning effort 列表。对于真正接受它的自定义端点,请包含"xhigh";随后 OpenClaw 会在命令菜单、Gateway 网关会话行、会话补丁验证、智能体 CLI 验证和该已配置提供商/模型的llm-task验证中公开/think xhigh。当后端需要规范级别对应的提供商特定值时,使用compat.reasoningEffortMap。params.preserveThinking:仅限 Z.AI 的保留 thinking 选择加入项。启用且 thinking 开启时,OpenClaw 会发送thinking.clear_thinking: false并重放先前的reasoning_content;参阅 Z.AI thinking 和保留 thinking。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.list[].models["provider/model"].agentRuntime设置模型特定规则。官方 OpenAI provider 上的 OpenAI 智能体模型默认选择 Codex。 - 变更这些字段的配置写入器(例如
/models set、/models set-image和回退添加/移除命令)会保存规范对象形式,并在可能时保留现有回退列表。 maxConcurrent:跨会话的最大并行智能体运行数(每个会话仍会串行化)。默认值:4。
运行时策略
id:"auto"、"pi"、已注册的插件 harness ID,或受支持的 CLI 后端别名。内置 Codex 插件会注册codex;内置 Anthropic 插件提供claude-cliCLI 后端。id: "auto"允许已注册的插件 harness 认领受支持的轮次,并在没有 harness 匹配时使用 PI。显式插件运行时(如id: "codex")要求该 harness 存在,并在不可用或失败时封闭失败。- 整个智能体级别的运行时键属于旧版。
agents.defaults.agentRuntime、agents.list[].agentRuntime、会话运行时固定值和OPENCLAW_AGENT_RUNTIME会被运行时选择忽略。运行openclaw doctor --fix移除过期值。 - OpenAI 智能体模型默认使用 Codex harness;当你想显式声明时,提供商/模型的
agentRuntime.id: "codex"仍然有效。 - 对于 Claude CLI 部署,优先使用
model: "anthropic/claude-opus-4-7"加模型范围的agentRuntime.id: "claude-cli"。旧版claude-cli/claude-opus-4-7模型引用为兼容性仍可工作,但新配置应保持提供商/模型选择的规范性,并将执行后端放入提供商/模型运行时策略中。 - 这只控制文本智能体轮次执行。媒体生成、视觉、PDF、音乐、视频和 TTS 仍使用它们的提供商/模型设置。
agents.defaults.models 中时适用):
| 别名 | 模型 |
|---|---|
opus | anthropic/claude-opus-4-6 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/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 GLM-4.x 模型会自动启用思考模式。
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接受文件路径时,支持图片直通传递。 reseedFromRawTranscriptWhenUncompacted: true允许后端在第一个压缩摘要存在之前,从有界的原始 OpenClaw 转录尾部恢复安全失效的会话。凭证配置文件或凭证纪元变更仍然绝不会原始重播种。
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
周期性 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。directPolicy:直达/私信投递策略。allow(默认)允许直达目标投递。block会抑制直达目标投递并发出reason=dm-blocked。lightContext:为 true 时,Heartbeat 运行使用轻量级启动上下文,并且仅保留工作区启动文件中的HEARTBEAT.md。isolatedSession:为 true 时,每次 Heartbeat 都会在没有先前对话历史的新会话中运行。与 cronsessionTarget: "isolated"使用相同的隔离模式。将每次 Heartbeat 的 token 成本从约 100K 降至约 2-5K token。skipWhenBusy:为 true 时,Heartbeat 运行会在该智能体的额外繁忙通道上延后:它自己的按会话键标识的子智能体或嵌套命令工作。即使没有此标志,Cron 通道也始终会延后 Heartbeat。- 按智能体:设置
agents.list[].heartbeat。当任一智能体定义heartbeat时,只有这些智能体会运行 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 工具循环压力检查。当enabled: true时,OpenClaw 会在工具结果追加之后、下一次模型调用之前检查上下文压力。如果上下文已无法容纳,它会在提交提示前中止当前尝试,并复用现有的预检查恢复路径来截断工具结果,或进行压缩后重试。适用于default和safeguard两种压缩模式。默认:禁用。postCompactionSections:压缩后要重新注入的可选 AGENTS.md H2/H3 分节名称。默认为["Session Startup", "Red Lines"];设置[]可禁用重新注入。未设置或显式设置为该默认成对值时,也接受较旧的Every Session/Safety标题作为旧版回退。model:仅用于压缩摘要的可选provider/model-id覆盖。当主会话应保留一个模型、但压缩摘要应在另一个模型上运行时使用此项;未设置时,压缩使用会话的主模型。maxActiveTranscriptBytes:可选字节阈值(number或类似"20mb"的字符串),当活动 JSONL 增长超过该阈值时,会在运行前触发常规本地压缩。需要truncateAfterCompaction,以便成功压缩后可轮转到更小的后继转录。未设置或为0时禁用。notifyUser:为true时,会在压缩开始和完成时向用户发送简短通知(例如,“正在压缩上下文…”和“压缩完成”)。默认禁用以保持压缩静默。memoryFlush:自动压缩前用于存储持久记忆的静默智能体轮次。当此类维护轮次应停留在本地模型上时,将model设置为精确的提供商/模型,例如ollama/qwen3:8b;此覆盖不会继承活动会话回退链。工作区为只读时跳过。
agents.defaults.runRetries
嵌入式 Pi 运行器的外层运行循环重试迭代边界,用于防止故障恢复期间出现无限执行循环。请注意,此设置目前仅适用于嵌入式智能体运行时,不适用于 ACP 或 CLI 运行时。
base:外层运行循环的基础运行重试迭代次数。默认值:24。perProfile:每个回退配置文件候选项授予的额外运行重试迭代次数。默认值:8。min:运行重试迭代次数的最小绝对限制。默认值:32。max:运行重试迭代次数的最大绝对限制,用于防止失控执行。默认值:160。
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。
构建镜像(从源码检出):
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中,并在这里仅设置与 persona 相关的值,例如提供商、声音、模型、风格或自动模式。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:可选的每智能体默认快速模式(true | false)。当未设置每消息或会话快速模式覆盖时应用。models:可选的每智能体模型目录/运行时覆盖,以完整provider/modelID 为键。使用models["provider/model"].agentRuntime设置每智能体运行时例外。runtime:可选的每智能体运行时描述符。当该智能体应默认使用 ACP harness 会话时,使用type: "acp"以及runtime.acp默认值(agent、backend、mode、cwd)。identity.avatar:相对于工作区的路径、http(s)URL 或data:URI。identity会派生默认值:从emoji派生ackReaction,从name/emoji派生mentionPatterns。subagents.allowAgents:显式sessions_spawn.agentId目标的智能体 ID 允许列表(["*"]= 任意;默认:仅相同智能体)。当应允许自目标agentId调用时,请包含请求者 ID。- 沙箱继承保护:如果请求者会话处于沙箱隔离中,
sessions_spawn会拒绝将以非沙箱方式运行的目标。 subagents.requireAgentId:为 true 时,阻止省略agentId的sessions_spawn调用(强制显式选择配置文件;默认:false)。
多智能体路由
在一个 Gateway 网关中运行多个隔离的智能体。请参阅 Multi-Agent。绑定匹配字段
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 会按精确对话身份(match.channel + 账户 + match.peer.id)解析,不使用上面的路由绑定层级顺序。
每智能体访问配置文件
Full access (no sandbox)
Full access (no sandbox)
Read-only tools + workspace
Read-only tools + workspace
No filesystem access (messaging only)
No filesystem access (messaging only)
会话
Session field details
Session field details
scope:群聊上下文的基础会话分组策略。per-sender(默认):每个发送者在渠道上下文中获得一个隔离会话。global:渠道上下文中的所有参与者共享单个会话(仅在有意共享上下文时使用)。
dmScope:私信的分组方式。main:所有私信共享主会话。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的别名接受。mainKey:旧版字段。运行时始终使用"main"作为主直接聊天存储桶。agentToAgent.maxPingPongTurns:智能体到智能体交换期间,智能体之间最大往返回复轮次(整数,范围:0-20,默认:5)。0会禁用往返链式回复。sendPolicy:按channel、chatType(direct|group|channel,旧版dm别名)、keyPrefix或rawKeyPrefix匹配。第一个拒绝规则生效。maintenance:会话存储清理 + 保留控制。mode:warn仅发出警告;enforce执行清理。pruneAfter:陈旧条目的年龄截止点(默认30d)。maxEntries:sessions.json中的最大条目数(默认500)。运行时会为生产规模上限使用小型高水位缓冲区批量写入清理;openclaw sessions cleanup --enforce会立即应用上限。rotateBytes:已弃用并被忽略;openclaw doctor --fix会从旧配置中移除它。resetArchiveRetention:*.reset.<timestamp>transcript 归档的保留期。默认使用pruneAfter;设为false可禁用。maxDiskBytes:可选的会话目录磁盘预算。在warn模式下记录警告;在enforce模式下会优先移除最旧的工件/会话。highWaterBytes:预算清理后的可选目标值。默认是maxDiskBytes的80%。
threadBindings:线程绑定会话功能的全局默认值。enabled:主默认开关(提供商可以覆盖;Discord 使用channels.discord.threadBindings.enabled)idleHours:默认无活动自动取消聚焦时间,单位为小时(0禁用;提供商可以覆盖)maxAgeHours:默认硬性最大年龄,单位为小时(0禁用;提供商可以覆盖)spawnSessions:从sessions_spawn和 ACP 线程 spawn 创建线程绑定工作会话的默认门控。启用线程绑定时默认为true;提供商/账号可以覆盖。defaultSpawnContext:线程绑定 spawn 的默认原生子智能体上下文("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} | 智能体身份名称 | (与 "auto" 相同) |
{think} 是 {thinkingLevel} 的别名。
确认反应
- 默认使用活动智能体的
identity.emoji,否则使用"👀"。设置为""可禁用。 - 按渠道覆盖:
channels.<channel>.ackReaction、channels.<channel>.accounts.<id>.ackReaction。 - 解析顺序:账号 → 渠道 →
messages.ackReaction→ 身份回退值。 - 范围:
group-mentions(默认)、group-all、direct、all。 removeAckAfterReply:在 Slack、Discord、Telegram、WhatsApp 和 iMessage 等支持反应的渠道上,回复后移除确认反应。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)仅用于兼容。运行openclaw doctor --fix可将持久化配置重写到talk.providers.<provider>。 - 语音 ID 会回退到
ELEVENLABS_VOICE_ID或SAG_VOICE_ID。 providers.*.apiKey接受明文字符串或 SecretRef 对象。- 仅在未配置 Talk API 密钥时,才会应用
ELEVENLABS_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会覆盖开发用助手路径。 consultThinkingLevel控制 Control UI Talk 实时openclaw_agent_consult调用背后的完整 OpenClaw 智能体运行所使用的思考级别。留空可保留正常会话/模型行为。consultFastMode为 Control UI Talk 实时咨询设置一次性快速模式覆盖,而不更改会话的正常快速模式设置。speechLocale设置 iOS/macOS Talk 语音识别使用的 BCP 47 区域设置 ID。留空则使用设备默认值。silenceTimeoutMs控制 Talk 模式在用户静默后等待多久再发送转录。未设置时保留平台默认暂停窗口(macOS 和 Android 上为 700 ms,iOS 上为 900 ms)。realtime.instructions会向 OpenClaw 的内置实时提示追加面向提供商的系统指令,因此可以配置语音风格而不丢失默认的openclaw_agent_consult指导。