第8章:内置工具——AI 的"瑞士军刀"
到目前为止,你的 AI 助手能聊天、能记忆、能在多个渠道响应你。但本质上,它还只是一个"嘴上厉害"的存在——说得头头是道,却什么都做不了。
工具(Tools)是改变这一切的分水岭。
有了工具,AI 可以执行终端命令、控制浏览器、搜索网络、发送消息、调用设备摄像头。它从一个对话伙伴,变成了一个真正能帮你干活的助手。

工具全景
OpenClaw 的工具按功能分成九大组:
| 工具组 | 包含工具 | 能做什么 |
|---|---|---|
runtime | exec, process | 执行终端命令,管理后台进程 |
fs | read, write, edit, apply_patch | 读写和编辑本地文件 |
web | search, fetch | 搜索网络,抓取网页内容 |
ui | browser, canvas | 控制浏览器,操作可视化画布 |
messaging | message | 跨平台发送消息(WhatsApp/Slack/Discord 等) |
memory | memory_search, memory_get | 读写记忆文件 |
sessions | session_* | 跨 Agent 通信,生成子 Agent |
automation | cron, webhook | 管理定时任务和 Webhook |
nodes | node_* | 控制配对的手机和电脑设备 |
默认配置(full 画像)下,所有工具组都是开放的。AI 会根据你的请求自行判断该用哪个工具。
接下来重点介绍三个你最先会用到的工具组。
exec:让 AI 执行终端命令
exec 工具让 AI 在你的机器上运行 shell 命令。这是工具箱里权力最大的一把——也因此最需要谨慎对待。
把终端命令能力交给 AI,大多数时候它用的是 ls、cat、git status 这类温和的命令。但如果你没有设置任何边界,它偶尔会认为 rm -rf 是解决问题的好办法。不是因为它坏,是因为它觉得这样最有效。
能做什么
帮我查看一下 ~/projects 目录下有哪些文件运行 pytest,看看有没有失败的测试把 nginx 的错误日志最后 50 行给我看看这些都是 exec 的典型使用场景。AI 会在执行前告诉你它要运行什么命令,执行后把输出返回给你。
后台执行
对于耗时的任务,可以让 AI 在后台运行:
帮我在后台运行 npm run build,完成后通知我AI 会启动进程,继续和你对话,等任务完成再告知结果。
安全边界
重要:不要让 exec 裸奔
默认配置下,exec 可以运行任何命令,包括删文件、修改系统配置、访问敏感目录。
在开始大量使用 exec 之前,建议做两件事:
1. 配置工具策略(本章末尾会讲):明确哪些命令允许,哪些不允许。
2. 启用 Docker 沙箱(第10章详细讲):让 AI 的命令在隔离容器里运行,即使它做了什么"过激"的操作,影响也被限制在容器内,不会波及你的宿主机。
browser:控制一个完整的浏览器
browser 工具给 AI 配了一台它自己的无头电脑——屏幕你看不见,但鼠标和键盘它全能控制。
这是最能让人"哇"一声的工具。
能做什么
截图和快照:
帮我截一下 https://news.ycombinator.com 的首页AI 会打开浏览器,导航到这个地址,截图后发给你。
网页交互:
打开 GitHub,帮我搜索 "vitepress",截图搜索结果AI 可以在网页上点击、输入文字、按回车——和真人操作浏览器完全一样,只是它的"眼睛"靠截图来看页面内容。
数据抓取:
打开这个招聘页面,把所有职位名称和薪资范围整理成表格生成 PDF:
把 https://example.com/report 保存成 PDF,放到我的桌面自动化流程:
帮我登录 Tesco 网站(账号密码在 USER.md 里),
把购物车里的商品清单发给我看看多个浏览器 Profile
browser 工具支持多个独立的 Profile,每个 Profile 有独立的 Cookie 和登录状态。这样 AI 可以同时管理多个网站的登录会话,互不干扰。
浏览器工具的工作原理
OpenClaw 的 browser 工具管理一个独立的 Chrome/Chromium 实例,通过 Chrome DevTools Protocol(CDP)控制它。AI 每次操作后会获取页面快照(无障碍树 + 截图),据此判断下一步该怎么操作——就像一个用截图来"看"屏幕的盲打高手。
web:搜索与网页抓取
web 工具解决一个根本问题:AI 的训练数据有截止日期,它不知道昨天发生了什么。
有了 web 工具,AI 可以实时搜索网络,获取最新信息。
网络搜索
帮我搜一下 Claude 4.6 最新的定价信息最近有没有关于树莓派 5 的新测评?OpenClaw 支持多个搜索提供商:Brave Search、Firecrawl、Gemini、Grok 等。使用搜索功能需要配置至少一个提供商的 API Key。
推荐从 Brave Search 开始,免费额度慷慨,申请简单:在 Brave Search API 注册后,把 Key 写入配置:
{
"braveSearch": {
"apiKey": "你的BraveSearchAPIKey"
}
}网页抓取
除了搜索,web 工具还可以直接抓取指定页面的内容:
帮我读一下这篇文章的主要内容:https://example.com/articleAI 会抓取页面,提取正文,以 Markdown 格式返回——不用你手动复制粘贴。
工具策略:设定边界
工具很强大,但并非每个场景都需要全部工具。工具策略让你精确控制 AI 能用什么、不能用什么。
allow / deny 配置
在 openclaw.json 里,tools.allow 和 tools.deny 控制工具的开关:
{
"agents": {
"defaults": {
"tools": {
"deny": ["exec", "group:nodes"]
}
}
}
}规则说明:
deny优先于allow——如果一个工具同时出现在两个列表里,以 deny 为准- 可以指定单个工具名(如
exec),也可以指定整组(如group:nodes) - 支持通配符
四种内置工具画像
除了手动配置,OpenClaw 提供了四种开箱即用的工具画像,适合不同场景:
| 画像 | 开放的工具组 | 适合场景 |
|---|---|---|
minimal | 仅会话状态 | 最严格限制,适合对外开放的 Bot |
coding | 文件系统、终端、会话、记忆 | 编程助手场景 |
messaging | 消息发送、会话历史 | 纯消息场景 |
full(默认) | 全部工具 | 个人使用,自己对自己负责 |
切换画像:
{
"agents": {
"defaults": {
"tools": {
"profile": "coding"
}
}
}
}个人使用 vs 对外开放
如果这个 Bot 只有你自己用,full 画像完全合理。如果你把 Bot 分享给别人,或者接入了公开群组,强烈建议切换到更严格的画像,再根据需要逐步放开,而不是从 full 开始往回收。
动手练习
依次尝试以下两个请求:
测试 exec:
帮我看一下当前系统的 Node.js 版本和 npm 版本AI 应该会执行 node --version 和 npm --version,把结果告诉你。
测试 browser(需要先确认 browser 工具已启用):
帮我截一张 https://docs.openclaw.ai 首页的图AI 应该会打开浏览器,访问这个地址,截图后发给你。
如果两个都成功了,说明你的工具配置是通畅的。
本章检查清单
- [ ] 你知道
exec和browser的主要区别是什么吗?(一个在终端,一个在浏览器) - [ ] 你了解为什么
exec需要特别注意安全边界吗? - [ ] 你知道如何用工具画像(profile)快速切换工具权限吗?