Ölçeklenebilir Ajan Tabanlı Geliştirmenin Doğrulanması

@ido_pesok
İNGILIZCE2 ay önce · 29 May 2026
210K
389
26
16
809

TL;DR

Cognition, yapay zeka ajanları için uçtan uca doğrulama yaklaşımlarının detaylarını paylaşıyor; Devin'in kendi PR'larını tıpkı bir insan mühendis gibi test etmesini sağlamak için sanal makinelerden ve bilgisayar kullanım yeteneklerinden nasıl yararlandığını açıklıyor.

Devin'in sanal makinesinde uçtan uca test yetenekleri geliştirirken öğrendiklerimiz.

3 ay önce, yazılım mühendisliğinin geleceğini inşa etmeye yardımcı olmak için Cognition'a katıldım. Devin, ilk yapay zeka yazılım mühendisi olarak piyasaya sürüldüğünden bu yana çok yol kat etti ve arkasındaki ekibin Devin'i her gün fiilen kullandığını görmek beni büyüledi.

En dikkat çeken şeylerden biri, Devin'in çalışmasını bulutta özerk bir şekilde doğrulamak için bilgisayarını nasıl kullandığıydı. Slack entegrasyonumuzu doğrulamaktan karmaşık Windsurf özelliklerini test etmeye kadar, ekip her zaman test modunda bir Devin ordusuna sahip. Bu yazıda, neden bulut tabanlı uçtan uca ajan doğrulamasına bu kadar odaklandığımızı ve bunu nasıl inşa etmeye yaklaştığımızı paylaşacağım.

Eşzamansız yazılım mühendisliğine geçiş

Cognition'da yakın zamanda yeni bir dönüm noktasına ulaştık. İlk kez, daha fazla Devin, olaylar, otomasyonlar, programlar ve diğer Devin'ler aracılığıyla eşzamansız olarak tetikleniyor. Bunun, yakın zamanda piyasaya sürdüğümüz Auto-Triage ile hızlanmaya devam etmesini bekliyoruz.

Bu eşzamansız dünyaya geçerken, geliştiricilerin birleştirilmeye hazır, doğrulanmış sonuçlara geri dönebilmeleri çok önemlidir. Bu yılın başlarında, karmaşık kod farklarını insanın anlayışını ölçeklendiren bir kod inceleme aracı olan Devin Review'u başlattık. Sadece hataları işaretlemekle kalmaz - Devin döngüyü kapatır ve her bulguyu, fark temizlenene kadar düzeltir. Ancak tek başına temiz bir inceleme genellikle yeterli değildir - mühendisler, değişikliğin kendilerinin test edeceği gibi uçtan uca test edildiğini görmek isterler.

Devin'in, hata kanalındaki mesajı görme fırsatınız olmadan önce bir kullanıcı şikayetini düzelten bir PR açması harika bir duygu. Bunu büyülü kılan şey, bu PR'ın düzeltmenin gerçekten işe yaradığına dair kanıtla birlikte gelmesidir. Ve bu büyü yakında bir zorunluluk haline gelebilir - proaktif ajanların yükselişinden daha fazla PR geldikçe, doğrulanmamış değişiklikler hızla yönetilemez hale gelecektir.

Başlangıçtan Beri

Devin piyasaya sürüldüğünden beri, çalışmasını her zaman bir bulut sanal makinesinde gösterebilmiştir. Yaklaşık 6 ay önce, Devin'in bilgisayar kullanım yeteneklerini genişlettik. Bunun pratikte anlamı, Devin'in koşum takımına ekran görüntüsü alma, fareyi hareket ettirme, tıklama, sürükleme, yazma, tuşlara basma, kaydırma, bekleme, yakınlaştırma ve kaydı başlatma/durdurma araçları eklememizdir. Bilgisayar kullanımı bir süredir var, ancak sınır laboratuvarlarından gelen en son model grubunun bu araçları kullanmada gerçekten iyi olmaya başladığını hissettik.

