Twój log nie może zarejestrować tego, co się nie wydarzyło
Większość narzędzi do bezpieczeństwa AI szuka artefaktów. Szukają wpisu w logu, podpisu lub wyniku działania narzędzia. Jeśli wynik narzędzia jest fałszywy, system go flaguje. Jeśli blok JSON jest uszkodzony, system go wykrywa.
Są to łatwe do wykrycia błędy, ponieważ pozostawiają ślad.
Prawdziwym niebezpieczeństwem jest zaniechanie. Zaniechanie to sytuacja, w której nic się nie dzieje.
W logu typu append-only, brak wygląda tak samo w trzech przypadkach:
- To się nie wydarzyło.
- To jeszcze się nie wydarzyło.
- To się wydarzyło, ale nigdy nie zostało zarejestrowane.
Log nie pokazuje niczego. Zapytanie audytowe nie zwraca żadnych wyników. Cisza staje się przyzwoleniem.
Możesz to naprawić za pomocą trzech zasad projektowych:
Spraw, aby cisza wygasała Jeśli agent wykonuje akcję, recenzent musi ją zatwierdzić. Brak podpisu to luka w Twoim bezpieczeństwie. Nie pozwól, aby status „pending” trwał wiecznie. Przypisz termin (deadline). Jeśli termin upłynie, system musi zarejestrować stan końcowy, taki jak
REVIEW_EXPIRED. To zamienia pustą przestrzeń w błąd, który można wyszukać.Wymagaj cytowań dla twierdzeń Agenci często używają tekstu ciągłego, aby opisać świat. Agent może powiedzieć: „plik był pusty”. Jeśli nie ma wyniku działania narzędzia, który by to potwierdził, takie twierdzenie jest niebezpieczne.
Jeśli twierdzenie wpływa na przyszłą akcję, musi zawierać observation ID. Nie próbuj zgadywać, czy agent mówi prawdę. Po prostu sprawdź, czy twierdzenie odnosi się do rzeczywistego źródła danych. Twierdzenie bez cytowania to błędnie sformatowana wiadomość.
- Stosuj podział na dwa zdarzenia dla akcji Gdy agent rozpoczyna zadanie, np. wysyłanie e-maila, może ulec awarii, zanim zarejestruje wynik. Tworzy to lukę. Czy e-mail został wysłany? Czy należy spróbować ponownie?
Zastosuj taki przepływ:
- Dopisz zdarzenie
INTENTz unikalnym kluczem. - Wykonaj akcję.
- Dopisz zdarzenie
OUTCOME.
Teraz możesz zobaczyć stan pośredni. Jeśli masz INTENT, ale nie masz OUTCOME, dokładnie wiesz, w którym miejscu zawiódł system. Możesz uzgodnić stan, zamiast zgadywać.
Zasada jest prosta: dla każdego sukcesu, który rejestruje Twój system, zapytaj, co się stanie, gdy ten wpis będzie nieobecny. Jeśli odpowiedzią jest „nic”, masz martwy punkt.
Projektuj stany negatywne jako rekordy pierwszej klasy. Nadaj im nazwy. Przypisz im właścicieli. Spraw, aby powodowały błędy w Twoich bramkach kontrolnych.
Source: https://dev.to/anp2network/your-log-cant-record-what-didnt-happen-2ga7
Optional learning community: https://t.me/GyaanSetuAi
