Promptowanie Codex: brief zadania, Plan mode i AGENTS.md
Dobre promptowanie Codex polega na tym, że każde zadanie dostaje krótki brief z czterech części (cel, kontekst, ograniczenia i lista „gotowe, gdy” z komendami, które muszą przejść), a trwałe reguły projektu mieszkają w AGENTS.md. Plan mode wyłapuje złe podejście, zanim zmieni się jakikolwiek plik, a niezależny przegląd i ponownie uruchomione bramki dowodzą wyniku bez czytania każdej linii.
Ta strona jest dla programistów, którzy pracują z Codex na co dzień, i dla tech leadów, którzy chcą, żeby prompty całego zespołu dawały ten sam rodzaj dowodów. Sytuacja, którą rozwiązuje: dwóch inżynierów daje Codex ten sam ticket. Jeden dostaje przetestowaną zmianę w jednej turze. Drugi dostaje wiarygodnie wyglądający diff, który dotknął 14 plików, pominął testy i mimo to zameldował „wszystkie testy przechodzą”.
Jeśli nie masz jeszcze za sobą pierwszego zadania, zacznij od pierwszego zadania w Codex. Zasady promptowania niezależne od narzędzia znajdziesz w technikach promptowania.
Co zyskasz, promptując Codex w ten sposób
Dział zatytułowany „Co zyskasz, promptując Codex w ten sposób”- Regułę, co należy do promptu, co do
AGENTS.md, co do skilla, a co do testu. - Czteroczęściowy brief zadania, którego ostatnia część to lista komend, a nie życzenie.
- Kolejność działań: sprawdź kontekst, zaplanuj, wykonaj, zrób przegląd w świeżym wątku, uruchom bramki ponownie.
- JSON Schema, która zamienia przebieg
codex execw raport sprawdzalny skryptem. - Pięć promptów do skopiowania i sposoby wyjścia z typowych awarii promptów w Codex.
Co wpisać w prompt, a co w AGENTS.md?
Dział zatytułowany „Co wpisać w prompt, a co w AGENTS.md?”Umieść instrukcję tam, gdzie kosztuje najmniej, a zawodzi najgłośniej. Codex ładuje AGENTS.md do każdej sesji, więc za każdą linię płacisz przy każdym zadaniu, także przy tych, które nie mają z nią nic wspólnego.
| Instrukcja jest… | Umieść ją w | Dlaczego |
|---|---|---|
| Prawdziwa tylko dla tego zadania: błąd, endpoint, kryteria akceptacji | Prompcie | W każdej innej sesji to szum. |
| Prawdziwa dla każdego zadania w repozytorium: komenda testów, układ, styl błędów | AGENTS.md w katalogu głównym repozytorium | Codex czyta go przed rozpoczęciem pracy, więc nie powtarzasz tego ręcznie. |
| Prawdziwa dla jednego serwisu lub pakietu | Zagnieżdżonym AGENTS.md w tym katalogu | Ładuje się tylko wtedy, gdy Codex startuje w tym katalogu lub głębiej. |
| Wieloetapowa procedura używana od czasu do czasu (release notes, migracja) | Skillu | Ładuje się, gdy zadanie jej potrzebuje, a nie w każdej turze. |
| Reguła, której nie wolno złamać | Teście, regule lintera albo hooku | Prompt to prośba; czerwona bramka to fakt. |
Trzy reguły ładowania decydują, czy tekst z AGENTS.md w ogóle trafi do modelu (sprawdzone na Codex CLI 0.157.1, 2026-09-26):
- Jeden plik na katalog. Od katalogu głównego projektu do katalogu, w którym uruchomiłeś Codex, każdy katalog wnosi najwyżej jeden plik:
AGENTS.override.md, jeśli istnieje, a w przeciwnym razieAGENTS.md. Override zastępujeAGENTS.mdtylko we własnym katalogu. Nie anuluje plików powyżej; łańcuch nadal łączy się od korzenia do liścia. - Wspólny budżet. Pliki projektu dzielą
project_doc_max_bytes, domyślnie 32 KiB. Gdy łańcuch jest za długi, ucinane są najgłębsze, czyli najbardziej szczegółowe pliki. - Zaufanie. Od Codex 0.150.0 niezaufany projekt nie dostarcza projektowego
AGENTS.md. Ładuje się tylko globalny~/.codex/AGENTS.md.
Pełny opis ładowania, kontrolę budżetu w CI i to, kiedy przenieść regułę do skilla, znajdziesz w optymalizacji AGENTS.md i skilli w Codex.
Napisz brief, który Codex potrafi domknąć
Dział zatytułowany „Napisz brief, który Codex potrafi domknąć”Brief ma cztery części. Pierwsze trzy sterują pracą. Czwarta definiuje „gotowe” jako coś, co maszyna potrafi sprawdzić, i właśnie dzięki niej nie musisz czytać diffu linia po linii. Pisanie i dopracowywanie instrukcji w ten sposób to inżynieria promptów.
- Cel. Jedna zmiana zachowania, zapisana jako wynik: „POST /api/v2/orders zwraca 429 po 20 żądaniach na minutę na klucz API”.
- Kontekst. Pliki i wzorzec do skopiowania: „Trasa jest w
src/routes/orders.ts. Skopiuj podejście zsrc/middleware/auth-limiter.ts”. - Ograniczenia. Granica zmiany: „Nie zmieniaj kształtu odpowiedzi. Nie dodawaj zależności. Dotykaj tylko
src/middleware/isrc/routes/orders.tsoraz testów”. - Gotowe, gdy. Komendy z oczekiwanym wynikiem: „
pnpm test src/middlewareprzechodzi,pnpm lintprzechodzi, a nowy test pada, gdy usuniesz limiter”.
Najważniejsza jest ostatnia klauzula punktu 4. Test, który przechodzi nawet po usunięciu funkcji, niczego nie dowodzi, więc poproś Codex, żeby pokazał, że jego test potrafi się wywrócić.
Promptuj Codex we właściwej kolejności
Dział zatytułowany „Promptuj Codex we właściwej kolejności”Większość złych wyników bierze się z dobrego promptu w złym momencie: implementacji, zanim ktokolwiek uzgodnił podejście, albo przeglądu robionego przez ten sam wątek, który napisał kod.
-
Sprawdź, co Codex już wie. Uruchom
codex debug prompt-input "ping"w katalogu, w którym uruchomisz Codex. Polecenie wypisuje jako JSON dane wejściowe widoczne dla modelu, więc potwierdzisz, że twoje plikiAGENTS.mdw nich są. W trakcie sesji/statuspokazuje bieżącą konfigurację i zużycie tokenów. -
Zaplanuj przed edycją. Przy wszystkim, co dotyka więcej niż jednego modułu, wpisz
/plan, żeby przełączyć się w Plan mode, i poproś o plan. Zatwierdź albo popraw listę plików i testów, zanim Codex napisze kod. Poprawka planu kosztuje jedną wiadomość; poprawka gotowego diffu kosztuje nowy przebieg. -
Wykonaj według briefu. Wyjdź z Plan mode i wklej czteroczęściowy brief. Trzymaj jedną zmianę zachowania na wątek. Na poboczne pytanie w trakcie zadania
/sideotwiera rozmowę boczną w efemerycznym forku, więc główny wątek zachowuje swój kontekst. -
Zrób przegląd w świeżym kontekście. Uruchom
/revieww nowym wątku albocodex review --uncommittedw terminalu. Recenzent, który nie pisał kodu, nie dzieli z autorem jego martwych pól. Ile przeglądu potrzebuje każda klasa ryzyka, opisuje strona o przeglądzie pracy Codex. -
Uruchom bramki sam. Uruchom komendy z „gotowe, gdy” w swoim terminalu albo zostaw to CI. Raport Codex to deklaracja; twoje kody wyjścia to dowód.
/diffpokazuje każdy zmieniony plik, także nieśledzone, więc zmiana poza zakresem jest widoczna od razu.
Dostrój wysiłek rozumowania, zanim przepiszesz prompt
Dział zatytułowany „Dostrój wysiłek rozumowania, zanim przepiszesz prompt”Gdy poprawnie zbudowany brief nadal daje płytką pracę, przyczyną jest często wysiłek rozumowania, a nie sformułowanie. GPT-6 Astra, domyślny model dołączony do Codex, działa w Codex domyślnie z wysiłkiem low (CLI 0.157.1). Polecenie /model wybiera zarówno model, jak i wysiłek rozumowania. Żeby ustalić poziom dla jednego przebiegu, przekaż go jako nadpisanie konfiguracji:
# Terminal: jeden przebieg z wysokim wysiłkiem, bez zmiany config.tomlcodex -c model_reasoning_effort="high" "Find the root cause of the flaky test in tests/queue/retry.test.ts"Obowiązuje tu reguła całego serwisu: zacznij od domyślnego modelu, podnieś wysiłek, zanim zmienisz model, i zmieniaj model dopiero wtedy, gdy każe ci to twoja własna ewaluacja. Aktualne modele, poziomy wysiłku i ceny są w przeglądzie modeli.
Spraw, by wynik codex exec dało się sprawdzić maszynowo
Dział zatytułowany „Spraw, by wynik codex exec dało się sprawdzić maszynowo”Prompt do nienadzorowanego przebiegu codex exec potrzebuje innego zakończenia: nikt nie czyta jego prozy. Poproś o stały kształt raportu przez --output-schema, a ostatnią wiadomość zapisz do pliku przez -o. Zapisz to jako .codex/report.schema.json:
{ "type": "object", "additionalProperties": false, "required": ["status", "files_changed", "commands_run", "assumptions"], "properties": { "status": { "type": "string", "enum": ["done", "blocked"] }, "files_changed": { "type": "array", "items": { "type": "string" } }, "commands_run": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["command", "exit_code"], "properties": { "command": { "type": "string" }, "exit_code": { "type": "integer" } } } }, "assumptions": { "type": "array", "items": { "type": "string" } } }}Potem uruchom brief z pliku, w sandboksie workspace-write, i sprawdź zarówno raport, jak i prawdziwe bramki:
# Terminal albo CI: brief jest czytany ze standardowego wejścia ("-")codex exec --sandbox workspace-write \ --output-schema .codex/report.schema.json \ -o codex-report.json - < briefs/orders-rate-limit.md
jq -e '.status == "done"' codex-report.json # deklaracja agentapnpm test && pnpm lint # dowódSchema sprawia, że raport da się sparsować, a nie że jest prawdziwy. Lista commands_run pełna zer to nadal relacja agenta o samym sobie, więc pipeline uruchamia bramki ponownie. Zdarzenia JSONL, wybór sandboksa i uwierzytelnianie w CI opisuje strona Codex bez interakcji: codex exec.
Wygeneruj AGENTS.md z repozytorium, a potem go przytnij
Dział zatytułowany „Wygeneruj AGENTS.md z repozytorium, a potem go przytnij”/init tworzy plik AGENTS.md z instrukcjami dla Codex. Wygenerowany plik zwykle powtarza to, co model i tak wyczyta z package.json, więc przytnij go przed commitem.
Które wzorce promptów marnują przebieg Codex?
Dział zatytułowany „Które wzorce promptów marnują przebieg Codex?”| Wzorzec | Przykład | Co napisać zamiast tego |
|---|---|---|
| Wszystko naraz | „Zrefaktoryzuj auth, dodaj testy, zaktualizuj dokumentację i popraw lint”. | Jedna zmiana zachowania na wątek; resztę ustaw w kolejce. |
| Nadmiar placeholderów | „Dodaj walidację [TYP] do [ENDPOINT] przy użyciu [BIBLIOTEKA]”. | „Dodaj walidację Zod do POST /users według src/schemas/order.schema.ts”. |
| Niewypowiedziane oczekiwanie | „Napraw błąd”. | Objaw, dane wejściowe, które go wywołują, podejrzany plik i test regresyjny do dodania. |
| „Nigdy” bez kontroli | „Nigdy nie loguj numerów kart”. | Zostaw zdanie i dodaj test albo regułę lintera, która pada, gdy numer karty trafi do loggera. |
| Samoocena | „Sprawdź swoją pracę i potwierdź, że jest poprawna”. | Komendy z kodami wyjścia, a potem przegląd w świeżym wątku. |
| Firmowy podręcznik | Główny AGENTS.md, który opisuje każdy zespół i proces. | Reguły repozytorium w katalogu głównym, reguły serwisów zagnieżdżone, procedury w skillach. |
Skąd wiesz, że prompt zadziałał, bez czytania każdej linii?
Dział zatytułowany „Skąd wiesz, że prompt zadziałał, bez czytania każdej linii?”Oceniaj przebieg po dowodach, w tej kolejności:
- Zakres.
/diffwymienia tylko pliki, na które pozwalał brief. Dodatkowy plik oznacza, że ograniczenia były za luźne albo zostały zignorowane. - Bramki. Komendy z „gotowe, gdy” przechodzą, gdy uruchamiasz je ty albo CI, a nie tylko w raporcie Codex.
- Siła testu. Nowy test padał przed zmianą albo padał po wyłączeniu funkcji.
- Niezależny przegląd.
/revieww świeżym kontekście albocodex review --uncommittednie zgłasza uwag w kategoriach, które wskazałeś. - Akceptacja. Inżynier, który napisał brief, zatwierdza pull request na podstawie tych dowodów. Tech leadzi decydują, które klasy ryzyka wymagają dodatkowo ludzkiej lektury kodu; zobacz przegląd pracy Codex.
Gdy brief dwa razy przejdzie te kontrole dla tego samego rodzaju zadania, przenieś jego trwałe linie do AGENTS.md albo do skilla, żeby następna osoba nie musiała odkrywać ich od nowa.
Kiedy prompty i AGENTS.md zawodzą w Codex
Dział zatytułowany „Kiedy prompty i AGENTS.md zawodzą w Codex”- Codex ignoruje regułę zapisaną w
AGENTS.md. Uruchomcodex debug prompt-input "ping"i wyszukaj regułę. Jeśli jej brak, sprawdź dwie przyczyny: pustyAGENTS.override.mdw tym samym katalogu zasłania plik albo łańcuch przekroczyłproject_doc_max_bytesi najgłębszy plik został ucięty. Osobno potwierdź, że projekt jest zaufany (0.150.0 i nowsze):prompt-inputmoże pokazaćAGENTS.mdtakże dla niezaufanego projektu (sprawdzone na 0.157.1), więc obecność reguły w jego wyniku nie wyklucza tej przyczyny. Usuń przyczynę, potem zacznij nowy wątek. - Codex edytuje pliki spoza briefu. Wymień dozwolone ścieżki i dopisz: „If you need to touch anything else, stop and ask”. Zbędne zmiany cofnij przez
git restore <ścieżka>, zamiast prosić Codex, żeby odtworzył je z pamięci. - Raport mówi, że testy przechodzą, a CI pada. Agent uruchomił węższą komendę albo żadnej. Wpisz dokładne komendy w „gotowe, gdy”, poproś o kody wyjścia i niech rozstrzyga CI.
- Wynik odjeżdża od zatwierdzonego planu. Wklej zatwierdzony plan do promptu wykonawczego jako kontrakt i poproś Codex, żeby przy każdej zmianie podał, który krok planu realizuje.
- Jakość spada pod koniec długiego wątku. Kontekst jest pełen starych prób. Uruchom
/compactalbo zacznij nowy wątek z notatką przekazania; kiedy wybrać które, opisuje zarządzanie kontekstem w Codex. - Płytkie odpowiedzi przy trudnym problemie. Podnieś wysiłek rozumowania przez
/modelalbo-c model_reasoning_effort="high", zanim przepiszesz brief lub zmienisz model.
Dokąd dalej w temacie promptowania Codex
Dział zatytułowany „Dokąd dalej w temacie promptowania Codex”- Optymalizacja AGENTS.md i skilli w Codex: mechanizm ładowania, budżet 32 KiB i skille.
- Zarządzanie kontekstem w Codex: długie wątki, kompaktowanie i przekazania.
- Przegląd pracy Codex: głębokość przeglądu dopasowana do ryzyka.
- Codex bez interakcji: codex exec:
codex execw skryptach i CI. - Spec-driven development: gdy brief rozrasta się w specyfikację.
- Ten sam temat dla Claude Code: prompt engineering w Claude Code.