# Human-in-the-Loop ve Onay Akışları

> Source: https://sukruyusufkaya.com/learn/claude-ustaligi/agent-hitl
> Updated: 2026-08-22T03:50:26.090Z
> Category: Claude Ustalığı
> Module: 10. Agent Tasarımı
**TLDR:** Riskli agent eylemlerini insan onayına bağlamak: pre-execution diff, severity tier, audit log.

# Severity Tier'lara Göre Onay

Eylemleri 4 risk tier'ına ayır ve her birine farklı onay protokolü uygula:

| Tier | Örnek | Onay |
| --- | --- | --- |
| L0 | Read-only sorgu | Hayır |
| L1 | Düşük etkili yazma (taslak e-posta) | Otomatik (audit log) |
| L2 | Orta etkili eylem (gönderme, ödeme < 100 USD) | Tek kullanıcı onayı |
| L3 | Yüksek etkili eylem (ödeme > 1000 USD, dosya silme, prod deploy) | İki kişi + diff göster |

### Pre-execution diff

Agent eylemden önce **'ne yapacağım' özetini** insana göster: değişen dosya, gönderilecek e-posta metni, vs. Onay alındığında uygula.

### Audit log

Her onay kararını (kim, ne zaman, hangi sebep) yapılandırılmış log'a yaz. Regülasyon ve incident response için kritik.

### Onay yoksa ne olur?

Asla 'sessiz uygula'ma. Konfigürasyon: 30 dk içinde onay gelmezse iptal et ve kullanıcıya bildir.

```python
def apply_action(action, severity):
    if severity == "L0":
        return run(action)
    if severity == "L1":
        audit_log(action, auto=True)
        return run(action)
    if severity == "L2":
        token = request_approval(action, who="user")
        if not wait_approval(token, timeout_min=30):
            return {"status":"cancelled"}
        return run(action)
    if severity == "L3":
        token = request_dual_approval(action, viewers=2)
        if not wait_approval(token, timeout_min=60):
            return {"status":"cancelled"}
        return run(action)
```

**Boşluk doldurma egzersizi (text):**
```text
Düşük etkili eylemler L1, orta L2, yüksek _____ olarak etiketlenir. L3'te _____ kişi onayı önerilir. Her onay kararı _____ log'a yazılır.
```

> ✋ Kontrol noktası: `q-1005-mc1`

> 📝 İlgili quiz: `module-10-final`