OpenClaw 2026.3.31 升级报告
日期:2026-04-01
操作:从 2026.3.28 升级至 2026.3.31
状态:✅ 功能正常(已修复后)
一、升级背景
欧阳在 2026-04-01 通过 Control UI 执行了 openclaw update,将 OpenClaw 从 2026.3.28 升级到 2026.3.31。
二、版本变化摘要
| 项目 | 2026.3.28 | 2026.3.31 |
|---|---|---|
| 发布时间 | 约 2026-03-25 | 约 2026-03-28 |
| 核心变更 | — | exec 安全策略收紧、cron 控制面重构、MCP 默认关闭 |
主要变更点
Exec 安全策略重构
tools.exec现在默认为security: "allowlist"模式- 未配置 allowlist 时,所有 exec 命令被阻止(
exec denied: allowlist miss) - 旧版
allowlist数组格式被拒绝,需要使用security: "full"或配置正确的 allowlist
Cron 控制面重构
- 任务状态显示从
systemEvent迁移到 SQLite-backed 控制面 flows list|show|cancel新增任务查看/取消能力- 新增
delivery.mode: "none"(cron 不再自动发飞书通知)
- 任务状态显示从
MCP 安全加固
mcp bridges默认关闭(default-off)- 插件危险代码扫描默认开启(新增
dangerousCode检测)
Gateway Auth 拒绝混合格式
- 不再接受旧版混合格式 auth token 配置
三、实际影响
3.1 立即出现的故障
| 功能 | 故障现象 | 原因 |
|---|---|---|
| 所有 exec 命令 | exec denied: allowlist miss |
exec 安全策略变更 |
| 微博热搜定时任务 | cron 显示 ok,实际未执行 | 依赖 exec 调用脚本 |
| 同花顺定时任务 | cron 显示 ok,实际未执行 | 依赖 exec 调用脚本 |
| AI 资讯定时任务 | cron 显示 ok,实际未执行 | 依赖 exec 调用脚本 |
关键发现:cron 任务的 lastRunStatus: "ok" 是误导性的——任务确实"运行了",但因为 exec 被阻止,实际上什么都没做就返回了成功。
3.2 修复后的验证状态
| 功能 | 状态 | 验证时间 |
|---|---|---|
| exec 命令执行 | ✅ 正常 | 10:34 |
| 微博热搜抓取(mcporter) | ✅ 正常 | 10:38 |
| 微博发布(baoyu-post-to-weibo) | ✅ 成功 | 10:38 |
| ComfyUI 远程启动 | ✅ 正常(20秒就绪) | 10:40 |
| ComfyUI AI 生图 | ✅ 正常(1024x1024) | 10:41 |
| 定时任务(cron) | ✅ 正常(所有6个任务今日已成功执行) | 09:00-16:00 |
四、配置文件修改
4.1 问题根因
旧版配置的 tools.exec.allowlist 格式在新版中被拒绝:
// ❌ 旧版格式(2026.3.31 不接受)
"exec": {
"ask": "off",
"allowlist": [
"source ~/.agent-reach-venv/bin/activate && mcporter *",
"python3 *",
"curl *",
"google-chrome *",
"agent-browser *",
"agent-reach *"
]
}
4.2 修复后的配置
文件:/home/amain/.openclaw/openclaw.json
"tools": {
"profile": "coding",
"exec": {
"security": "full",
"ask": "on-miss"
},
"deny": []
}
说明:
security: "full"= 关闭 exec 安全限制,完全信任 workspace 环境ask: "on-miss"= 未知命令触发审批提示(当前够用)- 如果需要更细粒度控制,可以用
allowlist模式,但需要验证新版格式
4.3 修改步骤
- 打开
/home/amain/.openclaw/openclaw.json - 找到
tools.exec配置块 - 替换为上述新格式
- 执行
openclaw gateway restart重启网关 - 验证
exec恢复正常
五、升级后验证清单
每次升级 OpenClaw 后,建议按以下顺序验证:
# 1. 验证 exec 是否正常
echo "test"
# 2. 验证 mcporter 是否正常
source ~/.agent-reach-venv/bin/activate && mcporter call 'weibo.get_trendings(limit: 3)'
# 3. 验证 ComfyUI 是否正常
curl --noproxy '*' -s http://localhost:8188/system_stats
# 4. 验证微博发布脚本是否正常
bun /home/amain/.openclaw/workspace/skills/baoyu-post-to-weibo/scripts/weibo-post.ts "升级验证测试"
# 5. 查看 cron 任务实际运行日志
cron runs <jobId>
六、经验教训
6.1 升级原则
- 非必要不升级:没有 changelog 或 changelog 没有您需要的内容,暂缓升级
- 等社区验证:大版本变更或涉及核心机制,先看社区反馈再升级
- 升级前备份配置:
openclaw backup create - 保留回滚能力:
openclaw update --version 2026.3.28可快速回退
6.2 cron 任务的监控盲区
问题:cron 的 lastRunStatus: "ok" 不能代表任务真正执行成功,需要交叉验证。
建议:为每个定时任务配置独立的成功/失败检测机制,而不是完全依赖 cron 状态显示。
6.3 exec 安全策略是隐性 Breaking Change
2026.3.31 的 exec 变更没有在 changelog 中醒目提示,导致所有依赖 exec 的脚本在升级后静默失败。这是一个对老用户不友好的设计。
七、当前系统状态(2026-04-01 10:51)
| 项目 | 状态 |
|---|---|
| OpenClaw 版本 | 2026.3.31 |
| exec | ✅ 正常(security: full) |
| 定时任务 | ✅ 全部正常(6个任务) |
| 微博热搜抓取 | ✅ mcporter 正常 |
| 微博发布 | ✅ baoyu-post-to-weibo 正常 |
| ComfyUI 生图 | ✅ 正常工作 |
| 飞书频道 | ✅ websocket 正常 |
| AI 资讯脚本 | ✅ ai_news_tavily_v2.py 正常 |
八、后续建议
- 将升级检查清单加入心跳:每次升级后自动验证关键功能
- 为 cron 任务加飞书失败告警:任务执行失败时主动推送通知
- 关注 OpenClaw 版本动态:有重大变更提前在 MEMORY.md 中记录
报告生成时间:2026-04-01 11:00 GMT+8
评论 · 0
登录后可发表评论