Przejdź do głównej treści
Guardrails prześwietlają tekst, który płynie przez model. Firewall zarządza akcjami, które podejmuje agent — narzędziami, które wywołuje, serwerami MCP, do których sięga, skillami, które ładuje, oraz hostami, z którymi rozmawia. To odpowiednik Guardrails na warstwie akcji: ten sam zakres przestrzeni roboczej, ten sam model powiązania raz, ta sama obietnica „polityka żyje w bramie, nie w twojej aplikacji”. Ta strona to przegląd koncepcyjny i referencja operacyjna. Trzy strony towarzyszące omawiają ruchome części w szczegółach:

Reguły

Język dopasowania — globy narzędzi, klauzule argumentów, listy egress, sanityzatory i sekwencje.

Serwery MCP

Rejestruj i zarządzaj serwerami Model Context Protocol za jedną audytowaną bramą.

Skille

Skanuj i oceniaj ryzyko zdolności, które instalują twoje agenty, zanim będą mogły się uruchomić.

1. Czym jest Firewall

Agent AI nie tylko generuje tekst — on działa. Wywołuje shell.exec, odpytuje db.query, pobiera URL, ładuje skill społecznościowy lub kieruje wywołanie narzędzia przez serwer MCP innej firmy. Każda z tych rzeczy to akcja o rzeczywistych konsekwencjach, a guardrails na poziomie promptu ich nie widzą. Firewall to nazwana polityka w zakresie przestrzeni roboczej, którą brama ewaluuje przy każdym wywołaniu narzędzia. Zapisujesz politykę raz, wiążesz z nią klucz API (lub ustawiasz jeden jako domyślny dla przestrzeni roboczej), a od tej chwili każde wywołanie narzędzia, które ten klucz wystawia, jest sprawdzane wobec polityki — zanim dotrze do narzędzia. Każda polityka to uporządkowana lista reguł. Reguła decyduje o jednej rzeczy — których wywołań narzędzi dotyczy (glob nazwy narzędzia, opcjonalnie zawężony do skilla i do powierzchni egzekwowania) oraz co z nimi zrobić (werdykt: allow, audit, deny, sanitize, wstrzymaj do zatwierdzenia lub ogranicz koszt). Silnik przechodzi reguły w kolejności priorytetów, wygrywa pierwsze dopasowanie, a jeśli nic nie pasuje, wraca do domyślnego werdyktu polityki. Edycja polityki wchodzi w życie na każdym powiązanym z nią kluczu przy następnym wywołaniu. Bez ponownego wdrożenia. Bez zmian w kodzie agenta. Polityka jest egzekwowana w bramie — twój agent dalej wystawia wywołania narzędzi dokładnie jak wcześniej.
Wykrywanie odbywa się w bramie, przy pierwszym użyciu. Firewall siedzi na ścieżce relay LLM, nie wewnątrz menedżera pakietów ani systemu plików twojego agenta. Narzędzie, serwer MCP lub skill, który agent samodzielnie instaluje, jest wychwycony przy pierwszym przekroczeniu bramy przez jego wywołanie — nie w momencie instalacji. To celowe: to jeden punkt zwężenia, który widzi każdego dostawcę, każdego agenta i każde wywołanie narzędzia niezależnie od tego, skąd zdolność się wzięła.

2. Cztery powierzchnie egzekwowania

Każde wywołanie narzędzia jest ewaluowane wobec dokładnie jednej powierzchni — punktu w cyklu życia żądania, w którym firewall je widzi:
PowierzchniaCo widzi
inboundNarzędzia, które agent ogłasza modelowi w żądaniu (definicje narzędzi). Pozwala zablokować niebezpieczne narzędzie, zanim model w ogóle będzie mógł je wybrać.
responsetool_calls, które model emituje w swojej odpowiedzi.
mcptools/call dyspozytowane przez bramę Firewall MCP lub ewaluowane przez hook SDK.
egressWychodzący cel sieciowy (host / IP / CIDR) zgłoszony przez narzędzie — powierzchnia SSRF i eksfiltracji danych.
Reguła bez etapu dotyczy wszystkich powierzchni; przypnij regułę do jednej powierzchni, gdy werdykt ma sens tylko tam (np. lista dozwolonych egress).

3. Pojęcia podstawowe

