Gate – AI代理工具輸出的確定性PII編輯工具(Rust)
Gate 是一個用 Rust 編寫的確定性 PII 編輯工具,專為 AI 代理設計。它通過正則表達式、列啓發式和 Luhn 檢查來識別和替換敏感信息,而不依賴 LLM。支持多種 AI 代理框架,如 Claude Code、OpenCode、Cursor 等。提供掃描、實時編輯和聚合報告功能,確保數據不會離開本地機器。
Gate 是一個用 Rust 開發的確定性 PII(個人身份信息)編輯工具,專門用於保護 AI 代理工具的輸出。與大多數依賴 LLM 的 PII 防護方案不同,Gate 採用正則表達式、列名稱啓發式算法和 Luhn 校驗等確定性方法,確保相同輸入總是產生相同輸出,且數據始終保留在本地,不會發送到外部模型 API。
Gate 通過兩種主要路徑攔截 AI 代理的數據訪問:Bash 工具路徑和 MCP 路徑。在 Bash 路徑中,Gate 註冊到代理的預工具執行鈎子,自動將匹配的 Bash 命令重寫為 gate run -- ...,從而對命令輸出進行實時編輯。在 MCP 路徑中,Gate 作為一個透明的 stdio 代理,僅對 tools/call 響應進行檢測,其他消息類型直接轉發。這種設計使得代理無法繞過編輯層,但人類和 CI 腳本不受影響。
Gate 還提供了 gate scan 命令用於數據庫模式掃描,檢測列名中可能包含 PII 的列,並基於類別和數量分配風險等級。gate retro 命令提供聚合審計報告,顯示總查詢數、編輯字段數、命中率以及按工具和 PII 類別劃分的詳細信息。此外,Gate 支持哈希值後綴,使得 AI 可以在不看到原始數據的情況下進行行間關聯和去重。
Gate 支持多種 AI 代理框架,包括 Claude Code、OpenCode、Cursor、GitHub Copilot CLI、Codex CLI 和 Gemini CLI。用户可以通過 gate init 命令安裝鈎子,並通過 gate config 編輯配置文件。Gate 還提供 MCP 服務器代理註冊(gate init --wrap-mcp),確保通過 MCP 的工具響應也能經過編輯。
需要注意的是,Gate 並非沙箱,以下場景不在其保護範圍內:對抗性代理或提示注入、未配置工具的命令、非 JSON 格式輸出、編碼或混淆的 PII、非美國 PII 格式(需自行擴展模式)、已經存在於模型上下文中的 PII、工具側的網絡外泄、寫操作(INSERT/UPDATE/DELETE)以及憑據暴露。Gate 建議與工具級別的 Bash 白名單和數據庫只讀角色配合使用,以建立更強的邊界。
Gate 本身收集統計信息並保存在本地 JSONL 日誌中,不會離開用户機器,可以通過配置禁用。對於需要低延遲、確定性和數據本地性的 AI 代理 PII 防護場景,Gate 提供了一個輕量級而有效的解決方案。