Projenin amacı

Tek bir isteği çalışır bir yazılım örneğine dönüştüren ajan ekibini inceledim. Ekipte mühendislik lideri, backend geliştiricisi, arayüz geliştiricisi ve test mühendisi var. Her rol farklı bir sorumluluk taşıyor; örneğin tasarım yapan ajan ile kodu kontrol eden ajan aynı görevi üstlenmiyor.

Engineering Team projesindeki GPT çıktı klasöründen çalıştırılan hesap yönetimi uygulaması.
Engineering Team projesindeki GPT çıktı klasöründen çalıştırılan hesap yönetimi uygulaması.

Ekip nasıl çalışıyor?

Lider önce gereksinimleri teknik bir plana dönüştürüyor. Backend ajanı uygulamanın iş kurallarını yazıyor. Arayüz ajanı bu işlevlerin kullanılabileceği ekranları oluşturuyor. Test ajanı ise üretilen dosyaları çalıştırarak davranışı kontrol ediyor.

CrewAI'deki sıralı süreç, bir görevin sonucunu sonraki göreve taşıyor. YAML dosyalarında rol, görev açıklaması ve beklenen çıktı ayrı tutulduğu için akışı değiştirmek için bütün uygulamayı yeniden yazmak gerekmiyor.

Kullanılan araçların görevi

Python ana çalışma dilini, CrewAI ajanların sırasını ve görev paylaşımını sağlıyor. Sandbox araçları dosya yazma ve kod çalıştırma işlerini ayrı bir çalışma alanında yürütüyor. Context7 bağlantısı, ilgili ajanların kütüphane dokümanlarına ulaşabilmesi için eklenmiş.

Ekran görüntülerindeki Gradio uygulaması, ekip çalışmasından kalan örnek bir çıktı. Sanal hesap açma, bakiye, portföy ve işlem geçmişi ekranları içeriyor. Bu ekranı, ajanların yönetim paneliyle karıştırmamak gerekiyor; burada görünen, onların ürettiği uygulama.

Yerel deneme hesabıyla açılan portföy ekranı. Bu uygulama sanal işlemler için hazırlanmış bir prototip.
Yerel deneme hesabıyla açılan portföy ekranı. Bu uygulama sanal işlemler için hazırlanmış bir prototip.

Çıktıyı nasıl kontrol ettim?

Örnek uygulamayı yerel olarak başlatıp bir deneme hesabı oluşturdum ve portföy sekmesini açtım. Böylece yalnızca dosya oluştuğunu değil, uygulamanın açıldığını ve temel ekranlar arasında geçiş yapılabildiğini de kontrol ettim. Bu dar kontrol, bütün testlerin veya bütün hesap işlemlerinin geçtiği anlamına gelmiyor.

Ne öğrendim?

Ajanlara açık bir görev ve dosya beklentisi verilmesi sonucu takip etmeyi kolaylaştırıyor. Mülakatta en iyi anlatabileceğim ayrım, kodu üretmek ile üretilen kodun doğru çalıştığını göstermek arasındaki fark.

Bu sürümde ne geliştirdim?

İş tanımı REQUIREMENTS_FILE ile UTF-8 dosyasından okunabiliyor. Boş veya aşırı uzun dosyalar sandbox temizlenmeden önce reddediliyor. Bu davranışlar için API çağrısı yapmadan çalışan otomatik testler ekledim.

Mülakatta sorulabilecek bir soru

Ajanların ürettiği koda nasıl güveniriz?

Dosyanın oluşması yeterli değil. Kodu ayrı bir ortamda çalıştırmak, beklenen davranışları test etmek ve hataları incelemek gerekiyor. Test ajanı bu amaçla ekleniyor; insan incelemesi de hâlâ gerekli.

Ajan geliştirme çalışması: ders deposu ve temel örnekler.

Kısa Özet

Yazılım geliştirmeyi planlama, backend, arayüz ve test görevlerine ayıran bir CrewAI ekibi üzerinde çalıştım. Python ile çalışan ajanların rolleri ve beklenen çıktıları YAML dosyalarında tanımlanıyor. Ajanlar sırayla çalışıyor ve önceki adımın sonucunu kullanıyor. Üretilen örnek hesap yönetimi uygulamasını da açıp denedim. Bu projede asıl öğrendiğim, kod üretmenin yanında dosyaları çalıştırmanın ve sonucu test etmenin de akışın parçası olması gerektiği.