PojęcieDefinicja
PolitykaNazwany zestaw reguł w zakresie przestrzeni roboczej. Ma enabled, is_default, default_verdict oraz flagę shadow_mode.
RegułaJedno sprawdzenie wewnątrz polityki: priorytet, dopasowanie narzędzia/skilla, opcjonalna powierzchnia, opcjonalny predykat argumentu oraz werdykt. Zobacz Reguły.
WerdyktAkcja, którą produkuje reguła (lub wartość domyślna) — zobacz §4.
Domyślny werdyktStosowany, gdy żadna reguła nie pasuje. Jeden z allow, audit (domyślny) lub deny.
Tryb cienia (shadow)Polityka ewaluuje i loguje, ale nigdy nie blokuje — każdy egzekwujący werdykt jest degradowany do audit, a powód jest poprzedzony przedrostkiem [shadow] would …. Twój przełącznik bezpiecznego wdrożenia.
Tryb obserwacji (observe)Ustawienie na poziomie przestrzeni roboczej. Gdy żądanie rozwiązuje się do braku polityki, a tryb obserwacji jest włączony, wywołanie jest dozwolone, ale logowane jako luka w pokryciu — to właśnie zasila widok Discovered-tools.

Zakres i rozwiązywanie

Polityki rozwiązują się dokładnie jak Guardrails i klucze API — współdzielone w przestrzeni roboczej, gdy masz aktywną przestrzeń. Dla dowolnego wywołania narzędzia brama rozwiązuje politykę w tej kolejności:
  1. Powiązanie klucza — jeśli wywołujący klucz ma firewall_policy_id, ta polityka ma zastosowanie (gdy istnieje i jest włączona).
  2. Domyślny przestrzeni roboczej — w przeciwnym razie stosuje się włączona polityka is_default przestrzeni roboczej.
  3. Żadna — brak egzekwowania. Przy włączonym trybie obserwacji wywołanie jest dozwolone i logowane jako luka; przy wyłączonym wywołanie jest po cichu dozwolone (bajt-identycznie z przestrzenią roboczą, która nigdy nie włączyła tej funkcji).
Co najwyżej jedna polityka na przestrzeń roboczą może być domyślna; promowanie nowej domyślnej degraduje starą w tej samej transakcji.
Fail-open na nieznanym, fail-closed na niejednoznacznym. Jeśli rozwiązywanie polityki trafi na przejściowy błąd, brama degraduje się do observe/allow zamiast wyłączać ruch. Ale tam, gdzie brak egzekwowania zniweczyłby regułę — raport egress bez użytecznego celu, magazyn zatwierdzeń, który jest nieosiągalny, skill, którego własności nie da się rozwiązać — silnik fail closed (deny lub hold). Dostępność jest zachowana; bezpieczeństwo nie jest po cichu pomijane w przypadkach, które mają znaczenie.

4. Werdykty

Reguła (lub domyślny werdykt) produkuje jeden z:
WerdyktCo robi
allowPrzepuść wywołanie. Zalogowane.
auditPrzepuść, ale zarejestruj do przeglądu. Domyślny default_verdict — obserwuj wszystko, nie blokuj nic, dopóki nie jesteś gotów.
denyZablokuj wywołanie. Agent widzi błąd narzędzia (lub HTTP 400 na powierzchni inbound).
sanitizeZredaguj dopasowane podłańcuchy z argumentów narzędzia (sekrety, PII) i prześlij oczyszczone wywołanie. Zobacz sanityzatory. Na powierzchni inbound — gdzie nie ma jeszcze argumentów czasu wywołania — sanitize eskaluje do bloku.
pending_approvalWstrzymaj wywołanie dla człowieka. Agent dostaje odpowiedź „wstrzymane”; recenzent zatwierdza lub odrzuca poza pasmem; agent ponownie wysyła z jednorazowym tokenem zatwierdzenia. Zobacz §7.
cap_costOdrzuć, gdy zakumulowane wydatki uruchomienia agenta przekroczą limit w centach per reguła. Bezpiecznik dla rozbieganych pętli.
W trybie cienia deny / sanitize / pending_approval są degradowane do audit, abyś mógł zmierzyć wpływ polityki, zanim zmieni ona ruch.

5. Jak ewaluowane jest wywołanie narzędzia

  1. Wywołanie narzędzia dociera do bramy (ogłoszone inbound, wyemitowane w odpowiedzi, dyspozytowane przez bramę MCP lub zgłoszone jako egress).
  2. Silnik rozwiązuje aktywną politykę (§3).
  3. Przechodzi reguły polityki w kolejności priorytetów (niższy priorytet pierwszy; remisy rozstrzyga id reguły). Reguła pasuje, gdy jej powierzchnia, glob nazwy narzędzia, opcjonalny glob nazwy skilla, opcjonalne klauzule argumentów i opcjonalny zakres egress wszystkie pasują.
  4. Wygrywa pierwsze dopasowanie → stosuje się werdykt reguły. Jeśli żadna reguła nie pasuje → default_verdict polityki.
  5. Jeśli wywołanie jest własnością zarządzanego skilla, na wierzch stosuje się tryb egzekwowania skilla — skill w trybie block wymusza deny; skill w trybie quarantine eskaluje wszystko poniżej deny do pending_approval.
  6. Decyzja jest logowana jako zdarzenie firewalla (chyba że to dry run), skorelowana z uruchomieniem i sesją agenta.

