# Gdpr Guard

> GDPR 合规护栏 (gdpr) v1.0.0。 在 AI 应用输入/输出链路中实时检测 GDPR 语境下的个人数据， 按风险分级脱敏或阻断，供 Agent 主动调用。 Use when: 需要在 Agent 处理用户输入或返回结果前，实时拦截/脱敏 EU 个人数据；防止 IBAN、UK NI、信用卡、特殊类别数据（基因/生物 识别/健康/宗教信仰等）流入大模型或被输出泄露；为 AI 应用加装 符合 GDPR 的运行时护栏。 核心能力： - 🛡️ 实时检测 IBAN、UK NI、EU 电话、信用卡（Luhn）、 IPv4/MAC、邮箱等结构化个人数据 - 🧩 关键词线索识别：GDPR Art.9 特殊类别（种族/政治观点/ 宗教信仰/工会/基因/生物识别/健康/性生活）及 Art.10 刑事定罪数据 - 🎭 三种动作：detect（仅检测）/ mask（脱敏放行）/ block（高危阻断） - 📊 风险分级（high / medium / low）与结构化裁决结果（JSON） - 🧱 内核与规则分离 触发关键词：GDPR、EU 数据保护、个人数据检测、特殊类别数据、 PII detection、数据合规护栏、AI data protection 适用范围：EU/EEA 相关 AI 应用输入/输出文本的运行时防护 运行模式：纯本地，零网络请求，零动态执行 ❎ 外部依赖：Python 标准库（无需额外安装）

- Skill: `cslawyer1985/gdpr-guard` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add cslawyer1985/gdpr-guard`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cslawyer1985/gdpr-guard/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: cslawyer1985 (https://skillmd.com/u/cslawyer1985)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cslawyer1985/gdpr-guard

---


# 🛡️ GDPR Guardrail —— GDPR 合规护栏 v1.0.0

## 概述

gdpr 是面向 AI 应用的**运行时合规护栏**。它在 Agent 处理用户输入、
或向用户返回输出之前，实时检测其中的个人信息，并按风险等级执行脱敏或阻断。

与"事后审计"类工具（如合规自查、文件扫描）不同，护栏解决的是**事中**问题：
每一次调用能不能放行、要不要脱敏、是否必须阻断。二者互补，共同覆盖
AI 应用"事前自查 + 事中防护"的合规链路。

## 为什么是本地护栏

护栏是低延迟、高频的运行时组件，且处理的正是最敏感的数据。因此
gdpr 坚持**纯本地运行**：检测在本机完成，敏感数据不出机器，
无任何网络请求，无 `eval` / `exec` / 动态 import。这既满足运行时性能，
本身也是最强的 GDPR 友好特性。

## 快速开始

```bash
# 检测并脱敏（默认动作 mask）
python3 scripts/guard.py --text "我的身份证是110101199003074477"

# 从标准输入读取（适合管道 / Agent 调用）
echo "手机号13800138000" | python3 scripts/guard.py --stdin

# 高危阻断模式：命中 high 级敏感信息则拦截，不放行
python3 scripts/guard.py --text "身份证110101199003074477" --action block

# 结构化 JSON 输出（Agent 消费）
python3 scripts/guard.py --text "邮箱 a@b.com" --action detect --format json

