Skip to main content
tools.* 配置键以及自定义提供商 / 基础 URL 设置。有关智能体、渠道和其他顶层配置键,请参阅配置参考

工具

工具配置档

tools.profiletools.allow/tools.deny 之前设置基础允许列表:
未设置时,本地新手引导默认将新的本地配置设为 tools.profile: "coding"(保留现有的显式配置档)。
codingmessaging 还会隐式允许 bundle-mcp(已配置的 MCP 服务器)。

工具组

spawn_task 允许编码智能体提出需确认的后续工作,而不立即启动它。Control UI 将标题和摘要显示为可操作的标签;由 Gateway 网关支持的 TUI 会显示等效的交互式提示。接受任一提示都会创建新的托管工作树会话,并将完整提示发送到该会话,同时当前轮次继续进行。dismiss_task 使用 spawn_task 返回的临时 task_id 撤回仍处于待处理状态的建议。 仅当发起操作的界面能够接收并处理 Gateway 网关任务建议事件时,才会提供这些工具。渠道会话和本地/嵌入式 TUI 会话不会接收这些事件;渠道传输需要可移植的类型化任务操作,之后才能安全地公开此流程。建议仅存在于当前进程中,并会在 Gateway 网关重启时消失。这两个工具仍包含在 coding 配置档和 group:sessions 中,因此当界面支持它们时,常规的 tools.allowtools.deny 策略会自动配置它们。

沙箱工具策略中的 MCP 和插件工具

已配置的 MCP 服务器以 bundle-mcp 插件 ID 下由插件拥有的工具形式公开。常规工具配置档可以允许这些工具,但对于沙箱隔离的会话,tools.sandbox.tools 是一个额外关卡。如果沙箱模式为 "all""non-main",并且需要显示 MCP/插件工具,请在沙箱工具允许列表中包含以下条目之一:
  • bundle-mcp,用于来自 mcp.servers 的 OpenClaw 托管 MCP 服务器
  • 特定原生插件的插件 ID
  • group:plugins,用于所有已加载的插件自有工具
  • 确切的 MCP 服务器工具名称或服务器 glob,例如 outlook__send_mailoutlook__*,适用于只需要一个服务器的情况
服务器 glob 使用提供商安全的 MCP 服务器前缀,不一定是原始 mcp.servers 键。非 [A-Za-z0-9_-] 字符会变为 -,不以字母开头的名称会添加 mcp- 前缀,过长或重复的前缀可能会被截断或添加后缀;例如,mcp.servers["Outlook Graph"] 使用类似 outlook-graph__* 的 glob。
如果缺少该沙箱层条目,MCP 服务器仍可成功加载,但其工具会在提供商请求之前被过滤掉。使用 openclaw doctor 可捕获 mcp.servers 中 OpenClaw 托管服务器的这种配置情况。从内置插件清单或 Claude .mcp.json 加载的 MCP 服务器使用相同的沙箱关卡,但此诊断目前尚不会枚举这些来源;如果它们的工具在沙箱隔离的轮次中消失,请使用相同的允许列表条目。

tools.codeMode

tools.codeMode 启用通用 OpenClaw 代码模式界面。为带工具的运行启用后,常规 OpenClaw 工具会移至沙箱内的 tools.* 目录桥接器之后,而 MCP 工具可通过生成的 MCP 命名空间使用。模型通常会看到 execwait;像 computer 这样结构化结果无法通过仅支持 JSON 的桥接器传递的工具仍保持直接提供。
也接受简写形式:
在代码模式下,MCP 声明通过只读虚拟 API 文件界面公开。来宾代码可以调用 API.list("mcp")API.read("mcp/<server>.d.ts"),在调用 MCP.<server>.<tool>() 之前检查 TypeScript 风格的签名。有关运行时契约、限制和调试步骤,请参阅代码模式

tools.allow / tools.deny

