Skip to main content

6.OpenClaw工具介绍

工具(Tools)是 OpenClaw 暴露给智能体的“能力接口”,用于让模型以更安全、更结构化的方式完成真实操作,例如读写文件、运行命令、管理会话、网页访问、UI 自动化等。相比旧式的 openclaw-* Skills,工具是类型化的、可控的,并且可以通过配置精确限制“允许它做什么 / 不允许它做什么”。

6.OpenClaw工具介绍1. 关键概念1.1 工具和 Skills 的关系1.2 工具不是越多越好1.3 工具策略的核心:profile + allow/deny2. 快速上手2.1 选择一个工具配置文件(profile)2.2 用 allow/deny 精准控制(推荐从 deny 开始)2.3 只针对某个提供商/模型收紧(byProvider)3. 工具组(group:*)4. 高风险工具:怎么配才安全4.1 运行命令相关(group:runtime)4.2 apply_patch 的提示4.3 按智能体隔离工具(推荐做法)5. 推荐配置模板(拿来就用)5.1 日常对话(更安全)5.2 学习/写文档(允许查网页,但不允许运行命令)5.3 开发调试(可读写文件,但把运行命令当成“可选项”)6. 常见问题6.1 配了 allow 但没有生效6.2 某个模型能用工具,换了模型就不行6.3 我到底该选哪个 profile?7. 官方文档

1. 关键概念

1.1 工具和 Skills 的关系

  • Tools:系统级“能力接口”,类型化、可配置、可按提供商/模型限制
  • Skills:更偏“可复用的工作流/插件能力”,很多旧技能会被工具体系替代或弱化

如果你想让智能体“做事”,优先考虑工具;如果你想把一套流程封装成可复用能力,再考虑 Skills。

1.2 工具不是越多越好

工具越多,模型能做的事越多,但风险也越大。最佳实践是:默认只开你真的需要的工具,并且把高风险能力(尤其是运行命令)单独关掉或按需打开。

1.3 工具策略的核心:profile + allow/deny

工具集通常按这个顺序裁剪:

  1. tools.profile 先给一个“基础允许集合”
  2. 如果配置了 tools.byProvider,会先对指定 provider 或 provider/model 进一步收紧(它只能缩小工具集)
  3. 最后再用 tools.allow / tools.deny 精确收紧或放开(deny 优先)

2. 快速上手

OpenClaw 的工具允许策略写在 openclaw.json 里。一般情况下我们不需要手动配置

  • deny 的优先级高于 allow
  • 支持 * 通配符,且匹配不区分大小写

2.1 选择一个工具配置文件(profile)

常见 profile(按“能力从少到多”):

  • minimal:仅 session_status
  • messaging:偏消息类能力 + sessions 能力
  • coding:偏开发/工程能力(文件、运行时、会话、记忆、图片等)
  • full:不限制(与未设置相同)

示例:启用 coding 配置文件

{ "tools" : { "profile" : "coding" } }

2.2 用 allow/deny 精准控制(推荐从 deny 开始)

示例:全局禁用 browser 工具

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

示例:在 coding 基础上,禁用所有运行时工具(exec / bash / process)

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

2.3 只针对某个提供商/模型收紧(byProvider)

你可以保持全局默认不变,仅对某个 provider 或 provider/model 进一步收紧工具集(它只能缩小,不能扩大)。

示例:全局用 coding,但 Google Antigravity 用 minimal

xxxxxxxxxx { "tools" : { "profile" : "coding" , "byProvider" : { "google-antigravity" : { "profile" : "minimal" } } } }

示例:针对 openai/gpt-5.2 进一步减少工具

xxxxxxxxxx { "tools" : { "allow" : [ "group:fs" , "group:runtime" , "sessions_list" ], "byProvider" : { "openai/gpt-5.2" : { "allow" : [ "group:fs" , "sessions_list" ] } } } }

3. 工具组(group:*)

tools.allow / tools.deny 中,你可以用 group:* 一次控制一组工具:

组名会展开为
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 工具(不包括提供商插件)

示例:只允许文件工具 + browser

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

4. 高风险工具:怎么配才安全

4.1 运行命令相关(group:runtime)

group:runtime 里包含执行能力(例如 exec / bash / process)。这类能力建议遵循:

  • 默认禁用:先 deny: ["group:runtime"],需要时再逐步放开
  • 只给“特定智能体”放开:把高风险能力集中在专门的 agent 上
  • 只给“特定 provider/model”放开:对稳定/可信的模型开更多工具

4.2 apply_patch 的提示

apply_patch 属于文件编辑类工具;在一些版本中它是实验特性,可能需要额外开关启用(例如通过 tools.exec.applyPatch.enabled,且仅部分模型支持)。如果你发现模型明明会改文件,但就是无法调用 apply_patch,优先检查工具策略与相关开关。

4.3 按智能体隔离工具(推荐做法)

你可以全局设置一套工具策略,再对某个智能体单独覆盖,让“高权限能力”集中在少数智能体上。

示例:全局用 coding,但 support 智能体只走 messaging,并额外允许 Slack 工具

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

5. 推荐配置模板(拿来就用)

5.1 日常对话(更安全)

目标:只聊天 + 只看会话状态,不给它“乱动系统”的能力。

xxxxxxxxxx { "tools" : { "profile" : "minimal" } }

5.2 学习/写文档(允许查网页,但不允许运行命令)

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

5.3 开发调试(可读写文件,但把运行命令当成“可选项”)

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

当你确实需要执行命令时,再临时放开 group:runtime,用完再关回去。

6. 常见问题

6.1 配了 allow 但没有生效

  • 检查 deny 是否同时命中了同一个工具(deny 优先)
  • 检查工具名是否拼写正确(匹配不区分大小写,但名称要存在)
  • 如果 tools.allow 只写了未知/未加载的插件工具,系统可能会忽略 allow 列表以保证核心工具可用

6.2 某个模型能用工具,换了模型就不行

  • 你可能设置了 tools.byProvider(provider 或 provider/model)对该模型做了额外限制
  • 有的提供商端点对工具支持不一致,建议对不稳定端点使用更小的工具集

6.3 我到底该选哪个 profile?

  • 只想聊天:minimal
  • 日常消息 + 管理会话:messaging
  • 文件/工程类任务:coding
  • 你明确知道自己在干什么并能承担风险,我想要完整的强大的OpenClaw:full

7. 官方文档