第24章 工具系统 (Tools) —— OpenClaw 工具调用框架设计
目录
OpenClaw 的工具体系是按内置工具名、工具组和策略配置来组织的。
当前工具系统的几个核心点
1. 工具是一级能力
当前官方文档明确列出的内置重点包括:
- 文件工具:
read、write、edit、apply_patch - 运行时工具:
exec、bash、process - 会话工具:
sessions_list、sessions_history、sessions_send、sessions_spawn、session_status - Web 工具:
web_search、web_fetch - UI 工具:
browser、canvas - 自动化工具:
cron、gateway - 其他:
message、nodes
2. 现在强调的是工具策略,不是工具是否内置
当前配置里,最重要的是:
{
tools: {
profile: "coding",
allow: ["group:fs", "browser"],
deny: ["group:runtime"],
},
}其中:
profile:先给一个基础工具集合allow:追加允许deny:拒绝优先
3. 工具组是当前文档的重要抽象
OpenClaw 现在提供 group:* 速记:
group:runtimegroup:fsgroup:sessionsgroup:memorygroup:webgroup:uigroup:automationgroup:messaginggroup:nodesgroup:openclaw
Tool profiles
当前官方文档列出的基础 profile 有:
minimalcodingmessagingfull
例如:
{
tools: {
profile: "messaging",
allow: ["slack", "discord"],
},
}或者:
{
tools: {
profile: "coding",
deny: ["group:runtime"],
},
}当前最常用的几类工具
文件与补丁
readwriteeditapply_patch
进程执行
execprocess
这是当前官方支持的 shell 执行面,带有:
workdirtimeoutptybackgroundhostsecurityask
Web 访问
web_searchweb_fetch
文档也强调了:
web_fetch是普通 HTTP 抓取,不执行 JS- 需要 JS、登录态或页面交互时,应该切到
browser
会话编排
sessions_listsessions_historysessions_sendsessions_spawnsession_status
这是当前 OpenClaw 多智能体和跨会话操作的基础层。
插件也可以加工具
- 核心工具先由 OpenClaw 提供
- 插件可以额外注册工具
- 插件工具和核心工具一起进入同一个工具策略体系
所以重点不在“插件工具是额外特例”,而在“最终都受 tools.* 策略控制”。
exec 是现在的关键工具之一
当前官方 Exec tool 文档里,核心参数包括:
commandworkdirenvyieldMsbackgroundtimeoutptyhostsecurityasknodeelevated
web_search / web_fetch 的边界
当前官方文档明确:
web_search:搜索网页web_fetch:抓静态内容并提取可读文本browser:JS-heavy、登录态、点击、输入、截图
本章小结
- OpenClaw 的工具体系按内置工具名、工具组和策略配置组织
- 真实的关键工具包括
read/write/edit/apply_patch、exec/process、web_search/web_fetch、browser、sessions_spawn - 当前配置重点是
tools.profile、tools.allow、tools.deny和group:* - 插件工具会并入同一个工具策略体系,而不是一套独立规则
相关内容
- 第01章 OpenClaw 是什么 —— 自托管个人 AI 助手的终极形态
- 第02章 核心架构总览 —— Gateway 为什么是中心控制平面
- 第03章 Gateway —— 核心网关服务到底做了什么
- 第04章 多渠道接入 —— 如何支持 25+ 聊天平台
- 第05章 ACP —— 如何对接外部 AI 客户端
如果这篇文章对你有帮助,欢迎请我喝杯咖啡 ☕
支付宝
微信