
用 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 品牌風格