Przejdź do głównej treści
Gdy twoja aplikacja wysyła kod do modelu — by go przejrzeć, uzupełnić lub przepuścić przez agenta — chcesz, by model został ostrzeżony o ryzykownych częściach, a przestrzeń robocza powstrzymana przed wyciekiem sekretów w tym samym przejściu. Guardrail bezpieczeństwa kodu robi dokładnie to: uruchamia twoje reguły bezpieczeństwa kodu nad żądaniem, zanim model nadrzędny zobaczy jeden token. To skupiona strona docelowa. Pełny silnik guardrail — typy reguł, etapy, rozwiązywanie, piaskownicę testową — znajdziesz w referencji Guardrails i przeglądzie guardrails.

1. Co guardrail bezpieczeństwa kodu faktycznie robi

OrcaRouter dostarcza rodzinę presetów code_security, którą stosujesz z wyboru szablonów. Każdy to zwykła reguła guardrail — w zakresie przestrzeni roboczej, uporządkowana, powiązywalna z dowolnym kluczem — dostrojona do kodu:

.env / Secret-File Block

Blokuje przypisania sekretów w stylu .env (DATABASE_URL=, AWS_SECRET_ACCESS_KEY=, API_TOKEN=…) i wklejone wielowierszowe zrzuty konfiguracji, zanim dotrą do dostawcy. Opiera się na składni przypisania, nie na wartości.

License Compliance (copyleft)

Flaguje żądania niosące nagłówki silnego copyleft — tagi SPDX GPL / AGPL / LGPL / SSPL lub pełne nazwy licencji — by recenzent mógł potwierdzić, że kod jest bezpieczny do zmieszania z bazą permisywną. Tylko flag.

GPL/AGPL Provenance (output)

Flaga na etapie wyjścia na sugestiach modelu niosących sygnatury pochodzenia copyleft — marker, że model mógł zwymiotować dane treningowe copyleft do wygenerowanego kodu.

Insecure-API Advisory

