Yapay Zekayı Çalıştırmaktan Vazgeçip Alt Yüklenici Tutmaya Başladım
AI Ajanlarla Çalışırken Kendime Diktığım Kurallar
Size nasıl bir şeyler değiştirdiğimi anlatayım.
Bir özellik üzerinde çalışırken, ajanımın yazdığı kodun tamamen yanlış olduğunu fark ettim. Üç saatimi debugging ile geçirmiştim. Ajan kodu production'a commit etmiş, pushlamış, üstüne de mutlu bir mesaj bırakmıştı. Tek sorun: kod istediğimiz şeyi yapmıyordu. Hata değil, direkt yanlış anlama söz konusuydu.
O an zihnimde bir şey kırıldı. Ajanları, yol göstermeye ihtiyaç duyan stajyerler gibi düşünüyordum. Ama stajyerler siz uyurken test edilmeden production'a kod göndermez.
O yüzden metaforu komple değiştirdim.
Alt Yüklenici Çerçevesi
AI ajanlarını çalışan veya asistan olarak görmek yerine, alt yüklenici gibi görmeye başladım. Pratikte bu ne anlama geliyor?
Bir alt yüklenicinin binanızın anahtarı yoktur. Davetsiz gelmez. İşi tamamlar, fatura gönderir—faturayı siz incelersiniz. Kaliteyi beğenmezseniz geri gönderirsiniz.
Bu güvensizlik meselesi değil. Teşvik ve hesap verebilirlik meselesi. Alt yüklenici, tek taraflı kararlar almak yerine size incelenmek üzere bir ürün teslim etmekla yükümlü olduğunu anladığında, daha iyi performans gösterir. Odaklı çalışır. Belirlenen sınırlar içinde üretken olur.
Teknik Katman
Bu düşünce modelinin teknik anlamda somut karşılıkları olmalı. Projelerimde şunu yapıyorum:
Token Kapsamlaması Her Şey
Ajanlarım, production'a fiziksel olarak erişemeyecek şekilde kapsamlanmış yetkilerle çalışıyor. Ana kod tabanına okuma erişimi var, ayrı bir staging reposuna yazma erişimi var. Bu bir politika değil, kriptografik bir kısıtlama. Ajan çılgınlaşsa veya hayal ürünü git komutları üretse bile, production kodunu değiştiremez—token'lar buna izin vermez.
Staging Reposu Bir Posta Kutusu
Staging'den otomatik olarak hiçbir şey merge edilmiyor. Staging reposunun default branch'i literally bir mezar taşı—sadece "lütfen orijinal repodaki main branch'i kullanın" diyen bir README içeren "no-main" adında bir branch. Ajanlar işlerini buraya gönderir. Branch hazır olduğunda bana haber verir. Ben inceler, işe yarayanları seçer ve manuel olarak entegre ederim. Bu başta zahmetli gelir, ta ki fark edene kadar: Linux çekirdeği yirmi yıldır böyle çalışıyor. Katkıcılar patch gönderir, maintainer'lar uygular.
Review Tartışmasız
Hiçbir ajan kendi kodunu merge etmez. Nokta. Branch, commit'lerin production'a güvenle alındığını bağımsız ve programatik olarak doğrulayana kadar silinmez. "Güven ama doğrula" yeterli değil, çünkü doğrulama ücretsiz.
Neden Bu Tek Başına Çalışanlar İçin İşe Yarıyor?
Tek başına çalışan veya küçük bir ekip olmanın gerçeği şu: sadece yazılım geliştirmiyorsunuz, aynı zamanda kod tabanında hiçbir yerde bulunmayan bir bağlamı da yönetiyorsunuz. Geçmiş incident'ler, edge case'ler, garip bir konfigürasyonu olan müşteri, deneyip işe yaramayan üç farklı yaklaşım.
Ajanların bu bağlama sıfır erişimi var. Dosyaları okuyorlar ama sizin dünyanızı anlamıyorlar. Öyleyse hedef onlara daha fazla özerklik vermek değil—inceleme bant genişliğiniz dahilinde güvenle yapabilecekleri işi maksimize etmek.
İşte "vibe coding"in kötü ün yapmasının sebebi burada. Yanlış yapıldığında, ajanlara istediğini yaptırıp çalışmasını ummak demek. Doğru yapıldığında, AI'yı yargınızın bir uzantısı olarak kullanmak, yerine geçirmek değil.
Pratik Avantaj
Alt yüklenici ilişkisini kabul ettikten sonra beklenmedik bir şey oldu: daha fazla risk almaya başladım. Deneysel bir özellik geliştirmek istediğimde, arada düşünebildiğim için spin-up yapmaktan çekinmiyorum. Ajan production'u bozamaz. Ya şaşırtıcı derecede iyi bir şey teslim eder, ya şaşırtıcı derecede yanlış bir şey—ama her iki durumda da, sorun olmadan önce yakalarım.
Son altı ayda, önceki iki yılda başlattığım kadar çok yan proje başlattım. Daha çok çalıştığım için değil—güvenli sınırlar dahilinde agresif delege ettiğim için.
İş Akışınıza Nasıl Yerleştirirsiniz?
AI ajanlarıyla geliştirme yapıyorsanız, kendinize sorun:
- Ajanınız şu an neye erişebiliyor? Cevap "production" ise, sorun var demektir.
- Yanlış eylemleri engelleyen teknik bir kısıtlama mı var, yoksa sadece bir politika mı?
- Kodu kim merge ediyor? İnsan değilse, neden?
Araçlar hazır. Token kapsamlaması, ayrı staging repoları, branch koruması—bunlar egzotik Git iş akışları değil. AI-assisted geliştirme ile AI-accidental disaster arasındaki fark bu.
Yargınız hâlâ darboğaz. Bu bir kısıtlama değil—nokta bu. Ajanlar sizin yapabileceklerinizi artırmak için var, yazılımı gerçek kullanıcılar için çalışır kılan yargının yerine geçmek için değil.
Buna göre inşa edin.