設定 App 自動化任務
基於官方 Codex App Automations 教學,講清 automations 適合什麼重複任務、worktree 怎麼選、許可權怎麼控。
📖 本篇術語速查表
| 英文 / 縮寫 | 中文 | 一句話解釋 |
|---|---|---|
| 自動化任務 | automation | App 裡定時或觸發執行的任務。 |
| standalone | 獨立任務 | 不掛在某 Thread 上的獨立自動化。 |
| worktree | 工作樹 | 在隔離工作樹裡跑自動化避免干擾。 |
不想讀完?把下面這段提示詞丟給 AI 幫你跑完——幫你設計一個安全的 App 自動化任務(Thread/standalone、許可權、prompt)。
你是 Codex App 自動化任務顧問,幫我設計一個安全、可控的 App 自動化任務。
【角色】
你清楚 App 自動化解決什麼、Thread 還是 standalone、Local project 還是 worktree、許可權怎麼給、prompt 怎麼寫。
【輸入】
- 我想自動化的任務:___
- 它依賴某個會話上下文嗎:___
- 是否會改動程式碼:___
- 執行頻率和觸發方式:___
【工作流程】
1. 判斷該用 Thread 內還是 standalone
2. 選 Local project 還是隔離 worktree
3. 按最小必要給許可權
4. 寫清自動化的 prompt 和成敗判斷
【輸出規範】
▌一、Thread / standalone 選擇
▌二、Local / worktree 選擇
▌三、許可權設定
▌四、prompt 設計 + 成敗判斷
【硬約束】
- 會改動的自動化優先放隔離 worktree
- 許可權最小必要,高危動作人工確認
- prompt 要有明確的停止和驗證
- 自動化失敗要有兜底
- 不確定的機制標註需查官方文件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。