Przejdź do głównej zawartości

Deleguj pracę agentom

Ten poradnik opisuje, jak zdjąć pracę z własnej głowy i przenieść ją na agenta, oraz co się dzieje, gdy agenci przekazują sobie pracę.

  1. Utwórz zgłoszenie z tytułem i opisem na tyle precyzyjnym, żeby dało się na nim pracować.
  2. Ustaw pole Osoba przypisana na agenta, żeby właściciel był odnotowany.
  3. Otwórz (lub utwórz) przestrzeń i wspomnij tego agenta przez @.
  4. Odwołaj się do zgłoszenia wzmianką # w wiadomości — kompozytor podpowiada zgłoszenia z obszaru roboczego — i napisz, co ma zostać zrobione.

Agent podejmuje pracę z rozmowy. Jego postęp jest przesyłany strumieniowo do tej przestrzeni.

  • Twoją wiadomość, wraz z odwołaniem do zgłoszenia, które oznaczyłeś.
  • Przestrzeń, w której ma pracować i raportować.
  • Izolowane drzewo robocze z repozytoriów powiązanych z obszarem roboczym.
  • Tryb przestrzeni, który rządzi powierzchnią narzędzi uruchomienia.

Tryb jest właściwością przestrzeni, a nie zgłoszenia — zgłoszenie nie ma trybu. Jeden agent może więc być w trybie chat w jednej przestrzeni i plan w innej. Wybierz go z listy trybów w kompozytorze (Agent, Plan lub Orkiestracja); review ustawiają przestrzenie recenzji PR-ów i nie można go wybrać. Zob. Tryby.

Kontrakt wynikowy deklaruje się przy wysłaniu, a nie przy zgłoszeniu: expected_output_schema oraz output_contract_mode (domyślnie strict). Agent spełnia go, wywołując submit_output, które weryfikuje ładunek wobec schematu i odrzuca niezgodny.

Zarówno przyjęty wynik, jak i wszelkie odrzucenia trafiają do dziennika uruchomień agenta. Status samego zgłoszenia pozostaje przy tym nietknięty — nieudany kontrakt nie powoduje niepowodzenia zgłoszenia.

  • Przestrzeń — bieżąca aktywność agenta, widok podstawowy.
  • Zgłoszenie — jego status, taki, jaki ustawi ten, kto je przenosi.
  • Obserwowalność → Na żywo (/workspaces/<workspace-id>/observability) — bieżąca lista obecności agentów.
  • Obserwowalność → Analizy — dziennik uruchomień z kosztem i czasem trwania.

Nie ma ekranu pulpitu nawigacyjnego; sam adres URL obszaru roboczego przekierowuje do skrzynki.

Agent, który natrafi na podproblem, deleguje go narzędziem MCP delegate_task. Tworzy ono zgłoszenie potomne przypisane innemu agentowi i — gdy przekażesz parent_ticket_id — zapisuje łańcuch, żeby zabezpieczenia mogły go zobaczyć.

Dwa strukturalne zabezpieczenia działają zawsze w punkcie kontrolnym zgłoszeń, nigdy na podstawie instrukcji w prompcie:

  • Pułap głębokości — łańcuch głębszy niż 3 przeskoki jest odrzucany.
  • Wykrywanie cykli — przeskok z powrotem do agenta znajdującego się już w łańcuchu jest odrzucany.

Gdy przekażesz from_agent_id, działają dwa kolejne zabezpieczenia (produkcja zawsze dostarcza porty resolverów):

  • Pułap autonomii — efektywny poziom delegowanego w przestrzeni nie może przekraczać poziomu delegującego.
  • Koperta budżetowa — delegowanie obciąża pozostały budżet twardego zatrzymania delegującego i nie może tworzyć nowego. Brak polityki albo polityka nieograniczona przechodzi.

Odmowa jest głośna: narzędzie zwraca powód zabezpieczenia dosłownie, więc delegujący agent dokładnie widzi, dlaczego. Pole delegatedByAgentId zapisuje, kto delegował, tworząc drzewo delegacji.

Ten pułap głębokości delegowania wynoszący 3 to inny limit niż limit zagnieżdżania subagentów wbudowanego harnessa równy 2 — jeden ogranicza zgłoszenia między agentami, drugi ogranicza subagentów w obrębie jednego uruchomienia.

Dodaj ich jako współpracowników zgłoszenia (role: assignee, collaborator, reviewer). To wykaz — zapis tego, kto jest zaangażowany — i sam w sobie niczego nie przyznaje.

Aby faktycznie umieścić agentów w tej samej rozmowie, dodaj ich jako uczestników z nagłówka przestrzeni. Mogą się tam wtedy wzajemnie wspominać przez @. Zob. Przestrzenie.

Żaden węzeł w palecie potoku nie tworzy zgłoszeń, więc potok nie może rozdzielić pracy jako przypisanych zgłoszeń.

Ścieżka, która faktycznie istnieje, to orkiestracja: zatwierdzenie propozycji tworzy projekt i zespół, kompiluje DAG podzgłoszeń propozycji do szablonu potoku (jeden krok promptAgent na podzgłoszenie, a nie wiersz Ticket dla każdego) i uruchamia ten przebieg. Zob. Uruchom orkiestrację.