Zasady bezpieczeństwa i ochrony agentów SI w Jirze

Zabezpieczenia umożliwiają wdrażanie SI na dużą skalę poprzez budowanie zaufania do autonomicznych przepływów pracy. Te, które działają, są wbudowane w przepływy pracy, dzięki czemu system je egzekwuje, zamiast polegać na agencie.

W Jirze tym systemem jest ten, w którym zespół już realizuje swoją pracę. Jira zapewnia agentowi odpowiedni dostęp za pomocą uprawnień, punktów kontrolnych, w których osoby podejmują decyzje podczas przejść w przepływie pracy, oraz rejestru wszystkich działań agenta dotyczących zgłoszenia. Teamwork Graph dostarcza agentowi odpowiedni kontekst do podjęcia działania.

W tym przewodniku omówiono ryzyka, którym zapobiegają zabezpieczenia agentów, oraz sposoby ich egzekwowania w Jirze, aby umożliwić bezpieczne i odpowiedzialne skalowanie SI. Dzięki temu agenty mogą działać bardziej autonomicznie w pracy zespołu — od codziennych bieżących zadań po projekty o większej wartości — bez utraty kontroli. Autonomia na taką skalę opiera się na czterech zasadach zabezpieczeniach w Jirze, z wykorzystaniem przepływów pracy, uprawnień i reguł, które zespół już stosuje

  • Zakres dostępu Określ, do jakich danych agent ma dostęp, z jakich narzędzi może korzystać i gdzie może działać, korzystając z istniejących uprawnień Jiry.

  • Ograniczenie ryzykownych połączeń Wykorzystaj zmiany statusu w przepływie pracy, aby wymagać zatwierdzenia przez osobę przed realizacją działań o dużym wpływie.

  • Przegląd danych wyjściowych Sprawdź, co agent wygenerował podczas standardowego przeglądu pull requesta przed dostarczeniem.

  • Zachowanie zapis. Każde działanie agenta trafia do historii zgłoszenia wraz z informacją, kto je zatwierdził.

Czym są zabezpieczenia w inżynierii agentowej?

Zabezpieczenia agenta to mechanizmy kontrolne, które zapewniają, że praca agenta SI jest bezpieczna, zgodna z założeniami i odpowiednio udokumentowana: określają, do czego agent ma dostęp, kiedy wymagana jest interwencja człowieka oraz jakie działania zostały zarejestrowane. Zabezpieczenie jest egzekwowane przez system, w którym pracuje agent, a nie pozostawione do samodzielnego przestrzegania przez agenta.

Nie można zapewnić bezpieczeństwa agenta jedynie poprzez wydawanie mu Instrukcji dotyczących zachowania, ponieważ Instrukcje mogą zostać zapomniane, źle zrozumiane lub zignorowane. Prawdziwe zabezpieczenia znajduje się ponad agentem, w jego środowisku, gdzie granica jest zachowana niezależnie od tego, jakie polecenia otrzymuje agent. To ta sama zasada, na której działa już Twój zespół — to system decyduje, co jest możliwe, a nie osoba, która ma przestrzegać zasad.

W praktyce zabezpieczenia agentów obejmują kilka powiązanych obszarów:

  • Dostęp i zakres. Dane, do których agent ma dostęp, narzędzia, z których może korzystać, oraz miejsca, w których może działać.

  • Zadania z ograniczeniami. Za które zgłoszenia agent może przejąć pełną odpowiedzialność, a które pozostają przypisane do osoby.

  • Zatwierdzenie z udziałem człowieka. Punkty kontrolne, w których następuje przegląd lub zatwierdzenie przed przejściem zgłoszenia do kolejnego etapu.

  • Przegląd danych wyjściowych. Pozwala zweryfikować rezultaty pracy agenta przed wysyłką.

  • Rozliczalność i audyt. Rejestr działań agenta, ich przyczyn oraz osób zatwierdzających.

  • Nadzór. Stałe mechanizmy kontrolne, które zapewniają spójność działań mimo wzrostu intensywności wykorzystania agentów.

