生产环境OpenClaw稳定性提升需五步:一、配置健康检查端点并设外部轮询脚本;二、按错误类型分级配置JSON重试策略;三、集成Docker原生健康检查;四、用Supervisor增强进程守护;五、接入Prometheus+Alertmanager实现主动告警。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在生产环境中运行OpenClaw自动化脚本时频繁遭遇任务中断、进程僵死或HTTP健康端点返回非200状态,则很可能是心跳检测机制缺失或错误重试策略配置不当所致。以下是提升其生产级稳定性的具体操作步骤:
一、配置内置健康检查端点与外部轮询
OpenClaw Gateway默认暴露/health端点,但需确保其响应内容包含"status":"healthy"且HTTP状态码为200,否则外部监控无法准确判别服务活性。该端点是所有自动恢复逻辑的触发基础。
1、确认Gateway已启用健康检查:编辑~/.openclaw/openclaw.json,在server节中添加或验证以下字段:
"health": {"enabled": true, "path": "/health", "responseTimeout": 5000}
2、启动Gateway后,手动访问http://localhost:18789/health,验证返回是否为JSON格式且含"status":"healthy"字段。
3、在服务器上创建/opt/openclaw/healthcheck.sh脚本,内容如下:
#!/bin/bash
if ! curl -sf http://127.0.0.1:18789/health | grep -q '"status":"healthy"'; then
systemctl restart openclaw-gateway
echo "$(date) - Health check failed, restarted" >> /var/log/openclaw_health.log
fi
4、将该脚本加入crontab,每2分钟执行一次:
*/2 * * * * /bin/bash /opt/openclaw/healthcheck.sh
二、分级重试策略配置(JSON级)
OpenClaw支持按错误类型定义差异化重试行为,避免对不可恢复错误(如401认证失败)进行无效重试,同时保障可恢复错误(如503服务不可用)获得足够补偿机会。
1、打开~/.openclaw/openclaw.json,定位至"retry_policy"节点,若不存在则新建。
2、写入以下结构化配置:
{ "model_errors": { "max_attempts": 3, "backoff_factor": 2, "retryable_status_codes": [502, 503, 504] }, "tool_errors": { "max_attempts": 5, "backoff_factor": 1.5, "retryable_exceptions": ["ConnectionError", "TimeoutError"] } }
3、保存后执行openclaw config reload使配置热生效。
4、验证重试行为:在脚本中主动触发一个模拟503响应,观察日志中是否出现Retrying request (attempt 1/3)字样。
三、Docker健康检查集成
当OpenClaw以容器方式部署时,原生Docker健康检查可替代外部脚本,实现更轻量、更及时的进程状态感知,并与docker-compose up --scale等编排能力联动。
1、修改docker-compose.yml中OpenClaw服务定义,在healthcheck字段下配置:
HEALTHCHECK --interval=20s --timeout=5s --start-period=60s --retries=3
CMD curl -f http://localhost:18789/health || exit 1
2、确保容器内已安装curl:在Dockerfile中添加RUN apt-get update && apt-get install -y curl(Debian系)或RUN yum install -y curl(CentOS系)。
火一五·克劳德·龙虾增强插件 v6.7.13 — 大文件桥接兜底修复 + 用户上传后流程引导:实测用户说“已上传”后,AI 未调用 enhance_upload_check,导致再次发送上传链接形成死循环。根因:before_agent_reply 每轮都触发,注入...
3、启动服务后,执行docker-compose ps,确认STATUS列显示healthy而非starting或unhealthy。
4、手动停用Gateway进程,等待约60秒,再次执行docker-compose ps,观察状态是否变为unhealthy并触发自动重启(需配合restart: on-failure策略)。
四、Supervisor进程守护增强
Supervisor提供比systemd更细粒度的进程控制能力,尤其适用于需要捕获stdout/stderr日志并基于输出内容触发动作的场景,例如识别“OOM killed”关键词后强制清理内存缓存。
1、安装Supervisor:pip install supervisor或apt-get install supervisor。
2、创建/etc/supervisor/conf.d/openclaw.conf,内容如下:
[program:openclaw-gateway]
command=openclaw gateway start --port 18789
autostart=true
autorestart=true
startretries=3
stopwaitsecs=30
stdout_logfile=/var/log/openclaw/gateway.log
stderr_logfile=/var/log/openclaw/gateway_error.log
environment=HOME="/root"
3、重载Supervisor配置:supervisorctl reread && supervisorctl update。
4、启动服务:supervisorctl start openclaw-gateway,并立即执行supervisorctl status确认状态为RUNNING。
五、Prometheus+Alertmanager主动告警
仅依赖自动重启不足以应对生产环境的可观测性要求。通过暴露指标并设置阈值告警,可在故障发生前介入,例如内存使用率持续高于85%达5分钟即触发人工核查。
1、启用OpenClaw指标暴露功能:在openclaw.json中添加"metrics": {"enabled": true, "port": 9187}。
2、部署Prometheus,在scrape_configs中添加作业:
- job_name: 'openclaw'
static_configs:
- targets: ['localhost:9187']
3、配置Alertmanager规则文件openclaw_alerts.yml,定义内存超限告警:
groups:
- name: openclaw-alerts
rules:
- alert: OpenClawMemoryHigh
expr: process_resident_memory_bytes{job="openclaw"} / machine_memory_bytes{job="openclaw"} > 0.85
for: 5m
labels:
severity: warning
4、重启Prometheus与Alertmanager,访问http://localhost:9090/targets确认OpenClaw目标状态为UP。









