Skip to content

第10章 Tools全景:OpenClaw能拿什么工具

🎯 本章目标:学完这章,你能了解Tools的能力边界,知道”它能帮我做什么”

⏱️ 预计时间:20分钟

📋 前置要求:已完成第3章(基础安装)

  • Tools 和 Skills 的区别(零件 vs 说明书)
  • 如何先把工具“上锁”再放开(基础档位 / 放行名单 / 禁用名单)
  • 官方工具全景(文件 / 运行时 / 网页 / 浏览器 / 消息 / 会话 / 节点)
  • 高风险工具怎么安全用(exec / process / approvals / elevated)
  • 子智能体与会话工具怎么配合
  • 指令与插件如何影响工具能力
  • 三套可直接抄的配置模板

10.1 Tools vs Skills:零件 vs 说明书

Section titled “10.1 Tools vs Skills:零件 vs 说明书”

把 OpenClaw 想成一个“会干活的实习生”:

  • Tools(工具) = 它手里的“手和脚”(能做动作)
  • Skills(技能) = 你给它的“工作SOP”(什么时候做、先后顺序)
  • Agent = 执行者(根据 SOP 调用工具)

一句话:Tools 决定“能不能做”,Skills 决定“怎么做更稳”。

你说:“帮我把今天的需求文档整理成 TODO”。

  • 没有 Skills 时,Agent 可能临场发挥,步骤不稳定;
  • 有 Skills 时,它会按固定流程:
    1. read 读文档
    2. edit 提炼关键信息
    3. write 写出 TODO 文件

  • 复用:同一个 Tool 可以被很多 Skills 复用
  • 安全:你可以先禁掉高风险 Tool,再按需打开
  • 可维护:换模型时,Skills 流程仍然可复用

10.2 先把护栏立好:基础档位 / 放行名单 / 禁用名单 / 按模型单独收紧

Section titled “10.2 先把护栏立好:基础档位 / 放行名单 / 禁用名单 / 按模型单独收紧”