6. Jak wygląda block

Odrzucone wywołanie na powierzchni inbound zwraca HTTP 400 z ciałem błędu w kształcie OpenAI, kodem błędu firewall_blocked oraz komunikatem nazywającym narzędzie i powód — np. tool "shell.exec" blocked by firewall: destructive shell command. Błąd niesie ustrukturyzowane metadata (kod powodu, czynniki ryzyka, wynik) i jest oznaczony jako skip-retry (ponowne uruchomienie tego samego wywołania po prostu znów by zablokowało). Wywołanie dyspozytowane przez bramę MCP jest blokowane jako błąd narzędzia (firewall deny: <reason>) zamiast jako awaria transportu, więc model widzi odrzucenie i może zareagować — wybrać inne narzędzie, zapytać użytkownika lub zatrzymać się — zamiast się wysypać. Wstrzymane wywołanie (pending_approval) zwraca HTTP 400 z kodem firewall_approval_pending oraz id zatwierdzenia, na którym odpytuje klient.

7. Zatwierdzenie przez człowieka (HITL)

Werdykt pending_approval zamienia wywołanie narzędzia w przegląd poza pasmem:
  1. Silnik kolejkuje rekord zatwierdzenia i zwraca odpowiedź „wstrzymane” niosącą jego id; wywołanie nie dociera do narzędzia.
  2. Recenzent je rozstrzyga — z konsoli (Developer+) lub przez podpisany HMAC webhook callback do twojego własnego systemu zatwierdzeń.
  3. Twój agent (lub MCP SDK) odpytuje id zatwierdzenia; po zatwierdzeniu ponownie wysyła oryginalne wywołanie z jednorazowym nagłówkiem X-OrcaRouter-Firewall-Approval, a brama przepuszcza je ten jeden raz.
Decyzje są first-writer-wins i idempotentne. Jeśli leżąca u podstaw reguła została edytowana po wstrzymaniu, wzbogacenie odnotowuje rule_changed, aby recenzenci wiedzieli, że kontekst się zmienił.

8. Poziomy autonomii — jeden przełącznik dla całej postawy

Strojenie polityk reguła po regule to droga precyzyjna; poziomy autonomii to ta szybka. Pojedyncza kontrolka atomowo zastępuje postawę Firewall oraz Guardrails twojej przestrzeni roboczej w jednej transakcji, z cofnięciem jednym kliknięciem:
PoziomPostawa
tightBlokuj destrukcyjny shell, sekrety w argumentach i egress SSRF (domyślnie deny); guardrails PII Shield + Secrets Blocker włączone; tryb obserwacji wyłączony.
balancedAudytuj destrukcyjny shell, flaguj PII; tryb obserwacji wyłączony. Rekomendowana postawa początkowa.
permissiveBrak egzekwującej polityki, brak guardrails; tryb obserwacji włączony, więc i tak wszystko widzisz.
Cofnięcie przywraca dokładny poprzedni stan z migawki audytu.

9. Wykrywanie anomalii

Poza statycznymi regułami Firewall uczy się normalnego kształtu użycia narzędzi każdej przestrzeni roboczej i flaguje odchylenia na strumieniu czytelnym dla obserwującego:
  • Skoki tempa / kosztu — aktywność per narzędzie jest oceniana wobec wyuczonej bazowej linii godziny-tygodnia (14-dniowa średnia krocząca), więc „100 wywołań db.query o 3 w nocy w niedzielę” wyróżnia się, nawet jeśli każde wywołanie z osobna jest dozwolone.
  • retry_loop — agent waląc w to samo zawodzące narzędzie.
  • novel_path — przejście narzędzie-do-narzędzia, którego ta przestrzeń robocza nigdy wcześniej nie wykonała.
Strumień raportuje nazwy narzędzi, zredagowane id tokenów oraz wyłącznie liczniki. Możesz uśpić anomalię na do 7 dni, gdy ją badasz.

10. Obserwowalność

