OpenClaw 提供了强大的工具系统,让代理能够执行浏览器控制、画布渲染、节点操作和定时任务等功能。这些工具是类型安全的、经过沙箱隔离的,并且与模型无关。
概述
OpenClaw 提供了一流的代理工具,用于浏览器、画布、节点和定时任务操作。这些工具取代了旧的 openclaw-* 技能系统:工具是类型化的、无需 shell 调用,代理应直接依赖这些工具。
工具配置
禁用工具
通过 openclaw.json 中的 tools.allow 和 tools.deny 控制工具访问权限,拒绝规则优先。匹配不区分大小写,支持 * 通配符。
// 拒绝浏览器工具
{
"tools": {
"deny": ["browser"]
}
}
工具配置文件
tools.profile 设置基础工具白名单,可选值:
"minimal"- 最小工具集"coding"- 编码工具集"messaging"- 消息工具集"full"- 完整工具集
可通过 agents.list[].tools.profile 为每个代理单独设置。
// 使用消息配置文件,额外允许 Slack 和 Discord
{
"tools": {
"profile": "messaging",
"allow": ["slack", "discord"]
}
}
按提供商限制工具
tools.byProvider 可以为特定提供商或模型进一步限制工具访问,应用顺序为:配置文件 → byProvider → allow/deny。
// 为 Google Antigravity 模型使用最小工具集
{
"tools": {
"profile": "coding",
"byProvider": {
"google-antigravity": {
"profile": "minimal"
}
}
}
}
工具组
OpenClaw 提供工具组简写,方便批量管理工具权限:
group:runtime- 运行时工具group:fs- 文件系统工具group:sessions- 会话管理工具group:memory- 内存管理工具group:web- Web 工具group:ui- UI 工具group:automation- 自动化工具group:messaging- 消息工具group:nodes- 节点工具group:openclaw- OpenClaw 专用工具
// 允许文件系统和浏览器工具组
{
"tools": {
"allow": ["group:fs", "browser"]
}
}
核心工具列表
命令执行
exec- 执行 shell 命令,支持后台运行、超时、提权等参数process- 管理后台 exec 会话(列表、轮询、日志、终止等)apply_patch- 应用结构化补丁(实验性功能)
Web 工具
web_search- 使用 Brave Search API 进行搜索(需要BRAVE_API_KEY)web_fetch- 获取并提取 URL 内容(HTML → markdown/text)
浏览器控制
browser- 控制 OpenClaw 管理的浏览器(status、start、snapshot、act、screenshot等)
画布与节点
canvas- 驱动节点画布(present、snapshot、a2ui_push等)nodes- 操作配对节点(status、notify、run、camera_snap、location_get等)
媒体与消息
image- 使用配置的图像模型分析图像message- 跨平台消息发送(Slack、Discord、WhatsApp 等)
自动化与网关
cron- 管理网关定时任务(add、update、run、wake)gateway- 网关进程控制(restart、config.apply、update.run)
会话与代理
sessions_list/sessions_history/sessions_send/sessions_spawn/session_status- 会话生命周期与代理间通信agents_list- 列出可生成的代理(遵循subagents.allowAgents)
安全注意事项
安全提示
- 优先使用
nodes.run而非直接system.run - 使用摄像头或屏幕录制前需获得用户同意
elevated是host=gateway+security=full的别名,受tools.elevated限制byProvider只能收窄工具访问权限,不能扩展- 避免
act→wait,仅在无可靠 UI 状态时使用
工具可见性
工具通过两种方式呈现给代理:
- 系统提示文本 - 人类可读的描述
- 结构化模式 - 函数定义(用于工具调用)
这确保了工具的可见性和正确调用。
提示
如果
tools.allow 引用了未知插件,OpenClaw 会发出警告并忽略该配置,核心工具仍然可用。更多详情请参考 官方文档。