工具(OpenClaw)

OpenClaw 为 browser、canvas、nodes 和 cron 暴露一流的智能体工具。 这些工具取代了旧的 openclaw-* Skills:工具是类型化的,无需调用 shell, 智能体应该直接依赖它们。

禁用工具

你可以通过 openclaw.json 中的 tools.allow / tools.deny 全局允许/拒绝工具 (deny 优先)。这会阻止不允许的工具被发送到模型提供商。

{
  tools: { deny: ["browser"] },
}

注意:

工具配置文件(基础允许列表)

tools.profiletools.allow/tools.deny 之前设置基础工具允许列表。 按智能体覆盖:agents.list[].tools.profile

配置文件:

示例(默认仅消息,同时允许 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 中使用这些。

可用的组:

示例(仅允许文件工具 + browser):

{
  tools: {
    allow: ["group:fs", "browser"],
  },
}

插件 + 工具

插件可以在核心集之外注册额外的工具(和 CLI 命令)。 参见插件了解安装 + 配置,以及 Skills 了解 工具使用指导如何被注入到提示中。一些插件随工具一起提供自己的 Skills (例如,voice-call 插件)。

可选的插件工具:

工具清单

apply_patch

跨一个或多个文件应用结构化补丁。用于多块编辑。 实验性:通过 tools.exec.applyPatch.enabled 启用(仅 OpenAI 模型)。

exec

在工作区中运行 shell 命令。

核心参数:

注意:

process

管理后台 exec 会话。

核心操作:

注意:

web_search

使用 Brave Search API 搜索网络。

核心参数:

注意:

web_fetch

从 URL 获取并提取可读内容(HTML → markdown/text)。

核心参数:

注意:

browser

控制专用的 OpenClaw 管理的浏览器。

核心操作:

配置文件管理:

常用参数:

canvas

驱动节点 Canvas(present、eval、snapshot、A2UI)。

核心操作:

注意:

nodes

发现和定位配对的节点;发送通知;捕获摄像头/屏幕。

核心操作:

注意:

示例(节点能力):

{
  "action": "run",
  "node": "office-mac",
  "command": ["echo", "Hello"],
  "env": ["FOO=bar"],
  "commandTimeoutMs": 12000,
  "invokeTimeoutMs": 45000,
  "needsScreenRecording": false
}

image

使用配置的图像模型分析图像。

核心参数:

注意:

message

跨 Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/iMessage/MS Teams 发送消息和渠道操作。

核心操作:

注意:

cron

管理 Gateway 网关定时任务和唤醒。

核心操作:

注意:

gateway

重启或对运行中的 Gateway 网关进程应用更新(就地)。

核心操作:

注意:

sessions_list / sessions_history / sessions_send / sessions_spawn / session_status

列出会话,检查转录历史,或发送到另一个会话。

核心参数:

注意:

agents_list

列出当前会话可以用 sessions_spawn 定位的智能体 id。

注意:

参数(通用)

Gateway 网关支持的工具(canvasnodescron):

Browser 工具:

推荐的智能体流程

浏览器自动化:

  1. browserstatus / start
  2. snapshot(ai 或 aria)
  3. act(click/type/press)
  4. screenshot 如果你需要视觉确认

Canvas 渲染:

  1. canvaspresent
  2. a2ui_push(可选)
  3. snapshot

节点定位:

  1. nodesstatus
  2. 在选定的节点上 describe
  3. notify / invoke / camera_snap / screen_record

安全性

工具如何呈现给智能体

工具通过两个并行渠道暴露:

  1. 系统提示文本:人类可读的列表 + 指导。
  2. 工具 schema:发送到模型 API 的结构化函数定义。

这意味着智能体同时看到"存在哪些工具"和"如何调用它们"。如果工具 没有出现在系统提示或 schema 中,模型就无法调用它。