Bilgisayar kullanımı, Devin için bir masaüstü oyunu oluşturup oynatmak veya Amazon'da ürün sipariş etmek için tarayıcısını kullanmak gibi bazı eğlenceli yeni yeteneklerin kilidini açtı. Ancak fark ettiğimiz asıl kilit nokta, Devin'in kendi işini test etme yeteneğiydi. Devin, uygulamayı başlatacak, tıklayacak ve bir mühendisin yapacağı gibi değişikliklerinin gerçekten çalıştığını doğrulayacak. Her şey bulutta çalışıyor ve paralel olarak ölçeklenebiliyor. Mühendislerin her biri kendi geliştirme sunucusuna sahip 10 ila 20 Devin'i paralel olarak çalıştırdığını ve değişiklikler üzerinde çalıştığını gördüğümde bu beni gerçekten etkiledi – bu, tek bir dizüstü bilgisayarda yapamayacağınız bir şey. Otomatik bulut testi bize çok büyük miktarda zaman kazandırmaya başladı, çünkü artık kodu yerel olarak çalıştırıp doğrulamak zorunda değiliz.

Dürüst olmak gerekirse, buraya gelmek sorunsuz olmadı. Yol boyunca, her biri bize bu sistemi daha güvenilir kılmak için ne gerektiğini öğreten birçok başarısızlık moduyla karşılaştık.

Güvenilirliği Artırma

İlk sürümlerde, Devin'in test sırasında yoldan çıkması çok yaygındı. Bu, her türlü şekilde oldu: ürünün ilgisiz bölümlerini aşırı test etmek, özelliğe ulaşmadan kurulumda kaybolmak veya PR'ın aslında değiştirmeyi amaçladığı temel davranışı basitçe kaçırmak.

Bunu ele almak için, Devin test moduna girdiğinde, önce neyi test edeceğine dair net bir hedef belirten bir test planı yazmasını sağlıyoruz. Bu plan, varsayımlara değil, kaynağa dayanmalıdır. Koda dayanmadan, modellerin uygulamada var olmayan yollardan gidebileceklerini varsaymayı sevdiklerini gördük. Ayrıca, test planı Devin'in başarıyla test edebileceği değişikliklerin karmaşıklığını büyük ölçüde artırır. En iddialı taleplerimizden bazıları, birden fazla hizmetin çalışmasını, belirli yönetici ayarlarının yapılandırılmasını ve davranışa erişilebilir olmadan önce doğru bayrakların etkinleştirilmesini gerektiren özellikleri içeriyordu. Kodu önceden okurken, Devin'in ortamı, testin ortasında bir şeyin eksik olduğunu keşfetmek yerine doğru şekilde kurma olasılığı çok daha yüksektir. Test planı, bir ön hizalama biçimi olarak işlev görür ve Devin'in aktif olarak test ederken sapma olasılığını azaltır.

Devin plan üzerinde çalışırken, zaman çizelgesine kendi notlarını ekler. Bunlar, kurulum notları, adlandırılmış her testin başlangıcı ve geçti, kaldı veya test edilmedi olarak işaretlenmiş iddialar gibi şeyleri içerir. Devin'in, bir eylemi gerçekleştirmeden hemen önce beklenen davranışını not ederse, bulguları hakkında daha az yalan söyleyeceğini bulduk - tıpkı test odaklı geliştirmede olduğu gibi, beklentiye önceden bağlı kalırsanız, beklenmeyen bir sonucu geçerli olarak rasyonalize etmek çok daha zor hale gelir.