Razem zabezpieczenia te budują zaufanie do agentowych przepływów pracy. Pozwalają zespołowi przekazywać agentom większą odpowiedzialność bez utraty kontroli, ponieważ za rezultat nadal odpowiada dana osoba.

Dlaczego agenty oparte na sztucznej inteligencji potrzebują zabezpieczeń?

Agenty podejmują działania. W przeciwieństwie do chatbota, który jedynie sugeruje, agent może zmieniać kod, przenosić zgłoszenia i uruchamiać rzeczywiste działania w narzędziach. To właśnie ta autonomia sprawia, że są przydatne, ale też z tego powodu potrzebują zabezpieczeń: im więcej agent może zrobić samodzielnie, tym ważniejsze jest, aby jego działania były zgodne z założeniami, podlegały weryfikacji i były rozliczalne.

Najważniejsze zagrożenia, którym przeciwdziałają zabezpieczenia oraz obszary, w których niezbędna pozostaje ludzka ocena:

  • Brak zgodności: agent optymalizuje nie to, co powinien, lub odchodzi od zadania.

  • Niskiej jakości lub nieprawidłowe dane wyjściowe: praca, która sprawia wrażenie ukończonej, ale nie spełnia oczekiwań, w tym zhalucynowane kod lub fakty.

  • Zbyt szeroki dostęp: agent uzyskujący dostęp do danych lub systemów, do których nie powinien mieć uprawnień.

  • Niesprawdzone, nieodwracalne działania: zmiany o dużym wpływie, których nie można łatwo cofnąć, takie jak wdrożenie do środowiska produkcyjnego lub usunięcie danych, wymagające zatwierdzenia przez człowieka przed ich wprowadzeniem.

  • Brak rozliczalności lub przejrzystości: bez rejestru nie można sprawdzić, jakie działania podjął agent ani kto je zatwierdził.

  • Niekontrolowane koszty: agenty mogą zużywać tokeny i przeprowadzać obliczenia w niekontrolowany sposób, dlatego wydatki wymagają limitów, podobnie jak każdy inny zasób.

Zabezpieczenie działa tylko wtedy, gdy jest egzekwowane przez system, a nie przez agenta. Informowanie agenta, czego nie powinien robić, nie stanowi zabezpieczenia, ponieważ agent może otrzymać taką informację, a mimo to wykonać daną czynność bez Twojej wiedzy. Prawdziwe zabezpieczenia funkcjonują ponad agentem, w środowisku, w którym działa, dzięki czemu niepożądane działania są niemożliwe, a nie tylko niepochwalane.

Właśnie dlatego zabezpieczenia stanowią warunek wstępny autonomii, a nie jej ograniczenie. Zespoły, które mają zaufanie do ustalonych granic, mogą powierzać agentom większą odpowiedzialność przy słabszej bezpośredniej kontroli. Te, które nie mogą tego robić, utracą tempo, z myślą o którym zaczęły korzystać z agentów.

Jak bezpiecznie nadzorować agenty oparte na sztucznej inteligencji w Jirze?

Jeśli zabezpieczenie musi funkcjonować ponad agentem w systemie, w którym on działa, to ważny jest właśnie ten system, a w przypadku pracy inżynierskiej jest nim Jira. Gdy agenty działają w ramach System of Work firmy Atlassian, uzyskują dostęp do danych i zgłoszeń za pośrednictwem tych samych uprawnień w Jirze, z których korzysta już zespół, a także istniejących przepływów pracy i ścieżki audytu. To, co agent może zrobić w swoim własnym środowisku, nadal jest kontrolowane przez niego samego, dlatego Jira nadzoruje dostęp do zgłoszenia, natomiast uprawnienia na poziomie agenta decydują o narzędziach, które on uruchamia.