全局工具允许/拒绝策略(拒绝优先)。不区分大小写,支持 * 通配符。即使 Docker 沙箱关闭也会应用。
writeapply_patch 是不同的工具 ID。allow: ["write"] 还会为兼容模型启用 apply_patch,但 deny: ["write"] 不会拒绝 apply_patch。要阻止所有文件修改,请拒绝 group:fs,或明确列出每个修改工具:
不能在同一作用域(toolstools.byProvider.<id>agents.entries.*.tools)中同时设置 allowalsoAllow——配置验证会拒绝这种情况。请将 alsoAllow 条目合并到 allow,或移除 allow,改用 profile + alsoAllow

tools.byProvider

进一步限制特定提供商或模型可用的工具。顺序:基础配置档 → 提供商配置档 → 允许/拒绝。

tools.toolsBySender

限制当前轮次原始请求者可使用的工具。这是在渠道访问控制之上的纵深防御;发送者值必须来自渠道适配器,而非消息文本。它不会对模型提示中的其他内容进行身份验证;请参阅请求者范围控制和提示上下文
键使用显式前缀:channel:<channelId>:<senderId>id:<senderId>e164:<phone>username:<handle>name:<displayName>"*"。渠道 ID 是规范的 OpenClaw ID;teams 等别名会规范化为 msteams。旧版无前缀键仅作为 id: 接受。匹配顺序依次为渠道 + ID、ID、e164、用户名、名称,最后是通配符。 当每个智能体的 agents.entries.*.tools.toolsBySender 匹配时,它会覆盖全局发送者匹配,即使 {} 策略为空也是如此。

tools.elevated

控制沙箱外提升权限的 Exec 访问:
  • 每个智能体的覆盖配置(agents.entries.*.tools.elevated)只能进一步收紧限制。
  • /elevated on|off|ask|full 按会话存储状态;内联指令仅应用于单条消息。
  • 提升权限的 exec 会绕过沙箱隔离,并使用配置的逃逸路径(默认为 gateway;当 Exec 目标为 node 时则为 node)。

tools.exec

applyPatch.allowModels 外,所示值均为默认值(默认值为空/未设置,表示任何兼容模型均可使用 apply_patch)。当由审批支持的 Exec 长时间运行时,approvalRunningNoticeMs 会发出运行中通知;0 会将其禁用。

tools.loopDetection

工具循环安全检查默认禁用。将 enabled: true 设置为启用检测。设置可在 tools.loopDetection 中进行全局定义,并在每个智能体的 agents.entries.*.tools.loopDetection 中覆盖。

tools.web

provideruserAgent 外,所示值均为默认值。maxResponseBytes 会限制在 32000–10000000 范围内;maxChars 会限制为 maxCharsCap(提高 maxCharsCap 可允许更大的响应)。

tools.media

配置入站媒体理解(图像/音频/视频):
tools.media.models 是唯一配置的模型列表。每个条目都声明其处理的能力。可选的 preferredModel 选择器接受 provider/model、模型 ID、用于提供商默认条目的 provider:<id>cli:command;匹配的条目会移至相应能力回退顺序的最前面。对于已配置和自动检测的模型,每种能力的提示、限制、请求设置、范围、附件策略和音频转录回显均保持默认值;模型条目可以覆盖模型特定字段。
提供商条目type: "provider" 或省略):
  • provider:API 提供商 ID(openaianthropicgoogle/geminigroq 等)
  • model:模型 ID 覆盖
  • profile / preferredProfileauth-profiles.json 配置文件选择
CLI 条目type: "cli"):
  • command:要运行的可执行文件
  • args:模板化参数(支持 {{AttachmentPath}}{{AttachmentUrl}}{{AttachmentContentType}}{{AttachmentDir}}{{AttachmentIndex}}{{Prompt}}{{MaxChars}} 等;openclaw doctor --fix 会将已弃用的 {input} 占位符迁移到 {{AttachmentPath}})。较旧的 {{MediaPath}}{{MediaUrl}}{{MediaType}}{{MediaDir}} 别名在其兼容期内仍可使用,但已弃用。
