0Pricing
AI Agents · Lekcja

Hierarchiczny podział zadań

Cel nadrzędny -> podcele -> podcele niższego poziomu — to jedyny sposób, w jaki ludzie (i agenci) radzą sobie z dużymi zadaniami.

Hierarchiczny podział zadań to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Gdy zadania stają się duże

„Zrefaktoryzuj moduł uwierzytelniania” to zbyt duże zadanie dla jednego promptu. Agent musi podzielić je na mniejsze, łatwiejsze do zarządzania części.

Hierarchiczna dekompozycja zadań (HTD) to sposób, w jaki ludzie i agenci radzą sobie z takimi zadaniami.

Hierarchia

  1. Cel — cel wysokiego poziomu
  2. Podcele — główne etapy
  3. Zadania — konkretne kroki
  4. Działania — pojedyncze wywołania narzędzi

Example Decomposition

Goal: Refactor authentication module to use OAuth.

  Sub-goal 1: Set up OAuth dependencies
    Task: Add dependency to requirements.txt
    Task: Configure OAuth client

  Sub-goal 2: Replace existing auth flow
    Task: Replace login endpoint
    Task: Replace session middleware
    Task: Update tests

  Sub-goal 3: Migration and rollout
    Task: Write migration script
    Task: Update documentation

LLM-Driven Decomposition

DECOMPOSE_PROMPT = '''
Decompose this goal into 3-6 sub-goals. For each sub-goal, list 2-5 concrete tasks.
Return JSON: {sub_goals: [{name, tasks: [str]}]}

Goal: {goal}
'''

Dekompozycja rekurencyjna

Jeśli zadanie nadal jest zbyt duże, należy zdekomponować JE dalej. Należy zakończyć podział, gdy zadanie mieści się w pojedynczym kroku LLM (około 3–5 wywołań narzędzi).

Kiedy zakończyć dekompozycję

Heurystyki:

  • Opis zadania mieści się w jednym zdaniu
  • Zadanie ma jasne kryteria akceptacji
  • Zadanie dotyczy niewielkiej liczby plików
  • Zadanie można zweryfikować za pomocą konkretnego testu

Struktury drzewiaste

Dekompozycję należy reprezentować jako drzewo. Każdy węzeł to zadanie zawierające: opis, status (pending/running/done/failed), children:

@dataclass
class TaskNode:
    description: str
    status: Literal['pending', 'running', 'done', 'failed']
    children: list['TaskNode']
    result: str | None = None

Wykonywanie w głąb

Należy przechodzić przez drzewo w głąb. Każdy liść trzeba ukończyć przed przejściem dalej:

def execute(node):
    if node.children:
        for child in node.children:
            execute(child)
    else:
        node.status = 'running'
        try:
            node.result = run_leaf(node)
            node.status = 'done'
        except Exception as e:
            node.status = 'failed'

Agregowanie wyników

Po ukończeniu elementów podrzędnych należy zagregować wyniki w węźle nadrzędnym:

def aggregate(parent):
    summaries = [c.result for c in parent.children if c.status == 'done']
    parent.result = llm.invoke(f'Summarise these sub-task results: {summaries}').content

Udostępnianie drzewa użytkownikom

W przypadku agentów działających długo należy pokazywać użytkownikom drzewo wraz z aktualizowanym na żywo statusem. Zapewnia to zaufanie i przejrzystość:

[x] Add OAuth dependency
[x] Configure OAuth client
[~] Replace login endpoint   <-- in progress
[ ] Replace session middleware
[ ] Update tests

Zezwalanie na edycję drzewa

Zaawansowani użytkownicy mogą chcieć pomijać, dodawać lub zmieniać kolejność zadań. Należy obsługiwać ręczne modyfikowanie drzewa planu.

Ponowne planowanie po niepowodzeniu

Jeśli podzadanie wielokrotnie kończy się niepowodzeniem, należy wrócić do węzła nadrzędnego i przeprowadzić ponowną dekompozycję:

if failed_count(node) > 2:
    parent = node.parent
    parent.children = llm_replan(parent, failure_context=node.last_error)

Koszt dekompozycji

Każda dekompozycja wymaga wywołania LLM. Buforowanie pomaga — ten sam cel -> ta sama początkowa dekompozycja.

Kiedy zakończyć podział

Kiedy agent powinien zakończyć dekompozycję zadań?

Podsumowanie

Cele -> podcele -> zadania -> działania. Należy zbudować drzewo, wykonywać je w głąb, agregować wyniki i ponownie planować po niepowodzeniu. To standardowy wzorzec pracy obejmującej długi horyzont.

Często zadawane pytania

Czy lekcja „Hierarchiczny podział zadań” jest bezpłatna?

Tak — pełny tekst „Hierarchiczny podział zadań” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.

Co nauczysz się w „Hierarchiczny podział zadań”?

Cel nadrzędny -> podcele -> podcele niższego poziomu — to jedyny sposób, w jaki ludzie (i agenci) radzą sobie z dużymi zadaniami. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Agents?

Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Hierarchiczny podział zadań”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?

Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Hierarchiczny podział zadań
  2. Stosy celów i wycofywanie
  3. Modele świata i przewidywanie skutków
  4. Pętle refleksji i samokrytyki
← Powrót do AI Agents