Samodzielnie agent kodowania kontroluje wyłącznie własne działania. Jira nadzoruje pracę, dzięki czemu zabezpieczenia obowiązują w jednym miejscu wszystkich agentów i można łatwo sprawdzić, które zagrożenie jest obsługiwane przez każdego z nich.

To egzekwowanie odbywa się głównie w przepływach pracy. Statusy, zmiany statusu i reguły, które kierują pracę do poszczególnych członków zespołu, kierują ją również do agentów, określają, które zmiany statusu może przeprowadzić dany agent, oraz wstrzymują zmiany o dużym wpływie w celu ich zatwierdzenia.

Dostęp: co można kontrolować w Jirze

Pierwszym elementem kontroli jest zakres: określa, z jakimi danymi, narzędziami i projektami agent może pracować. To zabezpieczenie przed zbyt szerokim dostępem. W Jirze ustawia się to w taki sam sposób, jak dla każdego kolegi z zespołu, dzięki czemu rozwiązanie jest już znane i można je dostosować do własnych potrzeb.

  • Jak to działa w Jirze: wybiera się tożsamość, której agent będzie używał. Domyślnie działa w imieniu osoby, która z niego korzysta, uzyskując dostęp wyłącznie do tych danych, projektów i zgłoszeń, do których dostęp ma ta osoba. Można również przypisać agentowi osobne konto i uprawnienia, dzięki czemu jego dostęp nie będzie zależał od żadnej konkretnej osoby. Administratorzy decydują, które agenty są aktywne i gdzie. To agent, a nie Jira określa, co może on zrobić za pomocą własnych narzędzi. Dostęp powinien być szeroki lub ściśle ograniczony, a następnie stopniowo rozszerzany wraz ze wzrostem zaufania.

  • Mechanizmy kontroli, które można dostosowaćTo te same mechanizmy zarządzania uprawnieniami, które już są stosowane wobec osób: schematy uprawnień i role projektowe określają, co agent może robić w projekcie, a zabezpieczenie zgłoszenia ogranicza, które konkretne zgłoszenia widzi. Ograniczenie któregokolwiek z nich ogranicza dostęp agenta — nie jest wymagany żaden system dedykowany agentowi.

  • Udostępniaj zasoby potrzebne zadaniu. Agenci są zwykle najefektywniejsi, gdy mają swobodę działania, dlatego warto dostosować zakres do zadania. Należy całkowicie wyłączyć dostęp do naprawdę wrażliwych systemów.

Jak można kontrolować działania agentów w przepływie pracy?

Drugim zabezpieczeniem jest przepływ pracy: reguły określające, kiedy uruchamiany jest agent, co może robić samodzielnie oraz które żądania wymagają interwencji człowieka. To ochrona przed brakiem zgodności i nieodwracalnymi działaniami. Zasady te ustala się przy zmianach statusu, z których zespół już korzysta, dzięki czemu nadzór nie jest jedynym punktem kontrolnym na końcu procesu.

