OpenClaw 实战:我如何修复“新会话卡死”并让 Gmail 能力稳定上线
如果你也遇到 “OpenClaw 回了‘稍等’就没下文” 或 “新会话偶发卡死”,评论区留你的日志片段,我可以给你一版最小改动的修复。这一步跑通后,说明 Gmail 能力已可用,问题就从“接入层”转向“运行稳定性”。我做了一个守护脚本,定时看队列健康度,卡住就自动重启 gateway。### 3) 第一层修复:占位回复自动续跑(避免“稍等”后断轮)结论:前序任务挂住,后续请求全部排队,看起来像“新
今天做了一次完整的 OpenClaw 稳定性修复,目标很明确:
1. 打通 Gmail(gog)
2. 解决“新建对话长时间没响应”
3. 避免以后升级后补丁丢失
### 1) Gmail 接入:先验证能力,再谈优化
安装技能:
clawdhub install gog
手动授权(403 最终可用路径):
gog auth add zishuifeng892@gmail.com --services gmail,calendar,drive,contacts,sheets,docs --manual --force-consent
验证授权与读取:
gog auth list
gog gmail search "newer_than:7d" --max 3 --account zishuifeng892@gmail.com
这一步跑通后,说明 Gmail 能力已可用,问题就从“接入层”转向“运行稳定性”。
———
### 2) 真正根因:不是 /new 慢,是 lane 队列堵了
排查日志后发现:session-memory 写文件在毫秒级完成。
真正异常是同一 lane 只入队不出队:
- lane=session:agent:main:main queueSize 持续增长
- lane task done 长时间不出现
结论:前序任务挂住,后续请求全部排队,看起来像“新会话卡死”。
———
### 3) 第一层修复:占位回复自动续跑(避免“稍等”后断轮)
我在运行层加了“占位回复识别 + 自动继续同任务”。
核心代码(节选):
const PLACEHOLDER_AUTO_RETRY_LIMIT = 2;
function isPlaceholderOnlyReply(text) {
if (!text || text.length > 160) return false;
if (/status:\s*(done|failed|need_input)|error|http|```/im.test(text)) return false;
return [/let me\b/i, /one moment/i, /hold on/i, /i'?ll check/i].some((p) => p.test(text));
}
// ...
const runText = extractPayloadText(runResult);
if (placeholderRetryCount < PLACEHOLDER_AUTO_RETRY_LIMIT && isPlaceholderOnlyReply(runText)) {
placeholderRetryCount += 1;
promptBody = buildPlaceholderFollowupPrompt(originalPrompt);
continue;
}
效果:模型先回“我先处理”时不会直接结束轮次,会自动继续执行。
———
### 4) 第二层修复:watchdog 自动自愈(不再手动重启)
我做了一个守护脚本,定时看队列健康度,卡住就自动重启 gateway。
核心逻辑(节选):
if ($health.LastQueue -lt $QueueThreshold) { return @{ IsStuck=$false; Reason='queue_low' } }
if ($health.LastTaskDoneUtc -and $health.LastEnqueueUtc -le $health.LastTaskDoneUtc) { return
@{ IsStuck=$false } }
$enqueueAgeSec = (New-TimeSpan -Start $health.LastEnqueueUtc -End (Get-Date).ToUniversalTime()).TotalSeconds
if ($enqueueAgeSec -ge ($StuckMinutes * 60)) {
# stuck -> restart gateway
}
重启动作按端口找 PID,杀掉并拉起:
netstat -ano -p tcp
Stop-Process -Id $pid -Force
Start-Process cmd.exe "/c C:\Users\Administrator\.openclaw\gateway.cmd"
———
### 5) 第三层修复:升级后“一键回补”
因为运行层补丁可能被升级覆盖,我做了可重复执行脚本:
powershell -ExecutionPolicy Bypass -File C:\Users\Administrator\oc-reapply-openclaw-patch.ps1
脚本自动做三件事:
1. 回补占位续跑逻辑
2. 恢复技能最小集(仅保留 gog)
3. 重启 gateway
———
### 6) 最终结果
1. Gmail 接入可用(已实测检索邮件)
2. 新会话长时间无响应问题可自动自愈
3. 升级后补丁可一键重放,不再手改文件
这次最关键的经验:
先区分表象和瓶颈,再把临时操作沉淀成自动化脚本。
———
如果你也遇到 “OpenClaw 回了‘稍等’就没下文” 或 “新会话偶发卡死”,评论区留你的日志片段,我可以给你一版最小改动的修复
策略。
更多推荐

所有评论(0)