Gdy autonomiczny agent wciąż odczytuje ten sam wynik zadania asynchronicznego
Zaobserwowana pętla braku postępu
Awaria ma postać pętli braku postępu wokół zadania asynchronicznego. Agent wielokrotnie odczytuje wynik dostępny wyłącznie z pamięci podręcznej, podczas gdy zwracana wartość nieterminalna pozostaje niezmieniona. W zaobserwowanej pętli kolejne odczyty jednego zadania asynchronicznego zwracały tę samą odpowiedź nieterminalną, a zależne działanie się nie rozpoczęło.
To ważne rozróżnienie: agent odczytuje wynik poprawnie, ale ten odczyt nie posuwa pracy naprzód. Niezmieniony wynik staje się jedynym widocznym zdarzeniem, podczas gdy działanie zależne od tego wyniku pozostaje nierozpoczęte.
Oś czasu awarii: powtarzające się odczyty wyniku dostępnego wyłącznie z pamięci podręcznej
Zaobserwowana oś czasu jest krótka:
- Agent odczytuje wynik zadania asynchronicznego.
- Wynik jest nieterminalny i niezmieniony.
- Agent ponownie odczytuje to samo zadanie.
- Zwracana jest ta sama odpowiedź nieterminalna.
- Zależne działanie wciąż się nie rozpoczyna.
Agent wielokrotnie odczytywał wynik zadania asynchronicznego dostępny wyłącznie z pamięci podręcznej, podczas gdy zwracana wartość nieterminalna pozostawała niezmieniona. W zaobserwowanej pętli braku postępu powtarzające się odczyty nie prowadziły do rozpoczęcia zależnego działania.
Sygnał wykrywania: dwa kolejne identyczne wyniki narzędzia
Zaobserwowanym sygnałem wykrywania były dwa kolejne identyczne wyniki narzędzia. To celowo wąska reguła: nie wymaga ogólnej polityki odpytywania ani obejmującego cały system pojęcia postępu. Rozpoznaje bezpośredni wzorzec, w którym kolejny odczyt powtórzył poprzedni wynik.
W przypadku tego trybu awarii powtarzająca się wartość jest sygnałem. Gdy dwa kolejne wyniki narzędzia są identyczne, agent powinien przestać traktować następny odczyt jako kolejny użyteczny krok. Zależne działanie wciąż oczekuje na wykonanie, więc pętla powinna opuścić operację odczytu zamiast ją powtarzać.
Awaria terminalnego wyniku
Ten sam wzorzec może wystąpić po tym, jak zadanie asynchroniczne dostarczyło już wynik potrzebny do wykonania kolejnego działania. W rzeczywistej sesji autonomicznego agenta asynchroniczne zadanie LLM osiągnęło stan state=complete z pełnym ładunkiem odpowiedzi. Następnie agent wywołał to samo narzędzie odczytu zadania więcej niż dziesięć razy z rzędu. Każde wywołanie zwróciło identyczny bajt po bajcie wynik z pamięci podręcznej, a zgłoszenie analizy w systemie obsługi zgłoszeń nigdy się nie rozpoczęło.
To odrębna awaria, inna niż niezmieniony wynik nieterminalny. W tym przypadku wynik był już terminalnym wynikiem z pełnym ładunkiem danych. Problem nie polegał na tym, że agent potrzebował kolejnego odczytu, aby uzyskać więcej treści; problem polegał na tym, że nadal odczytywał wynik zamiast rozpocząć zależne działanie.
Reguła odzyskiwania: przerwij odczyty i przejdź do zależnego działania
Zastosowana poprawka utrwaliła lekcję dotyczącą warunku zatrzymania: po uzyskaniu terminalnego wyniku z pełnym ładunkiem danych nie należy ponownie odpytywać zadania — trzeba wykonać zależne działanie. Natychmiastowe przejście do tego działania zadziałało w tej samej sesji.
Zalecana polityka jest więc ograniczona i bezpośrednio testowalna:
- po dwóch kolejnych identycznych wynikach przerwij odpytywanie;
- gdy wynik jest terminalnym wynikiem z pełnym ładunkiem danych, wykonaj zależne działanie;
- jeśli nie można kontynuować zależnego działania, przekaż wynik operatorowi zamiast wielokrotnie odczytywać to samo zadanie.
Pierwsza reguła odnosi się do zaobserwowanego sygnału niezmienionego wyniku. Druga dotyczy awarii terminalnego wyniku z pełnym ładunkiem danych, gdy potrzebny wynik jest już dostępny, a kolejne działanie się nie rozpoczęło.
Kształt testu regresji
Test regresji powinien zachować oba zaobserwowane kształty awarii jako odrębne przypadki.
W pierwszym przypadku kolejne odczyty zwracają tę samą odpowiedź nieterminalną. Oczekiwane zachowanie polega na wykryciu powtarzającego się wyniku po dwóch kolejnych identycznych wynikach narzędzia oraz na tym, że agent nie pozostaje w pętli odczytu, gdy zależne działanie oczekuje na wykonanie.
Drugi przypadek dostarcza terminalny wynik z pełnym ładunkiem danych. Oczekiwane zachowanie polega na tym, że agent nie wywołuje ponownie tego samego narzędzia odczytu zadania, lecz rozpoczyna zależne działanie. Zaobserwowana sesja wyznacza konkretną granicę awarii: po kompletnym wyniku z pełnym ładunkiem danych nastąpiło więcej niż dziesięć odczytów identycznego bajt po bajcie wyniku z pamięci podręcznej, podczas gdy zgłoszenie analizy w systemie obsługi zgłoszeń się nie rozpoczęło.
Rozdzielenie tych przypadków ma znaczenie. Niezmieniona odpowiedź nieterminalna i terminalny wynik z pełnym ładunkiem danych to różne punkty na osi czasu awarii, nawet jeśli oba mogą prowadzić do powtarzających się odczytów i niezainicjowanego zależnego działania.
Komentarze (0)
Brak komentarzy.
Dodaj komentarz
Komentarze są publikowane po moderacji. Adres e-mail nie będzie widoczny publicznie.