Warunek dotyczący zmiany statusu ogranicza etapy, na których agent może działać, weryfikator blokuje pracę, która nie jest gotowa, a krok zatwierdzenia wstrzymuje zmiany o dużym wpływie do czasu decyzji człowieka. Zatwierdzenie przez człowieka to tylko jedna z kilku reguł, a zadaniem jest dopasowanie każdej reguły do danego zagrożenia.

  • Jak go skonfigurować w Jirze: otwórz przepływ pracy dla danego typu zgłoszenia i dodaj agenta do zmiany statusu, np. na „W trakcie przeglądu”, aby agent uruchamiał się, gdy zgłoszenie dotrze do tego etapu. Dodanie agenta określa, kiedy zostanie uruchomiony, a nie czy wymagana jest akceptacja przez człowieka. Zatwierdzenie przez człowieka stanowi odrębny mechanizm kontroli: etap zatwierdzania w przepływie pracy blokuje zmianę statusu, a można go połączyć z własnymi Instrukcjami agenta dotyczącymi momentu przerwania w celu zadania pytania lub z regułą automatyzacji. Zmiana statusu to jeden z kilku punktów wejścia. Agent może również zostać uruchomiony, gdy:

    • zgłoszenie zostaje utworzone, dzięki czemu jest od razu klasyfikowane;

    • zmienia się etykieta lub pole albo zgodnie z harmonogramem, za pośrednictwem reguły automatyzacji;

    • działa w tle podczas rutynowych aktualizacji, takich jak przygotowywanie uwag do wydania.

  • Dopasuj bramkę do zagrożenia. Pozwól, aby prace o niskim ryzyku (np. aktualizacja zależności) były wykonywane automatycznie, poinformuj odpowiednią osobę o pracach o średnim ryzyku (np. zmiana współdzielonej konfiguracji), a w przypadku działań o wysokim ryzyku lub nieodwracalnych (np. ingerencja w środowisko produkcyjne lub usuwanie danych) wymagaj zatwierdzenia.

  • Zdecyduj, za które zadania odpowiada agent. Określenie, za co odpowiada agent, następuje przed ustawieniem punktu kontrolnego. Pozwól agentowi odpowiadać za zadania o niskim ryzyku, przekazywać osobie zadania o większym wpływie w celu dokończenia oraz pozostawiać człowiekowi najważniejsze decyzje. Pierwszą decyzją jest określenie zakresu zadania, a punktem kontrolnym jest sposób jej egzekwowania.

  • Daj agentom własne Instrukcje. Określasz, jak agent powinien się zachowywać i robić postępy w pracy, w tym które decyzje ma podejmować samodzielnie, a kiedy powinien przerwać i zadać pytanie, aby działał zgodnie z zasadami zespołu, a nie według ogólnych ustawień domyślnych.

Analiza danych wyjściowych: w jaki sposób można weryfikować efekty pracy agenta?

Trzecim zabezpieczeniem jest przegląd samego efektu pracy, podczas którego człowiek wychwytuje dane wyjściowe niskiej jakości oraz halucynacje przed ich wprowadzeniem. W przypadku agenta kodowania jest to pull request, który otwiera.

  • W Jirze: nie należy ufać danym wyjściowym agenta, dopóki nie zostaną potwierdzone przez człowieka lub istniejące mechanizmy kontroli — dokładnie tak samo, jak w przypadku kodu od nowego współautora. Praca agenta jest powiązana ze zgłoszeniem, a zmiany w kodzie pojawiają się jako pull request, który przechodzi przez standardowy proces przeglądu i scalania. Wszystko, co robi agent jest poddawane przeglądowi, który zespół już przeprowadza.

  • Zobacz pracę stojącą za danymi wyjściowymi Widzisz nie tylko ostateczny wynik. Sesje agenta w Jirze umożliwiają sprawdzenie w jednym miejscu, co i dlaczego agent zrobił, dzięki czemu recenzent ma kontekst pozwalający zrozumieć dane wyjściowe bez konieczności ich rekonstruowania.

Podpis: Przykład: zdefiniuj standardy przeglądu kodu opartego na sztucznej inteligencji w Bitbucket Cloud i egzekwuj je automatycznie przy każdym pull requeście.

Prowadzenie rzetelnej dokumentacji: kto, co i kiedy zrobił?

