五、工具与插件系统
5.1 三层架构
智能体所做的一切,凡是超出生成文本范围的,都通过工具完成。
OpenClaw 有三个协同工作的层级:
| 层级 | 说明 | 示例 |
|---|---|---|
| 1. 工具 | 智能体可调用的类型化函数 | exec、browser、web_search、message |
| 2. Skills | 注入到系统提示词的 Markdown 文件 | SKILL.md,教智能体如何使用工具 |
| 3. 插件 | 打包渠道、工具、Skills 等的软件包 | 渠道插件、模型提供商插件 |
5.2 内置工具完整列表
执行与文件
| 工具 | 作用 |
|---|---|
| exec / process | 运行 shell 命令,管理后台进程 |
| code_execution | 运行沙箱隔离的远程 Python 分析代码 |
| read / write / edit | 在工作区中执行文件 I/O |
| apply_patch | 多段文件补丁应用 |
网络与搜索
| 工具 | 作用 |
|---|---|
| browser | 控制 Chromium 浏览器(导航、点击、截图) |
| web_search | 搜索网页 |
| x_search | 搜索 X (Twitter) 帖子 |
| web_fetch | 抓取页面内容 |
媒体生成
| 工具 | 作用 |
|---|---|
| image | 分析图像 |
| image_generate | 生成图像 |
| music_generate | 生成音乐轨道 |
| video_generate | 生成视频 |
| tts | 一次性文本转语音转换 |
会话与智能体
| 工具 | 作用 |
|---|---|
| sessions_* | 会话管理、状态查看 |
| subagents | 子智能体编排 |
| agents_list | 列出可用智能体 |
| session_status | 轻量级 /status 风格回读 |
设备与节点
| 工具 | 作用 |
|---|---|
| canvas | 驱动节点 Canvas(展示、求值、快照) |
| nodes | 发现并定位已配对的设备 |
自动化
| 工具 | 作用 |
|---|---|
| cron | 管理计划任务 |
| gateway | 检查、修补、重启或更新 Gateway |
消息
| 工具 | 作用 |
|---|---|
| message | 跨所有渠道发送消息 |
5.3 工具配置
允许列表和拒绝列表
通过配置中的 tools.allow / tools.deny 控制智能体可以调用哪些工具:
{
"tools": {
"allow": ["group:fs", "browser", "web_search"],
"deny": ["exec"]
}
}拒绝始终优先于允许。
工具配置文件 (Profile)
tools.profile 会在应用 allow/deny 之前设置一个基础允许列表。
| Profile | 包含的工具 |
|---|---|
full | 不限制(与未设置相同) |
coding | group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, music_generate, video_generate |
messaging | group:messaging, sessions_list, sessions_history, sessions_send, session_status |
minimal | 仅 session_status |
按智能体覆盖
{
"agents": {
"list": [
{
"tools": {
"profile": "coding"
}
}
]
}
}5.4 工具分组
在允许/拒绝列表中使用 group:* 简写:
| 分组 | 包含的工具 |
|---|---|
group:runtime | exec、process、code_execution |
group:fs | read、write、edit、apply_patch |
group:sessions | sessions_list、sessions_history、sessions_send、sessions_spawn、sessions_yield、subagents、session_status |
group:memory | memory_search、memory_get |
group:web | web_search、x_search、web_fetch |
group:ui | browser、canvas |
group:automation | cron、gateway |
group:messaging | message |
group:nodes | nodes |
group:agents | agents_list |
group:media | image、image_generate、music_generate、video_generate、tts |
group:openclaw | 所有 OpenClaw 内置工具 |
5.5 Skills(技能)
Skills 是注入到系统提示词中的 Markdown 文件(SKILL.md)。
Skills 的作用
- 为智能体提供上下文
- 设置约束条件
- 提供高效使用工具的分步指导
Skills 的位置
- 工作区目录
- 共享文件夹
- 插件内置提供
创建 Skills
workspace/
└── skills/
└── my-skill/
└── SKILL.md5.6 插件系统
插件能做什么
插件是一种软件包,可以注册任意组合的能力:
- 渠道
- 模型提供商
- 工具
- Skills
- 语音
- 实时转写
- 实时语音
- 媒体理解
- 图像生成
- 视频生成
- 网页抓取
- 网页搜索
插件类型
| 类型 | 说明 |
|---|---|
| 核心插件 | 随 OpenClaw 一起提供 |
| 外部插件 | 由社区发布到 npm |
安装插件
npm install -g <plugin-package>然后在配置中启用。
5.7 提供商特定限制
使用 tools.byProvider 为特定提供商限制工具:
{
"tools": {
"profile": "coding",
"byProvider": {
"google-antigravity": { "profile": "minimal" }
}
}
}5.8 Gateway 工具(操作员专用)
gateway 是仅限所有者使用的 Gateway 运行时工具:
| 方法 | 作用 |
|---|---|
config.schema.lookup | 在编辑前查看单一路径范围的配置子树 |
config.get | 获取当前配置快照 + 哈希值 |
config.patch | 执行带重启的部分配置更新 |
config.apply | 仅用于完整配置替换 |
update.run | 显式执行自更新 + 重启 |
对于部分更改,优先使用
config.schema.lookup,然后使用config.patch。仅在你有意替换整个配置时才使用config.apply。