Firewall pozostawia ślad, na który możesz reagować, cały w zakresie przestrzeni roboczej:
PowierzchniaCo ci daje
EventsKażda ewaluacja, filtrowalna po werdykcie, powierzchni, narzędziu, uruchomieniu i sesji. Surowy rekord stojący za wszystkim innym.
Runs & sessionsZdarzenia zwinięte po uruchomieniu agenta lub konwersacji — rozbicie werdyktów, odrębne narzędzia i modele, pierwsze/ostatnie zaobserwowanie. Widok „co ten agent faktycznie zrobił”.
Discovered toolsKażde narzędzie, które przestrzeń robocza widziała, oznaczone covered (reguła ma zastosowanie) lub gap (żadna nie ma). Napędza autorowanie polityki z prawdziwego ruchu.
SimulatePodejrzyj, co poziom autonomii zmieniłby, zanim go zastosujesz.
TestDry-run polityki wobec przykładowego wywołania narzędzia i zobacz werdykt, dopasowaną regułę oraz powód — nic nie jest persystowane, nic nie jest dyspozytowane.
AuditKażda zmiana polityki, reguły i ustawień zapisuje wiersz audytu (przestrzeń robocza + centralny) po zatwierdzeniu zmiany. Sekrety i bloby reguł nigdy nie są logowane.

11. Relacja z resztą bramy

PowierzchniaJak komponuje się z Firewallem?
GuardrailsKomplementarne płaszczyzny. Guardrails prześwietlają tekst promptu/odpowiedzi; Firewall zarządza akcjami narzędzi. Oba mogą dotyczyć jednego żądania. Poziomy autonomii ustawiają oba naraz.
RoutingNiezależne. Routing wybiera model/kanał; firewall ocenia wywołania narzędzi niezależnie od tego, który model je obsłużył.
API keysKlucz wiąże się z polityką przez firewall_policy_id; powiązanie żyje na kluczu w bramie. Brak powiązania wraca do domyślnego przestrzeni roboczej.
Brama MCPFirewall jest bramą MCP — każdy serwer, który zarejestrujesz, dyspozytuje swoje tools/call przez silnik.
SkilleTryb egzekwowania zarządzanego skilla jedzie na wierzchu werdyktu reguły, więc skill poddany kwarantannie jest wstrzymany, nawet jeśli żadna reguła nie nazywa jego narzędzi.

12. Łączenie agenta z bramą Firewall

Są dwa sposoby, by wywołanie narzędzia dotarło do silnika:
  • Brama MCP — skieruj swojego klienta MCP (Claude Desktop, Cursor, framework agentowy) na https://api.orcarouter.ai/api/v1/firewall/mcp. Brama wystawia narzędzia każdego osiągalnego zarejestrowanego serwera, w przestrzeni nazw <server>.<tool>, i ewaluuje każde tools/call inline. Zobacz Serwery MCP.
  • Hook evaluate — wywołaj POST /api/v1/firewall/evaluate z własnej pętli agenta przed dyspozycją wywołania narzędzia i działaj wedle werdyktu.
Oba wymagają tokenu w zakresie firewall-gateway — dedykowanego klucza API wybitego do tego celu. Zwykły klucz dostaje 403 na tych trasach.

13. Referencja API

Wszystkie trasy konsoli są w zakresie przestrzeni roboczej przez kontekst przestrzeni roboczej i egzekwują RBAC konsekwentnie: odczyty oraz piaskownice test/simulate są otwarte dla każdego członka; zapisy wymagają Developer+.

Polityki i ustawienia

Metoda i ścieżkaRolaCel
GET /api/workspace/firewall/settingsMemberOdczytaj ustawienia firewalla przestrzeni roboczej (tryb obserwacji, domyślne).
PUT /api/workspace/firewall/settingsDeveloper+Zaktualizuj ustawienia.
GET /api/workspace/firewall/policiesMemberLista polityk (z licznikami reguł + powiązanych kluczy).
GET /api/workspace/firewall/policies/:idMemberSzczegóły pojedynczej polityki.
POST /api/workspace/firewall/policiesDeveloper+Utwórz politykę.
PUT /api/workspace/firewall/policiesDeveloper+Zaktualizuj politykę.
DELETE /api/workspace/firewall/policies/:idDeveloper+Usuń politykę (409, jeśli klucze są wciąż powiązane).

Postawa, presety i piaskownice

