設定 App 自動化任務
基於官方 Codex App Automations 教程,講清 automations 適合什麼重複任務、worktree 怎麼選、許可權怎麼控。
Codex App Automations 用來在後臺定期執行重複任務。有發現時進入 inbox;沒有需要報告的內容時自動歸檔。複雜任務可以和 skills 結合。
Automation 是無人值守執行,不是“省一個點選”。建立前必須寫清許可權、範圍、停止條件和結果審查方式。
它解決什麼
flowchart LR
Schedule["schedule"] --> Run["background run"]
Run --> Finding["findings"]
Finding --> Inbox["inbox"]
Run --> Silent["nothing to report"]
Silent --> Archive["auto archive"]
適合 automation 的任務,通常有固定頻率、固定範圍、固定判斷標準:
- 定期檢查 PR 狀態。
- 掃描最近提交風險。
- 彙總某個目錄變化。
- 跟進長期命令是否完成。
- 提醒某個 review loop 繼續推進。
不適合 automation 的任務:
- 目標模糊。
- 需要頻繁人工判斷。
- 會改大範圍檔案。
- 會觸碰憑據或生產配置。
- 沒有停止條件。
Thread 還是 standalone
Thread automation 掛在當前 thread 上,適合需要保留同一段上下文的任務。比如持續跟進一個部署、一個 PR review、一個正在排查的問題。
Standalone automation 每次按 schedule 啟動 fresh run,適合彼此獨立的週期任務。比如每天看某個目錄最近變化、每週生成文件過期報告。
判斷原則很簡單:
- 每次 run 都應該從乾淨上下文開始:standalone。
- 必須記住這段對話裡的歷史:thread automation。
- 任務範圍還沒穩定:先別自動化。
Local project 還是 worktree
Git 儲存庫裡,automation 可以在本地專案中執行,也可以在後臺 worktree 中執行。
Local project 會直接碰當前 checkout,可能改到你正在編輯的檔案。只適合只讀任務,或你明確希望它處理當前工作區。
Worktree 會把 automation 的改動和你正在做的工作隔離開。涉及寫檔案、生成 patch、長期後臺執行時,新手優先選 worktree。
未使用版本控制的專案沒有這種隔離,automation 會直接在專案目錄中執行。風險更高,只建議做只讀任務。
許可權怎麼給
Automations 使用你的預設 sandbox settings。
- read-only:適合檢查、總結、提醒。
- workspace-write:適合在明確範圍內寫入檔案。
- full access:後臺任務風險最高,除非在可重建環境裡,不要預設啟用。
需要特殊命令時,優先用 rules 選擇性 allowlist,而不是把整個 automation 放到 full access。企業環境裡,管理員還可以用 managed configuration 限制 approval policy 和 sandbox modes。
Prompt 怎麼寫
Automation prompt 要能在未來反覆執行,不能依賴“剛才我們說的那個”。
必須寫清:
- 任務範圍。
- 檢查頻率。
- 什麼時候報告。
- 什麼時候歸檔。
- 什麼時候停止。
- 什麼時候向使用者要輸入。
如果它會改檔案,還要寫清:
- 允許目錄。
- 禁止目錄。
- 驗證命令。
- 輸出格式。
- 失敗時如何處理。
如果任務複雜,先做 skill。用 skill 定義穩定流程,再在 automation 中顯式呼叫它,比把長 prompt 直接塞進 automation 更可維護。
常見坑
- 沒手動測試 prompt 就設 schedule。
- 讓 automation 在本地 checkout 寫檔案,干擾自己正在開發的改動。
- 把一次性模糊任務做成長期自動化。
- full access 後臺執行,事後才發現改了不該改的檔案。
- 沒有停止條件,automation 一直報告低價值結果。
- 使用 worktree 後不清理歷史 runs。
- 結果進 inbox 後不審查,以為自動化等於完成。
驗收清單
- 普通 thread 手動跑過一次 prompt。
- scope、工具、模型和輸出符合預期。
- 前幾次 run 都逐條審查 inbox。
- 寫入發生在 worktree 或允許範圍內。
- 驗證命令真實執行。
- 沒有發現內容時能安靜歸檔。
- 任務完成後能停止 automation 並清理不再需要的 worktree。