OpenClaw 为 browser、canvas、nodes 和 cron 暴露一流的智能体工具。
这些工具取代了旧的 openclaw-* Skills:工具是类型化的,无需调用 shell,
智能体应该直接依赖它们。
你可以通过 openclaw.json 中的 tools.allow / tools.deny 全局允许/拒绝工具
(deny 优先)。这会阻止不允许的工具被发送到模型提供商。
{
tools: { deny: ["browser"] },
}
注意:
* 通配符("*" 表示所有工具)。tools.allow 仅引用未知或未加载的插件工具名称,OpenClaw 会记录警告并忽略允许列表,以确保核心工具保持可用。tools.profile 在 tools.allow/tools.deny 之前设置基础工具允许列表。
按智能体覆盖:agents.list[].tools.profile。
配置文件:
minimal:仅 session_statuscoding:group:fs、group:runtime、group:sessions、group:memory、imagemessaging:group:messaging、sessions_list、sessions_history、sessions_send、session_statusfull:无限制(与未设置相同)示例(默认仅消息,同时允许 Slack + Discord 工具):
{
tools: {
profile: "messaging",
allow: ["slack", "discord"],
},
}
示例(coding 配置文件,但在所有地方拒绝 exec/process):
{
tools: {
profile: "coding",
deny: ["group:runtime"],
},
}
示例(全局 coding 配置文件,仅消息的支持智能体):
{
tools: { profile: "coding" },
agents: {
list: [
{
id: "support",
tools: { profile: "messaging", allow: ["slack"] },
},
],
},
}
使用 tools.byProvider 为特定提供商(或单个 provider/model)进一步限制工具,
而不更改你的全局默认值。
按智能体覆盖:agents.list[].tools.byProvider。
这在基础工具配置文件之后和允许/拒绝列表之前应用,
因此它只能缩小工具集。
提供商键接受 provider(例如 google-antigravity)或
provider/model(例如 openai/gpt-5.2)。
示例(保持全局 coding 配置文件,但 Google Antigravity 使用最小工具):
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}
示例(针对不稳定端点的 provider/model 特定允许列表):
{
tools: {
allow: ["group:fs", "group:runtime", "sessions_list"],
byProvider: {
"openai/gpt-5.2": { allow: ["group:fs", "sessions_list"] },
},
},
}
示例(针对单个提供商的智能体特定覆盖):
{
agents: {
list: [
{
id: "support",
tools: {
byProvider: {
"google-antigravity": { allow: ["message", "sessions_list"] },
},
},
},
],
},
}
工具策略(全局、智能体、沙箱)支持 group:* 条目,它们会展开为多个工具。
在 tools.allow / tools.deny 中使用这些。
可用的组:
group:runtime:exec、bash、processgroup:fs:read、write、edit、apply_patchgroup:sessions:sessions_list、sessions_history、sessions_send、sessions_spawn、session_statusgroup:memory:memory_search、memory_getgroup:web:web_search、web_fetchgroup:ui:browser、canvasgroup:automation:cron、gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw:所有内置 OpenClaw 工具(不包括提供商插件)示例(仅允许文件工具 + browser):
{
tools: {
allow: ["group:fs", "browser"],
},
}
插件可以在核心集之外注册额外的工具(和 CLI 命令)。 参见插件了解安装 + 配置,以及 Skills 了解 工具使用指导如何被注入到提示中。一些插件随工具一起提供自己的 Skills (例如,voice-call 插件)。
可选的插件工具:
apply_patch跨一个或多个文件应用结构化补丁。用于多块编辑。
实验性:通过 tools.exec.applyPatch.enabled 启用(仅 OpenAI 模型)。
exec在工作区中运行 shell 命令。
核心参数:
command(必需)yieldMs(超时后自动后台运行,默认 10000)background(立即后台运行)timeout(秒;超过则终止进程,默认 1800)elevated(布尔值;如果启用/允许提升模式,则在主机上运行;仅在智能体被沙箱隔离时改变行为)host(sandbox | gateway | node)security(deny | allowlist | full)ask(off | on-miss | always)node(host=node 时的节点 id/名称)pty: true。注意:
sessionId 的 status: "running"。process 来轮询/日志/写入/终止/清除后台会话。process,exec 会同步运行并忽略 yieldMs/background。elevated 受 tools.elevated 加上任何 agents.list[].tools.elevated 覆盖的门控(两者都必须允许),是 host=gateway + security=full 的别名。elevated 仅在智能体被沙箱隔离时改变行为(否则是空操作)。host=node 可以针对 macOS 配套应用或无头节点主机(openclaw node run)。process管理后台 exec 会话。
核心操作:
list、poll、log、write、kill、clear、remove注意:
poll 返回新输出,完成时返回退出状态。log 支持基于行的 offset/limit(省略 offset 以获取最后 N 行)。process 按智能体作用域;来自其他智能体的会话不可见。web_search使用 Brave Search API 搜索网络。
核心参数:
query(必需)count(1-10;默认来自 tools.web.search.maxResults)注意:
openclaw configure --section web,或设置 BRAVE_API_KEY)。tools.web.search.enabled 启用。web_fetch从 URL 获取并提取可读内容(HTML → markdown/text)。
核心参数:
url(必需)extractMode(markdown | text)maxChars(截断长页面)注意:
tools.web.fetch.enabled 启用。browser控制专用的 OpenClaw 管理的浏览器。
核心操作:
status、start、stop、tabs、open、focus、closesnapshot(aria/ai)screenshot(返回图像块 + MEDIA:<path>)act(UI 操作:click/type/press/hover/drag/select/fill/resize/wait/evaluate)navigate、console、pdf、upload、dialog配置文件管理:
profiles — 列出所有浏览器配置文件及其状态create-profile — 使用自动分配的端口(或 cdpUrl)创建新配置文件delete-profile — 停止浏览器,删除用户数据,从配置中移除(仅本地)reset-profile — 终止配置文件端口上的孤儿进程(仅本地)常用参数:
profile(可选;默认为 browser.defaultProfile)target(sandbox | host | node)node(可选;选择特定的节点 id/名称)
注意:browser.enabled=true(默认为 true;设置为 false 以禁用)。profile 参数以支持多实例。profile 时,使用 browser.defaultProfile(默认为"chrome")。target)。snapshot 默认为 ai;使用 aria 获取无障碍树。snapshot 还支持角色快照选项(interactive、compact、depth、selector),返回像 e12 这样的引用。act 需要来自 snapshot 的 ref(AI 快照中的数字 12,或角色快照中的 e12);对于罕见的 CSS 选择器需求使用 evaluate。act → wait;仅在特殊情况下使用(没有可靠的 UI 状态可等待)。upload 可以选择性地传递 ref 以在准备后自动点击。upload 还支持 inputRef(aria 引用)或 element(CSS 选择器)以直接设置 <input type="file">。canvas驱动节点 Canvas(present、eval、snapshot、A2UI)。
核心操作:
present、hide、navigate、evalsnapshot(返回图像块 + MEDIA:<path>)a2ui_push、a2ui_reset注意:
node.invoke。node,工具会选择默认值(单个连接的节点或本地 mac 节点)。createSurface);CLI 会拒绝 v0.9 JSONL 并显示行错误。openclaw nodes canvas a2ui push --node <id> --text "Hello from A2UI"。nodes发现和定位配对的节点;发送通知;捕获摄像头/屏幕。
核心操作:
status、describepending、approve、reject(配对)notify(macOS system.notify)camera_snap、camera_clip、screen_recordlocation_get注意:
MEDIA:<path>。FILE:<path>(mp4)。host=node 的 exec 工具;nodes 保持为显式节点命令的 RPC 表面。示例(节点能力):
{
"action": "run",
"node": "office-mac",
"command": ["echo", "Hello"],
"env": ["FOO=bar"],
"commandTimeoutMs": 12000,
"invokeTimeoutMs": 45000,
"needsScreenRecording": false
}
image使用配置的图像模型分析图像。
核心参数:
image(必需的路径或 URL)prompt(可选;默认为"Describe the image.")model(可选覆盖)maxBytesMb(可选大小上限)注意:
agents.defaults.imageModel(主要或回退)时可用,或者当可以从你的默认模型 + 配置的认证推断出隐式图像模型时(尽力配对)。message跨 Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/iMessage/MS Teams 发送消息和渠道操作。
核心操作:
send(文本 + 可选媒体;MS Teams 还支持用于 Adaptive Cards 的 card)poll(WhatsApp/Discord/MS Teams 投票)react / reactions / read / edit / deletepin / unpin / list-pinspermissionsthread-create / thread-list / thread-replysearchstickermember-info / role-infoemoji-list / emoji-upload / sticker-uploadrole-add / role-removechannel-info / channel-listvoice-statusevent-list / event-createtimeout / kick / ban注意:
send 通过 Gateway 网关路由 WhatsApp;其他渠道直接发送。poll 对 WhatsApp 和 MS Teams 使用 Gateway 网关;Discord 投票直接发送。cron管理 Gateway 网关定时任务和唤醒。
核心操作:
status、listadd、update、remove、run、runswake(入队系统事件 + 可选的立即心跳)注意:
add 期望完整的定时任务对象(与 cron.add RPC 相同的 schema)。update 使用 { id, patch }。gateway重启或对运行中的 Gateway 网关进程应用更新(就地)。
核心操作:
restart(授权 + 发送 SIGUSR1 进行进程内重启;openclaw gateway 就地重启)config.get / config.schemaconfig.apply(验证 + 写入配置 + 重启 + 唤醒)config.patch(合并部分更新 + 重启 + 唤醒)update.run(运行更新 + 重启 + 唤醒)注意:
delayMs(默认 2000)以避免中断进行中的回复。restart 默认禁用;使用 commands.restart: true 启用。sessions_list / sessions_history / sessions_send / sessions_spawn / session_status列出会话,检查转录历史,或发送到另一个会话。
核心参数:
sessions_list:kinds?、limit?、activeMinutes?、messageLimit?(0 = 无)sessions_history:sessionKey(或 sessionId)、limit?、includeTools?sessions_send:sessionKey(或 sessionId)、message、timeoutSeconds?(0 = fire-and-forget)sessions_spawn:task、label?、agentId?、model?、runTimeoutSeconds?、cleanup?session_status:sessionKey?(默认当前;接受 sessionId)、model?(default 清除覆盖)注意:
main 是规范的私聊键;global/unknown 是隐藏的。messageLimit > 0 获取每个会话的最后 N 条消息(工具消息被过滤)。timeoutSeconds > 0 时,sessions_send 等待最终完成。status: "ok" 确认智能体运行完成,而不是宣告已递送。sessions_spawn 启动子智能体运行并将宣告回复发送回请求者聊天。sessions_spawn 是非阻塞的,立即返回 status: "accepted"。sessions_send 运行回复往返乒乓(回复 REPLY_SKIP 以停止;最大轮次通过 session.agentToAgent.maxPingPongTurns,0-5)。ANNOUNCE_SKIP 以抑制宣告。agents_list列出当前会话可以用 sessions_spawn 定位的智能体 id。
注意:
agents.list[].subagents.allowAgents)。["*"] 时,工具包含所有已配置的智能体并标记 allowAny: true。Gateway 网关支持的工具(canvas、nodes、cron):
gatewayUrl(默认 ws://127.0.0.1:18789)gatewayToken(如果启用了认证)timeoutMsBrowser 工具:
profile(可选;默认为 browser.defaultProfile)target(sandbox | host | node)node(可选;固定特定的节点 id/名称)浏览器自动化:
browser → status / startsnapshot(ai 或 aria)act(click/type/press)screenshot 如果你需要视觉确认Canvas 渲染:
canvas → presenta2ui_push(可选)snapshot节点定位:
nodes → statusdescribenotify / invoke / camera_snap / screen_recordsystem.run;仅在用户明确同意时使用带 host=node 的 exec 工具。status/describe 确保权限。工具通过两个并行渠道暴露:
这意味着智能体同时看到"存在哪些工具"和"如何调用它们"。如果工具 没有出现在系统提示或 schema 中,模型就无法调用它。