Czwartym zabezpieczeniem jest rejestr, czyli odpowiedź na potrzebę rozliczalności. Łączy on pracę agenta z zamiarem: co zrobił agent, dlaczego, któremu zgłoszeniu praca służyła oraz kto ją zatwierdził. To powiązanie umożliwia łatwe śledzenie i rozwiązywanie problemów, gdy coś pójdzie nie tak.

  • W Jirze: każdy agent działa pod znaną tożsamością: jako osoba, która przypisała zgłoszenie lub je skonfigurowała, korzystając z jej uprawnień, albo jako własne konto agenta z nadanymi przez Ciebie uprawnieniami. W obu przypadkach rejestr łączy każde działanie z odpowiedzialną tożsamością. Rejestr zawiera informacje o działaniach agenta oraz o osobie za niego odpowiedzialnej, prezentując je w historii zgłoszenia obok aktywności użytkowników, a zatwierdzenia są powiązane z recenzentem, który je zatwierdził. Administratorzy mogą również monitorować dzienniki audytu w poszukiwaniu nietypowej aktywności.

  • Wprowadź działania agenta lokalnego do rejestru. Śledzenie sesji agenta przenosi aktywność lokalnych agentów sztucznej inteligencji działających w IDE lub terminalach do rejestru powiązanego ze zgłoszeniem, dzięki czemu praca wykonana poza Jirą trafia do jednego spójnego rejestru. Zarejestruj się na liście oczekujących.

Jakie są najlepsze praktyki dotyczące zabezpieczeń dla agentów?

  • Dopasuj dostęp agenta do jego zadania i rozszerzaj go wraz ze wzrostem zaufania (agenty korzystają z Twoich istniejących uprawnień w Jirze).

  • Przekaż agentom jasne wytyczne dotyczące tego, jak mają postępować oraz kiedy powinny przerwać i zadać pytanie.

  • Zaleca się, aby agenty rozpoczynały od zadań niskiego ryzyka i łatwych do wycofania, zanim przejdą do działań o dużym wpływie.

  • Zaangażuj osobę w podejmowanie kluczowych decyzji, wprowadzając punkty kontrolne na kilku etapach, a nie tylko końcowe zatwierdzenie.

  • Przeglądaj dane wyjściowe agenta w taki sam sposób jak dane wyjściowe generowane przez ludzi — poprzez przegląd pull requesta i scalenie.

  • Rejestruj wszystkie działania agenta w powiązaniu ze zgłoszeniem (historia i dziennik audytu).

  • Osadź działania agentów w kontekście, aby kontrolować koszty — niekontrolowane wydatki wynikają z tego, że agenty działają na zasadzie domysłów i powtarzają już wykonaną pracę.

Atlassian found that AI grounded in Teamwork Graph improved answer quality by 44% while reducing token consumption by 48%.

Firma Atlassian ustaliła, że SI oparta na Teamwork Graph poprawiła jakość odpowiedzi o 44%, jednocześnie zmniejszając zużycie tokenów o 48%.

Które zabezpieczenia obejmują Jirę, a które są dostępne w innych miejscach?

Zabezpieczenia funkcjonują w kilku warstwach stosu agenta. Jira odpowiada za warstwę pracy i dostępu, natomiast pozostałe warstwy zależą od dostawcy modelu, ram postępowania agenta i systemu CI.

Zabezpieczenia egzekwowane przez Jirę

Zabezpieczenia obsługiwane w innych miejscach Twojego stosu

Ograniczenie dostępu agentów za pomocą uprawnień Jiry i konfiguracji projektu

Filtrowanie lub moderowanie danych wyjściowych modelu (realizowane przez dostawcę modelu)

Zabezpieczenie przepływu pracy zmiany statusu poprzez wymóg zatwierdzenia przez człowieka

Uruchomienie modelu agenta lub środowiska wykonawczego (agent kodowania Jiry działa w piaskownicy udostępnionej przez Atlassian; agenty zewnętrzne działają we własnym środowisku)

Rejestrowanie działań agentów w historii zgłoszenia i w dziennikach audytu administratora

Zablokowanie wstrzykiwania wszystkich promptów (filtrowanie pomaga, ale nie wychwyci wszystkiego; Jira ogranicza skutki, jeśli coś się przedostanie).

Ustawienie dla każdego zadania trybu autonomicznego lub trybu wykonywania wymagającego zatwierdzenia

Wymuszanie kontroli na poziomie kodu, takich jak testy i skanowanie bezpieczeństwa (realizowane przez pipeline CI)

