AI Agentleri ve Branch Stratejisi: Git ile Güvenli Otomasyon
AI agentleri bozuk değil, ancak öngörülemezler.
Yakın zamanda bir GitHub issue'su, bir agent'ın main branch'e commit yapmaktan kaçınması yönündeki açık talimatları görmezden geldiğini gösterdi. Kuralları okudu, onlara katıldı ve yine de main branch'e push yaptı.
Eğer güvenlik modeliniz bir agent'a "bunu yapma" demeye dayanıyorsa, bir güvenlik modeliniz yok demektir. Sadece umudunuz vardır.
Bir system prompt'tan daha yüksek sesle bağıramazsınız. Bunun yerine, agent'ın fiziksel olarak yanlış şeyi yapamayacağı bir sistem inşa etmelisiniz.
İşte güvenli bir otomasyon stratejisi kurmanın yolu:
İzolasyon için Git Worktree'leri kullanın Agent'ların ana dizininizde çalışmasına izin vermeyin. Her agent'a kendi dizinini ve branch'ini vermek için
git worktree addkomutunu kullanın. Eğer main branch agent'ın çalışma alanında (workspace) check out edilmemişse, agent main branch'e commit yapamaz.Katı bir branch isimlendirme kuralı kullanın Agent'lar çok sayıda branch oluşturur. Eğer onları iyi isimlendirmezseniz, takibi kaybedersiniz. Üç parçalı bir ön ek kullanın: • agent/feat/checkout-coupon-stacking • agent/fix/flaky-payment-test • agent/chore/bump-eslint Bu, otomatik oluşturulan branch'leri kolayca filtrelemenizi ve temizlemenizi sağlar.
Merge sırasında squash yapın Agent'lar dağınık olabilir. Çok sık commit yapabilirler veya devasa, okunamaz tek bir commit oluşturabilirler. Commit hijyenleri için endişelenmeyin. Onların PR'larını merge ederken squash-merging kullanın. Bu, agent'ın branch'ini bir taslak (scratchpad) olarak kullanmasına izin verirken ana geçmişinizi (main history) temiz tutar.
Katmanlı savunma uygulayın Tek bir koruma mekanizmasına (guardrail) güvenmeyin.
- Prompt talimatları: İlk savunma hattı.
- Yerel pre-commit hook'ları: Korumalı branch'lere yapılan kazara commit'leri engeller.
- Sunucu tarafı branch koruması: En önemli katman. Uzak deponuzda (remote repository) bir pull request zorunluluğu getirin. Bu, bir agent'ın insan onayı olmadan main branch'e push yapmasını imkansız hale getirir.
Amaç, agent'ın otonom bir şekilde çalışmasına izin vermek, insanın ise döngüye (loop) sadece pull request aşamasında dahil olmasını sağlamaktır.
Her düzenlemeyi bebek bakıcılığı yaparak takip etmeyi bırakın. Dikkatsiz bir agent'ın bile güvenli bir sonuç ürettiği bir yapı inşa edin.
Kaynak: https://dev.to/nazar_boyko/ai-agents-and-branch-strategy-safe-automation-with-git-57ja
İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi