sk-… wrzucony do pola
command, numer SSN klienta wklejony do body, wewnętrzny token w nagłówku
żądania. Werdykt sanitize firewalla wychwytuje ten materiał w
argumentach wywołania narzędzia, zastępuje go typowanym tokenem redakcji i
przesyła oczyszczone wywołanie — więc akcja wciąż się uruchamia, ale sekret
nigdy nie opuszcza bramy.
To jeden werdykt w języku dopasowania firewalla. Dla pełnego zestawu zobacz
Werdykty i
referencję reguł; ta strona to skupiony
przewodnik po pisaniu i rozumowaniu o sanitize.
1. Co robi sanitize — i czego nigdy nie dotyka
Reguła zverdict: sanitize uruchamia silnik redakcji nad argumentami
wywołania narzędzia, zanim wywołanie zostanie dyspozytowane. Każde dopasowanie
jest zastępowane kanonicznym tokenem, a wywołanie przebiega z oczyszczonymi
argumentami — narzędzie wciąż się wykonuje, po prostu bez surowego sekretu w
środku.
Redaguje
Argumenty JSON
tool_call wyemitowanego przez model lub tools/call
MCP — command, body, headers, dowolne pole stringowe, gdzie sekret
lub PII wylądowały.Nigdy nie redaguje
Treści, którą narzędzie zwraca, promptu, tekstu odpowiedzi modelu.
Sanitize to redaktor tylko-argumentów. Prześwietlanie tekstu to sprawa
Guardrail.
[redacted:<preset>] (np. [redacted:openai_key]), a dopasowanie
wzorca niestandardowego staje się [redacted:custom]. Kształt argumentu jest
zachowany — zmienia się tylko wrażliwy podłańcuch — więc narzędzie, które
oczekuje poprawnego JSON, wciąż otrzymuje poprawny JSON.
2. Wbudowane presety detektorów
Reguła sanitize nazywa jeden lub więcej presetów (dobrze znane kształty sekretów/PII) lub niestandardowe wzorce regex. Wbudowane presety:| Preset | Wychwytuje |
|---|---|
aws_access_key | id klucza dostępu AWS (AKIA… / ASIA… + 16 znaków) |
aws_secret_key | 40-znakowy sekret AWS (świadomy granic) |
openai_key | sk- + ≥32 znaki |
anthropic_key | sk-ant- + ≥40 znaków |
bearer_token | Bearer + token ≥16 znaków (słowo kluczowe zachowane) |
email | Adres e-mail |
ssn_us | US SSN w formie 3-2-4 |
credit_card | Ciąg 13–19 cyfr, który przechodzi sprawdzenie Luhna |
Reguła sanitize musi deklarować co najmniej jeden preset lub wzorzec
niestandardowy — pusty sanityzator jest odrzucany przy zapisie reguły.
Dopasowanie
credit_card jest dodatkowo sprawdzane Luhnem, więc liczba o tej
samej długości, która nie jest poprawną kartą, jest pozostawiona nietknięta,
zamiast nadmiernie zredagowana.3. Jeden konkretny przykład
Napisz to w edytorze reguł konsoli. Przykład redaguje klucz OpenAI i dowolny e-mail z argumentów dowolnego wywołania narzędziahttp.*, które twój agent
emituje, potem przesyła oczyszczone wywołanie:
key=[redacted:openai_key] user=[redacted:email] — żądanie wciąż się
uruchamia, sekret i adres nigdy nie opuszczają bramy.
4. Na powierzchni inbound sanitize eskaluje do deny
Powierzchniainbound ewaluuje narzędzia,
które agent ogłasza w żądaniu — definicje narzędzi, które nie niosą
jeszcze żadnych argumentów czasu wywołania. Nie ma tam czego redagować,
więc werdykt sanitize na powierzchni inbound eskaluje do deny
(fail-closed): żądanie jest blokowane z firewall_blocked, zamiast
przesłane bez redakcji.
5. Sanitize a inne sposoby obsługi sekretu
Trzy warstwy mogą zadziałać na sekret, który agent zaraz wycieknie — wybierz po co i gdzie:Sanitize (firewall) — zredaguj argumenty wywołania narzędzia
Sanitize (firewall) — zredaguj argumenty wywołania narzędzia
Usuwa sekret z argumentów wywołania narzędzia i wciąż uruchamia
wywołanie. Użyj go, gdy akcja jest legalna, ale agent umieścił coś
wrażliwego w polu. Tylko warstwa argumentów.
Deny (firewall) — zablokuj całe wywołanie
Deny (firewall) — zablokuj całe wywołanie
Zatrzymuje wywołanie całkowicie. Użyj go, gdy sama akcja jest
niebezpieczna, nie tylko argument. To też jest to, czym staje się
sanitize na powierzchni inbound. Zobacz
blokowanie narzędzi.
Guardrails — prześwietl tekst promptu / odpowiedzi
Guardrails — prześwietl tekst promptu / odpowiedzi
Guardrails Secrets Blocker i PII
prześwietlają tekst żądania lub odpowiedzi (w tym, na etapie wyjścia,
treść wygenerowaną przez model). To warstwa dla „tego, co narzędzie lub
model zwraca” — rzeczy, której sanitize nie robi.
6. Gdzie sanitize pojawia się w twoim śladzie
Jak każdy werdykt, ewaluacja sanitize jest rejestrowana jako zdarzenie firewalla — filtrowalne po werdykcie, powierzchni, narzędziu i uruchomieniu w logu zdarzeń i zwijane w analityce. W trybie cienia werdykt sanitize (jak każdy egzekwujący werdykt) jest degradowany doaudit, a powód jest
poprzedzony przedrostkiem [shadow] would …, więc możesz zmierzyć wpływ,
zanim którykolwiek argument zostanie faktycznie przepisany.
Dokąd dalej
Wszystkie werdykty
allow, audit, deny, sanitize, pending_approval, cap_cost.
Waliduj argumenty
Dopasuj wywołanie po tym, co jest w jego argumentach — gramatyka
klauzul JSONPath.
Blokuj narzędzia
Gdy problemem jest sama akcja, odmów całego wywołania.
Firewall + Guardrails
Prześwietl tekst, który narzędzie lub model zwraca — warstwę, której
sanitize nie pokrywa.