通用字段:
  • capabilities:包含 imageaudiovideo 中一项或多项的列表。
  • promptmaxCharsmaxBytestimeoutSecondslanguage:每个条目的覆盖配置。
  • 当智能体调用显式 image 工具时,匹配的图像模型 timeoutSeconds 条目也会应用。对于图像理解,此超时应用于请求本身,不会因之前的准备工作而缩短。
  • 失败时回退到下一个条目。
提供商身份验证遵循标准顺序:auth-profiles.json → 环境变量 → models.providers.*.apiKey

tools.agentToAgent

tools.sessions

控制会话工具(sessions_listsessions_historysessions_send)可以将哪些会话作为目标。 默认值:tree(当前会话 + 由其生成的会话,例如子智能体,以及同一智能体在环境中监视的群组会话)。
  • self:仅当前会话键。
  • tree:当前会话 + 当前会话生成的会话(子智能体)。对于读取操作,它还包括当前会话通过环境群组感知所监视的同一智能体群组会话。
  • agent:属于当前智能体 ID 的任何会话(如果在同一智能体 ID 下运行按发送者划分的会话,可能包含其他用户)。
  • all:任何会话。跨智能体定向仍需要 tools.agentToAgent
  • 沙箱限制:当前会话处于沙箱隔离状态且 agents.defaults.sandbox.sessionToolsVisibility="spawned"(默认值)时,即使 tools.sessions.visibility="all",可见性也会被强制设为 tree
  • 当不是 all 时,sessions_list 会包含一个精简的 visibility 字段,用于描述生效模式,并警告当前范围之外的某些会话可能会被省略。
使用默认的 session.dmScope: "main" 时,群组中的人类活动会使该同一智能体群组会话在环境中对智能体的主会话可见。在多用户设置中,"main" 还会在用户之间共享一个私信会话,因此路由到该会话的每个用户都可以读取在环境中监视的群组,包括通过会话记忆 memory_search 读取。请使用按对等方划分的 dmScope 来隔离私信,或设置 tools.sessions.visibility: "self" 以停用环境监视会话读取。

tools.sessions_spawn

控制 sessions_spawn 的内联附件支持。
  • 附件需要 enabled: true
  • 子智能体附件会通过 .manifest.json 实体化到子工作区的 .openclaw/attachments/<uuid>/ 中。
  • ACP 附件仅支持图像,在通过相同的文件数量、单文件字节数和总字节数限制后,会以内联方式转发到 ACP 运行时。
  • 附件内容会自动从持久化的转录记录中隐去。
  • Base64 输入会接受严格的字母表/填充检查以及解码前大小防护。
  • 子智能体附件的文件权限:目录为 0700,文件为 0600
  • 子智能体清理遵循 cleanup 策略:delete 始终删除附件;仅当 retainOnSessionKeep: true 时,keep 才保留附件。

tools.experimental

实验性内置工具标志。除非适用严格智能体式 GPT-5 自动启用规则,否则默认关闭。
  • planTool:启用结构化 update_plan 工具,用于跟踪非简单的多步骤工作。
  • 默认值:false;但如果在针对 GPT-5 系列模型 ID 的 openai 提供商运行中,将 agents.defaults.embeddedAgent.executionContract(或每个智能体的覆盖配置)设为 "strict-agentic",则例外(这也涵盖 OpenAI Codex CLI 运行,因为 Codex 身份验证/模型路由位于 openai 提供商下)。设置 true 可在该范围之外强制启用该工具;设置 false 可使其即使在严格智能体式 GPT-5 运行中也保持关闭。
  • 启用后,系统提示还会添加使用指导,使模型仅将其用于实质性工作,并最多保持一个步骤为 in_progress

