Przejdź do głównej zawartości

Zaplanowana automatyzacja zadań z Codex

Jest poniedziałek rano. W weekend opublikowano trzy podatności zależności, ktoś scalił commit ze statementem console.log, a pokrycie testami modułu płatności spadło z 85% do 72%. Dowiadujesz się o tym podczas standupu. Ale gdybyś skonfigurował automatyzacje Codex w piątek, przyszedłbyś do spriorytetyzowanej skrzynki, w której każdy problem został już zidentyfikowany, przeanalizowany i — w niektórych przypadkach — naprawiony.

  • Gotowe do użycia prompty automatyzacji dla najczęstszych powtarzalnych zadań programistycznych
  • Przepływ pracy do bezpiecznego testowania automatyzacji przed zaplanowaniem ich
  • Techniki łączenia automatyzacji z umiejętnościami dla złożonych wieloetapowych przepływów pracy
  • Konfigurację bezpieczeństwa i sandboxa dla nienadzorowanych zadań w tle

Lokalne zaplanowane zadania działają w ChatGPT desktop według zdefiniowanego harmonogramu. Każde uruchomienie:

  1. Działa w lokalnym projekcie albo dedykowanym worktree, zależnie od wybranej opcji
  2. Wykonuje prompt z domyślnymi ustawieniami sandboxa
  3. Raportuje ustalenia do sekcji Scheduled na pasku bocznym ChatGPT desktop
  4. Automatycznie archiwizuje uruchomienie, jeśli nie ma nic do zgłoszenia

Do lokalnych przebiegów potrzebujesz uruchomionego ChatGPT desktop i projektu dostępnego na dysku. ChatGPT web także zarządza zaplanowanymi zadaniami, ale przebiegi web nie mogą uzyskać dostępu do folderu komputera.

Nigdy nie planuj automatyzacji na ślepo. Najpierw przetestuj prompt ręcznie w zwykłym wątku.

  1. Otwórz ChatGPT desktop w trybie Codex i utwórz nowe zadanie w tym samym projekcie.
  2. Wybierz Worktree, jeśli zaplanowane zadanie ma pozostać odizolowane od głównego checkoutu.
  3. Wklej prompt automatyzacji i uruchom go.
  4. Przejrzyj wyniki: Czy znalazł właściwe rzeczy? Czy wprowadził odpowiednie zmiany? Czy pozostał w zakresie?

Iteruj prompt, aż będziesz zadowolony, a następnie utwórz automatyzację z przetestowanym promptem.

Oto automatyzacje, które większość zespołów powinna uruchomić od pierwszego dnia:

To jest podobne do wzorca umiejętności $recent-code-bugfix z oficjalnej dokumentacji Codex. Możesz również utworzyć umiejętność i wywołać ją z automatyzacji:

Check my commits from the last 24h and submit a $recent-code-bugfix.
Weekly architecture check:
1. Pull the latest from origin/main
2. Compare the current codebase structure against docs/ARCHITECTURE.md
3. Check for:
- New directories or modules not documented
- Documented modules that no longer exist
- New cross-module dependencies that violate documented boundaries
- New external service integrations not mentioned in the architecture doc
4. If drift is detected, update docs/ARCHITECTURE.md to match reality
Report what changed and whether it represents intentional evolution or accidental drift.

Umiejętności pozwalają enkapsulować złożone przepływy pracy, które automatyzacje mogą wywoływać. Utwórz umiejętność, zapisz ją w katalogu umiejętności osobistych lub repozytoryjnych i odwołuj się do niej za pomocą $skill-name w prompcie automatyzacji.

Przykład: Utwórz umiejętność $test-coverage-report, która wie, jak uruchomić pokrycie, porównać z bazowymi wartościami i sformatować wynik. Wtedy automatyzacja staje się:

Run $test-coverage-report on the latest main branch. If coverage dropped on any module, investigate and propose tests to restore it.

Umiejętności czynią automatyzacje bardziej utrzymywalnymi: zaktualizuj umiejętność raz, a każda automatyzacja, która jej używa, otrzymuje ulepszenie.

