# Human Gate (ヒューマン・ゲート)

*元に戻せない、外へ出る、権限を広げる操作の前にだけ現れ、実際の差分を見せます。*

> **Human Gate** は、ポリシーが起動するチェックポイントです。**元に戻せない、外向きの、または権限を高める** 操作が効力を持つ前に、人間（または指名された承認者）が、完全に描画された 1 つの具体的な操作を承認します。まれで、具体的で、機械的に承認しにくくなるように設計されています。

**AN-05** · 準拠レベル: L1 Authority · グループ: 権限

## 解決する課題

いまの「人間をループに入れる」は、延々と続くプロンプトか、何もないかのどちらかです。Anthropic の報告では、Claude Code のユーザーは許可プロンプトの 93% から 97% を承認しています。管理された実験では、人間が見つけられたのは、仕込まれた危険なコマンドのわずか 13.6% で、セッションが長引くほど成績は悪くなりました。これは auto mode を売り込むためのベンダー調査で、測っているのも本番の事故率ではなく仕込まれたプロンプトを見つける能力ですが、方向性は明らかです。

同じデータには、もう 1 つの数字があります。ユーザーは、計画の 39% を却下する一方で、個々の許可リクエストは 3% しか却下しません。人間が真剣に判断するのは計画とマージであって、すべてのツール呼び出しではありません。

## 仕組み

- **現れる場所は少数です。** 保護ツリーへのマージ、保護ツリーからの削除、外部への共有や公開、外向きの送出、リースの拡大、ラベルの引き下げ。ブランチへの書き込みに承認は要りません。
- **粒度は、計画かマージです。** 50 個のプロンプトではなく、1 つの PR をレビューします。
- **Gate Card は NAS が描画します。** 実際の差分、読み取りマニフェストの要約、リース、セッション汚染を示し、エージェント自身の説明は使いません。選択肢は、承認、絞って承認、拒否。タイムアウトは拒否になります。
- **承認は、操作のダイジェストに束縛されます。** 差分のハッシュとリースに結びつき、再利用はできません。
- **配信：** プッシュ、チャット、メール、CLI。委任もでき、パスキーは任意の強力な認証です。
- **エスカレートのみ。** 任意のリスク分類器（LLM を含む）は、操作をゲートに **エスカレート** することだけができ、**承認** はできません。モデルが動かせるのは締める方向だけで、緩める方向には動かせません。
- **疲れは計測します。** 承認率と承認までの時間です。承認率が異常に高いときは、ゲートをまとめるか、ポリシーを締めるべき兆候です。

## 小さく始める

- 保護されたメインと 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/ja/concepts/capability-lease/): 1 回の実行のための、期限と予算つきの狭い認可。子リースは、より狭くしかできません。
- [Trust Labels (トラスト・ラベル)](https://agentnas.com/ja/concepts/trust-labels/): 2 つの小さなラベルとセッション汚染で、Rule of Two を実現します。
- [Agent Branch (エージェント・ブランチ)](https://agentnas.com/ja/concepts/agent-branch/): 実行ごとに、コピーオンライトのブランチで作業します。メインに届くのは、レビューを経たマージだけです。

---

正規 URL: https://agentnas.com/ja/concepts/human-gate/
更新日: 2026-11-11 · 仕様ドラフト v0.2 · CC BY 4.0