agents.defaults.subagents

  • model:生成的子智能体的默认模型。如果省略,子智能体将继承调用方的模型。
  • allowAgents:当请求方智能体未设置自己的 subagents.allowAgents 时,为 sessions_spawn 配置的目标智能体 ID 的默认允许列表(["*"] = 任意已配置目标;默认:仅同一智能体)。智能体配置已删除的过期条目会被 sessions_spawn 拒绝,并从 agents_list 中省略;运行 openclaw doctor --fix 可将其清理。
  • maxConcurrent:子智能体并发运行数上限。默认值:8
  • runTimeoutSeconds:调用方未传递自己的覆盖值时,sessions_spawn 的超时时间(秒)。默认值:0(无超时);上面显示的 900 是常用的选择启用值,并非内置默认值。
  • announceTimeoutMs:Gateway 网关 agent 公告投递尝试的单次调用超时时间(毫秒)。默认值:120000。临时重试可能使公告的总等待时间超过一次配置的超时时间。
  • archiveAfterMinutes:子智能体会话完成后到自动归档前的分钟数。默认值:600 会禁用自动归档。
  • 每个子智能体的工具策略:tools.subagents.tools.allow / tools.subagents.tools.deny

自定义提供商和基础 URL

提供商插件会发布自己的模型目录行。通过配置中的 models.providers~/.openclaw/agents/<agentId>/agent/models.json 添加自定义提供商。 配置自定义/本地提供商 baseUrl,也是针对模型 HTTP 请求的一项窄范围网络信任决策:OpenClaw 允许该 scheme://host:port 的确切源通过受保护的获取路径,而无需添加单独的配置选项或信任其他私有源。
  • 自定义身份验证需求请使用 authHeader: true + headers
  • 使用 OPENCLAW_AGENT_DIR 覆盖智能体配置根目录。
  • 匹配提供商 ID 时的合并优先级:
    • 智能体中非空的 models.json baseUrl 值优先。
    • 仅当该提供商在当前配置/身份验证配置文件上下文中不由 SecretRef 管理时,智能体中非空的 apiKey 值才优先。
    • 由 SecretRef 管理的提供商 apiKey 值会从来源标记(环境引用使用 ENV_VAR_NAME,文件/exec 引用使用 secretref-managed)刷新,而不会持久化已解析的密钥。
    • 由 SecretRef 管理的提供商标头值会从来源标记(环境引用使用 secretref-env:ENV_VAR_NAME,文件/exec 引用使用 secretref-managed)刷新。
    • 智能体中为空或缺失的 apiKey/baseUrl 会回退到配置中的 models.providers
    • 匹配模型的 contextWindow/maxTokens:如果显式配置值存在且有效(有限正数),则该值优先;否则使用隐式/生成的目录值。
    • 匹配模型的 contextTokens 遵循相同的“显式值优先,否则使用隐式值”规则;使用它可限制有效上下文,而无需更改原生模型元数据。
    • 提供商插件目录以生成的、归插件所有的目录分片形式存储在智能体的插件状态中。
    • 如果希望配置完全重写 models.json,并跳过合并归插件所有的目录分片,请使用 models.mode: "replace"
    • 标记持久化以来源为准:标记从活动的来源配置快照(解析前)写入,而不是从解析后的运行时密钥值写入。

