
用 OpenClaw 跑自动化任务,最麻烦的不是配置,而是"跑着跑着突然不工作了"。这篇文章整理我遇到过的故障和解决方法。
Gateway 相关
Gateway 服务未启动
症状:Telegram 发消息没反应,AI 助手不回复。
检查:
openclaw gateway status
常见原因和解法:
| 原因 | 解法 |
|---|---|
| 进程挂了 | openclaw gateway restart |
| Bot Token 过期 | 去 BotFather 重新获取 token,更新配置 |
| 端口冲突 | lsof -i :端口号 找占用进程,kill 掉 |
| Windows 开机未自启 | 任务计划程序加入自启 |
Windows 特别注意:Windows 上 Gateway 不会随系统自动启动,每次重启后需要手动运行:
openclaw gateway start
建议做成 Windows 任务计划程序的开机自启任务。
Gateway 启动后几小时自动断开
症状:刚开始好的,过一段时间 Telegram 又不响应了。
原因:Telegram 的 long-polling 连接超时,Gateway 没有自动重连。
解法:用 cron 或 systemd 做保活:
# Linux - 用 systemd service
# /etc/systemd/system/openclaw-gateway.service
[Unit]
Description=OpenClaw Gateway
After=network.target
[Service]
User=as
ExecStart=/usr/local/bin/openclaw gateway start
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl enable openclaw-gateway
sudo systemctl start openclaw-gateway
消息推送相关
openclaw message send 没反应
检查顺序:
确认 openclaw 可执行:
which openclaw # 确认路径 openclaw --version手动测试推送:
openclaw message send --channel telegram --target 你的用户ID --message "test"查看 openclaw 日志:
tail -f ~/.openclaw/logs/openclaw.logcron 里的 PATH 问题:cron 的环境变量 PATH 比登录 shell 少很多,openclaw 可能找不到。解法:
# 在 cron 文件顶部加完整 PATH PATH=/usr/local/bin:/usr/bin:/bin:/home/as/.npm-global/bin或者用绝对路径:
/home/as/.npm-global/bin/openclaw message send ...
发消息成功但图片(PDF)没有收到
原因:--media 参数路径错误,或文件不存在。
检查:
ls -la /path/to/your/report.pdf
# 确认文件存在且可读
注意:路径必须是绝对路径,不能用 ~ 或相对路径(在 cron 环境里 ~ 不展开)。
Telegram Bot 隐私模式问题
症状:Bot 在群组里收不到普通消息(只能收到 /命令)。
原因:Telegram Bot 默认开启隐私模式,只接收 / 开头的命令。
解法:去 BotFather → 你的 Bot → Bot Settings → Group Privacy → 关闭。
关闭后,Bot 才能接收群组内的普通消息,OpenClaw 才能响应群组 @。
Skill 相关
Skill 安装后调用失败
症状:安装了 github Skill,让 AI 查 Issue,AI 说"我没有访问 GitHub 的能力"。
原因:Skill 安装后需要配置 API Token。
openclaw skill config github
# 按提示输入 GitHub Personal Access Token
每个 Skill 都有自己的配置要求,安装后执行 openclaw skill config <name> 完成配置。
obsidian Skill 找不到文件
问题:让 AI 读我的 Obsidian 笔记,它说找不到。
原因:Obsidian Skill 需要配置 vault 路径。
openclaw skill config obsidian
# vault_path: ~/Library/Mobile Documents/iCloud~md~obsidian/Documents/你的库名
macOS 上 iCloud 同步的 Obsidian 库路径比较长,需要确认实际路径。
量化脚本相关
matplotlib 在服务器上报错
症状:
_tkinter.TclError: no display name and no $DISPLAY environment variable
原因:服务器没有图形界面,matplotlib 默认用 Tk 后端。
解法:在脚本开头加:
import os
os.environ["MPLBACKEND"] = "Agg"
import matplotlib
matplotlib.use("Agg")
或者在 cron 环境变量里加 MPLBACKEND=Agg。
PDF 中文显示方块(乱码)
症状:生成的 PDF 里中文都变成方块。
原因:服务器没有中文字体。
解法:
sudo apt-get install -y fonts-noto-cjk
# 安装后重启相关进程
reportlab 生成 PDF 时需要指定字体文件路径,确认字体路径:
fc-list | grep -i noto
yfinance 拉数据超时
症状:策略脚本卡住,log 里有 timeout 或 Connection reset。
原因:yfinance 连接雅虎财经服务器不稳定(VPS 所在地区网络问题)。
解法:
加 retry 逻辑:
for attempt in range(3): df = yf.download(symbol, ...) if not df.empty: break time.sleep(5)换用代理节点(让 VPS 流量走代理服务器,这个配置看我的代理架构文章)
如果某个品种频繁失败,临时从 ASSETS 列表里移除,避免阻塞其他品种。
日志分析
养成看日志的习惯,大部分问题日志里都有:
# 实时看策略日志
tail -f ~/.openclaw/workspace/.openclaw/signal_monitor.log
# 看最近 50 行错误
grep -i "error\|exception\|failed" ~/.openclaw/workspace/.openclaw/signal_monitor.log | tail -50
# 看 openclaw 自身日志
tail -f ~/.openclaw/logs/openclaw.log
遇到没列出的问题,欢迎在 Telegram 找我,一起排查。
📷 封面图 · Flux Schnell AI 生成 · panshi.io 品牌风格