메인 콘텐츠로 건너뛰기
입력 스테이지 guardrail은 호출자의 요청이 모델에 도달하기 전에 그것을 검사합니다. 콘텐츠 정책을 강제하기에 가장 저렴한 곳입니다: 게이트웨이는 들어오는 길에 프롬프트를 검사하고, 규칙이 차단하면 요청은 계량 전에 거부됩니다 — 그 호출에 대해 아무것도 지불하지 않습니다. 여기가 유출된 시크릿, PII 필드, 또는 인젝션 시도가 업스트림 모델에 도달하는 것을 막는 곳입니다. 전체 엔진 — 모든 규칙 타입, 필드, 라우트 — 은 Guardrails 레퍼런스를 참조하세요. 이 페이지는 input 스테이지에 초점을 둔 정리입니다: 모델 앞에서 무엇이 실행되고, 여기서의 차단이 왜 쿼터를 소모하지 않는지.

1. 모델 앞, LLM 앱용 입력 guardrails

모든 guardrail 규칙은 스테이지를 운반합니다 — input, output, 또는 both. input 규칙은 요청이 도착하는 순간, 업스트림 모델로 가는 길에 요청 텍스트에 대해 실행됩니다:
caller → [ input guardrail ] → metering → model → [ output guardrail ] → caller
그 순서가 핵심입니다. 입력 규칙은 게이트웨이가 어떤 쿼터를 사전 소모하기 전에 프롬프트를 보므로, 이 스테이지에서의 차단은 무료입니다 — 요청은 모델에 결코 도달하지 않고 결코 청구하지 않습니다. 모델의 응답이 돌아온 후에 그것을 검사하는([출력 차단은 대신 사전 소모된 쿼터를 환불합니다]) 출력 스테이지와 비교하세요.
입력 규칙은 호출자의 요청을 검사합니다. 레지스트리 프롬프트도 사용한다면, 주입된 시스템 메시지는 라우팅에서 나중에 추가됩니다 — 따라서 입력 규칙은 주입된 프롬프트가 아니라 당신의 앱이 보낸 메시지를 봅니다. 출력 규칙은 어느 쪽이든 응답을 검사합니다.

2. 입력 스테이지에서 실행할 수 있는 것

어떤 규칙 타입이든 input에서 실행될 수 있습니다. 모델 앞에서 요청을 게이트하는 가장 흔한 이유:

프롬프트의 PII 마스킹

mask 액션이 있는 pii 규칙은 엔티티를 타입 지정된 태그로 재작성하므로(jane@acme.com[EMAIL]) 업스트림 모델은 원시 값을 결코 보지 못합니다. PII Shield를 참조하세요.

유출되기 전에 시크릿 차단

API 키나 클라우드 자격 증명을 담은 요청은 문 앞에서 거부됩니다 — 계량 전, 업스트림 호출 없음. 시크릿 차단을 참조하세요.

인젝션 시도 막기

프롬프트 인젝션 기초 프리셋은 keyword/regex 탐지기를 인젝션 의도를 위한 llm_judge 규칙과 짝짓습니다. 프롬프트 인젝션을 참조하세요.

프롬프트 크기 상한

max_chars 규칙은 어떤 토큰도 청구하기 전에 과대한 프롬프트를 거부합니다. 비용 guardrails를 참조하세요.
일곱 가지 규칙 타입 — keyword, regex, pii, max_chars, external, llm_judge, grounding — 과 다섯 가지 액션 block, mask, flag, annotate, spotlight가 모두 여기에 적용됩니다. (spotlight는 매치된 신뢰할 수 없는 텍스트를 구분자로 감싸 모델이 그것을 지시가 아니라 데이터로 취급하게 합니다 — 입력 스테이지 프롬프트 인젝션 방어; annotate는 트래픽을 변경하지 않고 메모를 첨부합니다.) 알아둘 가치가 있는 한 가지 예외: grounding은 검색된 소스에 대해 답변을 측정하므로, 본질적으로 출력 스테이지 검사입니다. 그 외 모든 것은 입력 스테이지에 자연스럽게 맞습니다.
입력 스테이지 마스킹은 오늘날 라이브입니다 — 스트리밍이든 아니든. 게이트웨이는 모든 경로에서 모델이 보기 전에 요청을 재작성합니다. 출력 mask는 비스트리밍 응답만 마스킹합니다; 스트림 내 출력 재작성은 로드맵에 있으므로, mask 규칙은 아직 스트리밍 응답을 마스킹하지 않습니다. 대조적으로 출력 block은 양방향으로 강제됩니다 — 스트리밍과 비스트리밍 (​스트리밍 커버리지 참조).

