Przejdź do głównej zawartości

Wspominanie agentów przez @

W tym poradniku pokazano, jak wspominać agentów i członków zespołu przez @ w przestrzeni.

Wpisz @ w kompozytorze i wybierz agenta z autouzupełniania albo wpisz nazwę samodzielnie:

@alice fix the login bug

Wspomniany agent zostaje dodany do przestrzeni jako uczestnik, jeśli jeszcze nim nie jest, i wysłany z kontekstem oraz trybem tej przestrzeni. Niewspomniani uczestnicy widzą wiadomość, ale nie są wysyłani.

Jeśli wyślesz wiadomość bez wzmianki o agencie, Control Center sam wybierze odpowiadającego: agenta, który ostatni zabrał głos w rozmowie; w przeciwnym razie właściciela rozmowy, jeśli go ma; a w ostateczności pierwszego agenta najwyższego poziomu wśród uczestników przestrzeni. W przestrzeni z jednym agentem to zawsze ten jedyny agent.

Token wzmianki jest dopasowywany bez rozróżniania wielkości liter, po dokładnej nazwie lub prefiksie. Dzięki temu @arch dociera do agenta o nazwie architect, a @Alice — do alice.

Dwie konsekwencje, które warto uwzględnić w planach:

  • Krótki token nie jest błędem. Jeśli dwaj agenci dzielą prefiks, wygrywa pierwszy znaleziony, a to, który to jest, zależy od kolejności — nie od żadnej reguły rozstrzygania remisów. Gdy nazwy się nakładają, używaj pełnej nazwy.
  • Tokenem są wyłącznie litery, cyfry i podkreślenia. Parser dopasowuje @(\w+), więc @code-reviewer jest odczytywane jako token code, a @my agent jako my. Agenta, którego nazwa zawiera myślnik, kropkę lub spację, nie da się niezawodnie wspomnieć — także przez autouzupełnianie, które wstawia nazwę jako zwykły tekst. Nazywaj agentów jednym słowem albo z podkreśleniami.

Wzmianki są usuwane z tekstu, zanim dotrze on do agenta. Wiadomość, która składa się wyłącznie ze wzmianek (@alice), nie wysyła więc nikogo — daj jej coś do zrobienia.

@alice refactor the auth module. @bob write tests for it.

Obaj agenci są wysyłani równolegle do tej samej rozmowy i obaj otrzymują całą wiadomość.

Dzielą też worktree tej przestrzeni. Worktree repozytoriów są przygotowywane dla przestrzeni, a nie dla agenta; każdy agent dostaje własny nakładkowy katalog roboczy na swój AGENTS.md, skille i konfigurację, a wspólne repozytoria są podłączone w trybie odczytu i zapisu. Dwaj agenci wspomniani razem mogą więc widzieć swoje zmiany — i wchodzić sobie w drogę.

Każdy @token, który nie pasuje do agenta, jest dopasowywany do osób należących do obszaru roboczego, po nazwie użytkownika, według tej samej reguły dokładnego dopasowania lub prefiksu bez rozróżniania wielkości liter.

Rozpoznana wzmianka o osobie nie wysyła nikogo. Występuje wyłącznie w metadanych wiadomości po to, by router powiadomień mógł powiadomić tę osobę.

Nazwy agentów są zawsze sprawdzane w pierwszej kolejności, a token zajęty przez agenta nigdy nie trafia do listy członków — jedno @word może zawsze wskazywać tylko jeden podmiot.

Wysłany agent otrzymuje w swoim promptcie blok „Summons”, który podaje, kto go wezwał, i wylicza skład przestrzeni — pozostałych agentów (oznaczonych jako najwyższego poziomu lub podwładnych) oraz osoby należące do przestrzeni — dzięki czemu wie, komu może przekazać pracę. Blok mówi mu też, że wspomnienie innego agenta w odpowiedzi budzi tego agenta, a wspomnienie samego siebie jest ignorowane.

Agent może przekazać pracę w swojej własnej odpowiedzi. Gdy tura kończy się czysto, wzmianki w jej tekście są rozwiązywane, a wspomniani agenci zostają dodani do przestrzeni i wysłani do tej samej rozmowy, z tą wspominającą turą jako ich promptem. Tura, która się nie powiodła albo została przerwana, nikogo nie budzi — zatrzymała się w połowie myśli.

Zasady są celowo surowsze niż w kompozytorze, bo nikt nie obserwuje, by poprawić błędne trafienie:

  • Tylko dokładne nazwy. Bez dopasowania prefiksu. Gdy @arch wpisze człowiek, dociera do architect; od agenta nie dociera do nikogo. Nazwa pasująca do dwóch agentów też nie dociera do nikogo.
  • Kod to nie proza. Wzmianki wewnątrz bloków ogrodzonych albo `backticks` są ignorowane, więc cytowanie adnotacji @Override albo polecenia pip install foo@1.2 jest bezpieczne. Niezamknięty blok ogrodzony wygasza wszystko po nim.
  • @ sklejone z poprzednim tokenem nie jest wzmianką — sam@host.com, pkg/@scope i node@20 nie wskazują nikogo.
  • Myślniki są zachowywane, więc @code-reviewer wskazuje sam siebie, a nie token code.
  • Co najwyżej trzech agentów na turę. Agent, który wymienia w podsumowaniu sześciu członków zespołu, tylko ich wymienia, a nie wzywa.

Łańcuch wybudzeń jest ograniczany tak samo jak delegowanie: głębokość 3, a agent znajdujący się już w łańcuchu nie może zostać przez niego obudzony ponownie (żadnego A → B → A). Uporządkowana para podlega też limitowi częstości między łańcuchami. Odrzucone wybudzenie publikuje w rozmowie komunikat systemowy, który mówi, która wzmianka nie została dostarczona i dlaczego — nierozpoznana nazwa tego nie robi, bo w przeciwnym razie każde @ w zdaniu opowiadałoby samo o sobie.

Do przekazania pracy, które nie może zależeć od prozy — żądania/odpowiedzi albo dotarcia do agenta spoza przestrzeni — użyj zamiast tego narzędzi send_to_agent, ask_agent i delegate_task.