官方现在推荐的思路不是“先全开再补锅”,而是:

  1. 先选基础档位(tools.profile
  2. 再用放行名单/禁用名单(tools.allow / tools.deny)精细化
  3. 有需要再给某个模型单独加限制(tools.byProvider

先说你最关心的:这个到底在哪里配置?

就一个位置:~/.openclaw/openclaw.json(你的 OpenClaw 主配置文件)。

你有两种改法:

  1. 命令行改(推荐):不容易改坏 JSON
  2. 手动改文件:直接打开 ~/.openclaw/openclaw.json 编辑(记得先备份)

先给你“直接能抄”的命令版:

Terminal window
# 设为 coding(开发常用)
openclaw config set tools.profile "coding"
# 查看当前值
openclaw config get tools.profile

如果你运行上面命令提示 unknown command 'config',就走手动文件版(效果一样):

{
tools: { profile: "coding" }
}

改完后,重启一下 OpenClaw / Gateway,让配置生效(这是很多人最容易漏的一步)。

操作提醒(照做版):

  1. 先改配置;
  2. openclaw gateway restart
  3. 最后用 openclaw status 确认状态正常。

官方提供四档(按“从保守到开放”排序):

  • minimal:只保留最小能力(最稳)
  • messaging:偏消息收发
  • coding:偏开发(文件+运行时+会话+记忆+图像工具)
  • full:不限制(新手不建议)

示例(全局用 coding,客服 agent 单独降成 messaging):

{
tools: { profile: "coding" },
agents: {
list: [
{
id: "support",
tools: { profile: "messaging" }
}
]
}
}

deny 优先级高于 allow
你可以直接按“工具组”写,而不用一个个工具名手搓。

{
tools: {
allow: ["group:fs", "group:web"],
deny: ["group:runtime"]
}
}

这段的含义很直白:能读写文件、能查网页,但不能跑命令。

还有 3 个很容易忽略的小细节(都来自官方):

  1. 匹配不区分大小写(BROWSERbrowser 效果一样)。
  2. 支持通配符(例如 * 代表全部工具)。
  3. 如果 tools.allow 里只写了“当前未加载/不存在的插件工具名”,OpenClaw 会给警告并忽略这份 allowlist,避免把核心工具误伤到全不可用。

10.2.3 byProvider:给某个模型单独再加一层限制(可选)

Section titled “10.2.3 byProvider:给某个模型单独再加一层限制(可选)”

同一套配置里,你可以针对特定模型进一步收紧工具范围:

{
tools: {
profile: "coding",
byProvider: {
"openai/gpt-5.2": { profile: "minimal" }
}
}
}

用途:某个模型调用工具不稳定时,给它单独“少开一点权限”,减少误操作。
把它理解成:给某个模型单独加一把小锁,不影响其他模型。


10.3 官方工具全景地图(v2026.2.17)

Section titled “10.3 官方工具全景地图(v2026.2.17)”

下面是你最常用的一组(按官方命名):

工具组代表工具你会怎么用
文件read write edit apply_patch改代码、改配置、批量补丁
运行时exec process跑测试、看日志、后台任务
Webweb_search web_fetch查资料、抓文档正文
浏览器/UIbrowser canvas自动化网页、截图、界面操作
消息message跨渠道发消息、读消息、做运营动作
会话sessions_list sessions_history sessions_send session_status查会话、转消息、跨会话协作
子智能体sessions_spawn agents_list并行跑任务,不堵主会话
自动化cron gateway定时任务、网关重启与配置应用
节点nodes发现节点、系统通知、远端命令

实战建议:第一个月你重点用 文件+Web+少量 exec 就够了,其他当“后备工具箱”。

官方支持工具组简写(非常实用):

  • group:fs:文件工具
  • group:runtime:执行与进程工具
  • group:web:网页搜索与抓取
  • group:ui:浏览器和画布
  • group:messaging:消息工具
  • group:sessions:会话工具
  • group:automationcron + gateway
  • group:nodesnodes
  • group:openclaw:全部内置工具(不含插件工具)

示例:

{
tools: {
allow: ["group:fs", "group:web", "session_status"]
}
}

补一条实用提醒:group:runtime 里还包含 bashexec 的别名路径),所以你若要“彻底禁命令执行”,继续用 deny: ["group:runtime"] 是最省心的。


10.4 高风险区:exec / process / elevated / approvals

Section titled “10.4 高风险区:exec / process / elevated / approvals”

10.4.1 exec + process 的正确打开方式

Section titled “10.4.1 exec + process 的正确打开方式”

exec 负责执行命令,process 负责管理后台会话。
最容易踩坑的一点:是否在沙箱里执行

官方要点(新手必须知道):

  • host=sandbox|gateway|node 决定命令在哪跑
  • security=deny|allowlist|full 决定执行策略(拒绝 / 只放行名单 / 全放行)
  • ask=off|on-miss|always 决定审批策略
  • 需要交互式命令时,记得 pty: true
  • yieldMs/background 决定是否转后台,timeout 控制超时自动终止

两个“看起来小、实际会坑人”的行为:

  1. 如果 process 工具被禁用,exec 会退回同步执行,yieldMs/background 会被忽略。
  2. 官方明确写了:沙箱默认是关闭的。在这种情况下你写 host=sandbox,实际仍可能在网关主机执行,且不走审批。
    所以“要强制审批”的场景,别偷懒,直接用 host=gateway 并配好 approvals。

10.4.2 approvals:别把“确认框”当麻烦

Section titled “10.4.2 approvals:别把“确认框”当麻烦”

当你把 exec 放到 gateway/node 主机执行时,审批机制是关键护栏。

核心文件是:

  • ~/.openclaw/exec-approvals.json

你可以重点理解其中 4 个策略位:

  • securitydeny|allowlist|full(拒绝 / 仅放行名单 / 全放行)
  • askoff|on-miss|always
  • askFallback:UI 不可达时是拒绝、按放行名单还是直接放行
  • autoAllowSkills:是否自动信任 Skills 声明的可执行文件

你可以让操作员在聊天里审批:

/approve <id> allow-once
/approve <id> allow-always
/approve <id> deny

操作提醒:先用“单次放行”(allow-once)观察效果,稳定后再考虑“长期放行”(allow-always)。

这两个指令非常强,但也非常“锋利”:

  • /elevated on|off|ask|full
  • /exec host=... security=... ask=...

这里要记住一个官方口径:

  • /elevated on/elevated ask 等价(都不强制 security=full,审批仍生效)
  • /elevated full 才是“跳过审批”的模式

建议:默认别开 full,只在明确知道风险时临时开启。


10.5 会话工具与子智能体:让它并行干活

Section titled “10.5 会话工具与子智能体:让它并行干活”

这组工具解决的是“多会话协作”:

  • sessions_list:看当前有哪些会话
  • sessions_history:拉某个会话历史
  • sessions_send:往另一个会话发消息
  • session_status:看当前会话状态
  • sessions_spawn:起一个子智能体去并行做事

10.5.2 子智能体(Subagents)什么场景最香

Section titled “10.5.2 子智能体(Subagents)什么场景最香”

当你有“慢任务 + 不想堵住主聊天”时,用子智能体最合适:

  • 主会话继续聊天
  • 子会话后台跑
  • 跑完后自动回报结果

常用命令:

/subagents list
/subagents spawn <agentId> <task>
/subagents log <id>
/subagents kill <id>

成本提醒:每个子智能体都有自己的上下文与 token 计费,不是“免费分身”。

再补一条默认限制,避免你以为它能无限套娃:

  • 默认 maxSpawnDepth=1(子智能体不能再生子智能体)
  • 需要编排型工作流时,改到 maxSpawnDepth=2 就够用

10.6 指令系统与插件:第五部分最容易被低估的两块

Section titled “10.6 指令系统与插件:第五部分最容易被低估的两块”

官方文档里,这块内容非常多,但你先记住最常用 8 条:

  • /model:查/切模型
  • /think:切思考强度
  • /usage:看用量展示
  • /status:看状态
  • /skill:按名触发技能
  • /approve:审批执行请求
  • /subagents:管理子智能体
  • /exec:会话级执行策略

命令系统再补两个关键规则:

  1. 大多数命令需要“单独一条消息、并且以 / 开头”。
  2. /think /verbose /elevated /exec /model 这类属于 directives:
    • 单独发:会写入会话状态;
    • 混在普通消息里:只对当前条生效,不持久化。

插件是“可插拔扩展能力”,比如某些渠道和可选工具能力。
先看已加载插件:

Terminal window
openclaw plugins list

安装插件(示例):

Terminal window
openclaw plugins install @openclaw/voice-call

然后在配置里按 plugins.entries.<id>.config 配置,最后重启 Gateway。

官方还有两个重要边界:

  • npm 安装只接受 registry 规范(包名 + 版本/tag),不接受 git/url/file 远程 spec。
  • 插件依赖安装默认走 npm install --ignore-scripts(降低供应链脚本风险)。

10.6.3 ClawHub:Skills 的“应用商店+版本库”

Section titled “10.6.3 ClawHub:Skills 的“应用商店+版本库””

如果你不想手工维护 Skills 仓库,直接用 ClawHub:

Terminal window
clawhub search "你的关键词"
clawhub install <skill-slug>
clawhub update --all

适合小白的理解:把它当“技能市场”,负责发现、安装、升级;OpenClaw 在新会话里自动吃到这些 Skills。


10.7 新手三档配置模板(可直接抄)

Section titled “10.7 新手三档配置模板(可直接抄)”

{
tools: {
profile: "coding",
deny: ["group:runtime"]
}
}

适合:刚上手,先避免误执行命令。

{
tools: {
profile: "coding",
exec: { host: "sandbox" }
},
approvals: {
exec: {
enabled: true,
mode: "session"
}
}
}

适合:开始跑测试、构建,但仍保留审批兜底。

{
tools: {
profile: "messaging",
allow: ["message", "session_status", "sessions_list"]
}
}

适合:只做渠道机器人,不碰本地文件和命令执行。


  1. 先配 profile,再细化 allow/deny,这是最稳路径。
  2. exec 能力很强,务必搭配审批(/approve)使用。
  3. sessions_spawn 适合并行任务,但会单独计费。
  4. slash commandsplugins 是第五部分的重要增量,不只是“可选玩具”。
  5. 新手先用“稳健入门档”,跑通后再逐步放开。

下一步:第11章,学习使用现成的Skills。


  1. tools.profile 设为 coding
  2. 临时加一条 deny: ["group:runtime"],确认命令执行被拦住。
  3. 再去掉这条 deny,试一次小命令。
  4. /status/usage 看状态与消耗。