> ## Documentation Index
> Fetch the complete documentation index at: https://docs.starfort.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 액션: PASS / MASK / BLOCK

> 모든 Guardian 판단은 세 가지 액션 중 하나로 귀결됩니다. 각 액션의 의미와 전체 액션이 선택되는 방식을 알아봅니다.

Guardian이 콘텐츠를 평가할 때마다 **액션**을 반환합니다. 중간 상태는 정책 유형에 따라 다릅니다. **PII** 정책은 `PASS` / `MASK` / `BLOCK`을 사용하고, **Topic** 정책은 `PASS` / `CHECK` / `BLOCK`을 사용합니다.

<CardGroup cols={2}>
  <Card title="PASS" icon="check">
    매칭된 규칙이 없습니다(또는 `PASSING` 규칙만 매칭됨). 콘텐츠가 변경 없이 계속 진행됩니다.
  </Card>

  <Card title="MASK" icon="eye-slash">
    *(PII 전용)* 민감한 부분이 마스크 토큰으로 대체됩니다. Guardian은 마스킹된 콘텐츠를 반환합니다.
  </Card>

  <Card title="CHECK" icon="magnifying-glass">
    *(Topic 전용)* `controversial` 주제가 매칭되었습니다 — 검토가 필요한 것으로 표시됩니다. **Desktop Agent와 Proxy Server에서는 CHECK가 PASS로 집행됩니다**(콘텐츠가 통과하며 트레이스에만 기록됨). API 호출자는 `CHECK`를 직접 받습니다.
  </Card>

  <Card title="BLOCK" icon="ban">
    차단 규칙 또는 unsafe 주제가 매칭되었습니다. 요청이 중단되며 아무것도 전달되지 않습니다.
  </Card>
</CardGroup>

## 전체 액션은 가장 높은 심각도입니다

응답에는 루트 `action`과 항목별 세부 내역이 있습니다. 루트 액션은 PII와 Topic 결과를 결합하여 탐지된 모든 항목 중 **가장 심각한** 액션입니다: `BLOCK` > `MASK` > `CHECK` > `PASS`. 따라서 다른 부분이 마스킹만 되더라도, 단 하나의 차단 매칭이 있으면 전체 요청이 `BLOCK`이 됩니다.

## 실제 모습 (실제 응답)

**MASK** — PII가 매칭되어 대체되었습니다. `processed_content`에 마스킹된 텍스트가 담깁니다. 마스크 토큰은 `[<MASK_WORD>_<n>]` 형식을 따르며, 카테고리별로 번호가 매겨집니다(1부터 시작, 문서 순서대로, 그리고 **값에 안정적**입니다 — 동일한 원본 값은 동일한 번호를 받으므로 서로 다른 두 이름은 `[PERSON_NAME_1]`과 `[PERSON_NAME_2]`가 됩니다). 각 토큰 뒤의 원본은 `matched_text`로 노출되며, 이는 `unmaskOutput`이 복원할 때 사용하는 값입니다.

```json theme={null}
{
  "action": "MASK",
  "input_results": [{
    "index": 0, "type": "text", "action": "MASK",
    "processed_content": "제 번호는 [PHONE_NUMBER_1] 이고 이메일은 [EMAIL_1] 입니다.",
    "results": [{
      "policy_name": "PII Masking Policy", "policy_type": "PII", "action": "MASK",
      "detected_items": [
        { "rule_type": "regex", "rule_name": "phone_number", "mask_word": "PHONE_NUMBER_1", "matched_text": "010-2543-2513" },
        { "rule_type": "regex", "rule_name": "email", "mask_word": "EMAIL_1", "matched_text": "jane@acme.co.kr" }
      ]
    }]
  }]
}
```

**BLOCK** — unsafe Topic이 매칭되었습니다. `processed_content`는 `null`입니다.

```json theme={null}
{
  "action": "BLOCK",
  "input_results": [{
    "index": 0, "type": "text", "action": "BLOCK", "processed_content": null,
    "results": [{
      "policy_name": "Topic Policy", "policy_type": "TOPIC", "action": "BLOCK",
      "detected_items": [{ "rule_id": "WPN", "rule_name": "무기", "action": "BLOCK", "confidence": 0.91 }]
    }]
  }]
}
```

<Note>
  전체 필드 레퍼런스(PII와 Topic의 `detected_items`)는 [응답 형식](/ko/v1.2/api/response-format)을 참고하세요.
</Note>

## 액션을 확인할 수 있는 위치

* **API 개발자**는 [Guard API 응답](/ko/v1.2/api/response-format)에서 `action`을 읽습니다.
* **Account Admin**은 [Opticon 모니터링](/ko/v1.2/admin/monitoring-opticon)에서 모든 액션을 `PASS` / `MASK` / `CHECK` / `BLOCK` 태그가 붙은 트레이스로 확인합니다(트레이스 태그는 PASS로 집행된 경우에도 `CHECK`를 유지합니다).
* **Desktop Agent 사용자**는 AI 도구를 사용하면서 MASK/BLOCK을 투명하게 경험합니다.