Adnotuje prompt ostrzeżeniem bezpieczeństwa, gdy odwołuje się do wysoce ryzykownego sinka — eval( / exec( / os.system( / subprocess.run( / pickle.loads( / child_process.exec(. Nieblokujące.
Pierwsze trzy używają akcji, które już znasz — block i flag. Insecure-API Advisory używa annotate: zamiast odrzucać lub redagować żądanie, wzbogaca je o notatkę, którą model czyta przed odpowiedzią. Ten sam prymityw napędza dekorację CVE/SBOM (poniżej).
Presety code_security są deterministyczne — czysty regex, bez wywołania sieciowego, bezpieczne na gorącej ścieżce. Sieciowe skanery (lookup CVE, SBOM, SAST) to osobne połączenia zewnętrzne, nie presety. Zobacz §3.

2. Annotate — ostrzeż model bez zmiany ruchu

Akcje, które konfigurujesz na guardrail, to block (odrzuć wywołanie, HTTP 400), mask (redaguj dopasowanie) i flag (tylko log). Bezpieczeństwo kodu dodaje czwarte zachowanie pod maską: annotate, które ani nie blokuje, ani nie maskuje. Gdy reguła annotate się dopasuje, brama rejestruje krótką notatkę, a relay wstrzykuje ją w górę jako ostrzeżenie systemowe — więc model jest poinformowany, np. “this request references a high-risk API (code eval, shell execution, or unsafe deserialization); prefer safer alternatives”zanim odpowie. Tekst użytkownika nigdy nie jest odrzucany ani przepisywany.

Jeden konkretny przykład

Zastosuj preset Insecure-API Advisory do guardrail i powiąż go z kluczem. Potem wyślij kod, który woła niebezpieczny sink:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user",
       "content": "Refactor this: result = eval(user_supplied_expr)"}
    ]
  }'
Żądanie przechodzi niezmodyfikowane — ta sama treść, ten sam model — ale brama dokleja na początek ostrzeżenie bezpieczeństwa, które model czyta jako pierwsze. Odpowiedź wraca skierowana ku sparametryzowanym API i walidacji wejścia, bez zmiany kodu w twojej aplikacji i bez drugiego obiegu.
Annotate komponuje się z innymi akcjami. Pojedynczy guardrail może maskować sekret oraz adnotować to samo żądanie — tekst jest redagowany, a notatka dodawana w jednym przejściu.

3. Dekoracja CVE i SBOM przez skanery zewnętrzne

Prymityw ostrzeżenia generalizuje się. Podłącz skaner bezpieczeństwa kodu jako zewnętrznego dostawcę, a jego ustalenia jadą tą samą ścieżką annotate:
Wyciąga importy i przypięcia manifestu z tekstu żądania i porównuje je krzyżowo z publiczną bazą podatności OSV. Trafienie dekoruje prompt np. “requests@2.0.0 has CVE-2014-1830 (HIGH). Fixed in 2.20.0.” — więc model jest poinformowany o znanej podatności w pakiecie, którego użycia był poproszony. Darmowy i nieuwierzytelniony, więc nie ma pola klucza API. Domyślnie annotate; możesz ustawić zamiast tego flag lub block.
Podłącz skaner SBOM (software bill-of-materials) lub SAST (analiza statyczna) tak samo, jak podłączasz dowolnego zewnętrznego dostawcę — bazowy URL plus poświadczenia, przechowywane zaszyfrowane i maskowane przy odczycie. Każde ustalenie niesie stabilną tożsamość, więc ustalenie, które już otriażowałeś, nie odpala ponownie przy każdym żądaniu.
Skanery zewnętrzne podążają za tym samym domyślnym fail-open co każda zaawansowana reguła: błąd skanera lub timeout jest rejestrowany jako telemetria, a żądanie kontynuuje. Ustaw fail_open na false na regule, by fail closed dla polityk, w których pominięty skan jest nieakceptowalny.

4. Parowanie z regułami sekretów i licencji

Guardrail bezpieczeństwa kodu rzadko jedzie sam. Częsty kształt to jeden guardrail z kilkoma regułami:
CelReguła
Zatrzymaj wklejone poświadczenia.env / Secret-File Block (block)
Wychwyć wartości sekretów inlineSecrets Blocker (block)
Bramkuj kod copyleftLicense Compliance (flag)
Steruj niebezpieczne sinkiInsecure-API Advisory (annotate)
Dodaj je wszystkie do jednej nazwanej polityki, powiąż ją z kluczem twojego agenta kodowego, a każde żądanie jest sprawdzane — block na jednoznacznych naruszeniach, annotate na osądach, flag reszty do przeglądu.
Zablokowane żądanie zwraca HTTP 400 guardrail_blocked i nie kosztuje kwoty — blokada na etapie wejścia działa przed pomiarem. Jest też oznaczone jako skip-retry, więc ponowne uruchomienie tego samego promptu na innym kanale po prostu znów blokuje. Zobacz błąd guardrail-blocked.

5. Skonfiguruj to (konsola + role)

Wszystko tutaj jest konfigurowane w konsoli, nie przez klucz relay. Trasy zarządzania (/api/guardrail/*) uwierzytelniają się twoją sesją / tokenem dostępu, nie kluczem relay sk-. Odczyty — listowanie guardrails i strumień Matches — są otwarte dla każdego członka przestrzeni roboczej. Zapisy (utworzenie / edycja / usunięcie) oraz piaskownica testowa wymagają roli Developer lub wyższej: piaskownica może odpalać płatne wywołania modelu i wychodzące żądania dostawców, więc jest bramkowana jak zapis.
1

Utwórz guardrail

W konsoli otwórz Guardrails → New guardrail. Przycisk z podziałem wrzuca cię do biblioteki szablonów — wybierz preset Code security jako punkt wyjścia.
2

Edytuj swobodnie

Preset to ziarno, nie blokada. Dostrój regex, dodaj regułę Secrets Blocker, zmień akcję. Użyj zakładki Test, by udowodnić, że reguła działa tak, jak oczekujesz, wobec przykładowego tekstu, zanim powiążesz ją z kluczem.
3

Powiąż klucz

Ustaw guardrail na kluczu API (guardrail_id) lub oznacz go jako domyślny przestrzeni roboczej. Powiązanie żyje na kluczu w bramie, więc edycja guardrail przesuwa każdy powiązany klucz przy następnym wywołaniu.
Ustalenia lądują w strumieniu Matches przestrzeni roboczej (typ reguły, akcja, etap, szczegół). Dopasowany podłańcuch jest rejestrowany tylko, gdy Log raw content jest włączone — domyślnie wyłączone, postawa konserwatywna wobec prywatności. Zobacz logowanie i prywatność.

6. Dokąd dalej