🛠️ Kendi Test Agent'ını Yaz

Kendi Test Agent'ını Yaz: Bu küçük agent'ı inşa etmek, zaten ayrı ayrı sahip olduğun parçalardan bir LEGO seti kurmaya benzer: OpenAI API sekmesindeki mesajlar listesi, Function

Bu küçük agent'ı inşa etmek, zaten ayrı ayrı sahip olduğun parçalardan bir LEGO seti kurmaya benzer: OpenAI API sekmesindeki mesajlar listesi, Function Calling'deki araç JSON şeması, ve Agent Nedir sekmesindeki algıla-karar ver-eyle-gözle döngüsü — sıfırdan bir agent inşa etmek YENİ bir kavram öğrenmek değildir, zaten anladığın üç kavramı çalışan bir while döngüsüne kablolamaktır. Üzerinde durulmaya değer soru şu: tekil parçaların hiçbiri (bir API çağrısı, bir JSON araç şeması, bir while döngüsü) yeni değilse, SONUÇ neden herhangi bir tek parçadan çok daha farklı, daha etkileyici bir şey gibi hissettiriyor? Çünkü bir agent'ın gücü herhangi bir tek bileşende değildir, modelin gerçek, öngörülemeyen sonuçları — gerçek log içeriğini, gerçek fonksiyon çıktısını — görmesine ve buna göre sıradaki kararını ayarlamasına izin veren DÖNGÜDEDİR; o geri bildirim döngüsü, tekrarlanan tek çağrılardan başka bir şeyle inşa edilmemiş olsa bile, tekil bir istek/cevap çağrısından niteliksel olarak farklıdır. Java karşılaştırması: bu, sadece bir switch ifadesi ve bir while döngüsünden başka hiçbir şeyden basit bir durum makinesi veya küçük bir yorumlayıcı inşa etmek gibidir — hiçbir tek satır ileri düzey değildir, ama monte edilmiş bütün, tek bir metod çağrısının asla gösteremeyeceği bir davranış (döngü kurma, gerçek girdiye göre dallanma) sergiler. QA tarafındaki bedel: bu küçük, gerçek, kabaca 50 satırlık script, bir satıcının sana satabileceği HER "AI test agent"ının arkasındaki mekanizmanın TA KENDİSİDİR — oyuncak versiyonunu kendin inşa ettikten sonra, ticari bir tanesini pazarlamasına güvenmek yerine döngüsünün, araçlarının ve güvenlik sınırlarının gerçekte ne olduğunu sorarak değerlendirebilirsin.

Görev: Flaky Test Raporu Agent'ı

Agent, diskte zaten var olan bir test log dosyasını okur, flaky bir testi (aralıklı başarısızlık örüntüsü) tarif edip etmediğine karar verir, ve öyleyse — Function Calling sekmesindeki aynı JSON şemasıyla — test adı ve bir gerekçeyle report_flaky_test aracını çağırır; araç bir simülasyon değil, bir rapor dosyasına satır ekleyen GERÇEK bir Python fonksiyonudur. Agent'ın TEK yetkisi şudur: log dosyasını oku, sadece bu belirli raporlama aracını çağır. Hiçbir şeyi silemez, testin kendisini değiştiremez, veya başka hiçbir fonksiyonu çağıramaz — Claude AI sayfasında ele alınan aynı disiplin, göreve gereken en dar yetki.

1. Parça: Kurulum ve Log'u Okuma

with open(...) as f: Satırı Dosyayı Neden Otomatik Kapatır?

OpenAI() çağrısı BURADA henüz…

OpenAI() çağrısı BURADA henüz HİÇBİR API isteği GÖNDERMEZ — sadece istemci NESNESİNİ hazırlar, API key'i ortam değişkeninden OKUR ve BEKLER.

with open(...) as f: bloğu…

with open(...) as f: bloğu Python'un "context manager" MEKANİZMASINI kullanır — blok İÇİNDEKİ kod bittiğinde (veya bir HATA fırlatıldığında bile) dosya OTOMATİK olarak kapatılır, elle f.close() çağırmana GEREK kalmaz.

"r" modu dosyayı SADECE OKUMA için açar — YAZMA denemesi bir hata FIRLATIR, bu da agent'ın bu dosyayı yanlışlıkla DEĞİŞTİRMESİNİ ENGELLEYEN bir güvenlik katmanıdır.

encoding="utf-8" AÇIKÇA belirtilmezse…

encoding="utf-8" AÇIKÇA belirtilmezse, işletim sistemine göre FARKLI bir varsayılan encoding KULLANILABİLİR — bu, log dosyasında Türkçe karakter (ı, ğ, ş) varsa SESSİZCE BOZUK okumaya yol açabilir.

f.read() TÜM dosya içeriğini…

f.read() TÜM dosya içeriğini TEK bir string olarak BELLEĞE yükler — bu, agent'ın az sonra bu içeriği system/user mesajlarına GÖMECEĞİ ham VERİDİR.