> ## 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

> Starfort のすべての Guardian 判断は PASS・MASK・BLOCK に帰結します。各アクションの意味と全体アクションの選ばれ方を解説します (Starfort v1.4 版)

Guardian がコンテンツを評価するたびに、**アクション**を返します。**PII** ポリシーは `PASS` / `MASK` / `BLOCK` を使用し、**Topic** の判定は 2-state です — `PASS` または `BLOCK` のいずれかです。

<CardGroup cols={3}>
  <Card title="PASS" icon="check">
    一致したルールがない（または `PASSING` ルールのみ一致した）場合。コンテンツは続行します — 送出されるのは Guardian が確認・再構成した処理済みコンテンツです。
  </Card>

  <Card title="MASK" icon="eye-slash">
    *（PII のみ）* 機微な箇所がマスクトークンに置き換えられます。Guardian はマスクされたコンテンツを返します。
  </Card>

  <Card title="BLOCK" icon="ban">
    ブロッキングルールまたは unsafe なトピックに一致した場合。リクエストは停止され、何も先へ送信されません。
  </Card>
</CardGroup>

## 全体のアクションは最も重大なものになる

レスポンスには、ルートの `action` と項目ごとの内訳があります。ルートのアクションは、PII と Topic の結果を統合した上で、検出されたすべての項目のうち**最も重大な**アクションです: `BLOCK` > `MASK` > `PASS`。したがって、1 つでもブロッキングに一致すると、他の部分がマスクのみであっても、リクエスト全体が `BLOCK` になります。

## 外部へ出るのは処理済みコンテンツです

v1.4 からは、外部の AI サービスへ実際に出ていくコンテンツは、呼び出し元が送信した原本ではなく、Guardian がパース・正規化（必要に応じて OCR・デコード）によって内容を実際に確認した上で再構成した**処理済みコンテンツ**（`processed_content`）に統一されます。原本には Guardian が確認できなかった部分が残っている可能性があるため、処理済みコンテンツだけを送出することで、「確認できなかったもの」がそのまま流出する経路を閉じます。

| 判定        | 送出されるコンテンツ                                                                              |
| --------- | --------------------------------------------------------------------------------------- |
| **PASS**  | 処理済みコンテンツ — マスキング対象がなく内容が原文と同じであっても、送られるのは Guardian が再構成した処理済みコンテンツです。原本が直接出ていくことはありません |
| **MASK**  | マスキングされた処理済みコンテンツ（従来どおり）                                                                |
| **BLOCK** | 送出なし — 外部への送出自体が発生しません                                                                  |

この原則は 3 つの呼び出し元（API・Desktop Agent・Proxy Server）に等しく適用されます。API レスポンスは判定にかかわらず各入力の `processed_content` に処理済みコンテンツを設定し、PASS でも空にはなりません。未対応のファイルやパース・デコードに失敗した入力のように、**処理済みコンテンツを作れない入力**は、送出する対象が存在しないため送出されません（`null`） — 確認できなかった原本が外部へ出ることはありません。

## 実際のレスポンス例

**MASK** — PII が一致し、置き換えられました。`processed_content` にマスクされたテキストが格納されます。マスクトークンは `[<MASK_WORD>_<n>]` の形式に従い、カテゴリごとに番号が付与されます（1 始まり、ドキュメント内の出現順、かつ**値に対して安定**です。同じ元の値には同じ番号が付くため、異なる 2 つの氏名はそれぞれ `[PERSON_NAME_1]` と `[PERSON_NAME_2]` になります）。各トークンの背後にある元の値は `matched_text` として公開され、`unmaskOutput` はこれを使って元に戻します。

```json theme={"dark"}
{
  "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={"dark"}
{
  "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": "Weapons", "action": "BLOCK", "confidence": 0.91 }]
    }]
  }]
}
```

<Note>
  フィールドの完全なリファレンス（PII と Topic の `detected_items` の違い）については、[レスポンス形式](/ja/v1.4/api/response-format)を参照してください。
</Note>

## アクションが確認できる場所

* **API 開発者**は、[Guard API レスポンス](/ja/v1.4/api/response-format)から `action` を読み取ります。
* **Account Admin** は、[Opticon モニタリング](/ja/v1.4/admin/monitoring-opticon)ですべてのアクションをトレースとして確認でき、`PASS` / `MASK` / `BLOCK` のタグが付きます。
* **Desktop Agent ユーザー**は、AI ツールを使用する際に MASK/BLOCK を透過的に体験します。
