什么是 Auto Mode Exec?
Auto Mode Exec 是 OpenClaw 在 2026 年推出的重要功能。它允许 Agent 在执行 shell 命令时跳过人工确认,直接执行。
在默认模式下,Agent 每次调用 exec 工具执行 shell 命令时,都需要用户确认。这在生产环境中很安全,但在自动化场景下会严重拖慢效率。
Auto Mode Exec 就是为了解决这个问题——在受控的范围内,让 Agent 自己决定执行。
两种模式对比
🛡️ Safe Mode(默认)
- 每次 exec 都需要用户确认
- 适合生产环境
- 适合不确定的任务
- 安全但效率较低
⚡ Auto Mode
- Agent 自主执行 shell 命令
- 受白名单和规则约束
- 适合自动化任务
- 效率高但需要安全配置
配置方法
全局配置
# openclaw.json - 启用 Auto Mode Exec
{
"exec": {
"autoMode": {
"enabled": true,
"defaultPolicy": "ask", // ask | auto | deny
"rules": [
{
"pattern": "ls *",
"policy": "auto"
},
{
"pattern": "cat *",
"policy": "auto"
},
{
"pattern": "rm -rf *",
"policy": "deny"
},
{
"pattern": "sudo *",
"policy": "deny"
}
]
}
}
}
按 Agent 配置
# 不同 Agent 有不同的权限
{
"agents": {
"miaoquai": {
"exec": {
"autoMode": {
"enabled": true,
"rules": [
{ "pattern": "git *", "policy": "auto" },
{ "pattern": "npm *", "policy": "auto" },
{ "pattern": "curl *", "policy": "auto" },
{ "pattern": "docker *", "policy": "ask" }
]
}
}
},
"research-bot": {
"exec": {
"autoMode": {
"enabled": false // 研究类 Agent 不需要自动执行
}
}
}
}
}
临时启用
# 在聊天中临时启用 Auto Mode
/auto exec
# 临时禁用
/auto exec off
# 查看当前状态
/auto status
安全规则详解
规则匹配语法
# 通配符匹配
"ls *" # ls 后跟任意参数
"git commit *" # git commit 后跟任意参数
"npm install" # 精确匹配
# 正则表达式匹配
"^git (status|log|diff)$" # 只允许这几个 git 子命令
"^curl -s https://.*" # 只允许 curl HTTPS 地址
# 路径限制
"cat /var/www/*" # 只允许读取特定目录
"rm /tmp/*" # 只允许删除临时文件
内置安全规则
# 以下命令始终需要确认,无法被 Auto Mode 覆盖
sudo * # 提权操作
rm -rf / # 危险删除
chmod 777 * # 权限修改
curl | bash # 管道执行
dd if=* of=/dev/* # 磁盘操作
mkfs.* # 格式化
shutdown * # 关机
reboot * # 重启
使用场景
场景一:自动化 SEO 巡检
# Agent 自动执行的命令序列
# 无需人工确认,全部自动执行
curl -I https://miaoquai.com # 检查首页状态
curl -s -o /dev/null -w "%{http_code}" URL # 检查死链
find /var/www -name "*.html" | wc -l # 统计页面数
git -C /var/www diff # 检查变更
场景二:定时内容生成
# Cron 任务中 Agent 自动执行
# 01:00 每日 SEO 内容生成
1. curl 搜索热词 API
2. write 生成 HTML 文件
3. git add + commit
4. curl 更新 sitemap
场景三:CI/CD 集成
# Agent 参与 CI/CD 流程
npm test # 运行测试
npm run build # 构建项目
git push origin main # 推送代码
# 以上命令在白名单中,自动执行
监控与审计
执行日志
# Auto Mode 执行日志
[exec:auto] 2026-06-10 01:00:01 | agent=miaoquai | cmd="curl -I https://miaoquai.com" | policy=auto | status=success | duration=230ms
[exec:auto] 2026-06-10 01:00:03 | agent=miaoquai | cmd="find /var/www -name '*.html' | wc -l" | policy=auto | status=success | duration=45ms
[exec:deny] 2026-06-10 01:00:05 | agent=miaoquai | cmd="rm -rf /tmp/old-*" | policy=deny | reason="dangerous pattern" | blocked=true
告警配置
{
"exec": {
"autoMode": {
"alerts": {
"enabled": true,
"onDeny": true,
"onFailure": true,
"onHighFrequency": {
"threshold": 10,
"windowSeconds": 60
},
"channel": "feishu" // 告警发送到飞书
}
}
}
}
🚨 安全红线:
- 生产环境的数据库操作(DROP、DELETE、TRUNCATE)永远不能 Auto
- 涉及用户数据的命令必须人工确认
- 网络操作(curl POST、wget)需要严格白名单
- 定期审计 Auto Mode 执行日志
💡 最佳实践:
- 渐进式开放:先只开放只读命令(ls、cat、curl GET),再逐步放开
- 白名单优于黑名单:明确允许什么,而不是试图禁止所有危险操作
- 按 Agent 分权:不同 Agent 给不同权限,最小权限原则
- 保留审计日志:所有 Auto Mode 执行都要记录,定期审查