Przejdź do głównej treści
Każda reguła guardrail odpowiada na trzy pytania — czego szukać (typ), gdzie szukać (etap) i co z tym zrobić (akcja). Ta strona jest o tym trzecim wyborze. Akcja reguły to najbardziej konsekwentne pole na niej: decyduje, czy dopasowanie zatrzyma żądanie, po cichu je przepisze, czy tylko zostawi okruch. Konstruktor reguł pokazuje w sumie pięć akcji — block, mask, flag, annotate i spotlight. Ta strona obejmuje trzy wybory egzekwowania, po które sięgasz najpierw: block, mask i flag. Wybierz jedną na regułę (lub, dla reguły PII, kieruj różne encje do różnych akcji; zobacz §5). Pozostałe dwie to akcje kształtujące prompt, nieblokujące: annotate wstrzykuje notatkę bezpieczeństwa w górę (zobacz bezpieczeństwo kodu), a spotlight owija dopasowane niezaufane wejście w ograniczniki, by model traktował je jako dane, nie instrukcje. Pełna lista żyje w przeglądzie Guardrails. Po szerszy silnik — typy reguł, etapy, wiązanie polityki z kluczem — zacznij od przeglądu Guardrails lub pełnej referencji Guardrails.

1. Decyzja guardrail block mask flag w jednej linii

block

Odrzuć wywołanie z HTTP 400 guardrail_blocked. Model nigdy nie biegnie (etap wejścia) lub jego odpowiedź nigdy nie wraca (etap wyjścia).

mask

Redaguj każde dopasowanie — np. jane@acme.com[EMAIL] — i przepuść oczyszczony tekst. Żądanie kontynuuje.

flag

