Kiedy używać trybu agenta, a kiedy trybu zapytań
Tryb agenta kontra tryb zapytań to wybór, czy agent AI może zapisywać w twoim repozytorium, czy tylko je czyta. Claude Code i Codex nazywają postawę tylko do odczytu plan mode, Cursor ma Plan Mode. Bezpieczna praktyka to tryb tylko do odczytu do zatwierdzenia planu, a potem prawo zapisu na jeden ograniczony krok, o którego przyjęciu decydują testy.
Ta strona jest dla programistów, którzy wybierają tryb przy każdym zadaniu, i dla tech leadów, którzy ustalają domyślny tryb zespołu. Pytasz agenta o handler płatności w Express: „dlaczego processPayment czasem obciąża klienta dwa razy?”. Minutę później agent zmienił logikę idempotencji, ruszył trzy miejsca wywołań i wyedytował migrację, a ty przeglądasz diff, o który nie prosiłeś, na najbardziej wrażliwej ścieżce w kodzie. Odwrotny błąd jest cichszy: spędzasz czterdzieści minut na pytaniach tylko do odczytu, zapełniasz okno kontekstu i zaczynasz implementację w sesji, która nie pamięta już ograniczeń.
Co daje dyscyplina trybów przy prawdziwej zmianie
Dział zatytułowany „Co daje dyscyplina trybów przy prawdziwej zmianie”- Mapę trybów tylko do odczytu, zapisu i pracy bez nadzoru w Claude Code 2.1.283, Codex CLI 0.157.1 i Cursorze, z dokładnym klawiszem, flagą albo ustawieniem dla każdego.
- Pętlę dwufazową: eksploracja tylko do odczytu kończy się planem, potem wykonanie jednego zatwierdzonego kroku i stop.
- Cztery gotowe prompty: planowanie bez edycji, wykonanie jednego kroku, weryfikacja kroku dowodami i zakres zadania wsadowego bez nadzoru.
- Tabelę decyzyjną, która łączy typ zadania z trybem i ze sprawdzeniem, które dowodzi wyniku.
- Typowe pułapki, w których wybrany tryb wprowadza cię w błąd, i sposób wyjścia z każdej.
Jakie tryby oferują Claude Code, Codex i Cursor?
Dział zatytułowany „Jakie tryby oferują Claude Code, Codex i Cursor?”Każde narzędzie ma te same trzy postawy pod innymi nazwami. „Tryb zapytań” oznacza na tej stronie ogólnie postawę tylko do odczytu, niezależnie od nazwy w danym narzędziu. Stan sprawdzony 2026-09-26 w claude --help 2.1.283, codex --help 0.157.1 i w dokumentacji dostawców; aktualne modele wymienia strona o modelach. Dane o Cursorze sprawdzono ostatnio 2026-08-28 (Plan Mode, Cloud Agents) albo w pakiecie @cursor/sdk 1.0.32.
| Postawa | Claude Code 2.1.283 | Codex CLI 0.157.1 | Cursor |
|---|---|---|---|
| Tylko do odczytu: eksploracja i plan | tryb plan: Shift+Tab aż do ⏸ plan mode on, /plan <prompt> dla jednego promptu albo claude --permission-mode plan | /plan w TUI; profil uprawnień :read-only (beta) albo starsze --sandbox read-only | Plan Mode: „creates detailed implementation plans before writing any code” |
| Zapis, zatwierdzasz ty | Manual (w konfiguracji default) albo acceptEdits (edycje przechodzą, inne komendy nadal pytają) | profil :workspace z -a on-request | Agent (tryb agent w SDK), z zatwierdzaniem ustawionym na stronie Run modes w sekcji Agent security |
| Zapis, zatwierdza model recenzujący | auto: klasyfikator (domyślnie Claude Sonnet 5) ocenia każdą akcję | Auto-review: --approve-for-me | Auto-review dla lokalnych wywołań narzędzi (opcja SDK autoReview) |
| Bez nadzoru | claude -p z --permission-mode dontAsk i dokładną listą --allowedTools | codex exec z profilem :workspace | Cloud Agents, które „run in isolated VMs in the cloud” |
Pełna macierz kontroli, łącznie z sandboxami systemu operacyjnego i ruchem sieciowym, jest na stronie uprawnienia, sandboxy i tryby zatwierdzania. Ta strona dotyczy decyzji: jakiej postawy wymaga zadanie i kiedy przejść do następnej.
Jak badać kod, nie pozwalając agentowi edytować?
Dział zatytułowany „Jak badać kod, nie pozwalając agentowi edytować?”Każdą nietrywialną zmianę zaczynaj w trybie tylko do odczytu. Ta faza ma dać jeden artefakt: ponumerowany plan z plikami, testami i ryzykami, który możesz odrzucić, zanim zmieni się choć jedna linia.
Naciskaj Shift+Tab, aż pasek stanu pokaże ⏸ plan mode on, albo wystartuj od razu w tym trybie:
claude --permission-mode planW plan mode Claude czyta pliki i uruchamia komendy tylko do odczytu (oraz komendy zatwierdzone przez klasyfikator trybu auto, jeśli tryb auto jest dostępny), a edycje pozostają zablokowane, dopóki nie zatwierdzisz planu. Gdy plan się pojawi, Ctrl+G otwiera go w edytorze, więc możesz go poprawić przed zatwierdzeniem. Żeby sesje w terminalu startowały w plan mode dla całego repozytorium, ustaw "defaultMode": "plan" w sekcji permissions pliku .claude/settings.json. Rozszerzenie VS Code nie czyta ustawień projektu przy wyborze trybu startowego; tam ustaw claudeCode.initialPermissionMode na plan w ustawieniach użytkownika VS Code.
Uruchom TUI z profilem tylko do odczytu, żeby zapisy blokował sam sandbox, a potem wpisz /plan, żeby przejść do Plan mode:
codex -a on-request -c 'default_permissions=":read-only"'W codex-cli 0.157.1 na Linuksie touch w tym profilu kończy się błędem Read-only file system, a odczyty działają; codex sandbox -c 'default_permissions=":read-only"' -- sh -c 'touch probe' odtwarza ten test. Profile uprawnień są w wersji beta. Jeśli wolisz starsze --sandbox read-only, nie łącz go z default_permissions: OpenAI pisze, że te dwa mechanizmy nie działają razem.
Przełącz czat na Plan Mode, zanim zadasz pytanie. Oznacz przez @ punkty wejścia, na których ci zależy (@src/routes/payments.ts), żeby wyszukiwanie startowało od właściwych plików. Selektor trybów w twojej wersji może pokazywać więcej trybów niż Agent i Plan. Udokumentowanym trybem tylko do odczytu jest Plan Mode (SDK udostępnia tryby agent i plan), więc zanim zaufasz innemu trybowi, sprawdź w swojej wersji, czy jest tylko do odczytu. Stronę IDE opisuje przegląd trybów agenta w Cursorze.
Prompt jest taki sam w każdym narzędziu. Wymusza plan, który niesie wszystko, czego potrzebuje następna faza, łącznie z komendą dowodzącą każdego kroku:
Przeglądasz plan, nie kod. Odrzuć go, jeśli któryś krok nie ma testu, dotyka pliku spoza zmiany albo zamiast odpowiedzi na otwarte pytanie zgaduje. Ogranicz tę fazę w czasie: gdy plan przestaje się poprawiać, idź dalej, bo każde kolejne pytanie zużywa kontekst potrzebny implementacji. Kiedy zacząć świeżą sesję z samym planem na wejściu, wyjaśnia przewodnik po oknach kontekstu.
Jak przekazać agentowi jeden zatwierdzony krok?
Dział zatytułowany „Jak przekazać agentowi jeden zatwierdzony krok?”Dawaj prawo zapisu na jeden krok naraz i każ agentowi zatrzymać się po nim. To zatrzymanie sprawia, że zatwierdzony plan nie zamienia się w nieprzejrzane przepisanie połowy modułu.
Przy kodzie płatności, autoryzacji, migracji albo infrastruktury zatwierdź plan opcją Yes, manually approve edits, żeby każda edycja pytała o zgodę. Przy kodzie rutynowym wybierz Yes, and use auto mode. Wstępnie zezwól na komendę testów regułą w /permissions, na przykład Bash(npm test *), żeby monity, które widzisz, dotyczyły rzeczy ważnych. Jeśli krok pójdzie źle, /rewind (albo dwa razy Esc przy pustym prompcie) przywraca kod i rozmowę do punktu kontrolnego.
Wyjdź z TUI i uruchom je ponownie z profilem workspace. Edycje i komendy w obrębie workspace przechodzą, a przekroczenie granicy sandboxa wymaga twojej zgody:
codex -a on-request -c 'default_permissions=":workspace"'/permissions w TUI zmienia to samo ustawienie bez restartu. Profil workspace może zapisać wszystko w drzewie roboczym, także plik .env albo manifest wdrożenia, więc trzymaj sekrety poza repozytorium, na które go kierujesz.
Przełącz na Agent i wklej prompt kroku poniżej. Zanim go uruchomisz, sprawdź ustawienia zatwierdzania na stronie Run modes w sekcji Agent security. Nazwy trybów na stronie Run modes zmieniają się między wersjami; odczytaj je we własnych ustawieniach.
Jak sprawdzić krok bez czytania każdej linii?
Dział zatytułowany „Jak sprawdzić krok bez czytania każdej linii?”Dyscyplina trybów decyduje o tym, co agentowi wolno. Nie decyduje, czy wynik jest poprawny. To zadanie sprawdzeń, które działają bez ciebie, tak żeby człowiek czytał kod tylko tam, gdzie wymaga tego ryzyko.
- Test wskazany w planie nie przechodzi przed krokiem i przechodzi po nim. Agent wkleja oba wyniki. Krok, którego nowy test nigdy nie padł, niczego nie dowiódł; jak nie dać agentowi osłabić testu, żeby przeszedł, opisuje przewodnik po TDD.
- Przechodzą bramki repozytorium: sprawdzanie typów, lint i pełny zestaw testów, uruchomione przez CI, a nie zgłoszone przez agenta.
- Drugie przejście atakuje diff. Uruchom prompt przeglądu poniżej w świeżej sesji tylko do odczytu albo przez osobnego agenta recenzenta, żeby kontekst autora nie usprawiedliwiał jego własnych luk. Przegląd PR-ów od agentów ustawia to jako stałą bramkę.
- Krok zostawia podsumowanie dowodów: zmienione pliki, uruchomione komendy, wyniki i otwarte założenia. Recenzent czyta to podsumowanie, nie diff; format definiuje pakiet dowodów.
- Człowiek czyta kod tylko w klasach eskalacji: ruch pieniędzy, autoryzacja, migracje danych, infrastruktura i wszystko, co oznaczył recenzent. Klasy i osoby zatwierdzające wymienia strona dowody zamiast diffów.
Każde znalezisko staje się kolejnym krokiem planu, zaczynającym się od niezaliczonego testu. Pętla się nie zmienia: tylko do odczytu, żeby zdecydować, zapis, żeby wykonać jeden krok, i znów tylko do odczytu, żeby sprawdzić.
Kiedy można bezpiecznie puścić agenta bez nadzoru?
Dział zatytułowany „Kiedy można bezpiecznie puścić agenta bez nadzoru?”Puszczaj agenta bez nadzoru tylko wtedy, gdy spełnione są trzy warunki: zadanie jest mechaniczne, o poprawności każdej zmiany rozstrzyga komenda, a zasięg szkód ogranicza się do gałęzi albo jednorazowego środowiska. Poprawki lintera, formatowanie, zmiana nazw w stylu codemodu i szablony testów się kwalifikują. Projekt API, strategia obsługi błędów, praca nad wydajnością i wszystko z klas eskalacji — nie, bo „poprawne” wymaga tam osądu, którego komenda nie dostarczy.
Uruchom w trybie bezobsługowym z dontAsk, który odrzuca każdą akcję wymagającą zgody, więc lista dozwolonych narzędzi jest całą polityką. Pracuj na osobnej gałęzi albo w osobnym worktree:
claude -p "Fix every ESLint error in src/components/. Run npm run lint after each file." \ --permission-mode dontAsk \ --allowedTools "Read" "Edit" "Bash(npm run lint *)"--dangerously-skip-permissions wyłącza wszystkie sprawdzenia, a pomoc CLI zaleca go „only for sandboxes with no internet access”. Używaj go wyłącznie w jednorazowym kontenerze albo maszynie wirtualnej z ograniczoną siecią i bez produkcyjnych poświadczeń.
codex exec w wersji 0.157.1 nie ma flagi -a i jej nie potrzebuje: i tak działa z approval: never.
codex exec -c 'default_permissions=":workspace"' \ "Fix every ESLint error in src/components/. Run npm run lint after each file."Przy never akcja, która musiałaby przekroczyć granicę sandboxa, kończy się błędem zamiast monitu, a błąd wraca do modelu. --dangerously-bypass-approvals-and-sandbox jest, słowami CLI, „intended solely for running in environments that are externally sandboxed”: używaj jej wyłącznie w jednorazowym kontenerze lub maszynie wirtualnej z ograniczoną siecią i bez poświadczeń produkcyjnych.
Przekaż zadanie Cloud Agentowi, który działa w izolowanej maszynie wirtualnej z pełnym środowiskiem deweloperskim, więc twój lokalny checkout zostaje nietknięty, dopóki nie przejrzysz gałęzi, którą przygotuje. Przebiegi bezobsługowe z CI używają trybu print w Cursor CLI (-p, --print).
Przebiegu bez nadzoru nikt nie pilnuje, więc jego zakres musi być zapisany w prompcie:
Sprawdzenie przebiegu bez nadzoru to ta sama bramka co w poprzedniej sekcji: CI uruchamia lint, typy i testy na gałęzi, a podsumowanie mówi recenzentowi, co pominięto. Ustawienia sandboxa i sieci, których potrzebuje taki przebieg, opisuje przewodnik po uprawnieniach i sandboxach.
Który tryb pasuje do którego zadania?
Dział zatytułowany „Który tryb pasuje do którego zadania?”| Zadanie | Tryb | Co dowodzi wyniku |
|---|---|---|
| Zrozumienie nieznanego kodu, wdrożenie się, badanie błędu | Tylko do odczytu | Każde twierdzenie wskazuje plik i linię, które możesz otworzyć; niezaliczony test odtwarza błąd |
| Plan zmiany obejmującej więcej niż jeden plik | Tylko do odczytu, potem zapis krok po kroku | Każdy krok planu wskazuje swój test i komendę |
| Wykonanie zaplanowanego kroku w rutynowym kodzie | Zapis, model recenzujący albo acceptEdits | Test kroku najpierw nie przechodzi, potem przechodzi; bramki CI przechodzą |
| Zmiana płatności, autoryzacji, migracji albo infrastruktury | Zapis, zatwierdzasz każdą edycję | Jak wyżej plus przegląd kodu przez człowieka (klasa eskalacji) |
| Lint, formatowanie, mechaniczne zmiany nazw, szablony testów | Bez nadzoru, na gałęzi | Komenda lint albo typów dochodzi do zera; CI przechodzi |
| Nie masz pewności | Najpierw tylko do odczytu | Plan, który możesz odrzucić, nic nie kosztuje |
Dla tech leadów domyślnym ustawieniem do przyjęcia jest ostatni wiersz: sesje w repozytoriach startują w plan mode, a przejście do zapisu to świadomy krok programisty, gdy plan już istnieje. W Claude Code zacommituj "defaultMode": "plan" w .claude/settings.json (sesje w terminalu) i poproś użytkowników VS Code o ustawienie claudeCode.initialPermissionMode; w Codeksie ustaw default_permissions = ":read-only" w ~/.codex/config.toml albo dodaj -c 'default_permissions=":read-only"' do zespołowego aliasu uruchamiania.
Co się psuje, gdy wybierzesz zły tryb?
Dział zatytułowany „Co się psuje, gdy wybierzesz zły tryb?”- Plan mode mimo wszystko edytuje pliki. W interaktywnej sesji Claude Code uruchomionej z
--dangerously-skip-permissionsalbo--allow-dangerously-skip-permissionsblokady plan mode nie są egzekwowane: Claude ma polecenie planować, ale edycja, którą spróbuje wykonać, przejdzie. Wyjście:/rewinddo ostatniego punktu kontrolnego i nigdy nie zaczynaj sesji planowania z flagą obejścia. - Pytanie w świeżej sesji zamienia się w edycje. Trybem startowym Claude Code w v2.1.283 jest auto, nie Manual. Wyjście:
/rewind, potem"defaultMode": "plan"w.claude/settings.jsonrepozytorium, żeby sesje w terminalu startowały tylko do odczytu, orazclaudeCode.initialPermissionModedla rozszerzenia VS Code, które ignoruje wartość z projektu. - Agent przeskakuje od analizy do refaktoryzacji. Prompt w rodzaju „przeanalizuj moduł auth, a potem go zrefaktoryzuj” zachęca agenta do pominięcia analizy. Wyjście: rozdziel go na prompt tylko do odczytu i prompt jednego kroku z tej strony, w osobnych turach.
- Zatwierdzony plan rośnie w trakcie kroku. Niejasny krok zaprasza do rozszerzania zakresu. Wyjście: odrzuć edycje spoza listy plików z planu, cofnij je i sformułuj krok ponownie, z listą plików i warunkiem zatrzymania.
- Zostajesz w trybie tylko do odczytu zbyt długo. Długa eksploracja zapełnia okno kontekstu, a implementacja startuje ze skompaktowanego, stratnego podsumowania. Wyjście: zapisz plan do pliku, zacznij świeżą sesję i podaj jej plan jako pierwszą wiadomość.
- Agent zdaje się ignorować prośby o implementację. Zwykle wciąż jest w trybie tylko do odczytu. Wyjście: sprawdź wskaźnik trybu (
⏸ plan mode onw Claude Code) albo profil Codeksa, zanim zaczniesz przepisywać prompt. - Codex odrzuca twoje flagi.
codex exec -a neverkończy się błędem „unexpected argument”,-a on-failurebłędem „invalid value”, a profil uprawnień nie działa razem z--sandbox. Wyjście: usuń flagę i uruchomcodex exec …, które i tak działa zapproval: never, oraz wybierz profile albo starszą flagę, nie oba naraz. - Przebieg bez nadzoru ruszył coś wrażliwego. Profil workspace w Codeksie i szeroka lista dozwolonych narzędzi w Claude Code mogą sięgnąć plików takich jak
.env. Wyjście: wycofaj gałąź, przenieś sekrety poza drzewo robocze i zawęź listę dozwolonych narzędzi albo profil przed następnym przebiegiem.