tools.* 配置键以及自定义提供方 / 基础 URL 设置。有关代理、通道和其他顶层配置键,请参见 配置参考。
工具
工具配置档案
tools.profile 在 tools.allow/tools.deny 之前设置基础允许列表:
本地入门在新建本地配置且未设置时,默认使用
tools.profile: "coding"(已存在的显式配置档案会保留)。| 配置档案 | 包含内容 |
|---|---|
minimal | 仅 session_status |
coding | group:fs、group:runtime、group:web、group:sessions、group:memory、cron、image、image_generate、skill_workshop、video_generate |
messaging | group:messaging、sessions_list、sessions_history、sessions_send、session_status |
full | 无限制(与未设置相同) |
工具组
| 组 | 工具 |
|---|---|
group:runtime | exec、process、code_execution(bash 可作为 exec 的别名) |
group:fs | read、write、edit、apply_patch |
group:sessions | sessions_list、sessions_history、sessions_send、sessions_spawn、sessions_yield、subagents、session_status |
group:memory | memory_search、memory_get |
group:web | web_search、x_search、web_fetch |
group:ui | browser、canvas |
group:automation | heartbeat_respond、cron、gateway |
group:messaging | message |
group:nodes | nodes |
group:agents | agents_list、update_plan |
group:media | image、image_generate、music_generate、video_generate、tts |
group:openclaw | 所有内置工具(不包括提供方插件) |
group:plugins | 已加载插件拥有的工具,包括通过 bundle-mcp 暴露的已配置 MCP 服务器 |
沙箱工具策略中的 MCP 与插件工具
已配置的 MCP 服务器会作为插件拥有的工具,通过bundle-mcp 插件 id 暴露。普通工具配置档案可以允许它们,但 tools.sandbox.tools 是沙箱会话中的额外门控。如果沙箱模式是 "all" 或 "non-main",并且希望 MCP/插件工具可见,请在沙箱工具允许列表中加入以下条目之一:
bundle-mcp,用于来自mcp.servers的 OpenClaw 托管 MCP 服务器- 某个特定原生插件的插件 id
group:plugins,用于所有已加载的插件拥有工具- 精确的 MCP 服务器工具名或服务器通配符,例如
outlook__send_mail或outlook__*,当你只想要一个服务器时
mcp.servers 键。非 [A-Za-z0-9_-] 字符会变成 -,不以字母开头的名称会加上 mcp- 前缀,较长或重复的前缀可能会被截断或追加后缀;例如,mcp.servers["Outlook Graph"] 使用的通配符类似 outlook-graph__*。
mcp.servers 中由 OpenClaw 托管的服务器,使用 openclaw doctor 可以捕获这种情况。来自捆绑插件清单或 Claude .mcp.json 的 MCP 服务器使用相同的沙箱门控,但此诊断尚不会枚举这些来源;如果它们的工具在沙箱会话中消失,请使用相同的允许列表条目。
tools.codeMode
tools.codeMode 启用通用的 OpenClaw 代码模式界面。启用后,对于带工具的运行,模型只会看到 exec 和 wait;普通 OpenClaw 工具会转移到沙箱内的 tools.* 目录桥接下,MCP 工具可通过生成的 MCP 命名空间访问。
API.list("mcp") 和 API.read("mcp/<server>.d.ts") 在调用 MCP.<server>.<tool>() 之前检查 TypeScript 风格的签名。有关运行时契约、限制和调试步骤,请参见 代码模式。
tools.allow / tools.deny
全局工具允许/拒绝策略(拒绝优先)。大小写不敏感,支持 * 通配符。即使 Docker 沙箱关闭也会应用。
write 和 apply_patch 是独立的工具 id。allow: ["write"] 也会为兼容模型启用 apply_patch,但 deny: ["write"] 不会拒绝 apply_patch。要阻止所有文件修改,请拒绝 group:fs,或显式列出每个会修改的工具:
tools.byProvider
进一步限制特定提供方或模型可用的工具。顺序:基础配置档案 → 提供方配置档案 → allow/deny。
tools.toolsBySender
按特定请求者身份限制工具。这是在通道访问控制之上的纵深防御;sender 值必须来自通道适配器,而不是消息文本。
channel:<channelId>:<senderId>、id:<senderId>、e164:<phone>、username:<handle>、name:<displayName>,或 "*"。通道 id 是规范化的 OpenClaw id;像 teams 这样的别名会规范化为 msteams。旧式无前缀键会按 id: 处理。匹配顺序为 channel+id、id、e164、username、name,然后是通配符。
每个代理的 agents.list[].tools.toolsBySender 在匹配时会覆盖全局 sender 匹配,即使是空的 {} 策略也是如此。
tools.elevated
控制沙箱外的提升级 exec 访问:
- 每个代理的覆盖项(
agents.list[].tools.elevated)只能进一步收紧。 /elevated on|off|ask|full会按会话存储状态;行内指令仅作用于单条消息。- 提升级
exec会绕过沙箱,并使用配置的逃逸路径(默认gateway,如果 exec 目标是node则使用node)。
tools.exec
tools.loopDetection
工具循环安全检查默认禁用。设置 enabled: true 以启用检测。配置可以在全局 tools.loopDetection 中定义,并在 agents.list[].tools.loopDetection 中按代理覆盖。
循环分析保留的工具调用历史最大长度。
用于警告的无进展重复模式阈值。
用于阻止严重循环的更高重复阈值。
任何无进展运行的硬停止阈值。
对重复的同工具/同参数调用发出警告。
对已知轮询工具(
process.poll、command_status 等)发出警告/阻止。对交替出现的无进展成对模式发出警告/阻止。
tools.web
tools.media
配置入站媒体理解(图像/音频/视频):
媒体模型条目字段
媒体模型条目字段
提供方条目(
type: "provider" 或省略):provider:API 提供方 id(openai、anthropic、google/gemini、groq等)model:模型 id 覆盖profile/preferredProfile:auth-profiles.json配置档案选择
type: "cli"):command:要运行的可执行文件args:模板参数(支持{{MediaPath}}、{{Prompt}}、{{MaxChars}}等;openclaw doctor --fix会把已弃用的{input}占位符迁移为{{MediaPath}})
capabilities:可选列表(image、audio、video)。默认值:openai/anthropic/minimax→ image,google→ image+audio+video,groq→ audio。prompt、maxChars、maxBytes、timeoutSeconds、language:每个条目的覆盖项。- 当代理调用显式
image工具时,tools.media.image.timeoutSeconds以及匹配的图像模型timeoutSeconds条目也会生效。 - 失败会回退到下一条目。
auth-profiles.json → 环境变量 → models.providers.*.apiKey。异步完成字段:asyncCompletion.directSend:已弃用的兼容标志。完成的异步媒体任务仍然由请求者会话中介,因此代理会收到结果、决定如何告知用户,并在源交付需要时使用 message 工具。
tools.agentToAgent
tools.sessions
控制哪些会话可以被会话工具(sessions_list、sessions_history、sessions_send)作为目标。
默认值:tree(当前会话 + 由其派生的会话,例如子代理)。
可见性范围
可见性范围
self:仅当前会话键。tree:当前会话 + 由当前会话派生的会话(子代理)。agent:属于当前代理 id 的任意会话(如果你在同一代理 id 下为不同用户运行按发送者划分的会话,也可能包含其他用户)。all:任意会话。跨代理目标仍需要tools.agentToAgent。- 沙箱约束:当当前会话处于沙箱中且
agents.defaults.sandbox.sessionToolsVisibility="spawned"时,即使tools.sessions.visibility="all",可见性也会强制为tree。 - 当不是
all时,sessions_list会包含一个简洁的visibility字段, 说明有效模式以及某些会话可能会在当前范围之外被省略的警告。
tools.sessions_spawn
控制 sessions_spawn 的内联附件支持。
附件说明
附件说明
- 需要将
enabled设为true才可使用附件。 - 子代理附件会被物化到子工作区的
.openclaw/attachments/<uuid>/,并带有.manifest.json。 - ACP 附件仅限图像,并会在通过相同的文件数量、单文件字节数和总字节数限制后以内联方式转发到 ACP 运行时。
- 附件内容会在转录持久化中自动脱敏。
- Base64 输入会通过严格的字母表/填充检查以及解码前大小保护进行验证。
- 子代理附件文件权限为目录
0700、文件0600。 - 子代理清理遵循
cleanup策略:delete始终移除附件;keep仅在retainOnSessionKeep: true时保留它们。
tools.experimental
实验性内置工具标志。除非严格代理式 GPT-5 自动启用规则适用,否则默认关闭。
planTool:为非平凡的多步骤工作追踪启用结构化的update_plan工具。- 默认值:
false,除非针对 OpenAI 或 OpenAI Codex GPT-5 系列运行设置了agents.defaults.embeddedAgent.executionContract(或每个代理的覆盖项)为"strict-agentic"。在该范围之外可设为true以强制启用,或设为false以即使在严格代理式 GPT-5 运行中也保持关闭。 - 启用后,系统提示词还会添加使用指导,使模型仅在处理重要工作时使用它,并且最多保持一个步骤处于
in_progress。
agents.defaults.subagents
model:生成子代理的默认模型。如果省略,子代理会继承调用者的模型。allowAgents:当请求者代理没有设置自己的subagents.allowAgents时,sessions_spawn可用的已配置目标代理 id 默认允许列表(["*"]= 任意已配置目标;默认值:仅同一代理)。已删除代理配置的过期条目会被sessions_spawn拒绝,并从agents_list中省略;运行openclaw doctor --fix可清理它们。runTimeoutSeconds:sessions_spawn的默认超时时间(秒)。0表示无超时。announceTimeoutMs:gatewayagent通知投递尝试的单次超时(毫秒)。默认值:120000。瞬时重试可能使总通知等待时间超过单个配置的超时值。- 每个子代理的工具策略:
tools.subagents.tools.allow/tools.subagents.tools.deny。
自定义提供商和基础 URL
提供商插件会发布自己的模型目录行。可通过配置中的models.providers 或 ~/.openclaw/agents/<agentId>/agent/models.json 添加自定义提供商。
为自定义/本地提供商配置 baseUrl,同时也意味着对模型 HTTP 请求做了一次窄范围的网络信任决策:OpenClaw 会允许该精确的 scheme://host:port 源通过受保护的 fetch 路径,而不会额外添加单独的配置项,也不会信任其他私有源。
认证与合并优先级
认证与合并优先级
- 使用
authHeader: true+headers来满足自定义认证需求。 - 通过
OPENCLAW_AGENT_DIR覆盖 agent 配置根目录。 - 匹配 provider ID 时的合并优先级:
- 非空的 agent
models.json中baseUrl值优先。 - 非空的 agent
apiKey值仅在该 provider 在当前配置/认证配置文件上下文中不是由 SecretRef 管理时才优先。 - 由 SecretRef 管理的 provider
apiKey值会从源标记刷新(环境变量引用使用ENV_VAR_NAME,文件/exec 引用使用secretref-managed),而不是持久化解析后的密钥。 - 由 SecretRef 管理的 provider header 值会从源标记刷新(环境变量引用使用
secretref-env:ENV_VAR_NAME,文件/exec 引用使用secretref-managed)。 - agent 中空或缺失的
apiKey/baseUrl会回退到配置中的models.providers。 - 匹配的模型
contextWindow/maxTokens会采用显式配置与隐式目录值中的较大值。 - 匹配的模型
contextTokens在存在显式运行时上限时会保留该值;可用它限制有效上下文,而不改变原生模型元数据。 - provider-plugin 目录会作为生成的、由插件拥有的目录分片存储在 agent 的插件状态中。
- 当你希望配置完全重写
models.json和活动的插件目录分片时,请使用models.mode: "replace"。 - 标记持久化以源为准:标记会根据当前源配置快照(解析前)写入,而不是来自解析后的运行时密钥值。
- 非空的 agent
提供商字段详情
顶层目录
顶层目录
models.mode:提供商目录行为(merge或replace)。models.providers:按 provider id 键入的自定义 provider 映射。- 安全编辑:使用
openclaw config set models.providers.<id> '<json>' --strict-json --merge或openclaw config set models.providers.<id>.models '<json-array>' --strict-json --merge进行增量更新。config set会拒绝破坏性替换,除非你传入--replace。
- 安全编辑:使用
提供商连接与认证
提供商连接与认证
请求传输覆盖
请求传输覆盖
模型目录条目
模型目录条目
models.providers.*.models:显式的 provider 模型目录条目。models.providers.*.models.*.input:模型输入模态。纯文本模型使用["text"],原生图像/视觉模型使用["text", "image"]。只有当所选模型被标记为支持图像时,图像附件才会注入到 agent 回合中。models.providers.*.models.*.contextWindow:原生模型上下文窗口元数据。它会覆盖该模型的 provider 级contextWindow。models.providers.*.models.*.contextTokens:可选的运行时上下文上限。它会覆盖 provider 级contextTokens;当你希望有效上下文预算小于模型原生contextWindow时可使用它;openclaw models list会在两者不同时时显示两个值。models.providers.*.models.*.compat.supportsDeveloperRole:可选兼容性提示。对于api: "openai-completions"且baseUrl非空且非原生(host 不是api.openai.com)的情况,OpenClaw 会在运行时强制将其设为false。空的/省略的baseUrl会保留默认 OpenAI 行为。models.providers.*.models.*.compat.requiresStringContent:面向仅支持字符串的 OpenAI 兼容聊天端点的可选兼容性提示。当为true时,OpenClaw 会在发送请求前将纯文本messages[].content数组压平成普通字符串。models.providers.*.models.*.compat.strictMessageKeys:面向严格 OpenAI 兼容聊天端点的可选兼容性提示。当为true时,OpenClaw 会在发送请求前将输出的 Chat Completions 消息对象裁剪为仅保留role和content。models.providers.*.models.*.compat.thinkingFormat:可选的 thinking 负载提示。Together 风格的reasoning.enabled使用"together",顶层enable_thinking使用"qwen",而chat_template_kwargs.enable_thinking使用"qwen-chat-template",适用于支持请求级 chat-template kwargs 的 Qwen 系列 OpenAI 兼容服务器,例如 vLLM。已配置的 vLLM Qwen 模型会为这些格式暴露二值/think选项(off、on)。models.providers.*.models.*.compat.requiresReasoningContentOnAssistantMessages:面向 DeepSeek 风格 Chat Completions 后端的可选兼容性提示,这类后端要求先前的 assistant 消息在重放时保留reasoning_content。当为true时,OpenClaw 会在输出的 assistant 消息中保留该字段。把它用于连接会在移除推理内容后拒绝请求的自定义 DeepSeek 兼容代理。默认值:false。
Amazon Bedrock 发现
Amazon Bedrock 发现
plugins.entries.amazon-bedrock.config.discovery:Bedrock 自动发现设置根。plugins.entries.amazon-bedrock.config.discovery.enabled:开启/关闭隐式发现。plugins.entries.amazon-bedrock.config.discovery.region:用于发现的 AWS 区域。plugins.entries.amazon-bedrock.config.discovery.providerFilter:用于定向发现的可选 provider-id 过滤器。plugins.entries.amazon-bedrock.config.discovery.refreshInterval:发现刷新的轮询间隔。plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow:已发现模型的回退上下文窗口。plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens:已发现模型的回退最大输出 token。
--custom-image-input 可强制使用支持图像的元数据,或传入 --custom-text-input 强制使用纯文本元数据。
提供商示例
Cerebras(GLM 4.7 / GPT OSS)
Cerebras(GLM 4.7 / GPT OSS)
内置的 Cerebras 使用
cerebras provider 插件可以通过 openclaw onboard --auth-choice cerebras-api-key 进行配置。只有在需要覆盖默认值时才使用显式 provider 配置。cerebras/zai-glm-4.7;Z.AI 直连使用 zai/glm-4.7。Kimi Coding
Kimi Coding
openclaw onboard --auth-choice kimi-code-api-key。本地模型(LM Studio)
本地模型(LM Studio)
参见 本地模型。简而言之:在高性能硬件上通过 LM Studio Responses API 运行大型本地模型;保留托管模型的合并以作为回退。
MiniMax M3(直连)
MiniMax M3(直连)
MINIMAX_API_KEY。快捷方式:openclaw onboard --auth-choice minimax-global-api 或 openclaw onboard --auth-choice minimax-cn-api。模型目录默认包含 M3,也包含 M2.7 变体。在 Anthropic 兼容的流式路径上,OpenClaw 默认会禁用 MiniMax M2.x thinking,除非你显式设置了 thinking;MiniMax-M3(以及 M3.x)默认保持 provider 的省略/自适应 thinking 路径。/fast on 或 params.fastMode: true 会把 MiniMax-M2.7 重写为 MiniMax-M2.7-highspeed。Moonshot AI(Kimi)
Moonshot AI(Kimi)
baseUrl: "https://api.moonshot.cn/v1",或使用 openclaw onboard --auth-choice moonshot-api-key-cn。原生 Moonshot 端点在共享的 openai-completions 传输上支持流式 usage 兼容性,OpenClaw 会根据端点能力而不是仅根据内置 provider id 来判断。OpenCode
OpenCode
OPENCODE_API_KEY(或 OPENCODE_ZEN_API_KEY)。Zen 目录使用 opencode/... 引用,Go 目录使用 opencode-go/... 引用。快捷方式:openclaw onboard --auth-choice opencode-zen 或 openclaw onboard --auth-choice opencode-go。Synthetic(Anthropic 兼容)
Synthetic(Anthropic 兼容)
/v1(Anthropic 客户端会自动追加)。快捷方式:openclaw onboard --auth-choice synthetic-api-key。Z.AI(GLM-4.7)
Z.AI(GLM-4.7)
ZAI_API_KEY。模型引用使用规范的 zai/* provider ID。快捷方式:openclaw onboard --auth-choice zai-api-key。- 通用端点:
https://api.z.ai/api/paas/v4 - 编程端点(默认):
https://api.z.ai/api/coding/paas/v4 - 对于通用端点,定义一个带基础 URL 覆盖的自定义 provider。
相关内容
- 配置 — agents
- 配置 — channels
- 配置参考 — 其他顶层键
- 工具与插件