Talimatlar yerine sınırlar: otonom AI ajanları üzerindeki kontrolü nasıl korumalı
AI ajanları üzerindeki kontrol neden prompt'taki talimatlar üzerine kurulamaz — ve teknik sınırlar üzerine nasıl kurulur. Tek bir oturumda beş olay.
Bu görsel yüklenemedi.AI ajanları otonomlaştıkça, onları alışıldık yöntemle yönetmeye daha sık çalışıyoruz — prompt'a kurallar yazıyoruz: «buna dokunma», «sadece orada çalış», «asla şunu yapma». üç paralel ajanla yapılan deney sırasında iki günde bu yöntemin kırıldığı — ve başka bir yöntemin işlediği canlı bir vaka koleksiyonu topladım. Makalenin tezi basit: talimat, ajanın belirli bir olasılıkla yerine getirdiği bir ricadır; sınır ise itaatten bağımsız bir sistem özelliğidir. Ajan tekken ve gözetim altında çalışırken fark üslupsal görünüyordu. Ajanlar çoğalınca farkın mimari olduğu ortaya çıktı.
Tek bir oturumda beş olay
Aşağıdaki tüm vakalar bu blogdaki tek bir çalışma oturumunda yaşandı — belgelenmişler ve her biri metin yoluyla yönetimin yol açtığı farklı bir başarısızlık biçimini gösteriyor.
Talimat yoktu — kaza oldu. Ajan, görevine hazırlanırken git stash genel dizinde çalıştırdı ve göreviyle ilgisi olmayan commit edilmemiş dosyalarımı stash'e taşıdı. Kimse hiçbir şeyi «ihlal etmedi»: yasak basitçe yoktu. Bu, talimatların temel bir özelliğidir — kazalardan sonra yazılırlar. Ajanın yapmaması gereken şeylerin tam listesini yazmak imkânsızdır.
Talimat vardı — ve işe yaramadı. İlk kazadan sonra ajanlara açık bir kural ekledim: «kesinlikle kendi çalışma dizininde çalış». Ajanlardan biri yine de ana dizinde bir git komutu çalıştırdı — sadece ona mutlak yolla başvurdu. Kötü niyetten ya da aptallıktan değil: model olasılıksaldır ve metinsel bir kurala uymak da bir olasılıktır; bağlam uzunluğu ve çalıştırma sayısıyla çarpılır.
Teknik sınır sessizce işledi. Aynı deneyde en çok beklenen kaza hiç yaşanmadı — «bir ajan herkesin dalını değiştirdi». Ajanlar dikkatli olduğu için değil, git worktree bir dalı fiziksel olarak iki çalışma kopyasına yazmayı imkânsız kıldığı için. Koruma araca yerleştirilmiş. Hatırlanması gerekmiyor, ona uyulması gerekmiyor — o sadece var.
Talimat, sınırın olması gereken yerde duruyordu. En rahatsız edici keşif: bu blogun prod ortamını prompt'taki bir satır koruyordu. master'a push otomatik dağıtımı tetikliyor ve her ajanı ondan ayıran tek şey «git push yok» metniydi. Dayandı — ama bu kontrol değil, şanstı: buradaki gerçek sınır erişim hakları, protected branch, yazma hakkı olmayan bir token. Rica, kilidin yerinde duruyordu.
Ajanın kendi üzerinde bir sınır. Oturum boyunca iki kez çalışma ortamı denek ajanları değil, benim ana asistanımı durdurdu: izin sınıflandırıcısı prod sunucuya SSH'i ve commit edilmemiş değişikliklerin toplu silinmesini engelledi — biçimsel olarak görevden çıkan ama açık bir insan «evet»i gerektiren eylemler. Her iki engelleme de doğruydu. Ve her ikisi de pekâlâ plana göre hareket ettiğine içtenlikle inanan ajanın «disiplini»nin üzerinde gerçekleşti.
İlke yeni değil — yeni olan yalnızca varlık
Mühendislik bu dersi LLM'lerden çok önce öğrendi. Toyota'nın üretim sisteminde ilkeye poka-yoke: hatayı uygulayıcının dikkati değil, sürecin bir düzeneği önler. Yalnızca doğru yönde takılabilen bir parça, «doğru tak» afişinden daha güvenilirdir. Platform mühendisliğinde aynı şeye guardrails, güvenlikte defense in depth denir. Her yerde tek bir düşünce: uygulayıcının okuduğuna, anladığına ve unutmadığına güvenme — yanlış eylemi imkânsız ya da pahalı hale getir.
“Talimat bir ricadır. Sınır bir sistem özelliğidir. Ricalara dayanan kontrol, kontrol değil, birikimli etkili şanstır.”
– paralel ajanlarla iki günlük çalışmanın ana çıkarımı
AI ajanlarıyla bu eski ilke üç nedenle daha keskin hale geliyor. Ajanlar çok — talimatın başarısız olma olasılığı her ajanın her çalıştırmasıyla çarpılır. Ajanlar hızlı — «hata yapmaya başladı» ile «her şeyi bozdu» arasında saniyeler geçer, insan müdahale etmeye yetişemez. Ve ajanlar harfiyen ama güvenilmez biçimde davranır: prompt metnini herhangi bir junior'dan daha özenle yerine getirirler, yine de olasılıksal olarak — ve kurallara olasılıksal uyum ölçekte ihlali garanti eder.
Sınırlar pratikte nasıl görünür
Bu oturumdan sonra kurduğum katmanlar — dosya sisteminden doğrulamaya:
- Dosya sistemi: her ajana kendi çalışma kopyası (paralel oturumlar için Anthropic'in önerdiği git worktree, Claude Code'da yerleşik), ve işletim sistemi düzeyinde bir sandbox: Claude Code'da sandboxing dosya sistemini ve ağı işletim sisteminin yerleşik ilkelleriyle izole eder — Anthropic'e göre bu, iç izin taleplerini %84 azalttı ve başarılı bir prompt-injection içeride kilitli kalır.
- Yazma hakları: prod ve master, istemle değil haklarla korunur — protected branch, push yetkisi olmayan token'lar, ajanlar için ayrı hesaplar. İstemde bırakma talepleri olabilir, ama ikinci katman olarak.
- Çalışma zamanı: worktree veritabanlarını, portları ve konteynerleri izole etmez — bunlar tüm kopyalar arasında ortaktır. Testleri ve sunucuları çalıştıran ajanlar tek kullanımlık kaynaklara ihtiyaç duyar: geçici bir veritabanı, kendine ait bir port, ajan başına bir konteyner.
- Eylem izinleri: geri alınamaz işlemler onaydan veya bir sınıflandırıcıdan geçer — tıpkı Claude Code'daki auto mode, her şeyi sormak ya da hiçbir şey sormamak yerine her eylemi değerlendiren yaklaşım gibi. Bu, yalnızca insanın açık kararıyla hareket eden bir sınırdır.
- Yapıtlarla doğrulama: ajanın öz bildirimine değil, diskteki izlere güvenmek. Benim takılıp kalan ajanım arayüzde çalışıyor gibi görünüyordu; teşhisi, yirmi dakika boyunca kopyasında yeni dosya oluşmaması koydu. Kendi dalına commit'ler — aynı fikir: hem arızayı hem de ajanın iyimserliğini atlatan bir sonuç.
Bu şemadaki talimatlar hiçbir yere kaybolmaz — ilk katman değil, son katman haline gelirler. İstemdeki «kendi dizininde çalış» hâlâ faydalıdır: deneme sıklığını azaltır. Ama deneme ile kaza arasında umut değil, bir sınır durmalı.
Dürüst çekinceler
Sınır mutlak değildir: sandbox'lar atlatılır, sınıflandırıcılar hata yapar ve yayımlanmış atlatma analizleri bunu düzenli olarak gösterir. Bu yüzden sınırlar katmanlar halinde inşa edilir — güvenlikteki her şey gibi. Ve sınır, başlangıçta talimattan daha pahalıdır: worktree, izinler ve sandbox kurmak saatler alır, isteme bir satır yazmak saniyeler. Asimetri başka yerdedir: sınır bir kez ödenir, talimat ise her çalıştırmada başarısızlık olasılığıyla ödenir. Bende izolasyon kurulumu, tek bir çakışma olmadan geçen deneyin ilk yeniden başlatılmasıyla kendini amorti etti.
Sonuç
Dizinin sorusu — AI ajanlarını kontrolü kaybetmeden gerçek işe nasıl entegre etmeli. Bu makalenin yanıtı: kontrol, ajana yazılan şey değil, onun etrafında kurulan şeydir. İsteme bir başka «asla X yapma» eklemeden önce kendinize sormalısınız: X'i teknik olarak imkânsız kılmak mümkün mü? Mümkünse — çaba için doğru yer orasıdır. İstem rica etsin; yasaklaması gereken sistemdir.
Kaynaklar ve referanslar
- Making Claude Code more secure and autonomous with sandboxing (Anthropic Engineering) — dosya sistemi ve ağın işletim sistemi düzeyinde izolasyonu; %84 rakamının kaynağı.
- How we contain Claude across products (Anthropic Engineering, 2026) — ajan ürünlerinde yürütme sınırlarının bir bütün olarak nasıl kurulduğu.
- How we built Claude Code auto mode (Anthropic Engineering) — «her şeyi sormak» ile «hiçbir şey sormamak» arasındaki sınır olarak izin sınıflandırıcısı.
- Poka-Yoke (Lean Enterprise Institute) — hataları süreç tasarımıyla önlemenin klasik ilkesi.
- git-worktree ve git-stash — resmî Git belgeleri: çalışma kopyalarının mekaniği ve ortak stash.
- Claude Code: Best practices for agentic coding (Anthropic Engineering) — paralel oturumlar için worktree önerisi.
- Как честно сравнить LLM на своём коде: эксперимент с тремя моделями Claude — dizinin önceki makalesi: tanımlanan olayların toplandığı deney.
