最近在折腾OpenClaw 2026.3.2版本时,发现一个让人哭笑不得的问题——明明模型和配置都没动过,Agent却突然变得"笨手笨脚",只能聊天不会干活。经过一番排查,原来这个版本默认关闭了新Agent的所有工具权限,相当于给Agent戴上了"手套",让它空有一身本领却无法施展。
这个问题特别容易让人误以为是模型性能下降或环境配置出错。我最初也走了弯路,花了近一小时检查日志、更换模型,直到深入研究才发现问题根源。这种"静默变更"确实给开发者带来了不小的困扰,特别是对于那些重度依赖OpenClaw工具链的用户来说。
在OpenClaw 2026.3.2版本中,新创建的Agent会默认禁用所有核心工具权限。具体来说,这包括:
这种变更相当于在Agent的权限管理模块中,默认将tools.profile设置为restricted而非之前的full。从架构角度看,这是OpenClaw安全策略的一次调整,但缺乏足够的沟通和文档说明。
这种静默变更导致的主要问题包括:
提示:如果发现Agent突然"变笨",首先检查工具调用权限,这能节省大量不必要的排查时间。
要恢复Agent的全部功能,需要修改openclaw.json配置文件。以下是详细操作流程:
定位配置文件:
~/.config/openclaw/openclaw.jsonopenclaw --config-path命令查询备份原始配置:
bash复制cp openclaw.json openclaw.json.bak
编辑配置文件:
在根级别添加或修改tools字段:
json复制{
"tools": {
"profile": "full",
"sessions": {
"visibility": "all"
}
},
// 其他现有配置...
}
验证JSON格式:
使用jq工具检查语法:
bash复制jq empty openclaw.json && echo "Valid JSON"
重启服务:
bash复制systemctl restart openclaw
# 或
pkill -f openclaw && openclaw start
tools字段支持以下配置选项:
| 配置项 | 可选值 | 说明 |
|---|---|---|
| profile | full/restricted/none | 全局工具权限级别 |
| sessions.visibility | all/owner/none | 会话可见性控制 |
| exec.enabled | true/false | 单独控制执行权限 |
| web_fetch.enabled | true/false | 单独控制网络抓取 |
| file_io.enabled | true/false | 单独控制文件操作 |
建议的权限策略组合:
json复制{
"tools": {
"profile": "full",
"sessions": {
"visibility": "owner"
},
"exec": {
"enabled": true,
"sandbox": true
},
"web_fetch": {
"enabled": true,
"domains": ["example.com"]
}
}
}
如果修改配置后问题依旧,可以按以下步骤排查:
确认配置加载:
bash复制openclaw config show | grep tools
检查服务日志:
bash复制journalctl -u openclaw -n 50 --no-pager
验证Agent权限:
在交互模式中测试:
bash复制/agent list
/agent inspect <agent_id>
测试工具调用:
bash复制/exec echo "test"
/web_fetch https://example.com
最小权限原则:
json复制{
"tools": {
"profile": "restricted",
"exec": {
"enabled": true,
"allowed_commands": ["git", "npm"]
}
}
}
环境区分策略:
profile: fullprofile: restrictedprofile: none + 按需开启权限审计日志:
在配置中启用:
json复制{
"audit": {
"tools": true,
"log_file": "/var/log/openclaw/audit.log"
}
}
从这次经历中,我们可以总结出几点重要的经验:
版本升级需谨慎:
文档审查很重要:
配置管理策略:
监控体系建设:
对于OpenClaw团队的建议:
这次经历也提醒我们,在AI工具链的开发和使用中,权限管理是一个需要特别关注的重点领域。合理的默认设置加上透明的变更沟通,才能构建更健康的开发者生态。