OpenClaw 提供一流的代理工具,用于浏览器自动化、画布渲染、节点管理和计划任务。这些工具取代了旧的基于技能的方法,提供不需要 shell 命令的类型化直接集成。
工具管理
启用/禁用工具
工具通过 openclaw.json 使用 tools.allow 和 tools.deny 指令控制。当两个列表同时存在时,"deny 优先"。匹配不区分大小写,支持通配符。
// openclaw.json 配置示例
{
"tools": {
"allow": ["exec", "read", "write", "browser"],
"deny": ["gateway", "cron"]
}
}
工具配置文件
可以使用预定义配置文件设置基础允许列表:
| 配置文件 | 说明 |
|---|---|
minimal | 仅 session_status |
coding | 文件系统、运行时、会话和记忆工具 |
messaging | 消息和会话管理 |
full | 无限制(默认) |
配置文件可以全局应用或按代理应用,allow/deny 列表在其之上叠加。
提供商特定策略
tools.byProvider 配置可以为特定 LLM 提供商缩小工具访问范围,而不改变全局默认值。这在基础配置文件之后但在 allow/deny 列表之前应用。
工具组(简写)
策略支持 group:* 条目以方便使用:
| 组名 | 包含的工具 |
|---|---|
group:runtime | Shell 执行工具 |
group:fs | 文件操作 |
group:sessions | 会话管理 |
group:memory | 记忆搜索/检索 |
group:web | 网络搜索和获取 |
group:ui | 浏览器和画布工具 |
group:messaging | 消息发送 |
group:automation | Cron 和网关管理 |
核心工具
执行与进程
exec:运行 shell 命令,参数包括超时、后台执行和可选的 TTY 支持。后台运行时返回"running"状态和用于轮询的 sessionId。
// exec 工具示例
{
"command": "npm install",
"timeout": 60000,
"background": true
}
process:管理后台会话,支持 poll、log、kill 和 clear 等操作。支持基于行的 offset/limit 进行输出检索。
网络工具
web_search:使用 Brave Search API;需要配置,缓存默认为 15 分钟。
web_fetch:通过 HTML 转 Markdown 从 URL 提取可读内容。对于 JavaScript 密集型站点,回退到 Firecrawl。
浏览器自动化
browser:控制专用的托管浏览器,支持端口 18800-18899 上的多个配置文件。核心操作包括快照、截图、导航和通过 act 命令进行的 UI 交互。快照可以返回 AI 或无障碍树表示。
画布渲染
canvas:驱动节点 Canvas 用于演示和评估。使用网关节点调用,支持 A2UI 可视化(仅 v0.8)。
节点管理
nodes:发现配对的节点并启用通知、命令执行和媒体捕获。相机/屏幕操作需要明确的前台处理和用户同意。
文件操作
apply_patch:应用多文件结构化补丁(实验性;仅限 OpenAI 模型)。
消息传递
message:跨 Discord、Slack、Telegram、WhatsApp、Signal、iMessage、MS Teams 和 Google Chat 发送通信。支持表情反应、置顶、线程和投票。
调度与基础设施
cron:管理网关 cron 作业和系统唤醒。
gateway:重启网关进程或就地应用配置更新。
会话管理
sessions_list/history/send/spawn 和 session_status:启用会话间通信、记录检查和子代理生成,支持可选的 ping-pong 回复模式。
图像分析
image:使用配置的图像模型分析图像(需要 agents.defaults.imageModel)。
安全注意事项
- 避免在没有明确用户同意的情况下直接执行系统命令
- 媒体捕获命令需要确认的权限
- 敏感操作前应先进行状态检查
工具呈现
工具出现在两个通道中:
- 系统提示文本 - 人类可读的指导
- 结构化模式 - API 定义
如果工具在这两个通道中都不出现,模型将无法访问它。