摘要
| 問題 | 簡短回答 |
|---|---|
誰執行 cron1? | Gateway Scheduler 觸發;目標 Agent Runtime 執行。 |
| 使用哪個 Session? | 獨立的背景 / 隔離 Session(不是使用者的聊天 Session)。 |
| 套用誰的權限? | 執行端 Agent 的 Service Identity,不是使用者身分。 |
執行模型
| 階段 | 元件 | 職責 |
|---|---|---|
| Trigger | Gateway cron module | 監控排程,到期時觸發 Job。 |
| Dispatch | Gateway router | 將執行送往設定的目標 Agent。 |
| Run | Agent runtime | 執行推理、Skill / Tool、檔案 / 網路操作。 |
Session 模型
Cron 任務使用獨立的背景 Session。
原因:
- 保持使用者聊天上下文的乾淨。
- 排程執行可以有獨立的保留 / 稽核政策。
- 簡化重試與失敗處理。
權限模型
Cron 執行應以目標 Agent Identity 來評估權限。
| 權限邊界 | 典型規則 |
|---|---|
| Tools / Skills | 只能使用該 Agent 被允許的 Tool。 |
| Workspace | 只能存取該 Agent 的 Sandbox / Workspace 範圍。 |
| Outbound channels | 只能使用明確授權給該 Agent 的 Channel。 |
你的情境
cron1 在 agent1 上執行,然後由 agent2 將結果送到 telegramGroup2。
這是可行的,但 agent1 不應該假冒 agent2。
Pattern A(建議):Gateway event / webhook 路由
agent1完成 Cron Job。agent1送出內部 event / webhook payload 給 Gateway。- Gateway 政策將請求路由到
agent2。 agent2用自己的 credentials 發送到telegramGroup2。
Pattern B:共享 Outbox Queue
agent1將訊息 payload 寫入共享 Outbox。agent2輪詢 / 監看 Outbox。agent2發送訊息並標記完成。
低延遲且希望清楚的 control-plane 路由時用 Pattern A;需要更強的持久性 / 重試機制時用 Pattern B。
最低安全規則
- 禁止假冒:
agent1不能使用agent2的 Token。 - Policy gate:跨 Agent 觸發必須通過 Gateway Policy。
- 最小權限:只授予需要的 Tool / Channel。
- 冪等性:使用 message / run ID 避免重複處理。
- 稽核軌跡:記錄
cron trigger -> dispatch -> send完整鏈路。
驗證清單
請在你自己的環境中檢查:
openclaw.json中的路由與 Channel 權限設定。~/.openclaw/cron/jobs.json中的 Cron 擁有者與目標 Agent。- Gateway / Runtime Log 中的隔離 Run / Session ID 與 Dispatch 軌跡。
注意:本筆記是基於架構推理與專案內部脈絡所撰寫,外部網頁驗證在此執行環境中被阻擋。