Metoda i ścieżkaRolaCel
GET /api/workspace/firewall/presetsMemberWbudowane presety reguł.
POST /api/workspace/firewall/autonomyDeveloper+Zastosuj poziom autonomii.
POST /api/workspace/firewall/autonomy/undo/:audit_idDeveloper+Cofnij zmianę autonomii.
GET /api/workspace/firewall/simulateMemberPodejrzyj poziom autonomii (?level=).
POST /api/workspace/firewall/testDeveloper+Dry-run polityki wobec przykładowego wywołania narzędzia.

Obserwowalność

Metoda i ścieżkaRolaCel
GET /api/workspace/firewall/discovered-toolsMemberWidziane narzędzia, oznaczone covered / gap.
GET /api/workspace/firewall/eventsDeveloper+Lista zdarzeń firewalla (filtrowalna).
GET /api/workspace/firewall/events/by-request/:request_idDeveloper+Zdarzenia dla jednego żądania.
GET /api/workspace/firewall/events/aggregateDeveloper+Zwinięcie runs / sessions.
GET /api/workspace/firewall/trace/by-runDeveloper+Węzły trace dla uruchomienia (?run_id=).
GET /api/workspace/firewall/anomaliesMemberStrumień anomalii (?window=).
POST /api/workspace/firewall/anomalies/snoozeDeveloper+Uśpij strumień anomalii.
Reguły, serwery MCP i skille mają każde własne endpointy — zobacz Reguły, Serwery MCP oraz Skille.

Brama (maszyna-do-maszyny)

Te działają na tokenie w zakresie firewall-gateway, nie na sesji konsoli:
Metoda i ścieżkaCel
POST /api/v1/firewall/evaluateWerdykt przed-dyspozycją dla jednego wywołania narzędzia.
POST /api/v1/firewall/evaluate_planSprawdzenie przed-wykonaniem dla wielokrokowego planu.
ANY /api/v1/firewall/mcpUjednolicony endpoint bramy MCP.
GET /api/v1/firewall/approvals/:idOdpytaj stan zatwierdzenia wstrzymanego wywołania.
POST /api/v1/firewall/approvals/:id/callbackPodpisany HMAC callback zatwierdzenia.

14. FAQ

Przy wyłączonym trybie obserwacji zachowanie jest bajt-identyczne z przestrzenią roboczą, która nigdy nie włączyła tej funkcji — nic nie jest blokowane ani logowane. Przy włączonym trybie obserwacji wywołanie jest dozwolone, ale rejestrowane jako luka w pokryciu, więc pojawia się w Discovered tools.
Włącz tryb cienia. Polityka ewaluuje i loguje dokładnie tak, jak robiłaby to na produkcji, ale każdy egzekwujący werdykt jest degradowany do audit, a powód jest poprzedzony przedrostkiem [shadow] would …. Obserwuj widoki events i runs, potwierdź, że odpala na tym, czego oczekujesz, i niczym, czego nie chcesz, a potem wyłącz tryb cienia, aby zacząć egzekwować.
Block inbound odpala przed wywołaniem modelu nadrzędnego, więc nie kosztuje tokenów modelu. Werdykty audit / allow nie zmieniają rozliczeń. Reguła cap_cost jest sama w sobie kontrolą rozliczeń — odrzuca, gdy wydatki uruchomienia przekroczą twój limit w centach.
Obu, do różnych warstw. Guardrails prześwietlają tekst w promptach i odpowiedziach (PII, sekrety, jailbreaki). Firewall zarządza akcjami, które podejmuje agent (które narzędzia, które serwery MCP, które hosty). Żądanie może przejść przez oba. Poziom autonomii tight konfiguruje je razem.
Firewall egzekwuje na wywołaniach narzędzi, które przekraczają bramę — ścieżce relay, bramie MCP i hooku evaluate. Narzędzie, które twój agent wykonuje całkowicie wewnątrz własnego procesu, nigdy nie dotykając bramy, jest poza polem widzenia firewalla. Celem projektowym jest uczynienie bramy jedyną audytowaną ścieżką dla wywołań, które mają znaczenie (narzędzia mediowane przez model, dyspozycja MCP, egress sieciowy); poprowadź je przez nią, a będą zarządzane.

Zobacz także

Chcesz głębiej wejść w bezpieczeństwo agentów? Przewodniki Secure Your Agents (Zero Trust) osadzają tę funkcję w przepływie pracy zero-trust.

Zabezpiecz swoje agenty (Zero Trust)

Podręcznik firewalla agentów zero-trust — listy dozwolonych narzędzi, kontrole argumentów i zarządzanie egress.

Baza Secure Agents

Jeden przełącznik, który ustawia jednocześnie postawę Firewalla i Guardrails.