Obserwowalność agentów AI: 7 zabezpieczeń do monitorowania agentów AI w środowisku produkcyjnym
InfoWorld opublikowało 24 marca 2026 roku artykuł, który każdy zespół inżynieryjny i DevOps wdrażający agencje AI powinien przeczytać: „7 zabezpieczeń dla obserwowalnych agencji AI". Artykuł przedstawił framework, do którego branża się konwergowała — zestaw operacyjnych zabezpieczeń odróżniających organizacje运行 agencji AI pod kontrolą od organizacji, które mają nadzieję, że ich agencje AI zachowują się zgodnie z oczekiwaniami.
Różnica między tymi dwoma stanami przekłada się na wyniki biznesowe. Agencja AI działająca bez zabezpieczeń observowalności może kaskadowo rozprzestrzeniać awarie w połączonych systemach, zanim ktokolwiek to zauważy. Agencja AI działająca ze zabezpieczeniami observowalności może zostać wykryta, skorygowana i odzyskana, zanim małe problemy staną się dużymi.
Ten artykuł to przewodnik praktyka po observowalności agencji AI w 2026 roku. Wyjaśnia, dlaczego observowalność agencji AI fundamentalnie różni się od tradycyjnego monitorowania oprogramowania, omawia 7 zabezpieczeń nazwanych przez InfoWorld, przedstawia 10 kryteriów release'u, które powinny towarzyszyć każdemu wdrożeniu produkcyjnemu, analizuje krajobraz narzędzi observowalności i daje praktyczną mapę drogową budowy stacka observowalności.
Dlaczego observowalność agencji AI różni się od tradycyjnego monitorowania oprogramowania
Tradycyjne monitorowanie oprogramowania oparte jest na determinizmie. Wiesz, co oprogramowanie ma robić. Możesz logować wejścia, wyjścia i błędy. Gdy coś idzie nie tak, logi mówią ci, co się stało. Tryby awarii są znane i ograniczone.
Agencje AI łamią ten model w sposób, do którego tradycyjne narzędzia monitorujące nie zostały zaprojektowane.
Wyjścia są probabilistyczne, nie deterministyczne. To samo wejście do agencji AI może produkować różne wyjścia w różnym czasie — nie z powodu błędu, ale z powodu sposobu, w jaki model generuje odpowiedzi. Tradycyjne monitorowanie zakłada „to samo wejście → to samo wyjście" jako bazę. Agencje AI nie dają ci tej bazy.
Tryby awarii są emergentne. Tradycyjne oprogramowanie awarii w sposób, który możesz przewidzieć i dla którego możesz pisać monitory. Agencje AI mogą awarii w sposób, którego nie można było przewidzieć — nie z powodu błędu w kodzie, ale z powodu kontekstu, promptu lub interakcji między rozumowaniem agenta a wejściem, którego nikt nie przewidział. Tryb awarii jest odkrywany, nie definiowany.
Decyzje agenta są trudniejsze do interpretacji. Tradycyjny log oprogramowania pokazuje dokładnie, co kod zrobił. Log agencji AI pokazuje, co agent zdecydował — nie zawsze jasne, dlaczego. Zrozumienie, czy decyzja była prawidłowa czy błędna, wymaga kontekstu, który log może nie zawierać.
Systemy wieloagentowe komplikują problem. Gdy wiele agencji AI działa sekwencyjnie lub równolegle, awaria jednego agenta propaguje się do innych. Śledzenie problemu w systemie wieloagentowym wymaga możliwości rozproszonego śledzenia, których większość tradycyjnych narzędzi APM nie zapewnia.
YourStory omówiło ten dokładnie problem 24 marca 2026 roku — „Od prototypu do produkcji: jak uczynić agentic AI niezawodnym" — dokumentując, że luka między agencjami AI, które działają w demo, a agencjami AI, które działają niezawodnie w produkcji, to dokładnie ta luka observowalności. Organizacje, które ją zamykają jako pierwsze, to te, które traktują observowalność jako wymóg pierwszorzędny przy wdrożeniu, nie jako dodatek.
Artykuł InfoWorld z 23 stycznia 2026 roku — „Agentic AI ujawnia, co robimy źle" — udokumentował, że awarie observowalności nie są przypadkiem brzegowym. Są wzorcem systemowym. Organizacje, które nie inwestują w infrastrukturę observowalności, to te, których awarie agencji AI stają się publiczne, zanim jeszcze staną się wewnętrzne.
7 zabezpieczeń dla obserwowalnych agencji AI
Oto framework, który InfoWorld opublikowało 24 marca 2026 roku, z dodanymi szczegółami implementacyjnymi dla każdego zabezpieczenia.
Zabezpieczenie 1: Kompleksowe logowanie
Każda akcja agencji AI powinna być logowana z wystarczającym kontekstem do rekonstrukcji tego, co się wydarzyło — nie tylko tego, co agent wyprowadził, ale co otrzymał jako wejście, jaka wersja modelu była uruchomiona, jaki poziom pewności przypisał swojemu wyjściu i jakie działania podjął w rezultacie.
Minimalny wpis logu dla akcji agencji AI powinien zawierać: unikalny identyfikator śledzenia, znacznik czasu, podsumowanie wejścia (wystarczająco dużo, by zrozumieć, o co pytano), model i wersję, podsumowanie wyjścia, wynik pewności (jeśli dostępny), podjęte działanie (czy zaktualizował rekord? wysłał e-mail? przekierował zgłoszenie?) oraz wszelkie wywołane efekty systemowe lub downstream.
Praktycznym wyzwaniem przy kompleksowym logowaniu jest wolumen. Agencje AI mogą generować dużą liczbę wpisów logów na interakcję, gdy uwzględnisz wszystkie powyższe elementy. Rozwiązaniem nie jest logowanie mniej — jest inteligentne logowanie, z danymi strukturalnymi wspierającymi efektywne wyszukiwanie i tierowanie storage dla historycznego przechowywania.
Zabezpieczenie 2: Rozproszone śledzenie
Gdy pojedyncze żądanie użytkownika wyzwala wiele agencji AI sekwencyjnie lub równolegle — jak ma to miejsce we wzorcach orkiestracji wieloagentowej — potrzebujesz rozproszonego śledzenia, by zrozumieć pełny cykl życia żądania. Który agent obsłużył wejście jako pierwszy? Co przekazał następnemu agentowi? Gdzie wystąpił błąd lub nieoczekiwane wyjście?
Rozproszone śledzenie przypisuje pojedynczy identyfikator śledzenia do żądania użytkownika i propaguje ten identyfikator przez każdego agenta obsługującego żądanie. Gdy coś idzie nie tak, możesz wyszukać śledzenie i zobaczyć dokładnie, co wydarzyło się na każdym etapie.
To ten sam wzorzec, który wypracowało inżynierstwo systemów rozproszonych dla mikrousług — i jest bezpośrednio stosowalny do systemów AI wieloagentowych. Bez niego debugowanie awarii wieloagentowej to archeologia.
Zabezpieczenie 3: Monitorowanie wydajności
Agencje AI mają charakterystyki wydajnościowe, których tradycyjne monitorowanie oprogramowania nie obejmuje: opóźnienie na krok, zużycie tokenów na interakcję, koszt na transakcję oraz wolumen i współczynniki błędów wywołań API.
Te metryki mają znaczenie z dwóch powodów. Po pierwsze, kontrola kosztów — operacje agencji AI mogą generować znaczące koszty zużycia tokenów, a bez monitorowania na poziomie interakcji te koszty pozostają niewidoczne do momentu otrzymania miesięcznego rachunku. Po drugie, wykrywanie anomalii — nagły skok średniego opóźnienia lub zużycia tokenów często poprzedza problem z jakością lub stabilnością.
Monitorowanie wydajności dla agencji AI powinno obejmować: time-to-first-token (jak szybko agent zaczyna odpowiadać), całkowity czas trwania interakcji, zużyte tokeny na interakcję, szacunkowy koszt na interakcję, współczynniki błędów API oraz wyzwolone fallbacki/powtórzenia.
Zabezpieczenie 4: Wykrywanie dryfu
Dryf zachowania modelu to jeden z najbardziej podstępnych problemów w produkcyjnych systemach AI. Wyjścia modelu zmieniają się w czasie — nie z powodu zmiany kodu ani wdrożenia, ale z powodu przesunięcia dystrybucji otrzymywanych wejść lub subtelnego przesunięcia wzorców rozumowania modelu w wyniku dryfu kontekstowego.
Wykrywanie dryfu to praktyka monitorowania dystrybucji wyjść agencji AI w czasie i alertowania, gdy dystrybucja przesuwa się poza zdefiniowany próg. To jest odrębne od monitorowania wydajności — system nie jest wolniejszy ani bardziej awaryjny w oczywisty sposób. Produkuje wyjścia, które są subtelnie inne od tych, które produkował wcześniej.
„Navigating 9 Generative AI Challenges" IBM z 17 marca 2026 roku konkretnie wskazało wykrywanie dryfu jako jedno z wyzwań operacyjnych, które organizacje niedoszacowują — i które infrastruktura observowalności jest zaprojektowana, by wyłapywać.
Praktyczny mechanizm: zdefiniuj rozkład statystyczny wyjść, których oczekujesz dla kluczowych zadań agenta. Śledź rzeczywistą dystrybucję w czasie. Alertuj, gdy dywergencja Kullbacka-Leiblera lub porównywalna odległość statystyczna między bieżącą a bazową dystrybucją przekracza próg. To wychwytuje dryf, zanim wyprodukuje widocznie błędne wyjścia.
Zabezpieczenie 5: Automatyczne wycofanie
Gdy metryki agencji AI przekraczają zdefiniowane progi — współczynnik błędów, opóźnienie, wskaźniki dryfu lub koszt na transakcję — system powinien móc automatycznie wycofać się do znanej wcześniej dobrej wersji lub skierować do awaryjnego fallbacku bez wymagania interwencji człowieka do wyzwolenia reakcji.
Automatyczne wycofanie to operacyjne uzupełnienie wykrywania dryfu: wykryłeś, że coś jest nie tak; teraz automatycznie dochodzisz do siebie, zamiast czekać na diagnozę człowieka.
Wymagania techniczne dla automatycznego wycofania obejmują: wersjonowane konfiguracje agentów (tak, by można było wrócić do znanego stanu), mechanizm przełączania wersji agentów bez przestojów, fallbackowe routing do agentów ludzkich, gdy automatyczne odzyskiwanie nie jest wystarczające, oraz alerty po incydencie, by zespół wiedział, co się stało i mógł zbadać sprawę.
Wymaganie organizacyjne: ktoś jest właścicielem przeglądu po wycofaniu. Automatyczne wycofanie obsługuje natychmiastowe odzyskiwanie. Zespół musi zrozumieć, co wywołało wycofanie i adresować przyczynę główną przed ponownym wdrożeniem.
Zabezpieczenie 6: Punkty kontrolne z człowiekiem w pętli
Nie każda akcja agencji AI wymaga zatwierdzenia człowieka przed wykonaniem. Ale dla akcji znaczących — zatwierdzenie transakcji finansowej, modyfikacja rekordu klienta, eskalacja wyjątku — punkt kontrolny z człowiekiem powinien być obowiązkowy przed wejściem akcji w życie.
Punkty kontrolne z człowiekiem w pętli nie są oznaką słabości AI. To mechanizm zarządzania ryzykiem, który zapobiega rozprzestrzenianiu się kosztownych błędów. Praktyczna implementacja: zdefiniuj listę kategorii akcji znaczących w operacyjnym projekcie agencji AI. Dla każdej akcji w tych kategoriach agent powinien kierować do ludzkiego zatwierdzającego przed wykonaniem. Loguj decyzję człowieka — zatwierdzenie, modyfikację lub odrzucenie — jako część pełnego śledzenia.
Korzyść operacyjna to nie tylko zarządzanie ryzykiem. Decyzje ludzkie w punktach kontrolnych dostarczają danych sygnałowych do treningu — ludzkie zatwierdzenia i odrzucenia mówią ci, jak agent powinien się zachować, co wraca do poprawy promptu i konfiguracji.
Zabezpieczenie 7: Observowalność bezpieczeństwa i dostępu
Agencje AI działające z podwyższonym dostępem — do baz danych, systemów finansowych, danych klientów lub integracji korporacyjnych — reprezentują powierzchnię bezpieczeństwa, której tradycyjne monitorowanie dostępu nie obejmuje.
Observowalność bezpieczeństwa dla agencji AI obejmuje: monitorowanie, jakie dane agent uzyskał dostęp podczas każdej interakcji, logowanie, co z tym dostępem zrobił (jakie rekordy zostały odczytane, zmodyfikowane lub usunięte), alertowanie o wzorcach dostępu odbiegających od normalnego profilu zachowania agenta oraz śledzenie, jakie klucze API, poświadczenia i uprawnienia systemowe agent wykorzystuje.
To zabezpieczenie jest bezpośrednio połączone z lukami bezpieczeństwa udokumentowanymi w AC-056 — ryzykami bezpieczeństwa agencji AI, które obejmują wstrzykiwanie promptów (prompt injection), eksfiltrację danych i nieautoryzowany dostęp do systemu. Observowalność bezpieczeństwa to sposób wykrywania tych ataków: przez ciągłe monitorowanie zachowania agenta, a nie tylko przeglądanie logów po incydencie.
Lista kontrolna release'u agencji AI — 10 kryteriów przed wdrożeniem
7 zabezpieczeń powyżej to bieżące wymagania operacyjne dla produkcyjnych agencji AI. „10 niezbędnych kryteriów release'u dla uruchamiania agencji AI" InfoWorld z 10 lutego 2026 roku dostarcza listy kontrolnej przed wdrożeniem, która powinna poprzedzać każde uruchomienie produkcyjne.
Zanim przeniesiesz agencję AI z prototypu lub stagingu do produkcji, zwaliduj każde z tych kryteriów:
-
Metryki bazowe są ustalone. Wiesz, jak wygląda „normalne" — opóźnienie, współczynnik błędów, zużycie tokenów, jakość wyjść. Te metryki są śledzone, zanim rozpocznie się ruch produkcyjny.
-
Mechanizm wycofania jest przetestowany. Zweryfikowałeś, że automatyczne wycofanie wyzwala się poprawnie i że system odzyskuje znany dobry stan bez interwencji człowieka.
-
Fallback ludzki jest przetestowany. Dla akcji znaczących zweryfikowałeś, że punkt kontrolny z człowiekiem w pętli działa — właściwa osoba jest powiadamiana, akcja jest wstrzymywana do zatwierdzenia, decyzja jest logowana.
-
Dostęp bezpieczeństwa jest ograniczony i przetestowany. Agent ma przyznany tylko minimalny wymagany dostęp. Przetestowałeś, że nie może uzyskać dostępu do systemów poza swoim zdefiniowanym zakresem.
-
Linia bazowa wykrywania dryfu jest skalibrowana. Ustanowiłeś dystrybucję bazową dla kluczowych metryk wyjściowych. Próg alertu dryfu jest ustawiony na podstawie rzeczywistych danych bazowych, nie domysłów.
-
Rozproszone śledzenie jest wdrożone. Żądania wieloagentowe niosą identyfikatory śledzenia end-to-end. Możesz wyszukać pojedyncze śledzenie i zobaczyć pełny cykl życia wieloagentowy.
-
Alerty są skonfigurowane i przetestowane. Alerty wyzwalają się, gdy progi są przekraczane. Właściwe osoby je otrzymują. Ścieżki eskalacji są udokumentowane.
-
Proces przeglądu po incydencie jest zdefiniowany. Gdy występuje incydent, istnieje udokumentowany proces rozumienia, co się stało, jaki był wpływ i co trzeba zmienić, by zapobiec powtórzeniu.
-
Proces zarządzania zmianą jest na miejscu. Zmiany konfiguracji agenta przechodzą przez proces przeglądu. Historia wersji jest utrzymywana. Zmiany są testowane w stagingu przed wdrożeniem produkcyjnym.
-
Zatwierdzenie interesariuszy biznesowych jest uzyskane. Zespoły i liderzy, którzy są właścicielami wyników biznesowych dotkniętych przez agencję AI, przeglądnęli plan wdrożenia i zatwierdzili go. Rozumieją, co agent będzie robić, co może pójść nie tak i jaka jest ścieżka eskalacji.
Krajobraz narzędzi observowalności dla agencji AI w 2026 roku
Ekosystem narzędzi do observowalności agencji AI dojrzewa szybko. Porównanie AIMultiple z 29 stycznia 2026 roku „15 narzędzi do observowalności agencji AI w 2026 roku" zidentyfikowało kilka kategorii narzędzi, które adresują różne warstwy stacka observowalności.
Platformy observowalności dedykowane agentom — AgentOps, Langfuse i podobne narzędzia — są zbudowane specjalnie do monitorowania agencji AI. Obsługują specyfiki logowania agencji AI (identyfikatory śledzenia, śledzenie wersji modelu, zużycie tokenów) i dostarczają dashboardy dostrojone do workflowów agencji AI. Jeśli prowadzisz produkcyjne agencje AI, dedykowane narzędzie do observowalności agentów jest prawdopodobnie twoją główną inwestycją.
Platformy MLOps z wsparciem dla agentów — Weights & Biases, Arize Phoenix i Gantry — oferują możliwości observowalności AI, w tym wykrywanie dryfu, monitorowanie wydajności i analizę wydajności modelu. To właściwy wybór, jeśli już zainwestowałeś w platformę MLOps i potrzebujesz, by monitorowanie agencji AI integrowało się z istniejącą infrastrukturą observowalności.
Niestandardowe stacki observowalności — dla organizacji o określonych wymaganiach integracyjnych, niestandardowy stack zbudowany na infrastrukturze OpenTelemetry — zbierający śledzenia i logi — z backendem z możliwością wyszukiwania jak Elasticsearch lub Splunk oraz warstwą wizualizacji jak Grafana, zapewnia maksymalną elastyczność. Wadą jest nakład inżynieryjny: budowanie i utrzymywanie niestandardowego stacka observowalności wymaga dedykowanych zasobów.
Praktyczna rekomendacja: zacznij od dedykowanej platformy observowalności agentów (AgentOps lub Langfuse to silne punkty wejścia) i rozszerzaj o integrację z platformą MLOps w miarę skalowania portfolio agencji AI. Nie buduj niestandardowego stacka, chyba że masz konkretne wymagania, których dedykowane narzędzia nie mogą spełnić.
Typowe produkcyjne awarie agencji AI, które observowalność by wychwyciła
Analiza InfoWorld ze stycznia 2026 roku „co robimy źle z agentic AI" udokumentowała kilka wzorców awarii, które zabezpieczenia observowalności by wykryły wcześnie. Oto jak każda z nich by się potoczyła przy obecności 7 zabezpieczeń.
Awaria: Cicha kaskada przez workflow wieloagentowy. Agent badawczy w pipeline wieloagentowym zaczął produkować subtelnie błędne podsumowania — na tyle błędne, że powodowały, iż downstreamowi agenci podejmowali nieprawidłowe decyzje. Problem pozostał niewykryty przez 11 dni, ponieważ nie było rozproszonego śledzenia przez pipeline. Logi każdego agenta wyglądały rozsądnie w izolacji. Kaskada była niewidoczna.
Co by wykryła observowalność: rozproszone śledzenie pokazałoby nieprawidłowe podsumowania propagujące się przez pipeline. Monitorowanie wydajności zasygnalizowałoby zwiększony współczynnik błędów downstream. Wykrywanie dryfu zalertowałoby o przesunięciu dystrybucji wyjść agenta badawczego.
Awaria: Skok kosztów z pętli agenta. Błąd konfiguracji spowodował, że agent AI wszedł w pętlę — wielokrotnie odpytując te same dane i regenerując wyjścia. Każda iteracja zużywała tokeny. Pętla działała przez 6 godzin, zanim ktoś zauważył anomalię w wolumenie wywołań API. Koszt wyniósł 14 000 USD.
Co by wykryła observowalność: monitorowanie wydajności zasygnalizowałoby anomalię w zużyciu tokenów w ciągu 15 minut. Automatyczne wycofanie wyzwoliłoby się, gdy próg kosztu na minutę zostałby przekroczony.
Awaria: Awaria eskalacji powodująca ciche odejście klientów. Agent obsługi klienta AI nie eskalował 23% złożonych zgłoszeń — nie w sposób widoczny, ale dlatego, że jego logika eskalacji subtelnie dryfowała i kierowała te zgłoszenia z powrotem do standardowej kolejki zamiast do agentów ludzkich. Dotknięci klienci otrzymali nieadekwatne odpowiedzi i odeszli bez skargi.
Co by wykryła observowalność: monitorowanie z człowiekiem w pętli zasygnalizowałoby podwyższony współczynnik eskalacji. Kompleksowe logowanie umożliwiłoby analizę kohortową klientów rozwiązanych przez AI vs. przez ludzi. To wzorzec cichego odejścia dokumentowany w AC-066.
Budowanie stacka observowalności agencji AI — praktyczna mapa drogowa
Nie budujesz wszystkich 7 zabezpieczeń jednocześnie. Oto podejście sekwencyjne.
Faza 1: Fundament — logowanie i śledzenie
Zacznij tutaj. Kompleksowe logowanie i rozproszone śledzenie to fundament, na którym każde inne zabezpieczenie się buduje. Bez widoczności na poziomie śledzenia tego, co agenci robią, nic innego nie jest możliwe do action.
Implementuj: strukturalne logowanie z identyfikatorami śledzenia dla każdej akcji agenta, propagację rozproszonych śledzeń dla workflowów wieloagentowych, agregację logów do store z możliwością wyszukiwania.
Faza 2: Widoczność wydajności
Dodaj monitorowanie wydajności na szczycie fundamentu logowania. Metryki opóźnienia, zużycia tokenów i kosztu na interakcję zamieniają logi w operacyjny dashboard.
Implementuj: dashboardy opóźnienia i tokenów per agent, śledzenie kosztu na interakcję, alertowanie anomalii przy przekroczeniu progów wydajności.
Faza 3: Jakość i wykrywanie dryfu
Przy logowaniu i monitorowaniu wydajności na miejscu, dodaj wykrywanie dryfu, by wychwycić degradację jakości, zanim wyprodukuje widocznie błędne wyjścia.
Implementuj: kalibrację dystrybucji bazowej wyjść, statystyczne monitorowanie dryfu z alertami, integrację z procesem zarządzania incydentami.
Faza 4: Automatyczne odzyskiwanie
Dodaj możliwość automatycznego wycofania, by system mógł odzyskiwać się z anomalii bez wymagania interwencji człowieka na ścieżce krytycznej.
Implementuj: wersjonowane konfiguracje agentów, wyzwalacze i wykonanie automatycznego wycofania, fallbackowe routing do ludzi, alertowanie po wycofaniu.
Faza 5: Observowalność bezpieczeństwa i dostępu
Zamknij kontrolę dostępu i dodaj observowalność bezpieczeństwa, by monitorować wzorce udokumentowane w AC-056 — ryzyka bezpieczeństwa obejmujące nieautoryzowany dostęp do danych i próby wstrzykiwania promptów.
Implementuj: scoping minimalnego dostępu dla wszystkich agentów, monitorowanie wzorców dostępu, progi alertów bezpieczeństwa, generowanie logów audytowych.
„Observability Trends 2026" IBM z 20 stycznia potwierdziło, że inwestycje przedsiębiorstw w observowalność przyspieszają — i że observowalność agencji AI staje się konkretną kategorią, nie podzbiorem ogólnej observowalności oprogramowania. Organizacje inwestujące w infrastrukturę teraz budują fundament operacyjny dla następnej generacji wdrożeń AI.
Podsumowanie
Latanie bez przyrządów jest możliwe — dopóki nie jest. To samo dotyczy wdrożeń agencji AI bez observowalności.
Siedem zabezpieczeń, które InfoWorld nazwało 24 marca, to nie aspiracyjne najlepsze praktyki. To minimalne wymagania operacyjne dla każdego produkcyjnego wdrożenia agencji AI. Logowanie, śledzenie, monitorowanie wydajności, wykrywanie dryfu, automatyczne wycofanie, punkty kontrolne z człowiekiem w pętli i observowalność bezpieczeństwa — razem dają ci widoczność pozwalającą wychwycić problemy, zanim się skaskadowią, odzyskać się z awarii, zanim się skomplikują, i wykazać interesariuszom biznesowym, że twoje agencje AI robią to, co mają robić.
Organizacje, które teraz budują tę infrastrukturę observowalności, to te, które będą mogły skalować wdrożenia agencji AI z pewnością. Te, które tego nie robią, akumulują ryzyko operacyjne, które w końcu stanie się widoczne w sposób, którego nikt nie chce.
Wdrażasz agencje AI bez zabezpieczeń observowalności? Porozmawiaj z Agencie o ocenie gotowości produkcyjnej — obejmującej listę kontrolną 7 zabezpieczeń i priorytetową mapę drogową dla twojego stacka observowalności → [/contact]