Nie zmieniaj niczego w ruchu. Zarejestruj dopasowanie w strumieniu i przejdź dalej. Tylko obserwacja.
To trzy akcje egzekwowania. Którąkolwiek ustawisz, jest honorowana wszędzie, gdzie reguła biegnie — konstruktor reguł w konsoli, piaskownica Test i żywa ścieżka relay /v1/* czytają tę samą wartość block / mask / flag.

2. Jeden konkretny przykład — trzy reguły, trzy akcje

Oto pojedynczy guardrail, którego trzy reguły każda wybiera inną akcję. Autorujesz to w konsoli (/console/guardrails) w swojej sesji — klucz relay sk-orca-... służy wyłącznie do wywołań /v1/*, nigdy do edycji polityki. Utworzenie lub edycja guardrail wymaga roli Developer+.
{
  "rules": [
    { "type": "keyword", "stage": "input",  "action": "block",
      "keywords": ["internal-only", "do-not-share"] },
    { "type": "pii",     "stage": "input",  "action": "mask",
      "entities": ["email", "phone"] },
    { "type": "regex",   "stage": "output", "action": "flag",
      "pattern": "(?i)acme\\s+confidential" }
  ]
}
Co każda reguła robi na żądaniu:
  • Reguła block odrzuca dowolny prompt zawierający jeden z tych dosłownych terminów — HTTP 400, model nigdy nie biegnie.
  • Reguła mask przepisuje emaile i numery telefonów na [EMAIL] / [PHONE] w prompcie, zanim model go zobaczy.
  • Reguła flag obserwuje wyjście modelu pod kątem markera poufnego i rejestruje dopasowanie bez zmiany odpowiedzi — więc możesz zmierzyć, jak często się pojawia, zanim zdecydujesz się egzekwować.
Silnik uruchamia każdą mającą zastosowanie regułę i składa wyniki w jeden werdykt. Jeśli jakakolwiek reguła blokuje, żądanie jest zablokowane.

3. block — odrzuć z HTTP 400

Akcja block odrzuca całe wywołanie. Wywołujący dostaje HTTP 400 z kodem błędu guardrail_blocked i komunikatem nazywającym guardrail oraz regułę, która zadziałała.
Blokada na etapie wejścia działa przed pomiarem, więc nic nie jest konsumowane. Blokada na etapie wyjścia zwraca wstępnie pobraną kwotę po odrzuceniu odpowiedzi. Tak czy inaczej wywołujący nie płaci nic za zablokowane wywołanie.
Wynik guardrail_blocked to skip-retry — ponowne uruchomienie tego samego promptu na innym kanale po prostu znów by zablokowało, więc brama nie zmarnuje ponowienia. Zobacz błąd guardrail_blocked.
Na odpowiedzi nie-streamingowej odpowiedź jest sprawdzana, zanim wróci. Na odpowiedzi streamingowej skaner przecina strumień w locie i emituje komunikat zastępczy, zanim jakakolwiek zablokowana treść dotrze do klienta. Zobacz pokrycie streamingu.
Sięgaj po block, gdy dopasowanie oznacza, że żądanie nie może iść dalej — sekrety w prompcie, próba jailbreak, twarda linia zgodności.

4. mask — redaguj i kontynuuj

Akcja mask redaguje każde dopasowanie i przepuszcza żądanie z oczyszczonym tekstem. Model nadrzędny nigdy nie widzi oryginału. Na regule PII każde dopasowanie jest zastępowane typowanym tagiem wyprowadzonym z encji — email staje się [EMAIL], SSN staje się [SSN], karta kredytowa [CREDIT_CARD] i tak dalej. (Możesz nadpisać łańcuch zamiennika per niestandardowa encja; zobacz formaty maskowania.)
Maskowanie na etapie wejścia działa na każdym strumieniu. Przepisuje żądanie przed uruchomieniem modelu, streaming lub nie. Maskowanie na etapie wyjścia stosuje się wyłącznie do odpowiedzi nie-streamingowych — zamaskowany tekst jest przesyłany po sprawdzeniu pełnej odpowiedzi. Na odpowiedzi streamingowej brama oblicza maskę, ale jeszcze nie przesyła zredagowanego tekstu, więc reguła mask nie redaguje dziś odpowiedzi streamingowej; maskowanie wyjścia w locie jest w planach. (Blokada block wyjścia nadal przecina strumień w locie — zobacz §3.) Udowodnij najpierw swoją konkretną kombinację etap/stream w piaskownicy. Zobacz pokrycie streamingu.
Sięgaj po mask, gdy treść jest w porządku, ale podłańcuch nie powinien dotrzeć do modelu — redakcja PII to kanoniczny przypadek. Gotowym punktem wyjścia jest preset PII Shield; zobacz PII Shield.

5. flag — tylko log, nic nie zmieniaj

Akcja flag to tylko obserwacja: żądanie jest bajt-identyczne z tym bez żadnej reguły, poza tym że dopasowanie jest rejestrowane w strumieniu dopasowań. Nic nie jest blokowane, nic redagowane.
flag to sposób, w jaki mierzysz regułę, zanim ją wyegzekwujesz. Wyślij nowy keyword lub regex jako flag, obserwuj strumień Matches przez kilka dni, by zobaczyć jego prawdziwy wskaźnik prawdziwie-vs-fałszywie pozytywnych na rzeczywistym ruchu, potem promuj do mask lub block, gdy mu zaufasz. Strojenie hałaśliwego wzorca przy włączonym flag bije odkrywanie fałszywie pozytywnych na produkcji przy włączonym block. Zobacz strojenie fałszywie pozytywnych.
Oflagowane dopasowanie rejestruje typ reguły, akcję, etap i łańcuch szczegółów — oraz dopasowany podłańcuch tylko jeśli Log raw content jest włączone dla tego guardrail (domyślnie wyłączone, postawa konserwatywna wobec prywatności). Zobacz logowanie i prywatność.

6. Nadpisania akcji per-encja

Pojedyncza reguła PII może kierować różne encje do różnych akcji przez entity_actions, zamiast nakładać nakładające się reguły. Każda wartość nadpisania musi być jedną z block / mask / flag / annotate i musi odwoływać się do encji, którą reguła już deklaruje — walidator odrzuca wszystko inne.
{
  "type": "pii",
  "stage": "input",
  "action": "mask",
  "entities": ["email", "phone", "ip", "credit_card", "ssn"],
  "entity_actions": {
    "credit_card": "block",
    "ssn": "block"
  }
}
Ta jedna reguła maskuje emaile, telefony i IP, ale blokuje żądanie wprost na numerze karty lub SSN. Zobacz niestandardowe encje PII po nawarstwianie własnych detektorów pod tym samym modelem nadpisań.

7. Wybór właściwej akcji

Jeśli chcesz…UżyjEfekt
Zatrzymać żądanie całkowicieblockHTTP 400, brak kwoty, skip-retry
Wyciąć podłańcuch, zachować wywołaniemaskPrzesłany zredagowany tekst
Obserwować bez dotykania ruchuflagTylko zarejestrowane dopasowanie
Akcje komponują się z etapami. Ta sama akcja zachowuje się nieco inaczej na wejściu vs wyjściu — blokada wejścia oszczędza kwotę z góry; blokada wyjścia ją zwraca; maskowanie wyjścia stosuje się wyłącznie do odpowiedzi nie-streamingowych, podczas gdy blokada wyjścia przecina odpowiedzi streamingowe i nie-streamingowe tak samo. Przeczytaj etap wejścia i etap wyjścia obok tej strony.

8. Dokąd dalej

Błąd guardrail_blocked

Jak wygląda 400, dlaczego nie kosztuje kwoty i jak działa skip-retry.

Formaty maskowania

Typowane tagi, niestandardowe łańcuchy zamienników i jak zamaskowany prompt czyta się dla modelu.

Pokrycie streamingu

Dokładnie które kombinacje akcja × etap × stream są dziś egzekwowane.

Tryby egzekwowania

Jak block / mask / flag mapują się na szerszy model egzekwowania bramy, w tym werdykt audit firewalla.
Firewall ma własne słownictwo werdyktów (allow, audit, deny, sanitize i więcej) dla polityki narzędzi — odrębne od tych akcji treści. Zobacz guardrails vs. firewall.