Automatyzacje uruchamiają się z domyślnymi ustawieniami sandboxa. Ponieważ działają nienadzorowane, konfiguracja bezpieczeństwa ma znaczenie.

Zalecane ustawienia sandboxa dla automatyzacji:

  • workspace-write (domyślna rekomendacja) — pozwala Codex czytać i modyfikować pliki w projekcie. Wywołania narzędzi wymagające sieci lub dostępu poza workspace kończą się niepowodzeniem, chyba że jawnie dozwolone.
  • Użyj pliku rules, aby selektywnie zezwolić na uruchamianie konkretnych poleceń poza sandboxem (na przykład zezwól na npm audit, który wymaga dostępu do sieci). Reguły znajdują się w pliku .rules w katalogu ~/.codex/rules/ i są zapisywane w języku Starlark, z użyciem prefix_rule() do dopuszczenia prefiksu polecenia.
~/.codex/rules/default.rules
# Allow `npm audit` (needs network) to run outside the sandbox in automations.
prefix_rule(
pattern = ["npm", "audit"],
decision = "allow",
justification = "npm audit needs network access for vulnerability checks",
)

Przetestuj regułę, zanim na niej polegniesz, a następnie zrestartuj Codex, aby ponownie wczytał plik:

Okno terminala
codex execpolicy check --pretty \
--rules ~/.codex/rules/default.rules \
-- npm audit

Polityka zatwierdzania:

Zaplanowane zadania działają bezobsługowo z domyślnymi ustawieniami sandboxa wybranymi dla lokalnego klienta. Użyj najwęższego dostępu, który działa, i sprawdź zarządzane wymagania; operacja poza dostępną granicą kończy się błędem zamiast czekać bez końca na człowieka.

Panel Automatyzacji na pasku bocznym aplikacji desktopowej ChatGPT w trybie Codex to twoja skrzynka. Ma sekcję Triage, gdzie pojawiają się uruchomienia automatyzacji z ustaleniami. Możesz:

  • Filtrować, aby wyświetlić Wszystkie uruchomienia lub tylko Nieprzeczytane
  • Kliknąć w uruchomienie, aby zobaczyć pełną konwersację i różnice
  • Archiwizować uruchomienia, które obsłużyłeś
  • Przypiąć uruchomienia, które chcesz zachować (to również zapobiega czyszczeniu worktree)

Zbuduj rutynę: każdego ranka sprawdź skrzynkę automatyzacji przed standupem. Obsłuż ustalenia, zsynchronizuj poprawki do lokalu i archiwizuj ukończone elementy.

Automatyzacja działa, gdy nie patrzysz, i wprowadza niezamierzone zmiany. Jeśli sandbox jest ustawiony na danger-full-access, a prompt jest niejasny, Codex może modyfikować pliki w nieoczekiwany sposób. Użyj trybu workspace-write i przejrzyj kilka pierwszych uruchomień każdej nowej automatyzacji, zanim jej zaufasz. Izolacja worktree chroni twój główny checkout, ale zmiany w worktree mogą nadal być synchronizowane lub przekształcane w PR.

Nagromadzenie worktree z częstych automatyzacji. Zadania skonfigurowane z izolacją worktree tworzą worktree w tle. ChatGPT desktop domyślnie zachowuje 15 ostatnich worktree zarządzanych przez Codex; zmień limit w ustawieniach Worktree albo usuń ukończone przebiegi, których już nie potrzebujesz.

Automatyzacja zgłasza te same ustalenia każdego dnia. Jeśli błąd lintingu jest w bazie kodu od tygodni i nikt go nie naprawia, codzienna automatyzacja ciągle go zgłasza. Dodaj mechanizm ignorowania: “Skip issues listed in .automation-ignore.json. Only report new findings since the last run.”

ChatGPT desktop musi działać dla lokalnych zadań. Po zamknięciu aplikacji lub uśpieniu komputera przebieg korzystający z lokalnego folderu nie wystartuje. Włącz “Prevent sleep while running”, użyj zadania web, gdy lokalne pliki nie są potrzebne, albo wybierz Codex SDK/GitHub Action dla workflow po stronie serwera.