Automation and tasks
常設指令
常設指令會授予你的代理對已定義程式的永久操作權限。你不需要每次都提供個別任務指示,而是定義具有清楚範圍、觸發條件與升級規則的程式,代理會在這些邊界內自主執行。
這就像是每週五都告訴助理「寄出週報」,和授予常設權限之間的差別:「週報由你負責。每週五彙整、寄出,只有在看起來有問題時才升級處理。」
為什麼需要常設指令
沒有常設指令時:
- 你必須針對每個任務提示代理
- 代理會在請求之間閒置
- 例行工作會被遺忘或延遲
- 你會成為瓶頸
有常設指令時:
- 代理會在已定義的邊界內自主執行
- 例行工作會按排程執行,不需要提示
- 你只需要在例外與核准事項上介入
- 代理會有效運用閒置時間
運作方式
常設指令定義在你的代理工作區檔案中。建議做法是直接將它們包含在 AGENTS.md 中(每個工作階段都會自動注入),讓代理永遠能在脈絡中取得這些指令。對於較大型的設定,你也可以把它們放在像 standing-orders.md 這樣的專用檔案中,並從 AGENTS.md 參照它。
每個程式都會指定:
- 範圍 - 代理被授權執行的事項
- 觸發條件 - 何時執行(排程、事件或條件)
- 核准關卡 - 採取行動前需要人工簽核的事項
- 升級規則 - 何時停止並請求協助
代理會透過工作區啟動檔案在每個工作階段載入這些指令(完整的自動注入檔案清單請參閱代理工作區),並結合 Cron 工作來執行以時間為基礎的強制機制。
常設指令的結構
## Program: Weekly Status Report
**Authority:** Compile data, generate report, deliver to stakeholders
**Trigger:** Every Friday at 4 PM (enforced via cron job)
**Approval gate:** None for standard reports. Flag anomalies for human review.
**Escalation:** If data source is unavailable or metrics look unusual (>2σ from norm)
### Execution steps
1. Pull metrics from configured sources
2. Compare to prior week and targets
3. Generate report in Reports/weekly/YYYY-MM-DD.md
4. Deliver summary via configured channel
5. Log completion to Agent/Logs/
### What NOT to do
- Do not send reports to external parties
- Do not modify source data
- Do not skip delivery if metrics look bad - report accurately
常設指令加上 Cron 工作
常設指令定義代理被授權執行的事項。Cron 工作定義它發生的時間。兩者會一起運作:
Standing Order: "You own the daily inbox triage"
↓
Cron Job (8 AM daily): "Execute inbox triage per standing orders"
↓
Agent: Reads standing orders → executes steps → reports results
Cron 工作提示應參照常設指令,而不是重複它:
openclaw cron add \
--name daily-inbox-triage \
--cron "0 8 * * 1-5" \
--tz America/New_York \
--timeout-seconds 300 \
--announce \
--channel bluebubbles \
--to "+1XXXXXXXXXX" \
--message "Execute daily inbox triage per standing orders. Check mail for new alerts. Parse, categorize, and persist each item. Report summary to owner. Escalate unknowns."
範例
範例 1:內容與社群媒體(每週週期)
## Program: Content & Social Media
**Authority:** Draft content, schedule posts, compile engagement reports
**Approval gate:** All posts require owner review for first 30 days, then standing approval
**Trigger:** Weekly cycle (Monday review → mid-week drafts → Friday brief)
### Weekly cycle
- **Monday:** Review platform metrics and audience engagement
- **Tuesday-Thursday:** Draft social posts, create blog content
- **Friday:** Compile weekly marketing brief → deliver to owner
### Content rules
- Voice must match the brand (see SOUL.md or brand voice guide)
- Never identify as AI in public-facing content
- Include metrics when available
- Focus on value to audience, not self-promotion
範例 2:財務營運(事件觸發)
## Program: Financial Processing
**Authority:** Process transaction data, generate reports, send summaries
**Approval gate:** None for analysis. Recommendations require owner approval.
**Trigger:** New data file detected OR scheduled monthly cycle
### When new data arrives
1. Detect new file in designated input directory
2. Parse and categorize all transactions
3. Compare against budget targets
4. Flag: unusual items, threshold breaches, new recurring charges
5. Generate report in designated output directory
6. Deliver summary to owner via configured channel
### Escalation rules
- Single item > $500: immediate alert
- Category > budget by 20%: flag in report
- Unrecognizable transaction: ask owner for categorization
- Failed processing after 2 retries: report failure, do not guess
範例 3:監控與警示(持續)
## Program: System Monitoring
**Authority:** Check system health, restart services, send alerts
**Approval gate:** Restart services automatically. Escalate if restart fails twice.
**Trigger:** Every heartbeat cycle
### Checks
- Service health endpoints responding
- Disk space above threshold
- Pending tasks not stale (>24 hours)
- Delivery channels operational
### Response matrix
| Condition | Action | Escalate? |
| ---------------- | ------------------------ | ------------------------ |
| Service down | Restart automatically | Only if restart fails 2x |
| Disk space < 10% | Alert owner | Yes |
| Stale task > 24h | Remind owner | No |
| Channel offline | Log and retry next cycle | If offline > 2 hours |
執行、驗證、回報模式
常設指令在搭配嚴格的執行紀律時效果最好。常設指令中的每個任務都應遵循這個循環:
- 執行 - 實際完成工作(不要只是確認收到指示)
- 驗證 - 確認結果正確(檔案存在、訊息已送達、資料已解析)
- 回報 - 告訴擁有者完成了什麼,以及驗證了什麼
### Execution rules
- Every task follows Execute-Verify-Report. No exceptions.
- "I'll do that" is not execution. Do it, then report.
- "Done" without verification is not acceptable. Prove it.
- If execution fails: retry once with adjusted approach.
- If still fails: report failure with diagnosis. Never silently fail.
- Never retry indefinitely - 3 attempts max, then escalate.
這個模式可避免最常見的代理失敗情境:確認任務但沒有完成。
多程式架構
對於管理多個關注面向的代理,請將常設指令組織成邊界清楚的獨立程式:
## Program 1: [Domain A] (Weekly)
...
## Program 2: [Domain B] (Monthly + On-Demand)
...
## Program 3: [Domain C] (As-Needed)
...
## Escalation Rules (All Programs)
- [Common escalation criteria]
- [Approval gates that apply across programs]
每個程式都應具備:
- 自己的觸發節奏(每週、每月、事件驅動、持續)
- 自己的核准關卡(有些程式比其他程式需要更多監督)
- 清楚的邊界(代理應知道一個程式在哪裡結束,另一個程式在哪裡開始)
最佳實務
建議
- 從狹窄權限開始,隨信任建立再擴大
- 為高風險動作定義明確的核准關卡
- 包含「不該做什麼」區段,邊界和權限同樣重要
- 搭配 Cron 工作,以可靠地執行以時間為基礎的作業
- 每週檢閱代理日誌,確認常設指令有被遵循
- 隨需求演進更新常設指令,它們是持續演進的文件
避免
- 第一天就授予廣泛權限(「做你認為最好的事」)
- 略過升級規則,每個程式都需要「何時停止並詢問」條款
- 假設代理會記得口頭指示,請把所有內容放進檔案
- 在單一程式中混合多個關注面向,請為不同領域分開建立程式
- 忘記使用 Cron 工作強制執行,沒有觸發條件的常設指令會變成建議