3. 하나의 구체적인 예

규칙을 릴레이 키가 아니라 콘솔에서 작성하세요(당신의 세션에서 — guardrail 구성에는 **Developer+**가 필요). secrets-shield라는 이름의 guardrail에 단일 input 규칙을 추가합니다:
{
  "type": "regex",
  "stage": "input",
  "action": "block",
  "pattern": "sk-[A-Za-z0-9]{20,}"
}
guardrail을 키에 연결하고(​guardrail_id를 설정하거나, 워크스페이스 기본값으로 표시 — 키에 연결하기 참조), 그 sk-orca-... 릴레이 키로 게이트웨이를 호출합니다:
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": "Debug this: OPENAI_API_KEY=sk-abcdefghij1234567890"}
    ]
  }'
요청은 입력 스테이지에서 매치되고, 게이트웨이가 업스트림으로 무언가를 전달하기 전에 HTTP 400 guardrail_blocked로 거부됩니다:
{
  "error": {
    "type": "guardrail_blocked",
    "message": "request blocked by guardrail \"secrets-shield\": regex(...)"
  }
}
전체 응답 형태는 guardrail_blocked 오류를 참조하세요.

4. 입력 차단이 쿼터를 소모하지 않는 이유

이것이 들어오는 길에 무언가를 잡는 구조적 이점입니다. 입력 스테이지 차단은 사전 소모 전에 위치하므로:
속성입력 스테이지 차단
HTTP 상태400 guardrail_blocked
청구된 쿼터없음 — 계량 전에 발동
업스트림 호출결코 안 함
재시도skip-retry로 표시 — 다시 실행해도 다시 차단됨
요청이 채널에 결코 도달하지 않으므로, 입력 차단은 skip-retry로 표시됩니다: 동일한 프롬프트를 다른 채널에 대해 다시 실행해도 그저 다시 차단되어 노력을 낭비할 뿐입니다. 출력 스테이지는 다릅니다 — 거기서의 차단은 게이트웨이가 이미 사전 소모한 쿼터를 환불합니다. 같은 400, 다른 회계.

5. 해석과 폴백

입력 스테이지 규칙은 요청에 대해 guardrail이 실제로 해석될 때만 실행됩니다. 해석은 명시적입니다:
  1. 키의 명시적 guardrail_id, 존재하고 활성화된 경우.
  2. 그렇지 않으면 워크스페이스 기본 guardrail.
  3. 그렇지 않으면 없음 — 요청은 정책이 없는 워크스페이스와 바이트 단위로 동일합니다.
명시적 연결은 결코 조용히 폴백하지 않습니다. 연결된 guardrail을 비활성화하는 것이 오프 스위치입니다 — 워크스페이스 기본값으로 떨어지지 않습니다. (firewall 정책은 여기서 다르게 동작합니다; Guardrails vs. firewall을 참조하세요.)

6. 출시 전에 증명하기

차단 입력 규칙을 믿음으로 라이브 트래픽에 연결하지 마세요. 먼저 검증하는 두 가지 방법:
guardrail 에디터에서 Test 탭을 열고, 샘플을 붙여넣고, input 스테이지를 선택한 뒤 실행합니다. 샌드박스는 현재 정책을 로컬에서 평가하고 — 업스트림 호출 없음, 쿼터 없음 — 판정과(mask 규칙의 경우) 렌더링된 텍스트를 반환합니다. 테스트 및 평가를 참조하세요.
먼저 액션을 flag로 설정하세요. flag는 트래픽에 대해 아무것도 변경하지 않고 — 매치만 기록합니다 — 따라서 block으로 전환하기 전에 규칙이 실제 입력에서 얼마나 자주 발동할지 측정할 수 있습니다. 거짓 양성 튜닝을 참조하세요.
발동하는 모든 규칙은 match를 기록합니다 — 타입, 액션, 스테이지, 그리고 상세 문자열. 매치된 부분 문자열은 Log raw content가 켜져 있을 때만 기록됩니다(기본적으로 꺼짐). Matches 피드로깅 및 프라이버시를 참조하세요.

7. 다음으로 갈 곳

입력 스테이지는 나쁜 입력이 모델에 도달하는 것을 막습니다. 모델의 응답을 게이트하려면 출력 스테이지와 짝지으세요; 에이전트의 툴 호출을 관리하려면 firewall을 사용하세요. 완전한 엔진은 Guardrails 레퍼런스를 읽거나, 에이전트 기준선을 위해 입력 guardrails와 firewall을 함께 연결하려면 보안 퀵스타트를 읽으세요.