目录

OpenClaw 生产环境运维全景:从健康审查到 Firecrawl MCP 修复的完整实战

10 层运维体系实战:LKG 台账同步、MEMORY.md 瘦身、Firecrawl MCP 环境变量白名单排障

OpenClaw 生产环境运维全景:从健康审查到 Firecrawl MCP 修复的完整实战

前言

2026 年 7 月 28 日,我对 OpenClaw 生产环境做了一次全面健康审查。这次审查不是简单的"看一眼",而是从安装层到业务层,逐层排查了 10 个运维维度。结果发现了不少隐藏问题:LKG 台账版本滞后、MEMORY.md 被自动注入内容膨胀、6 月份的旧备份文件残留、以及 Firecrawl MCP 反复启动失败。

这篇文章记录了完整的排查过程、根因分析和修复步骤,适合正在运维 OpenClaw 或类似 AI Agent 平台的工程师阅读。

OpenClaw 10 层运维体系金字塔图

一、10 层运维体系逐层排查

OpenClaw 的运维不是"能跑就行",而是需要系统化分层检查。我设计了以下 10 层检查模型:

层级检查项本次状态
安装层OpenClaw 版本、Node.js 版本✅ 正常
服务层Gateway 进程状态、systemd 守护✅ 正常
配置层openclaw.json 有效性、配置 hash✅ 正常
插件层插件加载状态、版本兼容性⚠️ 发现问题
模型层模型路由、fallback 配置⚠️ 发现问题
会话层活跃会话、历史记录✅ 正常
通道层飞书/Discord 等通道状态✅ 正常
日志层错误日志、启动日志⚠️ 发现问题
变更层配置变更记录、LKG 台账❌ 严重滞后
业务层Agent 运行状态、任务完成率✅ 正常

逐层排查后,发现了 4 个需要修复的问题。


二、LKG 台账修复:版本滞后 1 个月

问题发现

LKG(Last Known Good)台账是 OpenClaw 运维的核心文档,记录了"最后一个已知良好状态"的完整快照。审查时发现:

  • 台账版本:LKG #003(2026.6.1)
  • 实际版本:2026.7.1
  • 滞后时间:近 1 个月

修复内容

# 修复前
version: "2026.6.1"
node: v24.15.0
config_hash: 800bf909...
fallback_count: 12
channels: 4/4 works
rollback_point: lkg.bak

# 修复后
version: "2026.7.1"
node: v24.18.0
config_hash: 02230892...
fallback_count: 6
channels: 5/5 works
rollback_point: pre-upgrade-2026.7.1

关键变更说明

  1. Node.js 升级:v24.15.0 → v24.18.0,修复了几个安全漏洞
  2. 模型路由优化:fallback 从 12 个精简到 6 个,减少不必要的重试
  3. 通道扩展:4 个 → 5 个通道,新增通道全部 works
  4. 回滚点更新:旧的 lkg.bak 目录已不存在,更新为 pre-upgrade-2026.7.1

为什么重要?

LKG 台账是灾难恢复的最后底线。如果生产环境崩溃,运维人员需要依赖台账快速恢复到最后一个已知良好状态。台账滞后意味着恢复时可能遗漏关键配置变更。


三、MEMORY.md 清理:删除自动注入的 32 行

问题发现

审查 MEMORY.md 时发现两个 Promoted From Short-Term Memory 区块,共约 32 行。这些内容是 OpenClaw 的 memory 系统自动注入的 promotion 记录,包含:

  • 平台可用性状态表
  • 工具配置完成状态
  • Solopreneur 研究记录

问题:这些内容不是用户主动写入的,且与 MEMORY.md 的核心定位(行为准则、铁律、核心认知)不符。

修复操作

# 清理前行数:221 行
wc -l ~/.openclaw/workspace-oc-engineer/MEMORY.md

# 清理两个 Promoted 区块后
wc -l ~/.openclaw/workspace-oc-engineer/MEMORY.md
# 结果:189 行

清理后保留了:行为准则、铁律、核心认知、agent 配置信息等核心内容。


四、旧备份清理:删除 6 月份的 clobbered 文件

问题发现

在配置目录发现了 2 个 6 月份的旧备份文件:

文件大小创建时间
openclaw.json.clobbered.2026-06-18T06-23-13-329Z63 KB6月18日
openclaw.json.clobbered.2026-06-30T01-37-39-048Z260 KB6月30日

这些是配置被覆盖时自动创建的 clobbered 备份。由于配置早已稳定,且 LKG 台账已更新,这些旧备份已无保留价值。

修复操作

# 删除前确认内容(确保不是唯一备份)
ls -la ~/.openclaw/openclaw.json.clobbered.*

