乐于分享
好东西不私藏

Openclaw学习笔记(5)工具

Openclaw学习笔记(5)工具

除了生成文本之外,代理(Agent)所执行的一切操作都是通过“工具”来实现的。工具是代理用于读取文件、执行命令、浏览网页、发送消息以及与各类设备进行交互的媒介。

工具、技能与插件

OpenClaw 包含三个相互协作的层级:

1、工具:代理的调用对象

工具本质上是一个带有类型定义的函数,代理可以对其进行调用(例如:执行命令 `exec`、网页浏览 `browser`、网络搜索 `web_search`、发送消息 `message` 等)。OpenClaw 预置了一套内置工具,同时用户也可以通过安装插件来注册更多额外的工具。

在代理的视角中,这些工具被视为发送给模型 API 的结构化函数定义。

2、技能:指导代理“何时”及“如何”操作

技能以 Markdown 文件(通常命名为 `SKILL.md`)的形式存在,并会被注入到系统的提示词(System Prompt)中。技能为代理提供了必要的上下文信息、操作约束,以及关于如何高效使用工具的循序渐进式指引。技能文件可以存放在您的工作区、共享文件夹中,也可以作为插件的一部分进行分发。

3、插件:将各项能力进行打包整合

插件是一种软件包,它可以注册并整合任意组合的功能模块,包括:通信渠道(Channels)、模型服务提供商、各类工具、技能集、语音交互能力、图像生成能力等。部分插件属于“核心插件”(随 OpenClaw 软件一同发布),而另一些则是“外部插件”(由社区开发者发布至 npm 仓库)。

内置工具

以下工具均随 OpenClaw 软件一同发布,无需安装任何额外插件即可直接使用:

工具 (Tool)
功能描述 (What it does)
exec / process
运行 Shell 命令,管理后台进程
code_execution
运行沙盒环境下的远程 Python 分析
browser
控制 Chromium 浏览器(导航、点击、截图)
web_search / x_search / web_fetch
网页搜索、搜索 X 帖子、获取页面内容
read / write / edit
工作区内的文件输入/输出 (I/O)
apply_patch
多块文件补丁 (Multi-hunk file patches)
message
通过所有渠道发送消息
canvas
驱动 Node Canvas(演示、评估、快照)
nodes
发现并定位配对设备
cron / gateway
管理计划任务,重启网关
image / image_generate
分析或生成图像
sessions_* / agents_list
会话管理,子智能体

工具配置

允许列表与拒绝列表

通过配置文件中的 tools.allow / tools.deny选项,控制代理可调用的工具。拒绝列表的优先级始终高于允许列表。

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

工具配置文件(Profile)

tools.profile 在应用允许/拒绝规则之前,设定一个基础的允许列表。单代理覆盖设置:agents.list[].tools.profile。

配置文件 (Profile)
包含内容 (What it includes)
full
所有工具(默认)
coding
文件 I/O、运行时、会话、内存、图像
messaging
消息传递、会话列表/历史/发送/状态
minimal
仅限 session_status

工具组

在允许/拒绝列表中使用 group:* 简写:

分组 (Group)
工具 (Tools)
group:runtime
exec, bash, 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:openclaw
所有内置 OpenClaw 工具(不包括插件工具)

实例展示:

要查看智能体在对对话过程中使用了哪些工具,可以登录Openclaw 控制中心127.0.0.1:18789,点击聊天chat

以之前hello world的技能为例,可以看到智能体自动调用了"read"的工具,读取了SKILL.md文件。

随后智能体采用了"exec"工具,完成了文本输出。