Nasıl çalışır
Karar türleri
Her çağrı tam olarak bir karar üretir. Karar her zaman { decision, reason, ruleId } biçimindedir ve denetim kaydına yazılır.
| Karar | Anlamı | Ajan ne görür? |
|---|---|---|
| ALLOW | Çağrı politika ve tarayıcılardan geçti, araç çalıştırıldı. | Aracın (taranmış) sonucu. |
| BLOCK | Politika ihlali, sır/PII, injection ya da döngü. İstek aşamasında araç çalıştırılmaz. Yanıt aşamasında (şüpheli sonuç) araç zaten çalışmıştır; yalnızca sonuç ajandan saklanır. | Güvenli bir hata iletisi. |
| ESCALATE | Çağrı bir insanın onayını bekliyor (Slack). Onaylanırsa devam eder; reddedilir ya da zaman aşımına uğrarsa BLOCK olur. | Onay sonucuna göre sonuç ya da hata. |
| SHADOW_BLOCK | Shadow modda "engellenecekti" kararı. Çağrı durdurulmaz. | Normal sonuç. |
| SHADOW_ESCALATE | Shadow modda "onaya gidecekti" kararı. Çağrı durdurulmaz. | Normal sonuç. |
Karar nesnesi
{
"decision": "BLOCK",
"reason": "argument \"amount\" = 750 exceeds max 500",
"ruleId": "issue_refund"
}
ruleId kararı veren kuralı gösterir: çoğunlukla araç adı, ya da loop-breaker, dlp_exfiltration, drip-exfiltration, ingress_prompt_injection gibi dedektör adları.
Engellenen çağrı ajana nasıl yansır?
MCP proxy'de ajan, engel nedenini içeren standart bir araç hatası alır. SDK'da AvertGateSecurityError fırlatılır; catchErrors: true verirseniz hata fırlatılmaz, { error: "..." } olarak döner (LLM döngüsüne geri bildirim vermek için kullanışlıdır).