深度

OpenClaw 工具系统完全指南:工具组、权限策略与循环检测配置

OpenClaw 工具系统完全指南:工具组(group:fs/runtime/sessions 等)、四种 Profile(minimal/coding/messaging/full)、全局/per-Agent/per-Provider 三层权限策略、exec/process/web_search/web_fetch 核心工具配置,以及工具循环检测(三种检测器)配置。

2026/3/24分钟 阅读ClaudeEagle

OpenClaw 提供了细粒度的工具权限控制体系,让你精确管理 AI Agent 能使用哪些工具——从全局默认到 per-Agent、per-Provider 的精细覆盖。

工具组(Tool Groups)

OpenClaw 将相关工具打包成组,方便批量配置:

组名包含工具
group:runtimeexec, bash, process
group:fsread, write, edit, apply_patch
group:sessionssessions_list, sessions_history, sessions_send, sessions_spawn, session_status
group:memorymemory_search, memory_get
group:webweb_search, web_fetch
group:uibrowser, canvas
group:automationcron, gateway
group:messagingmessage
group:nodesnodes
group:openclaw所有内置 OpenClaw 工��(不含插件)

工具配置文件(Tool Profiles)

用于快速设置工具白名单基础:

Profile说明
minimal只有 session_status
coding文件系统 + 运行时 + 会话 + 记忆 + 图像
messaging消息发送 + 会话管理
full无限制(默认)
json
{
  "tools": {
    "profile": "messaging",
    "allow": ["slack", "discord"]
  }
}
json
{
  "tools": {
    "profile": "coding",
    "deny": ["group:runtime"]
  }
}

全局 Allow/Deny 策略

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

注意:deny 优先于 allow,匹配大小写不敏感,支持 * 通配符("*" 代表所有工具)。

per-Agent 工具覆盖

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

全局使用 coding profile,support Agent 只使用 messaging profile + Slack 工具。

per-Provider 工具限制

针对特定模型提供商进一步限制工具:

json
{
  "tools": {
    "profile": "coding",
    "byProvider": {
      "google-antigravity": { "profile": "minimal" },
      "openai/gpt-5.2": { "allow": ["group:fs", "sessions_list"] }
    }
  }
}

byProvider 只能收窄工具集(在全局策略基础上进一步限制),不能扩展。

核心工具详解

exec(运行 Shell 命令)

json
{
  "command": "npm test",
  "yieldMs": 10000,
  "background": false,
  "timeout": 1800,
  "elevated": false,
  "host": "sandbox",
  "security": "allowlist",
  "pty": false
}
  • yieldMs:超时后自动后台化(默认 10 秒)
  • elevated:在主机运行(绕过沙箱,受 tools.elevated 控制)
  • hostsandbox | gateway | node
  • securitydeny | allowlist | full
  • pty: true:需要 TTY 的命令(如交互式 CLI)

process(管理后台任务)

支持操作:list, poll, log, write, kill, clear, remove
  • poll:获取新输出和退出状态
  • log:支持 offset/limit 按行读取(省略 offset 获取最后 N 行)
  • 会话按 Agent 隔离:其他 Agent 的后台任务不可见

web_search(网页搜索)

需要 Brave API Key:

bash
openclaw configure --section web  # 或设置 BRAVE_API_KEY 环境变量
json
{
  "tools": {
    "web": {
      "search": {
        "enabled": true,
        "maxResults": 5
      }
    }
  }
}

web_fetch(抓取网页内容)

json
{
  "url": "https://example.com",
  "extractMode": "markdown",
  "maxChars": 50000
}

extractMode 可选:markdown(默认)或 text

工具循环检测(Loop Detection)

防止 Agent 陷入重复调用循环:

json
{
  "tools": {
    "loopDetection": {
      "enabled": true,
      "warningThreshold": 10,
      "criticalThreshold": 20,
      "globalCircuitBreakerThreshold": 30,
      "historySize": 30,
      "detectors": {
        "genericRepeat": true,
        "knownPollNoProgress": true,
        "pingPong": true
      }
    }
  }
}