Jira określa, jakie działania mogą podejmować agenty, i rejestruje wykonane przez nich czynności; uzupełnia zabezpieczenia na poziomie modelu i środowiska wykonawczego zamiast je zastępować.

Jak dodać pierwsze zabezpieczenie agenta w Jirze

Nie trzeba od razu wdrażać pełnego programu zarządzania, aby zacząć. Jedno zabezpieczenie pozwala w odpowiedzialny sposób powierzyć agentowi prawdziwe zadania, zapewniając, że o ważne decyzje podejmuje konkretna osoba, a także umożliwia rozszerzanie zakresu działań w miarę wzrostu zaufania.

  1. Wybierz jedno rutynowe, odwracalne zadanie, takie jak niestabilny test lub aktualizacja zależności (ogranicza to koszt ewentualnego błędu).

  2. Uruchom agenta z uprawnieniami, które można by przyznać nowemu koledze z zespołu — nie większymi, niż wymaga tego zadanie.

  3. Dodaj to do zmiany statusu w przepływie pracy, aby najpierw pracownik udzielił zatwierdzenia (wyłapując niezgodne lub ryzykowne działania).

  4. Przejrzyj pull request zgodnie z przyjętym procesem, aby wychwycić dane wyjściowe niskiej jakości lub halucynacje.

  5. Upewnij się, że zostało to odnotowane w zgłoszeniu (umożliwi to śledzenie w razie potrzeby cofnięcia zmian).

  6. Oto sposób na zbudowanie przepływu pracy, który pozwala skalować sztuczną inteligencję w odpowiedzialny sposób: lepsze dane wyjściowe agentów, krótszy czas weryfikacji i większa autonomia, którą można bezpiecznie rozwijać.

Zobacz nasz praktyczny przewodnik po odpowiedzialnym zarządzaniu sztuczną inteligencją, przygotowany w ramach Zasad firmy Atlassian dotyczących odpowiedzialnej technologii.

Najczęściej zadawane pytania dotyczące zabezpieczeń agentów sztucznej inteligencji

Jak bezpiecznie korzystać z agentów sztucznej inteligencji?

Agenty sztucznej inteligencji pozostają bezpieczne dzięki kontroli dostępu, konieczności uzyskania ludzkiego zatwierdzenia przy czynnościach o dużym wpływie i pełnej rejestracji ich działań z nadzorem dostosowanym do ryzyka związanego z zadaniem.

Jak Jira zarządza agentami sztucznej inteligencji?

Jira zarządza agentami sztucznej inteligencji za pomocą tych samych mechanizmów kontroli, z których zespół już korzysta: agenty działają w ramach uprawnień i przepływów pracy Jiry, ich działania mogą być ograniczone poprzez wymóg zatwierdzenia przez pracownika podczas zmiany statusu w przepływie pracy, a wszystkie ich czynności są rejestrowane w historii zgłoszenia i dzienniku audytu.

Czy agenty sztucznej inteligencji w Jirze mogą wymagać zatwierdzenia przez pracownika?

Tak. Możesz dodać agenta do zmiany statusu w przepływie pracy, aby osoba mogła przejrzeć i zatwierdzić dane wyjściowe przed przejściem pracy do kolejnego etapu, a autonomię zarezerwować dla zadań niskiego ryzyka, które można łatwo cofnąć.

A co ze wstrzykiwaniem promptów przez agenty sztucznej inteligencji?

Wstrzyknięcie promptu to niezweryfikowane dane wejściowe, które próbują nakłonić agenta do wykonania niezamierzonych działań. Atlassian filtruje dane wejściowe przekazywane agentom opartym na Rovo pod kątem prób wstrzyknięcia, a ponieważ żaden filtr nie jest w pełni skuteczny, warstwowe zabezpieczenia zapewniają dodatkową ochronę: ograniczony dostęp, zatwierdzanie przez człowieka i pełną ścieżkę audytu.