提供商字段详情

  • models.mode:提供商目录行为(mergereplace)。
  • models.providers:以提供商 ID 为键的自定义提供商映射。
    • 安全编辑:使用 openclaw config set models.providers.<id> '<json>' --strict-json --mergeopenclaw config set models.providers.<id>.models '<json-array>' --strict-json --merge 进行增量更新。除非传递 --replace,否则 config set 会拒绝破坏性替换。
  • models.providers.*.api:请求适配器(openai-completionsopenai-responsesopenai-chatgpt-responsesanthropic-messagesgoogle-generative-aigoogle-vertexgithub-copilotbedrock-converse-streamollamaazure-openai-responses)。对于 MLX、vLLM、SGLang 等自托管 /v1/chat/completions 后端以及大多数兼容 OpenAI 的本地服务器,请使用 openai-completions。具有 baseUrl 但没有 api 的自定义提供商默认为 openai-completions;仅当后端支持 /v1/responses 时才设置 openai-responses
  • models.providers.*.apiKey:提供商凭据(优先使用 SecretRef/环境变量替换)。
  • models.providers.*.auth:身份验证策略(api-keytokenoauthaws-sdk)。
  • models.providers.*.contextWindow:当模型条目未设置 contextWindow 时,此提供商下模型的默认原生上下文窗口。
  • models.providers.*.contextTokens:当模型条目未设置 contextTokens 时,此提供商下模型的默认有效运行时上下文上限。
  • models.providers.*.maxTokens:当模型条目未设置 maxTokens 时,此提供商下模型的默认输出 token 上限。
  • models.providers.*.timeoutSeconds:可选的每提供商模型 HTTP 请求超时时间(秒),涵盖连接、标头、正文和整个请求的中止处理。
  • models.providers.*.injectNumCtxForOpenAICompat:对于 Ollama + openai-completions,在请求中注入 options.num_ctx(默认值:true)。
  • models.providers.*.authHeader:需要时,强制通过 Authorization 标头传输凭据。
  • models.providers.*.baseUrl:上游 API 基础 URL。
  • models.providers.*.headers:用于代理/租户路由的额外静态标头。
models.providers.*.request:模型提供商 HTTP 请求的传输覆盖。
  • request.headers:额外标头(与提供商默认值合并)。值接受 SecretRef。
  • request.auth:身份验证策略覆盖。模式:"provider-default"(使用提供商的内置身份验证)、"authorization-bearer"(配合 token)、"header"(配合 headerNamevalue,以及可选的 prefix)。
  • request.proxy:HTTP 代理覆盖。模式:"env-proxy"(使用 HTTP_PROXY/HTTPS_PROXY 环境变量)、"explicit-proxy"(配合 url)。两种模式都接受可选的 tls 子对象。
  • request.tls:直连的 TLS 覆盖。字段:cacertkeypassphrase(均接受 SecretRef)、serverNameinsecureSkipVerify
  • request.allowPrivateNetwork:当值为 true 时,允许模型提供商 HTTP 请求通过提供商 HTTP 获取保护机制访问私有、CGNAT 或类似范围。自定义/本地提供商基础 URL 已信任已配置的确切源,但元数据/链路本地源除外;若未显式选择启用,这些源仍会被阻止。将其设置为 false 可选择退出确切源信任。WebSocket 对标头/TLS 使用相同的 request,但不使用该获取 SSRF 防护机制。默认值为 false
  • models.providers.*.models:显式的提供商模型目录条目。
  • models.providers.*.models.*.input:模型输入模态。纯文本模型使用 ["text"],原生图像/视觉模型使用 ["text", "image"]。仅当所选模型标记为支持图像时,图像附件才会注入智能体轮次。
  • models.providers.*.models.*.contextWindow:原生模型上下文窗口元数据。这会覆盖该模型的提供商级 contextWindow
  • models.providers.*.models.*.contextTokens:可选的运行时上下文上限。这会覆盖提供商级 contextTokens;如果希望有效上下文预算小于模型的原生 contextWindow,请使用此项;当两个值不同时,openclaw models list 会同时显示它们。

自定义提供商能力声明