# 列出可用规则包
python3 scripts/guard.py --list-profiles
```

## Agent 调用约定

护栏设计为 Agent 主动调用的检测工具，典型接法有两处：

**入口护栏（用户输入 → 模型）**：把用户输入交给护栏，`mask` 后再送入大模型，
防止 EU 个人数据流入外部模型或日志。

**出口护栏（模型输出 → 用户）**：把模型输出交给护栏，`mask` 或 `block` 后
再返回用户，防止生成结果泄露个人数据。

护栏返回结构化裁决（`--format json`），关键字段：

| 字段 | 含义 |
|------|------|
| `decision` | `pass` / `masked` / `blocked` / `inspect_only` |
| `risk_level` | 本次最高风险等级 `high/medium/low/none` |
| `finding_count` | 命中条数（已去重） |
| `findings[]` | 每条命中的类别、等级、位置与脱敏预览（不含原文明文） |
| `output` | 处理后的文本；`blocked` 时为 `null` |

> 注意：`findings` 中仅提供脱敏预览（`preview`），不回传敏感原文，
> 避免护栏结果本身成为新的泄露面。

## 三种动作

| 动作 | 行为 | 适用 |
|------|------|------|
| `detect` | 仅检测并报告，不改动文本 | 审计、观察、灰度 |
| `mask` | 脱敏后放行（默认） | 大多数输入/输出防护 |
| `block` | 命中达阈值则阻断，否则脱敏 | 高敏场景、强合规要求 |

阻断阈值由 `--block-on` 控制（`high` / `medium` / `low`），默认 `high`：
默认脱敏放行、仅高危阻断，兼顾可用性与安全。

## 检测范围（gdpr v1.0.0）

**结构性模式**：
IBAN（国际银行账号）、UK National Insurance Number、EU 电话（E.164）、
信用卡号（Luhn 校验）、IPv4、MAC 地址、邮箱。

**关键词线索（GDPR 特殊类别数据）**：
Art.9(a) 种族或民族出身、Art.9(b) 政治观点、Art.9(c) 宗教信仰、
Art.9(d) 工会成员、Art.9(e) 基因数据、Art.9(f) 生物识别数据（指纹/人脸识别）、
Art.9(g) 健康数据（病历/诊断/医疗史）、Art.9(h) 性生活/性取向；
Art.10 刑事定罪与犯罪记录。

校验位/Luhn 校验 + 重叠命中自动去重，只报最高风险项，

## 规则与内核分离

检测内核（`scripts/guard.py`）不含任何行业规则；规则集中在
`scripts/rules/` 下的规则包。gdpr 版使用自包含的 `gdpr` 规则包，
覆盖 EU 个人数据格式与 GDPR 特殊类别数据。内核逻辑在所有版本间完全复用。

## 安全与约束

- 纯本地运行，无任何网络请求、遥测或回调
- 无 `eval` / `exec` / 动态 import；规则通过显式映射加载，便于审计
- 不写入用户指定之外的文件；不修改自身代码
- 检测结果不回传敏感原文，仅提供脱敏预览
- 全部为可读 Python，无混淆、无二进制依赖

## ⚠️ 法律声明

### 免责条款

**使用本 gdpr 护栏前请仔细阅读以下条款：**

1. **非法律建议**：本工具提供的检测、脱敏与拦截结果仅供参考，
   **不构成法律建议或合规证明**，不具备法律效力。
2. **无绝对保证**：个人信息形态多样，基于正则与关键词的检测
   **无法保证 100% 识别**，可能存在漏报或误报。用户不应将其作为
   唯一或最终的合规保障手段。
3. **按原样提供**：本工具按"原样"（AS IS）提供，不作任何明示或
   暗示的保证，包括适销性、特定用途适用性或检测完整性。
4. **责任限制**：在法律允许的最大范围内，开发者对使用或无法使用
   本工具产生的任何损失不承担责任。
5. **用户责任**：用户对其 AI 应用的合规性负全责，重大合规决策
   应咨询专业法律顾问，并结合组织制度、技术措施综合落实。
6. **数据安全**：本工具本地运行，处理数据留在用户设备上；
   用户应自行负责数据的备份与安全。

### 知识产权

本工具基于 MIT 许可证开源。所引用的法律法规原文（如《个人信息保护法》）
属政府公开信息，版权归原制定机关，用户应以官方发布版本为准。

### 使用限制

- ✅ 允许：作为 AI 应用运行时防护的辅助手段、脱敏预处理、合规体系的一环
- ❌ 禁止：作为法律证据或合规证明提交监管部门、替代专业法律咨询、
  用于规避法律义务、移除本声明后分发

### 管辖法律

本声明受中华人民共和国法律管辖。因本工具引发的争议，应先友好协商；
协商不成的，提交开发者所在地有管辖权的法院解决。

---

**GDPR 合规护栏系列 · GDPR版**　为 AI 应用装上实时合规护栏

