Wieloagentowa równoległa praca nad funkcjami
Twoje spotkanie planistyczne kwartalne właśnie się zakończyło. Roadmapa ma pięć funkcji do dostarczenia w trzy tygodnie: preferencje powiadomień, dashboard rozliczeń, eksport użytkowników, dziennik audytu administratora i publiczne API. Każda funkcja dotyka różnych części bazy kodu. Tradycyjnie twój czteroosobowy zespół pracowałby nad nimi sekwencyjnie z pewnym nakładaniem się. Z Codex pojedynczy deweloper może koordynować pięciu równoległych agentów, z których każdy pracuje we własnym worktree, tworząc przejrzane PR-y dla każdej funkcji jednocześnie. Stajesz się architektem kierującym zespołem agentów.
Co wyniesiesz z tej lekcji
Dział zatytułowany „Co wyniesiesz z tej lekcji”- Wzorzec koordynacji do uruchamiania 4-6 agentów Codex równolegle bez konfliktów
- Prompty do dekompozycji zestawu funkcji na niezależne strumienie pracy
- Techniki zarządzania współdzielonymi zależnościami między równoległymi worktree
- Workflow do przeglądania, testowania i łączenia wyników od wielu agentów
Workflow
Dział zatytułowany „Workflow”Krok 1: Rozłóż na niezależne strumienie pracy
Dział zatytułowany „Krok 1: Rozłóż na niezależne strumienie pracy”Kluczowym ograniczeniem dla równoległej pracy agentów jest niezależność. Dwóch agentów modyfikujących ten sam plik stworzy konflikty merge. Zacznij od zidentyfikowania, co może biec równolegle.
Krok 2: Zbuduj współdzieloną infrastrukturę jako pierwszą
Dział zatytułowany „Krok 2: Zbuduj współdzieloną infrastrukturę jako pierwszą”Analiza Codex zidentyfikuje współdzielone zależności — może wszystkie pięć funkcji potrzebuje nowego middleware, albo funkcja dziennika audytu musi przechwytywać trasy używane przez inne funkcje. Obsłuż je w trybie Local jako pierwsze.
Zmerguj to do gałęzi bazowej. Teraz każdy worktree utworzony od tego momentu ma współdzieloną infrastrukturę.
Krok 3: Uruchom równoległych agentów
Dział zatytułowany „Krok 3: Uruchom równoległych agentów”Otwórz Codex App i utwórz pięć wątków worktree, wszystkie oparte na gałęzi z już zmergowaną współdzieloną infrastrukturą. Każdy wątek dostaje kompleksowy prompt z jasnymi granicami.
Wątek 1: Preferencje powiadomień
Wątek 2: Dashboard rozliczeń (ta sama struktura, inne pliki)
Wątek 3: Eksport danych użytkowników (ta sama struktura, inne pliki)
Wątek 4: Dziennik audytu administratora (ta sama struktura, inne pliki)
Wątek 5: Publiczne API (ta sama struktura, inne pliki)
Krok 4: Monitoruj i kieruj
Dział zatytułowany „Krok 4: Monitoruj i kieruj”Z pięcioma działającymi wątkami pasek boczny Codex App staje się twoim centrum dowodzenia. Każdy wątek pokazuje swój status: uruchomiony, czekający na zatwierdzenie lub ukończony.
Podczas pracy agentów:
- Sprawdzaj postęp klikając w każdy wątek. Historia konwersacji pokazuje, co Codex zrobił i nad czym pracuje.
- Zostawiaj komentarze inline jeśli zauważysz problem w panelu recenzji. Następnie wyślij wiadomość: “Address the inline comments.”
- Wysyłaj wskazówki w trakcie zadania przez okno kompozytora (tak samo w CLI i w App): naciśnij Enter podczas pracy Codex, aby wstrzyknąć nowe instrukcje do bieżącej tury, albo naciśnij Tab, aby zakolejkować kontynuację na następną turę.
- Użyj zintegrowanego terminala (
Cmd + J), aby weryfikować zmiany w każdym worktree niezależnie.
Krok 5: Przejrzyj, przetestuj i zmerguj
Dział zatytułowany „Krok 5: Przejrzyj, przetestuj i zmerguj”W miarę jak każdy wątek się kończy, postępuj zgodnie z tym procesem:
- Przejrzyj diff w panelu recenzji. Skup się na logice biznesowej, nie na formatowaniu.
- Uruchom
/revieww wątku, aby uzyskać drugą opinię od modelu recenzenta. - Utwórz gałąź za pomocą Create branch here na worktree.
- Wypchnij i otwórz PR bezpośrednio z App.
- Poproś o
@codex reviewna PR GitHub dla widocznych komentarzy recenzji zespołowej.
Kolejność mergowania ma znaczenie. Merguj funkcje z najmniejszą liczbą modyfikacji współdzielonych plików jako pierwsze. Dla konfliktów eksportu barrel rozwiązuj ręcznie:
git checkout feature/notification-preferencesgit merge feature/billing-dashboard# Resolve conflict in src/routes/index.ts (add both import lines)git add src/routes/index.tsgit commit -m "Merge billing dashboard into notification preferences branch"Po zmergowaniu wszystkich pięciu gałęzi funkcji uruchom pełny zestaw testów jeszcze raz, aby wyłapać ewentualne problemy integracyjne.
Skalowanie z zadaniami chmurowymi
Dział zatytułowany „Skalowanie z zadaniami chmurowymi”Dla funkcji wymagających dłuższego wykonania (złożona logika biznesowa, rozległe testowanie) deleguj do zadań chmurowych zamiast lokalnych worktree. Każde zadanie chmurowe działa niezależnie we własnym kontenerze.
# Launch three features as cloud tasks in parallelcodex cloud exec --env my-env "Implement the billing dashboard feature..." &codex cloud exec --env my-env "Implement the user data export feature..." &codex cloud exec --env my-env "Implement the public API feature..." &Każde zadanie produkuje diff i opcjonalny PR. Użyj --attempts 2 dla funkcji, gdzie jakość jest ważniejsza niż szybkość — Codex generuje dwa rozwiązania, a ty wybierasz lepsze.
Gdy coś się nie uda
Dział zatytułowany „Gdy coś się nie uda”Konflikty merge we współdzielonych plikach. Pomimo starannego planowania niektóre konflikty są nieuniknione. Najczęstsze: pliki barrel importów, rejestracja middleware, eksporty schematu bazy danych. Minimalizuj mówiąc każdemu agentowi, aby dodał tylko jedną lub dwie linie do współdzielonych plików, i rozwiązuj konflikty w fazie mergowania.
Implementacja jednego agenta jest niekompatybilna z implementacją drugiego. Agent 1 buduje serwis powiadomień oczekujący konkretnego formatu zdarzeń; Agent 5 buduje publiczne API emitujące inny format. Zapobiegaj temu definiując współdzielone interfejsy w fazie infrastrukturalnej. Dołącz “use the EventPayload interface defined in src/types/events.ts” w promptach obu agentów.
Osiągnięto limit worktree. Codex czyści worktree, gdy przekroczysz 10 lub gdy są starsze niż 4 dni. Przy równoległej pracy nad pięcioma funkcjami używasz natychmiast 5 worktree plus wszelkie istniejące. Archiwizuj wątki, których już nie potrzebujesz, i przypnij każdy worktree, który chcesz zachować powyżej 4 dni.
Lokalna maszyna wyczerpuje zasoby. Pięć worktree, każdy z własnymi node_modules i potencjalnie działającymi procesami, może wyczerpać CPU, pamięć lub dysk. Użyj zadań chmurowych dla najcięższych funkcji i rozłóż starty lokalnych worktree, aby nie budowały wszystkie zależności jednocześnie.
Testy przechodzą pojedynczo, ale nie łącznie. Każdy worktree testuje w izolacji. Po zmergowaniu testy mogą się nie powieść z powodu interakcji między funkcjami (konflikty portów, konflikty tabel bazy danych w testach, współdzielony stan). Uwzględnij jawną fazę testowania integracyjnego po wszystkich merge’ach.