Çalışma döngüsü
AvertGate her araç çağrısında aynı döngüyü çalıştırır. Önce ucuz ve deterministik kontroller, sonra gerektiğinde anlamsal model.
Yakala
Ajan kimliği, oturum kimliği, araç adı ve argümanlar toplanır; oturumun yörüngesi yüklenir.
İstek denetimi (araç çalışmadan önce)
Politika, çıkış taraması ve döngü kırıcı sırayla çalışır. Politika kararı bu aşamada verilir; argümanlarda sır/PII varsa çağrı durdurulur. İsteğe bağlı AI Guard niyeti analiz eder.
Çalıştır
İzin verilen çağrı gerçek araca iletilir; sonuç alınır.
Yanıt denetimi (araç çalıştıktan sonra)
Dönen sonuç güvenilmeyen içerik sayılır ve dolaylı prompt injection için taranır.
Döndür ve kaydet
Temiz sonuç ajana döner. Olayın tamamı (argümanlar maskelenmiş olarak) zincirli denetim kaydına eklenir.
Neden iki aşama?
İstek aşaması ajanın ne yapmak üzere olduğunu yönetir. Yanıt aşaması ise geri ne geldiğini inceler: araç sonuçları, getirilen belgeler ve web içeriği, dolaylı prompt injection'ın ajana girdiği güvenilmeyen kanaldır. İkisi tek adıma indirgenemez; bir saldırı genellikle yanıt aşamasında içeri girer ve ancak istek aşamasında etkisiz kalır.
Sıra ve maliyet
| Adım | Tür | Tipik süre |
|---|---|---|
| Politika, egress/ingress regex, döngü kırıcı | Deterministik, yerel | < 2 ms |
| AI Guard (isteğe bağlı) | Anlamsal model | ~50–100 ms (TypeSafe AI Jev) |
Deterministik adım bir çağrıyı zaten durduruyorsa model hiç çağrılmaz. Model çağrısı yalnızca ucuz kontrolleri geçen ve yeterince uzun içeriklerde yapılır.
İstek ve yanıt aşamasında ne olur?
Her çağrı için tek bir nihai karar ve tek bir denetim olayı üretilir. Sonuç, çağrının hangi aşamada durduğuna göre değişir:
| Durum | Araç çalışır mı? | Ajan ne alır? | Denetim kaydı |
|---|---|---|---|
| İstek aşamasında ALLOW, yanıt temiz | Evet | Aracın sonucu | ALLOW |
| İstek aşamasında BLOCK | Hayır | Güvenli hata iletisi | BLOCK + neden + kural |
| İstek aşamasında ESCALATE, onaylandı | Onaydan sonra evet | Aracın sonucu (yanıt taramasından geçerse) | Nihai karar |
| İstek aşamasında ESCALATE, reddedildi / zaman aşımı / Slack hatası | Hayır | Güvenli hata iletisi | BLOCK |
| İstek geçti, yanıt şüpheli (enjeksiyon belirtisi) | Evet, zaten çalıştı | Sonuç ajana verilmez; güvenli hata iletisi döner | BLOCK (neden: ingress tarama) |
allow: false, constraints, require_approval) kontrol altına alın. Ayrıntı: Risk katmanları.Shadow mode'da hiçbir aşamada engelleme yapılmaz; yalnızca SHADOW_BLOCK / SHADOW_ESCALATE olarak kaydedilir ve sonuç ajana aynen verilir.
Fail-closed: hata durumunda ne olur?
Bir denetleyici hata verirse (ağ, zaman aşımı, ayrıştırma) AvertGate sessizce ALLOW vermez. Davranış duruma göre aşağıdaki gibidir (fail_closed varsayılanı true):
| Durum | fail_closed: true (varsayılan) | fail_closed: false | Shadow mode |
|---|---|---|---|
| Başlangıçta politika yüklenemedi / ayrıştırılamadı | Ağ geçidi başlamaz (hata ile çıkar). Politikasız çalışma yoktur. | Aynı | |
| Çalışırken politika yenilenemedi (bozuk dosya) | Geçerli politika korunur; yenileme hatası uyarı olarak yazılır. | Aynı | |
| İstek denetleyicisi hata verdi (egress tarama, AI Guard Katman 1 zaman aşımı) | BLOCK | Kontrol atlanır, çağrı devam eder | SHADOW_BLOCK kaydı, çağrı devam eder |
| Yanıt denetleyicisi hata verdi (ingress tarama, AI Guard Katman 2) | BLOCK: araç çalıştı, sonuç ajana verilmez | Sonuç ajana verilir | SHADOW_BLOCK kaydı, sonuç verilir |
| İnsan onayı: ret, zaman aşımı (varsayılan 120 sn) ya da Slack hatası | BLOCK: bu ayardan bağımsız, her zaman engeldir. | Onay beklenmez, SHADOW_ESCALATE kaydı | |
| Araç (upstream) hata verdi | Ajan "araç çalıştırılamadı" hatası alır; olay BLOCK olarak kaydedilir. | Aynı | |
| Yönetim paneline bağlantı kesildi | Araç çağrıları etkilenmez. Olay gönderimi uyarı verir, başarısız grup atılır; bellekte en çok 500 olay tutulur. Yerel denetim kaydı yazılmaya devam eder. | Aynı | |
Üretimde fail_closed: true bırakın. false yalnızca denetleyici arızasının kapsam boşluğundan daha zararlı sayıldığı, bilinçli kararlarda kullanılmalıdır.