Deweloper ustawia agentowi zakres uprawnień. Ten sam deweloper pracuje z nim przez cały dzień. Ten sam zatwierdza jego operacje. I ten sam czyta potem logi, które agent o sobie napisał.
Żaden system finansowy nie zaakceptowałby takiej architektury ani na chwilę. W pracy z agentami jest domyślna.
Czym jest rozdzielenie obowiązków
Zasada kontroli wewnętrznej dzieląca każdą operację na trzy funkcje które nie mogą leżeć w rękach jednego podmiotu. Autoryzacja: decyzja że coś ma się wydarzyć. Wykonanie lub piecza: przeprowadzenie tego. Zapis i uzgodnienie: zalogowanie oraz późniejsza weryfikacja.
Logika jest prosta. Jeśli jedna strona może wykonać operację i jednocześnie ją zaksięgować, może ukryć błąd lub nadużycie bez niczyjej pomocy. Rozdziel te funkcje, a ukrycie wymaga zmowy — trudniejszej, wolniejszej i łatwiejszej do wykrycia.
To nie jest technologia ani mechanizm w oprogramowaniu. To jest kształt nałożony na organizację, który bywa egzekwowany przez oprogramowanie.
Trzy mechanizmy z systemów ERP
Rola zamiast pytania. Magazynier nie widzi ostrzeżenia o wydaniu towaru poniżej ceny zakupu — nie ma do tego prawa, a dokument idzie do kogoś kto ma. Nie istnieje okno przez które można by przeklikać, bo ograniczenie nie jest zrobione z pikseli.
Blokada zamiast dialogu. Zamknięty okres rozliczeniowy nie pyta czy na pewno chcesz księgować wstecz. Odmawia. Nie ma „mimo wszystko”, nie ma linku „zaawansowane”, nie ma czego kliknąć odruchowo — i właśnie dlatego nikt się do tego nie przyzwyczaja.
Limit zamiast potwierdzenia. Limit kredytowy kontrahenta nie odzywa się przy każdym zamówieniu, tylko przy tym które go przekracza. Monit jest rzadki, zawsze znaczy to samo i dlatego po tysięcznym zamówieniu nadal niesie informację.
Przełożenie na agenty
Agent powinien być kontem z własną tożsamością i rolą, a nie funkcją czyjejś sesji. Wszystko pozostałe zależy od tego jednego punktu.
Osoba definiująca granice nie powinna być osobą przepychającą zadanie pod koniec dnia. Zamiast dokładać pytanie, lepiej odebrać uprawnienie. Produkcję, systemy płatnicze i bazę adresową klientów warto traktować jak zamknięty okres rozliczeniowy — nie obwarowane bramką, tylko zamknięte, z ponownym otwarciem jako osobno autoryzowanym aktem.
Agent nie może trzymać funkcji zapisu
To jest najostrzejsze przeniesienie tej zasady i najczęściej pomijane. Jeśli agent wykonuje operację i jednocześnie pisze log opisujący co zrobił, dostał pieczę i zapis naraz — dokładnie tę kombinację przed którą kontrola wewnętrzna powstała.
Przejęty przez wstrzyknięcie instrukcji agent nie tylko zrobi coś innego niż zamierzał użytkownik. Opisze to tak, jak każe mu wstrzyknięta instrukcja. Ślad audytowy musi powstawać w miejscu którego agent nie dosięga.
Gdy nie ma kogo rozdzielić
Osoba pracująca samodzielnie nie ma drugiego człowieka, a dwuosobowy zespół ma jednego który akurat śpi. Ramy kontroli wewnętrznej przewidują ten przypadek wprost: gdzie rozdzielenie jest niepraktyczne, stosuje się kontrole kompensujące — niezależny przegląd po fakcie, podwójną autoryzację powyżej progu ryzyka, log odporny na manipulację, dostęp wyjątkowy z terminem ważności.
Dla solo dewelopera realistyczna wersja polega na tym, że drugą rolę gra maszyna: skaner, polityka, twardy limit, log czytany według harmonogramu a nie w biegu. Słabsze niż druga osoba. Dużo mocniejsze niż okno dialogowe.