cap_cost oraz dlaczego audit to
wartość domyślna, od której zaczynasz.
Gdzie werdykty żyją w gramatyce reguł, zobacz
Reguły Firewall; dla wyboru werdyktu
domyślnego przy tworzeniu polityki zobacz
Utwórz i przypnij.
1. Sześć werdyktów reguł
Reguła produkuje dokładnie jeden z sześciu werdyktów. Pisz je w edytorze reguł konsoli; silnik przechodzi reguły w kolejności priorytetów i wygrywa pierwsze dopasowanie.allow — przepuść wywołanie, zalogowane
allow — przepuść wywołanie, zalogowane
allow, więc
zachowujesz ślad audytu bez blokowania czegokolwiek. Użyj go jako
wyraźnego pozwolenia w polityce default-deny.audit — zezwól, ale zarejestruj do przeglądu
audit — zezwól, ale zarejestruj do przeglądu
allow, ale wywołanie jest oznaczone jako
coś, co chciałeś obserwować. To także wartość, na której ląduje
werdykt domyślny od razu po wyjęciu z pudełka — obserwuj wszystko,
nie blokuj nic, dopóki nie jesteś gotów egzekwować.deny — zablokuj wywołanie
deny — zablokuj wywołanie
inbound relay
zwraca HTTP 400 z kodem błędu firewall_blocked, nazywając
narzędzie i powód; na powierzchni mcp wraca jako błąd narzędzia, więc
model może zareagować. Zobacz
jak wygląda block.sanitize — zredaguj argumenty, potem prześlij dalej
sanitize — zredaguj argumenty, potem prześlij dalej
command lub body) i
przesyła oczyszczone wywołanie. Redaguje wyłącznie argumenty — nigdy
treść, którą narzędzie zwraca. Na powierzchni inbound nie ma jeszcze
argumentów czasu wywołania, więc sanitize eskaluje do deny. Zobacz
sanityzację odpowiedzi.pending_approval — wstrzymaj dla człowieka
pending_approval — wstrzymaj dla człowieka
firewall_approval_pending i id zatwierdzenia; wywołanie nie
dociera do narzędzia. Recenzent rozstrzyga je w konsoli lub przez webhook
callback, a agent ponownie wysyła z jednorazowym nagłówkiem
zatwierdzenia. Zobacz zatwierdzenia.cap_cost — odmów, gdy przekroczony zostanie limit wydatków
cap_cost — odmów, gdy przekroczony zostanie limit wydatków
allow
lub deny w czasie ewaluacji. Zobacz
§3 i
limit kosztu.deny, sanitize, pending_approval oraz cap_cost, który rozwiązał się
do deny) jest degradowany do audit, a powód jest poprzedzony przedrostkiem
[shadow] would …. Wytocz egzekwującą politykę w ten sposób i obserwuj
strumień zdarzeń, zanim przełączysz ją na żywo.2. Werdykt domyślny
Werdykt domyślny (default_verdict na polityce) to to, co polityka robi,
gdy żadna reguła nie pasuje do wywołania narzędzia. To podłoga twojej
postawy i w przeciwieństwie do werdyktu reguły przyjmuje tylko trzy
wartości:
default_verdict | Gdy żadna reguła nie pasuje… |
|---|---|
audit (domyślny) | Zezwól na wywołanie, ale je zarejestruj. Bezpieczne miejsce na start. |
allow | Zezwól i zaloguj, bez rekordu przeglądu. |
deny | Zablokuj wszystko, czego reguła wyraźnie nie zezwala — postawa default-deny. |
audit: obserwuje każde wywołanie
narzędzia i niczego nie blokuje, dopóki nie dodasz egzekwujących reguł. Trzy
werdykty tylko-dla-reguł — sanitize, pending_approval i cap_cost —
nie mogą być domyślne; werdykt domyślny to całościowy fallback, a te
werdykty mają sens tylko ograniczone do konkretnego dopasowania.
3. cap_cost rozwiązuje się do allow lub deny
cap_cost to jedyny werdykt, który nie jest tym, co pojawia się w twoich
zdarzeniach. Piszesz regułę z limitem cap_cost_cents, ale w czasie
ewaluacji silnik rozwiązuje go do konkretnego allow lub deny, zanim
zdarzenie zostanie zarejestrowane — więc
strumień zdarzeń nigdy nie niesie
dosłownego werdyktu cap_cost, tylko allow/deny, które agent faktycznie
zobaczył.
Limit jest per uruchomienie agenta: silnik porównuje zakumulowane
wydatki uruchomienia z twoim limitem.
- Poniżej limitu → rozwiązuje się do
allow. (Wewnętrznie traktowane to jest jako niedopasowanie, więc ewaluacja kontynuuje do następnej reguły, zamiast pozwolićcap_costwygrać pierwsze dopasowanie jako przyznanie.) - Powyżej limitu → rozwiązuje się do
deny, z powodem nazywającym sumę uruchomienia względem limitu. To terminalny wynik bezpiecznika.
4. Jak wybierany jest werdykt
Dla dowolnego wywołania narzędzia rozwiązywanie jest takie samo niezależnie od tego, który werdykt wygrywa:1. Rozwiąż politykę
1. Rozwiąż politykę
firewall_policy_id) lub domyślną przestrzeni roboczej — zobacz
rozwiązywanie.2. Przejdź reguły, wygrywa pierwsze dopasowanie
2. Przejdź reguły, wygrywa pierwsze dopasowanie
priority ASC. Pierwsza reguła, której
powierzchnia, glob narzędzia, opcjonalne klauzule argumentów i opcjonalny
zakres egress wszystkie pasują, produkuje werdykt.3. Brak dopasowania → werdykt domyślny
3. Brak dopasowania → werdykt domyślny
default_verdict polityki —
audit, chyba że go zmieniłeś.4. Egzekwowanie skilla jedzie na wierzchu
4. Egzekwowanie skilla jedzie na wierzchu
block wymusza
deny, a skill w trybie quarantine eskaluje wszystko poniżej deny do
pending_approval.5. Zachowanie kosztu i ponawiania przy deny
Werdykt firewalla na powierzchniinbound odpala przed wywołaniem
modelu nadrzędnego, więc deny tam nie kosztuje tokenów modelu. Błąd jest
oznaczony skip-retry — ponowne uruchomienie tego samego zablokowanego
wywołania po prostu znów by zablokowało, więc brama mówi klientowi, by go nie
ponawiał.
To różni się od bloku guardrail,
który prześwietla tekst promptu/odpowiedzi (PII, sekrety) zamiast akcji
narzędzi i zwraca własny błąd guardrail_blocked. Żądanie może przejść przez
obie płaszczyzny.