# 安全删除(配置目录已有 LKG 快照和 git 历史)
rm ~/.openclaw/openclaw.json.clobbered.2026-06-18T06-23-13-329Z
rm ~/.openclaw/openclaw.json.clobbered.2026-06-30T01-37-39-048Z

释放约 323 KB 磁盘空间,更重要的是消除了"哪个备份才是最新"的认知负担。


五、Firecrawl MCP 修复:环境变量白名单问题

这是本次排查中最有价值的技术发现。

症状

Firecrawl MCP 服务反复启动失败,日志显示 API Key 无效或缺失。但环境变量 FIRECRAWL_API_KEY 确实存在于 shell 环境中。

根因分析

OpenClaw 的 systemd 服务有一个安全机制:环境变量白名单。只有列入 OPENCLAW_SERVICE_MANAGED_ENV_KEYS 的变量才会被传递给 Gateway 进程。

# 查看 systemd 服务的环境变量配置
systemctl --user show openclaw-gateway.service | grep -i env

根因FIRECRAWL_API_KEY 不在白名单中,导致 Gateway 启动时无法获取该变量,Firecrawl MCP 因缺少 API Key 而启动失败。

修复步骤

# 第1步:将 FIRECRAWL_API_KEY 添加到 gateway 环境配置
# 编辑 ~/.openclaw/gateway.systemd.env
echo 'FIRECRAWL_API_KEY=your_api_key_here' >> ~/.openclaw/gateway.systemd.env

# 第2步:将变量名加入白名单
# 编辑 systemd 服务文件,在 OPENCLAW_SERVICE_MANAGED_ENV_KEYS 中添加 FIRECRAWL_API_KEY
# 原值:OPENCLAW_SERVICE_MANAGED_ENV_KEYS=ANOTHER_KEY,OTHER_KEY
# 新值:OPENCLAW_SERVICE_MANAGED_ENV_KEYS=ANOTHER_KEY,OTHER_KEY,FIRECRAWL_API_KEY

# 第3步:重载 systemd 配置
systemctl --user daemon-reload

# 第4步:重启 Gateway 服务
systemctl --user restart openclaw-gateway.service

验证

# 查看启动日志,确认无 FIRECRAWL 相关错误
journalctl --user -u openclaw-gateway.service --since "19:48:54"

# 确认 Gateway 进程正常运行
systemctl --user status openclaw-gateway.service
# 输出:active (running), pid 180097

修复后再无 Firecrawl MCP 失败记录。

Firecrawl MCP 修复前后日志对比

教训

MCP 服务启动失败时,首先检查环境变量白名单。这是 OpenClaw 特有的安全机制,外部文档很少提及,但却是 MCP 服务排障的第一步骤。


六、系统健康最终确认

修复完成后,再次执行全量健康检查:

# Gateway 状态
systemctl --user status openclaw-gateway.service
# ✅ active (running), pid 180097

# 配置有效性
openclaw doctor
# ✅ Config: valid

# 飞书通道(5 个全部)
openclaw doctor --check channels
# ✅ 5/5 works

# 磁盘使用
df -h /
# ✅ 42% used

# 内存使用
free -h
# ✅ 68% used

所有指标恢复正常。


总结:运维健康审查清单

基于这次实战,我总结了 OpenClaw 生产环境健康审查的最小清单:

## 日常检查(每日)
- [ ] Gateway 进程状态:systemctl --user status openclaw-gateway.service
- [ ] 错误日志:journalctl --user -u openclaw-gateway.service --since today

## 周度检查
- [ ] LKG 台账同步:对比实际版本与台账记录
- [ ] 通道状态:openclaw doctor --check channels
- [ ] 磁盘/内存:df -h && free -h

## 月度检查
- [ ] MEMORY.md 审计:清理自动注入内容
- [ ] 旧备份清理:删除 30 天前的 clobbered 文件
- [ ] MCP 服务健康:检查所有 MCP 的启动日志

运维不是一次性工程,而是持续的健康管理。希望这篇文章对你有帮助。


关联阅读

  • [[2026-05-16-memory-search-qmd-fallback-故障排除详细记录]]
  • [[2026-07-02-1600-场景切换体系设计实现]]
  • [[2026-07-03-1628-openclaw-alsoallow-guide]]

参考来源


–全文完–

感谢阅读
若你有故事想讲、有困惑想聊、或是想找个人说说心里话,甚至只是吐槽发泄一下情绪,都欢迎来找我聊聊:   《内容已折叠,点击展开》

希望我写的每一个字,成为我自己和某个人活下去、拼下去的力量。                     《内容已折叠,点击展开》

“技术终归是工具,而我们一次次认真把问题理顺,守住的其实不只是页面样式和代码输出,还有那一点不愿被混乱打败的心气,是每一个深夜仍愿点灯前行的人。”

转载请注明来自https://oklife.me。

文尾配图水墨画图片