OpenClaw需配置tools.yaml声明工具、SOUL.md授权调用权限、USER.md提供真实路径上下文,并重启服务才能启用外部工具调用;否则仅生成文字回复。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让OpenClaw这个运行在自己服务器上的AI助理,真正调用外部工具来帮你查天气、发邮件、读文件或执行命令,而不是只停留在聊天界面里自说自话——这需要它明确知道“能用什么”和“怎么用”,而不仅仅是“该说什么”。
确认工具能力是否已启用
打开你的OpenClaw部署目录,进入.openhands子目录(注意开头的点号),检查是否存在tools.yaml文件。如果不存在,说明当前配置未声明任何可用工具,AI将默认跳过所有工具调用逻辑,直接生成文字回复。
这一步不能跳过。没有tools.yaml,后续所有配置都无效。
在tools.yaml中声明可用工具
用文本编辑器打开tools.yaml,按YAML语法写入你希望AI调用的工具定义。每个工具必须包含name、description、parameters三部分。
例如添加一个本地命令执行工具:
【name字段必须与AI提示词中调用的函数名完全一致】
```yaml
tools:
- name: execute_bash
description: 在Linux终端中执行命令,适用于查看文件、列出目录、运行脚本等
parameters:
command:
type: string
description: 要执行的shell命令,不支持交互式命令如vim或top
```
保存后重启OpenClaw服务。不重启,新工具不会被加载进运行时上下文。
在SOUL.md中授权工具调用权限
打开SOUL.md,在文件末尾新增一段明确指令:
```markdown
## 工具使用原则
- 你具备execute_bash工具权限,当用户需求涉及系统操作(如“查当前目录有哪些文件”“运行test.py”)时,必须优先尝试调用该工具,而非仅靠推理回答。
- 若命令执行失败,需原样返回error信息,并向用户说明失败原因,不可自行编造结果。
```
这步决定了AI是否“敢用”工具。没有这段话,即使tools.yaml存在,AI也会因缺乏行为准则而回避调用。
在USER.md中提供必要上下文
确保USER.md中至少包含以下两行:
```markdown
- 你的工作目录是/home/yourname/project
- 你有权在该目录下执行bash命令
```
【路径必须真实存在且AI进程有读写权限,否则execute_bash会静默失败】
AI调用工具时不会主动猜测路径,它只会严格按USER.md中写的路径去操作。写错或遗漏,工具就等于没开。
测试工具是否生效
方法一:在聊天窗口输入“列出当前目录下的所有.py文件”
方法二:输入“运行命令:ls -l *.py”
如果看到AI返回类似stdout: test.py main.py的实际执行结果,说明工具链已通。如果只回复“我帮你列出了……”但没带代码块或stdout标识,说明某处配置未生效,重点复查tools.yaml格式和SOUL.md权限声明。


















