AI & DevOps

Clauding neden inşa edildi: AI agent'larına gerçek iş akışları, kontrolü kaybetmeden

CI'ınızda bir agent bir şey yapıyorsa, cesaret değil bir denetim izi istersiniz. Clauding tam bunun için.

Ramazan Yavuz
Ramazan Yavuz ·

AI agent'larını operasyonlarda kullanmak söz konusu olduğunda iki kamp vardır. Biri, onlara tam erişim verin, çalıştırın, yeterince akıllılar diyor. Diğeri, onlara hiçbir şey vermeyin, güvenilmezler ve üretimi parçalayacaklar diyor. Her ikisi de haklı. Her ikisi de bir strateji olarak işe yaramaz. Clauding, üçüncü bir cevap verme denememdir: agent'lara gerçek iş akışları verin, ama sınırları öyle kurun ki agent'ın bir hatası bir dakikada geri alınamayacak hiçbir şeyi kırmasın.


Operasyon bağlamlarında mevcut agent kurulumlarıyla zorluk, agent'ların yetenekli olmaması değildir. Çok yeteneklidirler. Zorluk, kurulumların ikili olmasıdır. Ya bir agent kümeye yazma erişimine sahiptir, ya da değildir. Ya kubectl apply yapabilir, ya da hiçbir şey yapamaz. Ya veritabanını yeniden başlatır, ya da yalnızca log satırlarını okur.

Bu ikilik, sahip olduğumuz araçların insanlar için inşa edilmiş olması nedeniyle vardır. Bir insanın kümeye erişimi vardır ya da yoktur. Bir insan onay iş akışına dahildir çünkü bekleyebilir. Bir agent bir onay iş akışına dahil değildir çünkü kimse bir agent'ın bir onayı beklemesinin ne anlama gelmesi gerektiğini düşünmedi. Bu yüzden ya her şeyi alır ya da hiçbir şeyi.

Sonuç, gördüğüm üretken agent kurulumlarının çoğunun ya tehlikeli (her şey, denetim yok) ya da yararsız (yalnız okuma, gerçek iş akışı yok) olmasıdır. Arasında çok az şey var.


Clauding bir agent'a, her birinin kendi politikasıyla bir izin verilen eylem kümesi verir. Bir politika şöyle olabilir: sadece yap. Şöyle olabilir: yap ama kaydet. Şöyle olabilir: bir insan onayını bekle, sonra yap. Şöyle olabilir: yap ama her zaman geri alabilirim. Şöyle olabilir: yap ama yalnızca bu ortamda. Şöyle olabilir: bu beş ön koşul karşılanırsa yap.

Önemli olan, her bir eylemin kendi politikasının olmasıdır. Bir agent tipik olarak kubectl logs'u serbestçe çalıştırabilir, ama her kubectl apply onu bir onay kuyruğuna koyan bir politikaya sahiptir. Bir özellik dalına git push politikasızdır. main'e git push değildir. Bu zekice değil. İnsanların zaten çalışma şeklidir – ve nokta, agent araçlarının bu formu alması gerektiğidir, ikili olmamalı.

Bunun diğer tarafı, her eylemin bir denetim girişi alması. Onu kim tetikledi, hangi prompt ile, hangi çıktı, hangi politikaları geçti, geri alındı mı. Bu, operasyondaki bir insanın zaten ihtiyacı olan denetim izidir. Agent onu üretmezse, kimse üretmez.


Clauding, agent ile dünya arasında bir araç sağlayıcı olarak oturur. Agent, açıkça belgelenmiş şemalarla bir "araç" listesi bilir. Agent bunlardan birini çağırdığında, çağrı Clauding'e gider, politikayı değerlendirir, gerekirse insanları bekler, eylemi yürütür ve cevabı döndürür. Agent perspektifinden, muhtemelen uzun gecikmeli bir senkronize araç çağrısıdır. Operasyon ekibi perspektifinden, log'larla normal bir onay iş akışıdır.

Politikalar, her eylemin bir koşullar listesi ve bir onay davranışı olduğu basit bir YAML dosyasında açıklanır. Eklenti mekanizması, DSL veya özel motor yoktur. YAML'da ifade edilebilenden daha karmaşık bir koşul istiyorsanız, harici bir webhook uç noktası olarak çalışan bir fonksiyon yazarsınız ve buna politikadan referans verilir. Bu, politika sistemini basit tutar ve karmaşıklığı ait olduğu yere iter.

Geri alma birinci sınıf bir işlemdir. Clauding'in yürüttüğü her eylem geri alınabilir, eylemin kendisi bir geri alma komutu sağladığı sürece. git push'un bir git revert'i vardır. kubectl apply'ın bir önceki manifesto ile kubectl apply'ı vardır. terraform apply'ın önceki planla bir terraform apply'ı vardır. Bu, denetim izini yalnızca bilgilendirici değil, operasyonel hale getirir.


Clauding'in vaadi, ne yapabileceğinize dair öneride bulunan bir asistan sahibi olmak değildir. Bunun yeterince var. Vaat, aynı işteki bir insanla aynı güvenlik ağlarıyla işleri gerçekten yapan bir operatör sahibi olmaktır. Onay kuyrukları, denetim logları, geri alma anahtarları, ortam sınırları.

Bu, agent'ları şimdiye kadar düşündüğümüzden farklı bir şekilde düşünmektir. Onları sihirli varlıklar olarak değil, zaten kimlikleri bilen bir operasyonlar dünyasındaki kimlikler olarak ele alır. Bir agent, sabit bir izin kümesine sahip bir kullanıcı değildir, ama aynı zamanda sınırsız olasılıklarla bir "AI" değildir. Bir eylemler kümesi ve her eylemde bir politika ile bir aktördür. İşte bu kadar.


Clauding açık kaynaktır ve kasıtlı olarak küçüktür. Kod tabanı yönetilebilirdir, politikalar YAML'dadır, denetim logları istediğiniz zaman başka bir depolamaya geçirebileceğiniz bir SQLite veritabanındadır. Hosted bir hizmet yoktur, bir tane inşa etme planı yoktur, bir pazara çıkma yoktur.

Var olan, başka araçların kabul edebileceği bir spec ve kendi altyapısında çalışan bir referans kurulumudur. Konsept hayatta kalırsa, kullandığınızı kimsenin bilmesi gerekmeden CI'nızda, kendi kümenizde, kendi denetim arka ucunuzla çalışmalı. Güvenlik araçları, her şey platformlara dönmeden önce her zaman böyle görünüyordu. Bu, operasyon araçlarının yeniden alması gereken formdur.