对于内置和目录已知的模型路由,提供商目录拥有 compat。请勿将这些标志复制到配置中:只要已配置的 apibaseUrl 仍标识该路由,OpenClaw 就会使用目录行。openclaw doctor --fix 会移除匹配的旧版覆盖值,并报告存在差异的值以供审查。对于真正的自定义提供商、自定义模型或路由到不同端点的目录模型,仍支持 compat 块。仅设置已经针对该端点验证的能力:
  • 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:用于定向发现的可选提供商 ID 筛选器。
  • plugins.entries.amazon-bedrock.config.discovery.refreshInterval:发现刷新的轮询间隔。
  • plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow:已发现模型的备用上下文窗口。
  • plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens:已发现模型的备用最大输出 token 数。
交互式自定义提供商新手引导会根据已知视觉模型 ID 模式推断图像输入支持,包括 GPT-4o/GPT-4.1/GPT-5+、o1/o3/o4 推理系列、Claude、Gemini、任何以 -vl 结尾的 ID(Qwen-VL 及类似模型),以及 LLaVA、Pixtral、InternVL、Mllama、MiniCPM-V 和 GLM-4V 等具名系列;对于已知的纯文本系列(Llama、DeepSeek、Mistral/Mixtral、Kimi/Moonshot、Codestral、Devstral、Phi、QwQ、CodeLlama,以及没有 vl/vision 后缀的纯 Qwen ID),则会跳过额外问题。对于未知模型 ID,仍会询问是否支持图像。非交互式新手引导使用相同的推断;传入 --custom-image-input 可强制使用支持图像的元数据,传入 --custom-text-input 可强制使用纯文本元数据。

提供商示例

官方外部 cerebras 提供商插件可通过 openclaw onboard --auth-choice cerebras-api-key 进行配置。仅在需要覆盖默认值时使用显式提供商配置。
Cerebras 使用 cerebras/zai-glm-4.7;直连 Z.AI 使用 zai/glm-4.7
内置的 Anthropic 兼容提供商。快捷方式:openclaw onboard --auth-choice kimi-code-api-key
请参阅本地模型。简而言之:在性能强劲的硬件上,通过 LM Studio Responses API 运行大型本地模型;保留合并的托管模型作为备用。
设置 MINIMAX_API_KEY。快捷方式:openclaw onboard --auth-choice minimax-global-apiopenclaw onboard --auth-choice minimax-cn-api。模型目录默认使用 M3,并且还包括 M2.7 变体。在 Anthropic 兼容的流式传输路径上,除非你自行显式设置 thinking,否则 OpenClaw 默认禁用 MiniMax M2.x 的思考;MiniMax-M3(以及 M3.x)默认继续使用提供商的省略式/自适应思考路径。/fast onparams.fastMode: true 会将 MiniMax-M2.7 重写为 MiniMax-M2.7-highspeed
中国区端点使用:baseUrl: "https://api.moonshot.cn/v1"openclaw onboard --auth-choice moonshot-api-key-cnMoonshot 原生端点会在共享的 openai-completions 传输上声明流式用量兼容性,OpenClaw 根据端点能力而非仅根据内置提供商 ID 启用此功能。
设置 OPENCODE_API_KEY(或 OPENCODE_ZEN_API_KEY)。Zen 目录使用 opencode/... 引用,Go 目录使用 opencode-go/... 引用。快捷方式:openclaw onboard --auth-choice opencode-zenopenclaw onboard --auth-choice opencode-go
基础 URL 应省略 /v1(Anthropic 客户端会追加它)。快捷方式:openclaw onboard --auth-choice synthetic-api-key
设置 ZAI_API_KEY。模型引用使用规范的 zai/* 提供商 ID。快捷方式:openclaw onboard --auth-choice zai-api-key
  • 通用端点:https://api.z.ai/api/paas/v4
  • 编码端点:https://api.z.ai/api/coding/paas/v4
  • 默认的 zai-api-key 身份验证选项会探测你的密钥,并自动检测它所属的端点(如果检测结果不明确,则回退为提示,默认选择 Global)。此外还提供专用的 CN 和 Coding-Plan 身份验证选项,可供显式选择。
  • 对于通用端点,请定义自定义提供商并覆盖基础 URL。

相关内容