github star gitee star atomgit star PyPI Downloads AI 编程 AI 交流群

大家好,我是正在实战各种AI项目的程序员晚枫。

今天学习工具调用(Tools),这是OpenClaw最强大的功能。通过工具,AI可以执行命令、操作浏览器、读写文件...从"聊天机器人"变成"智能助手"。


什么是工具调用?

工具(Tools)是AI可以调用的功能函数。当AI需要执行某些操作时,它会主动请求使用工具。

工作流程

1
2
3
4
5
用户提问 → AI分析 → 需要工具?
↓ 否
直接回答
↓ 是
选择工具 → 传入参数 → 执行 → 返回结果 → AI总结

OpenClaw内置工具

工具功能风险等级
exec执行shell命令🔴 高
browser控制浏览器🟡 中
read读取文件🟢 低
write写入文件🟡 中
edit编辑文件🟡 中
web_search网络搜索🟢 低
web_fetch抓取网页🟢 低

配置工具权限

编辑 ~/.openclaw/openclaw.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
"tools": {
"exec": {
"enabled": true,
"sandbox": true,
"allowedCommands": ["ls", "cat", "grep", "curl", "python3"],
"blockedCommands": ["rm", "dd", "mkfs", "sudo"],
"workingDirectory": "~/.openclaw/sandbox",
"requireApproval": false
},
"browser": {
"enabled": true,
"headless": true,
"timeout": 30000
},
"read": {
"enabled": true,
"allowedPaths": ["~/projects", "~/documents"],
"blockedPaths": ["~/.ssh", "~/.aws", "~/.env"]
},
"write": {
"enabled": false,
"requireApproval": true
}
}
}

实战:执行Shell命令

场景1:查看系统信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
你:帮我看看当前目录有什么文件

AI:我来帮你查看一下。
🔧 Using tool: exec
Command: ls -la

📤 Result:
total 32
drwxr-xr-x 5 user group 160 Jan 15 10:00 .
drwxr-xr-x 20 user group 640 Jan 14 09:00 ..
-rw-r--r-- 1 user group 220 Jan 15 10:00 README.md
drwxr-xr-x 2 user group 64 Jan 15 09:30 src
drwxr-xr-x 2 user group 64 Jan 15 09:30 tests

当前目录包含:README.md文件、src和tests两个文件夹。

场景2:运行Python脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
你:运行test.py看看输出

AI:好的,我来执行这个脚本。
🔧 Using tool: exec
Command: python3 test.py

📤 Result:
Running tests...
✓ Test 1 passed
✓ Test 2 passed
✗ Test 3 failed: Assertion error

2/3 tests passed

测试运行完成,2个通过,1个失败。Test 3有断言错误,需要检查代码逻辑。

实战:浏览器自动化

场景:获取网页内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
你:帮我查一下今天的天气

AI:我来搜索一下天气信息。
🔧 Using tool: web_search
Query: 今天天气

📤 Found results:
1. 中国天气网 - 今日天气预报
2. 新浪天气 - 实时天气更新

🔧 Using tool: browser
Action: navigate
URL: https://weather.com.cn

📤 Page loaded, extracting weather data...

今天北京天气:晴,温度-2°C到8°C,空气质量良。

实战:文件操作

读取文件

1
2
3
4
5
6
7
8
9
10
11
你:读取config.yaml的内容

AI:我来读取这个文件。
🔧 Using tool: read
Path: config.yaml

📤 Content:
database:
host: localhost
port: 5432
name: myapp

写入文件

1
2
3
4
5
6
7
8
9
10
11
你:创建一个hello.py,内容是打印Hello World

AI:好的,我来创建这个文件。
🔧 Using tool: write
Path: hello.py
Content:
print("Hello World")

✓ File created successfully

已创建hello.py,内容为打印"Hello World"。

安全最佳实践

生产环境建议

  1. 启用沙盒模式:限制命令执行范围
  2. 白名单机制:只允许特定命令
  3. 人工确认:危险操作前要求确认
  4. 日志审计:记录所有工具调用

危险操作示例

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"tools": {
"exec": {
"blockedCommands": [
"rm -rf /",
"dd if=/dev/zero",
"mkfs",
"format",
"> /etc/passwd"
]
}
}
}

下节预告

下一讲学习文件与媒体处理,包括图片分析、语音转文字等高级功能。

👉 继续阅读:第16讲-文件与媒体处理


💬 加入学习交流群

工具调用问题?加群交流:

👉 点击加入交流群


推荐:AI Python编程实战营

🎁 限时福利:送《利用Python进行数据分析》实体书

👉 点击了解详情


---## 📚 完整学习路线这是OpenClaw入门课程的第X讲。查看完整课程大纲:👉 **OpenClaw入门课程大纲**课程包含30讲,从安装部署到实战项目,带你全面掌握OpenClaw。

课程导航

上一篇: 第14讲-记忆系统与AGENTS.md

下一篇: 第16讲-文件与媒体处理


PS:工具调用是把双刃剑,既能大幅提升AI能力,也带来安全风险。务必做好权限控制。


💬 联系我

平台账号/链接
微信扫码加好友
微博@程序员晚枫
知乎@程序员晚枫
抖音@程序员晚枫
小红书@程序员晚枫
B 站Python 自动化办公社区

主营业务:AI 编程培训、企业内训、技术咨询

🎓 AI 编程实战课程

想系统学习 AI 编程?程序员晚枫的 AI 编程实战课 帮你从零上手!