OpenClaw 的 Agent 可以调用很多工具:读写文件、执行 Shell 命令、控制浏览器、发送消息……这些能力很强大,但不是所有场景都需要全部开放。这篇讲怎么精确控制 Bot 能用哪些工具。

一、工具系统概览

OpenClaw 内置了以下工具类别:

工具组包含能力
group:fs读写文件、编辑文件
group:web网页抓取、联网搜索、浏览器控制
group:runtime执行 Shell 命令、运行进程
group:sessions管理会话、子 Agent 控制
group:memory记忆和上下文工具
group:messaging跨 Channel 发消息
group:automationCron 定时任务、Webhook
group:uiUI 交互工具
group:nodes节点和工作流工具

默认情况下,Agent 有完整的工具访问权限(full 档位)。

二、四个预设档位

不想逐条配置?用预设档位是最快的方式:

档位包含内容适合场景
full所有工具(默认)个人使用、完全信任环境
coding文件系统 + 运行时 + 会话 + 记忆 + 图像开发辅助场景
messaging消息发送 + 会话管理纯聊天机器人
minimal仅会话状态查询最严格限制

在配置文件里设置:

json5
1{
2  agents: {
3    defaults: {
4      tools: {
5        profile: "messaging"
6      }
7    }
8  }
9}

三、精细的 allow / deny 控制

如果预设档位不够用,可以手动指定允许或禁止的工具:

json5
1{
2  tools: {
3    allow: ["group:fs", "group:web", "group:messaging"],
4    deny: ["group:runtime"]
5  }
6}

规则:deny 永远优先于 allow。 如果同一个工具同时出现在 allow 和 deny 里,deny 生效。

可以混用工具组和具体工具名:

json5
1{
2  tools: {
3    allow: ["group:fs", "web_search"],   // 允许文件系统 + 单独允许搜索
4    deny: ["browser", "exec"]            // 禁止浏览器控制和 Shell 执行
5  }
6}

四、常见安全配置

场景一:只用于聊天,不执行任何操作

json5
1{
2  tools: {
3    profile: "messaging"
4  }
5}

Bot 只能发消息、管理会话,无法读写文件或执行命令。

场景二:允许读文件,但不允许写入

json5
1{
2  tools: {
3    allow: ["read", "web_search", "group:messaging"],
4    deny: ["write", "edit", "apply_patch", "group:runtime"]
5  }
6}

场景三:禁止 Shell 执行(保留其他能力)

json5
1{
2  tools: {
3    deny: ["group:runtime"]
4  }
5}

这是一个常见的折中配置:保留文件读写和联网能力,但禁止执行任意 Shell 命令。

场景四:分享给他人用,严格限制

json5
1{
2  tools: {
3    allow: ["group:messaging", "web_search", "web_fetch"],
4    deny: ["group:fs", "group:runtime", "group:automation"]
5  }
6}

只允许联网查询和发消息,不允许碰文件系统和执行命令。

五、运行安全审计

配置完之后,跑一遍安全检查:

bash
1openclaw security audit

它会检查:

  • 工具权限是否过于宽松(尤其在多人使用时)
  • Gateway 是否意外暴露到网络
  • 配置文件权限是否正确

有问题会给出提示和修复建议。

六、注意事项

Shell 执行(group:runtime)是风险最高的工具组,开放后 Bot 可以在你的机器上执行任意命令。个人使用时没问题,但如果 Bot 对外开放(多人使用),强烈建议禁用:

json5
1{
2  tools: {
3    deny: ["group:runtime"]
4  }
5}

浏览器控制(browser 同样需要谨慎,它允许 Bot 控制你的浏览器访问任意网页,存在 SSRF 风险。不需要的话可以单独禁用:

json5
1{
2  tools: {
3    deny: ["browser"]
4  }
5}
下一篇:多 Agent 配置——在同一台机器上运行多个不同用途的 Bot。