三种检测器:

  • genericRepeat:重复相同工具 + 相同参数
  • knownPollNoProgress:重复 poll 类工具且输出相同
  • pingPong:A/B/A/B 交替但无进展

apply_patch(多文件结构化补丁)

json
{
  "tools": {
    "exec": {
      "applyPatch": {
        "enabled": true,
        "workspaceOnly": true
      }
    }
  }
}

workspaceOnly: true 限制补丁只能修改工作区目录内的文件(默认),设为 false 才允许修改工作区外文件。目前仅 OpenAI 模型支持。


原文:Tools - OpenClaw | 来源:OpenClaw 官方文档

相关文章推荐

深度OpenClaw Docker 沙箱安全指南:隔离 AI 工具执行、保护主机系统OpenClaw Docker 沙箱安全配置:三种沙箱模式(off/non-main/all)、三种容器粒度(session/agent/shared)、工作区访问权限控制、自定义挂载安全限制、沙箱浏览器、per-Agent 覆盖,以及 Elevated 工具逃生通道的使用注意事项。2026/3/1深度OpenClaw 会话管理深度指南:多用户隔离、重置规则与磁盘清理OpenClaw 会话管理完全指南:多用户场景 DM 隔离策略(per-channel-peer 防止信息泄露)、每日/空闲/按类型的重置规则、会话 Key 格式详解、磁盘清理配置(enforce 模式 + 容量上限),以及手动清理命令和发送策略。2026/3/1深度OpenClaw 多 Gateway 架构完全指南:一台机器运行多个独立 AI 助手实例OpenClaw 多 Gateway(Multi-Gateway)架构完整教程:多实例的隔离优势、同一台机器运行多个 Gateway(不同端口/配置文件/workspace)、systemd 管理多个 Gateway 服务、Nginx 虚拟主机为每个实例分配独立域名、API Key 隔离与成本拆分、单机多实例 vs 多机方案对比,以及 Docker Compose 多容器隔离部署方案。2026/3/26深度OpenClaw Hooks 自动化进阶:消息前后的智能拦截、转换与触发机制OpenClaw Hooks(钩子)自动化系统进阶教程:Hooks 的触发时机(before-send/after-receive/on-tool-call)、用 Hooks 拦截消息并修改内容(自动翻译/过滤/格式化)、基于条件的 Hook 触发(渠道过滤/关键词匹配)、Hook 中调用外部 API(Notion 记录/Bark 通知/监控告警)、exec 工具二次确认 Hook,以及 Hooks 与 SOUL.md 和 Standing Orders 的优先级关系详解。2026/3/26深度OpenClaw 插件开发完全指南:从零构建自定义渠道和工具插件OpenClaw 插件(Plugin)开发完整教程:插件类型(渠道插件/工具插件/Provider插件)、插件的目录结构和 package.json 规范、使用 Plugin SDK 开发自定义消息渠道(实现 onMessage/sendMessage 接口)、开发自定义工具(Tool)的函数签名和参数 Schema、本地插件安装与调试(openclaw plugins install ./local-plugin)、发布到 npm 的规范要求(@openclaw/ 命名空间)、插件的权限声明(capabilities)、社区插件列表(Plugin Bundles)获取,以及常见插件开发错误和调试技巧。2026/3/25深度OpenClaw 安全威胁模型深度解析:MITRE ATLAS 框架下的 AI 助手攻防分析OpenClaw 安全架构深度分析:个人助手信任模型(单用户/单 Gateway 边界)、形式化验证的认证逻辑、基于 MITRE ATLAS 框架的 AI 系统威胁分类(直接提示注入/间接提示注入/工具滥用/数据泄露/会话劫持)、多租户共享 Gateway 的风险与安全边界说明、exec/browser/文件工具的权限最小化配置、频道白名单与沙箱配置对应的威胁缓解措施,以及 `openclaw security audit` 命令的使用方法。2026/3/24