CCAR-F› 1. Architektura agentowa i orkiestracja›Lekcja 1.3 CCAR-02

Dekompozycja zadania: sekwencyjnie, równolegle czy dynamicznie

Po tej lekcji wiesz, jak zdecydować, czy dzielić zadanie, i czy kroki mają iść po kolei, naraz, czy wybiera je model.

~4 min czytania4 pojęcia3 schematy4 pytaniasprawdzone ze źródłami 2 lis 2026
Źródła (1)

W jednej minucie

Definicja

Dekompozycja zadania to rozbicie zadania na mniejsze podzadania, z których każde obsługuje osobne wywołanie modelu1.

Ważne

Nasza rekomendacja: o kształcie podziału decydują dwa pytania. Czy kroki są znane z góry? Czy zależą od siebie?

Zapamiętaj

Zacznij od najprostszego rozwiązania i dokładaj złożoność tylko wtedy, gdy jest potrzebna1.

Po co dzielić zadanie

Podział zamienia jedno trudne wywołanie w kilka prostszych.

Anthropic nazywa systemami agentowymi zarówno workflow, jak i agentów1. Ich podstawowym budulcem jest rozszerzony LLM: model z wyszukiwaniem, narzędziami i pamięcią1.

ZyskCena
Łatwiejszy pojedynczy krok1Dłuższy czas, bo kroki idą po kolei1
Osobna uwaga na każdy aspekt zadania1Wyższy koszt i opóźnienie1

Kroki zależne: sekwencyjnie

Gdy każdy krok potrzebuje wyniku poprzedniego, ustawiasz kroki w łańcuch: każde wywołanie przetwarza wynik poprzedniego1.

  1. Zaryswynik kroku 1
  2. Bramkasprawdzenie kodem
  3. Tekstwejście: zarys

Między krokami możesz dodać sprawdzenia w kodzie, które pilnują, czy proces idzie we właściwą stronę1. Ten kształt pasuje, gdy zadanie da się czysto rozbić na stałe podzadania1.

Przykład

Piszesz zarys dokumentu, sprawdzasz, czy spełnia kryteria, i dopiero potem piszesz dokument na jego podstawie1.

Kroki niezależne: równolegle

Gdy podzadania nie zależą od siebie, uruchamiasz je naraz, a wyniki łączysz kodem1.

flowchart TD
  Z[Zadanie] --> A[Podzadanie A]
  Z --> B[Podzadanie B]
  Z --> C[Podzadanie C]
  A --> W[Połączenie wyników]
  B --> W
  C --> W
Niezależne podzadania idą naraz, a kod łączy ich wyniki.
  • Sekcjonowanie: niezależne podzadania idą naraz1.
  • Głosowanie: to samo zadanie uruchamiasz kilka razy, żeby dostać różne wyniki1.

To działa, gdy podzadania da się wykonać naraz dla szybkości albo gdy potrzebujesz kilku perspektyw dla większej pewności1.

Kroków nie da się przewidzieć

Gdy nie wiesz z góry, jakie będą podzadania, dzieli je sam model.

  1. Zadaniewejście
  2. Orkiestratordzieli zadanie
  3. Pracownicypodzadania
  4. Syntezałączy wyniki

Centralny model dzieli zadanie dynamicznie, zleca podzadania pracownikom i łączy ich wyniki1. Podzadania nie są zdefiniowane z góry, tylko wynikają z konkretnego wejścia1.

W kodzie liczba plików do zmiany i rodzaj zmiany zależą od zadania1. Gdy nie da się przewidzieć nawet liczby kroków i ustalić stałej ścieżki, zostaje Agent1.

Jak wybrać

Wybór kształtu podziału sprowadza się do kilku pytań.

SytuacjaKształtWzorzec
Kroki znane z góry, każdy zależy od poprzedniego1Po koleiłańcuch
Podzadania są niezależne1Narazrównolegle
Wejścia są różnych rodzajów1Wybór ścieżkirouting
Podzadań nie da się przewidzieć1Dynamicznieorkiestrator

Kolumna „Kształt” to nasze uproszczenie. Wzorce pochodzą z artykułu Anthropic.

  1. Sprawdź, czy w ogóle dzielić. Często wystarcza jedno dobrze zoptymalizowane wywołanie1.
  2. Znajdź zależności. Kroki zależne idą po kolei, a niezależne mogą iść naraz.
  3. Oceń, czy kroki są znane z góry. Jeśli nie, rozważ orkiestratora albo agenta1.
  4. Mierz wynik. Dokładaj złożoność tylko wtedy, gdy wyraźnie poprawia efekty1.

Częste błędy

Większość błędów to dobór złego kształtu podziału albo zbyt wczesna złożoność.

BłądSkutekCo zrobić
Podział tam, gdzie wystarczy jedno wywołanieWyższy koszt i opóźnienie1Najpierw sprawdź pojedyncze wywołanie
Równolegle przy zależnych krokachKrok nie ma danych wejściowychUstaw kroki w łańcuch
Sztywny łańcuch przy nieprzewidywalnym zadaniuStała ścieżka nie pasuje do danych1Rozważ orkiestratora
Złożoność bez pomiaruBrak dowodu, że poprawia wyniki1Mierz i dokładaj stopniowo

Kolumna „Co zrobić” to nasza rada, nie cytat ze źródeł.

Uwaga — framework od pierwszego dnia

Anthropic radzi zacząć od bezpośrednich wywołań API, bo wiele wzorców mieści się w kilku linijkach kodu1.

Pytania sprawdzające

Kiedy dzielisz zadanie na kroki po kolei, a kiedy naraz?

Po kolei, gdy każdy krok potrzebuje wyniku poprzedniego. Naraz, gdy podzadania są niezależne, a wyniki łączysz kodem.

Nie wiesz z góry, ile plików trzeba zmienić w repozytorium. Jaki kształt podziału wybierasz?

Dynamiczny: orkiestrator dzieli zadanie na podzadania na podstawie wejścia, bo stała ścieżka nie przewidzi liczby plików.

Czym różni się łańcuch od orkiestratora z pracownikami?

W łańcuchu kroki są ustalone z góry w kodzie. W orkiestratorze podzadania wybiera model na podstawie konkretnego wejścia.

Dlaczego nie dzielić każdego zadania na kroki „na zapas”?

Bo systemy agentowe często płacą za lepszy wynik kosztem i opóźnieniem. Zacznij od pojedynczego wywołania i dokładaj złożoność, gdy poprawia wyniki.

Podsumowanie

  • Dekompozycja to rozbicie zadania na podzadania, z których każde obsługuje osobne wywołanie.
  • Zależne kroki idą po kolei, niezależne naraz.
  • Gdy podzadań nie da się przewidzieć, dzieli je model (orkiestrator).
  • Podział kosztuje czas i pieniądze, więc zacznij od najprostszego rozwiązania.
  • Złożoność dokładaj dopiero wtedy, gdy poprawia wyniki.

Źródła

  1. Building effective agents — Anthropic Engineeringopublikowano 2024-12-19 · sprawdzone 2026-11-02