实战:定时任务排错指南
Hermes 实战教程第17篇:定时任务排错。常见问题与修复。
實戰:定時任務排錯指南
兄弟們,定時任務(Cron)這東西,配好了是真省心,配不好那是真鬧心。今天咱們不整虛的,直接上乾貨——把官方文件裡那幾個最實用的自動化套路扒出來,順便聊聊排錯時最容易踩的坑。
核心認知:Cron 任務沒有「記憶」
這是排錯的第一原則。Cron 任務跑在一個全新的 agent 會話裡,它完全不記得你之前在聊天裡說過啥。所以你的 prompt 必須自包含——把 agent 需要知道的一切都寫進去。
比如你要監控網站變化,別指望它記得「上次那個 URL」,直接把地址、判斷邏輯全塞進 prompt 裡。排錯時先問自己:「如果我啥都不知道的新人,光看這個 prompt 能幹活嗎?」
套路一:網站變更監控
這招的精髓在於 script 參數——讓 Python 腳本乾髒活累活(抓取、比對),agent 只負責動腦子(這變化值不值得通知)。
/cron add "every 1h" "If the script output says CHANGE DETECTED, summarize what changed and why it matters. If NO_CHANGE, respond with just [SILENT]." --script ~/.hermes/scripts/watch-site.py --name "Pricing monitor" --deliver telegram
排錯重點:腳本的 stdout 就是 agent 的「眼睛」。腳本輸出啥,agent 就看到啥。如果任務沒反應,先手動跑一遍腳本,看看輸出是不是符合預期。
套路二:[SILENT] 靜默大法
監控類任務最怕半夜轟炸。解法很簡單:讓 agent 在「無事發生」時只回覆 [SILENT]。Cron 投遞系統看到這個標記就閉嘴,只有真有情況才通知你。
排錯時注意:如果一直收不到訊息,先確認是不是腳本永遠輸出 NO_CHANGE,或者 prompt 裡忘了寫 [SILENT] 指令。
套路三:週報自動生成
/cron add "0 9 * * 1" "Generate a weekly report covering:
1. Search the web for top 5 AI news
2. Search GitHub for trending ML repos
3. Check Hacker News for hot AI posts
Format with sections, include links, under 500 words." --name "Weekly AI digest" --deliver telegram
0 9 * * 1 就是「每週一早上9點」。排錯重點:cron 表達式容易寫錯,用 crontab.guru 這類工具驗證一下。另外,週報類任務依賴外部搜尋,如果某次沒收到,多半是網路或 API 限流。
套路四:GitHub 倉庫監控
/cron add "every 6h" "Check NousResearch/hermes-agent for new issues/PRs/releases. Use terminal:
gh issue list --repo NousResearch/hermes-agent --state open --json number,title,author,createdAt --limit 10
gh pr list --repo NousResearch/hermes-agent --state all --json number,title,author,createdAt,mergedAt --limit 10
Filter to last 6 hours. If nothing new, respond [SILENT]." --name "Repo watcher" --deliver discord
排錯重點:注意 prompt 裡把 gh 命令完整寫出來了——因為 agent 沒有上下文記憶。如果任務報錯,先確認 gh 是否已認證、權限是否夠。
零 Token 的替代方案
如果腳本已經能產出最終訊息(比如記憶體告警、磁碟告警),根本不需要 LLM:
- 純腳本 Cron:用
no_agent=True,調度器照跑,但不燒 token - 一次性投遞:用
hermes send把腳本輸出直接管道到 Telegram/Discord,連 Cron 都不用建
最後排錯清單
- 腳本先手動跑:確認 stdout 輸出符合預期
- prompt 是否自包含:所有命令、URL、判斷邏輯都寫全了嗎?
- cron 表達式對不對:用工具驗證,別憑感覺
[SILENT]用了嗎:沒有靜默標記,安靜時段會被轟炸- 投遞渠道配了嗎:
--deliver telegram這類參數別漏
記住這五條,定時任務基本不會翻車。遇到問題別慌,按清單一項項排查,多半是腳本輸出或 prompt 自包含性的問題。
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › guides/automate-with-cron