11.1 工具概述

OpenClaw 提供了强大的工具系统,让代理能够执行浏览器控制、画布渲染、节点操作和定时任务等功能。这些工具是类型安全的、经过沙箱隔离的,并且与模型无关。

概述

OpenClaw 提供了一流的代理工具,用于浏览器、画布、节点和定时任务操作。这些工具取代了旧的 openclaw-* 技能系统:工具是类型化的、无需 shell 调用,代理应直接依赖这些工具。

工具配置

禁用工具

通过 openclaw.json 中的 tools.allowtools.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 管理的浏览器(statusstartsnapshotactscreenshot 等)

画布与节点

  • canvas - 驱动节点画布(presentsnapshota2ui_push 等)
  • nodes - 操作配对节点(statusnotifyruncamera_snaplocation_get 等)

媒体与消息

  • image - 使用配置的图像模型分析图像
  • message - 跨平台消息发送(Slack、Discord、WhatsApp 等)

自动化与网关

  • cron - 管理网关定时任务(addupdaterunwake)
  • gateway - 网关进程控制(restartconfig.applyupdate.run)

会话与代理

  • sessions_list / sessions_history / sessions_send / sessions_spawn / session_status - 会话生命周期与代理间通信
  • agents_list - 列出可生成的代理(遵循 subagents.allowAgents)

安全注意事项

安全提示
  • 优先使用 nodes.run 而非直接 system.run
  • 使用摄像头或屏幕录制前需获得用户同意
  • elevatedhost=gateway + security=full 的别名,受 tools.elevated 限制
  • byProvider 只能收窄工具访问权限,不能扩展
  • 避免 actwait,仅在无可靠 UI 状态时使用

工具可见性

工具通过两种方式呈现给代理:

  • 系统提示文本 - 人类可读的描述
  • 结构化模式 - 函数定义(用于工具调用)

这确保了工具的可见性和正确调用。

提示
如果 tools.allow 引用了未知插件,OpenClaw 会发出警告并忽略该配置,核心工具仍然可用。更多详情请参考 官方文档