Test akışının bazı bölümleri neredeyse her çalıştırmada tekrarlanır. Oturum açma klasik bir örnektir: bir oturum açma formunu bilgisayar kullanımı aracılığıyla yönlendirmek genellikle bir e-posta yazmak, SSO'yu tamamlamak, yönlendirmeleri tıklamak ve her sayfa yüklemesinde, ekran görüntüsü ekran görüntüsü beklemek anlamına gelir. Bu hem zaman hem de token açısından maliyetli olabilir. Bu eylemlerin güvenilirliğini ve maliyetini artırmak için Devin, işi depomuzdaki bir test becerisinde bulunan deterministik bir betiğe çıkardı. Bu sayede Devin, betiği çalıştırabilir ve saniyeler içinde kimliği doğrulanmış bir tarayıcı oturumu alabilir ve testin temel kısmına atlayabilir. Bu betiklerin deterministik doğası, tutarsızlığı önemli ölçüde azaltmaya yardımcı oldu. Devin'i bu döngüyü kendi başına kapatacak şekilde de güncelledik. Devin bir kurulum adımını zor yoldan çözdüğünde, bu bilgiyi depoda bir test becerisi olarak kaydetmeyi önerebilir ve düzeltmeyi kullanıcıya tek tıklamalı bir PR olarak geri gönderebilir.

Ayrıca test aşamasını farklı modellere yönlendirmeyi deniyoruz. Test, kod yazmaktan farklı güçlü yönlere dayandığından, ekran görüntülerini okuma, UI durumunu izleme ve sonraki tarayıcı eylemine karar verme gibi, bazı modeller, kod düzenleme için seçeceğiniz tipik modelden bu konuda daha iyidir.

Devin'de Bugün Özerk Testi Kullanma

Devin şu anda test moduna iki şekilde girer: bir değişikliği test etmek için açık bir talep veya Devin bir PR oluşturduktan sonra, uygunsa değişikliği test etmeyi teklif edecektir. Oradan, test planını oluşturacak ve çalışmaya başlayacaktır.

Çoğu zaman, Devin'in test yeteneklerini ilk kullanmaya başladığınızda, yardımınıza ihtiyacı olacaktır. İyi bir örnek, uygulamanızı yerel olarak çalıştırırken sırlar gerektirmesidir. Bu süreci daha sorunsuz hale getirmek için Devin, oturumda sizden herhangi bir kimlik bilgisi veya eksik olabilecek diğer bilgileri isteyebilir. Daha zor durumlar için, Devin'in bilgisayarını devralabilir ve OTP kodları gibi şeyleri girebilirsiniz. İyi haber şu ki, Devin deponuzu kurmayı bitirdiğinde, gelecekteki her oturumun başlatılmak üzere bir anlık görüntü üreteceği bir YAML blue print biçiminde bir bildirimsel yapılandırma kaydedebilir.

Ne geri alırsınız

Devin testi bitirdiğinde, size sadece uygulamanın çalışıp çalışmadığını söylemez. Ham bir ekran kaydı kullanışlıdır ancak tek başına yeterli olmadığını düşündük - neye baktığınızı, Devin'in neden her eylemi gerçekleştirdiğini ve testin hangi bölümlerinin geçtiğini veya kaldığını anlamanız gerekir.

Hızlı bir inceleme için Devin, çalıştırmadaki önemli anlardan etiketlenmiş ekran görüntüleri içeren bir test raporu döndürecektir, böylece Devin'in neyi test ettiğini ve uygulamanın bu sırada nasıl göründüğünü hızlıca görebilirsiniz.

Daha derin bir inceleme istiyorsanız, Devin ayrıca test bölümleri arasında gezinmenize, tam çalıştırmada ileri geri kaydırmanıza ve kronolojik bir liste görünümünde geçen veya kalan iddiaları incelemenize olanak tanıyan bölümler içeren zengin bir oynatıcı UI'sine sahip bir test videosu üretir. Son işlemede, eylemler arasındaki ölü süre sıkıştırılırken, eylemler etrafındaki anlar normal hızda oynatılır. Bu, uzun bir çalıştırmanın gerçekten izleyebileceğiniz bir kayda dönüşmesini sağlar. Bu yapıtlar web arayüzümüzde mevcuttur ve Devin oradan başlatıldıysa Slack'e de dağıtılır.

