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
工具集通常按这个顺序裁剪:
tools.profile先给一个“基础允许集合”- 如果配置了
tools.byProvider,会先对指定 provider 或 provider/model 进一步收紧(它只能缩小工具集) - 最后再用
tools.allow/tools.deny精确收紧或放开(deny优先)
2. 快速上手
OpenClaw 的工具允许策略写在 openclaw.json 里。一般情况下我们不需要手动配置
deny的优先级高于allow- 支持
*通配符,且匹配不区分大小写
2.1 选择一个工具配置文件(profile)
常见 profile(按“能力从少到多”):
minimal:仅session_statusmessaging:偏消息类能力 + 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:runtime | exec、bash、process |
group:fs | read、write、edit、apply_patch |
group:sessions | sessions_list、sessions_history、sessions_send、sessions_spawn、session_status |
group:memory | memory_search、memory_get |
group:web | web_search、web_fetch |
group:ui | browser、canvas |
group:automation | cron、gateway |
group:messaging | message |
group:nodes | nodes |
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. 官方文档
- OpenClaw 工具文档:https://docs.openclaw.ai/zh-CN/tools