# Human Gate (人類閘門)

*只在不可逆、對外或提權的動作之前出現，展示真實的差異。*

> **Human Gate（人類閘門）** 是由策略觸發的檢查點：在**不可逆、對外或提權**的動作生效之前，由人（或指定的審批主體）批准一個被完整渲染的具體動作。它被設計成稀少、具體、難以橡皮圖章。

**AN-05** · 符合性等級: L1 Authority · 概念組: 權限

## 要解決的問題

今天的「人在迴路」要麼是無休止的彈窗，要麼什麼都沒有。Anthropic 披露，Claude Code 使用者批准了 93%–97% 的權限提示；在它的受控實驗裡，人只攔住了 13.6% 被植入的危險命令，工作階段越長越差。這是廠商為推廣自動模式做的研究，測的是識別被植入的提示，不是生產事故率，但方向很清楚。

同一份資料裡還有另一個數字：使用者對「計劃」的拒絕率是 39%，對單個權限請求只有 3%。人會認真判斷的，是計劃和合並，不是每一次工具呼叫。

## 工作方式

- **只在少數地方出現：** 合併進受保護樹、受保護樹中的刪除、對外共享或釋出、出口、租約擴權、標籤降級。分支上的寫入不需要審批。
- **粒度是計劃或合併。** 評審一個 PR，而不是五十個彈窗。
- **Gate Card 由 NAS 渲染：** 真實的差異、讀清單摘要、租約、工作階段污點，絕不使用智能體的自述。選項：批准、收窄後批准、拒絕；逾時預設拒絕。
- **批准綁定動作摘要：** 綁定差異雜湊與租約，不能重放。
- **交付：** 推送、聊天、郵件或 CLI；可以委派；passkey 作為可選的強認證。
- **只升不降。** 可選的風險分類器（包括 LLM）只能把動作**升級**到閘門，永遠不能**批准**。模型只能收緊，不能放寬。
- **疲勞度量：** 批准率與批准耗時；批准率異常高時，提示合併閘門或收緊策略。

## 從小處開始

- 受保護 main 加 PR 審閱（任何 Git 平臺都行），再加一條推送通知。
- 或者一個 CLI：`nas gate approve <gate_id>`。
- 先把 Gate Card 做成「真實的差異」，別急著做花哨的介面。

## 介面草圖

僅作示意。欄位名在規範 v0.3 之前可能調整。

*gate-card.json*

```json
{
  "gate_id": "gt_2Mx4",
  "run": "run_91ab",
  "action": {
    "op": "merge",
    "from": "cleo/run_91ab",
    "into": "main",
    "files_changed": 4,
    "diff_sha256": "7d2a..."
  },
  "why": "Release notes are ready for review",
  "risk": {
    "session_taint": ["external"],
    "sources": ["web:example.com/changelog"],
    "destructive": false,
    "egress": false
  },
  "options": ["approve", "approve_narrowed", "deny"],
  "default": "deny",
  "expires_at": "2026-11-12T12:00:00Z"
}
```

## 規範的要求

- Gate Card **必須**展示由 NAS 計算出的真實差異，而不是智能體對它的描述。
- 批准**必須**綁定動作摘要與租約，**不得**可重放。
- 逾時的預設結果**必須**是拒絕。
- 分類器或 LLM **不得**授予批准；**可以**把動作升級到閘門。
- 合併進受保護樹、受保護樹中的刪除、對外共享、出口、租約擴權、標籤降級，**必須**經過閘門。
- NAS **應當**報告批准率與批准耗時。

## 借鑑與區別

下面這些都是現成的做法。**真正新的部分：** 把審批錨定在**儲存層的合併**上，並由 NAS（而不是智能體）渲染內容。審批與 PR 本身都是現成的。

- [How we built Claude Code auto mode](https://www.anthropic.com/research/claude-code-auto-mode)
- [Anthropic: approval data behind auto mode](https://claude.com/resources/articles/auto-mode-default-in-claude-code)
- [CaMeL](https://arxiv.org/abs/2503.18813)
- [WebAuthn](https://www.w3.org/TR/webauthn-3/)
- [OpenID CIBA](https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html)

## 坦誠的侷限

- 人仍然可能批准錯誤的動作；成批的審閱也會疲勞。
- 通知渠道可能被釣魚。
- 審批無法阻止它**批准範圍之外**的事，那是租約的工作。

## 開放問題

- 批次與分級審閱的最佳介面是什麼？
- 自動合併的門檻如何度量與調整？

## 常見問題

### 這不就是又一個「確認」彈窗嗎？

刻意不是。彈窗針對每次工具呼叫，人很快就會點「批准」。閘門只出現在少數不可逆或對外的動作前，展示 NAS 計算出的真實差異，批准還綁定了差異的雜湊：差異變了，批准即失效。

### 可以讓 LLM 來決定要不要放行嗎？

可以讓它建議「這一步需要人看」，不能讓它批准。放行的決定必須是確定性的規則或人的批准。這條規則讓安全性不依賴某個模型的判斷。

### 逾時會怎樣？

預設拒絕。執行會收到一個明確的被拒絕結果，可以改走別的路徑，或把提議留在分支裡等人處理。

## 相關概念

- [Capability Lease (能力租約)](https://agentnas.com/zh-tw/concepts/capability-lease/): 發給一次執行的、有期限與預算的窄域授權；子租約只能更窄。
- [Trust Labels (信任標籤)](https://agentnas.com/zh-tw/concepts/trust-labels/): 來源與敏感度兩個小標籤，加上工作階段污點，強制執行 Rule of Two。
- [Agent Branch (智能體分支)](https://agentnas.com/zh-tw/concepts/agent-branch/): 每次執行在寫時複製的分支裡工作，經審閱的合併才進入主線。

---

標準網址: https://agentnas.com/zh-tw/concepts/human-gate/
更新於: 2026-11-11 · 規範草案 v0.2 · CC BY 4.0