Zorlu kenarlar

Bilgisayar kullanımının hala zorlu kenarları var. Bir örnek zamanlamadır - Devin bir bildirim toast'ını test ediyorsa, çok erken veya çok geç çekilen bir ekran görüntüsü toast'ı tamamen kaçırabilir ve modeller beklenen davranışın gerçekten gerçekleşip gerçekleşmediği konusunda kafa karışıklığı yaşayabilir.

Diğer bir başarısızlık modu hiledir. Kendi hallerine bırakıldıklarında, modeller bazen UI üzerinden tıklamak yerine durumları programatik olarak tetiklemek için tarayıcıda JavaScript yürütmeye çok fazla güvenebilirler. Bu, işlevselliği test etmek için yardımcı olabilir, ancak kullanıcılar genellikle Devin'in uygulamayı gerçek bir kullanıcının yapacağı gibi çalıştırdığını görmek isteyeceklerdir.

Bu sorunlar üzerinde, geliştirilmiş değerlendirmeler, koşum takımındaki daha sıkı korkuluklar ve bilgisayar kullanımında daha iyi hale gelen her yeni model nesli aracılığıyla aktif olarak çalışıyoruz.

Eşzamansız geliştirmenin geleceği doğrulanmıştır

Geçtiğimiz birkaç ay içinde, Devin'de günlük onaylanan test çalıştırmaları iki katından fazla arttı. Bu büyüme basit bir şeyi yansıtıyor: eşzamansız ajanlar, yalnızca geliştiriciler geri döndükleri şeye güvenebilirlerse kullanışlıdır. Çoğu zaman bu güven yalnızca koddan gelemez: birçok değişiklik için, uygulamanın gerçekten çalıştırıldığını, önemli akışların test edildiğini ve sonucun kolayca inceleyebileceğiniz bir şekilde yakalandığını bilmek istersiniz.

Devin'deki özerk test işte bunu sağlamak için tasarlanmıştır. Devin testi planlar, uygulamayı çalıştırır, olanları kaydeder ve not eder ve son olarak sonucu incelenebilir kılan yapıtlar döndürür. Hala geliştirilecek çok şey var, ancak geleceğin doğru şeklinin bu olduğunu düşünüyoruz: işi yalnızca eşzamansız olarak tamamlamakla kalmayıp, aynı zamanda kanıtla geri dönen ajanlar.

Devin'in kendi işini test ederek bize ne kadar zaman kazandırdığına sürekli şaşırıyoruz ve birçok müşterinin Devin'in otomatik test özelliğinden hala yeterince yararlanmadığını düşünüyoruz. Denemeyi desteklemek için, şu anda test modundayken normal kullanım maliyetinin 1/5'i oranında faturalandırma yapıyoruz.

Çalışmalarımızı devin.ai veya windsurf.com adresinde deneyin. Ve bu tür sorunlar üzerinde çalışmak eğlenceli geliyorsa, ido [at] cognition.ai adresine ulaşın.

Tek tıkla kaydet

YouMind ile viral makaleleri AI derin okumayla incele

Kaynağı kaydedin, odaklı sorular sorun, argümanı özetleyin ve viral bir makaleyi tek bir AI çalışma alanında yeniden kullanılabilir notlara dönüştürün.

YouMind'ı keşfet
Üreticiler için

Markdown'ınızı temiz bir 𝕏 makalesine dönüştürün

Kendi uzun yazılarınızı yayımlarken görselleri, tabloları ve kod bloklarını 𝕏 için biçimlendirmek zahmetlidir. YouMind, eksiksiz bir Markdown taslağını temiz ve hemen paylaşılabilir bir 𝕏 makalesine dönüştürür.

Markdown'dan 𝕏'e deneyin

Çözülecek daha fazla kalıp

Son viral makaleler

Daha fazla viral makale keşfet