Ne yapmak istedim?

Bir konu hakkında bilgi ararken tek bir cevaba bağlı kalmak yerine, konuyu parçalara ayırıp birden fazla aramayla inceleyen bir sistem üzerinde çalıştım. Uygulamada kullanıcı araştırma sorusunu yazıyor. Sonuç, birbirinden kopuk cevaplar yerine başlıkları olan uzun bir rapor olarak hazırlanıyor.

Çalıştırılan Deep Research uygulamasının araştırma ekranı. Bu görüntü başlangıç arayüzünü gösteriyor.
Çalıştırılan Deep Research uygulamasının araştırma ekranı. Bu görüntü başlangıç arayüzünü gösteriyor.

Araştırma nasıl ilerliyor?

Önce planlama ajanı hangi aramaların yapılacağını ve her aramanın neden gerekli olduğunu belirliyor. Arama ajanı bu sorgular için webden bilgi topluyor. Birbirinden bağımsız aramalar Python'daki asyncio.gather ile aynı anda başlatılıyor; böylece her aramanın sırayla bitmesini beklemek gerekmiyor.

Ardından yazma ajanı ilk soruyu ve arama sonuçlarını birlikte değerlendiriyor. Raporun yanında kısa bir sonuç ve devam araştırmaları için soru önerileri üretiyor. Gradio arayüzü süreç ilerledikçe durum bilgisini ve sonunda raporu gösteriyor.

Hangi teknolojiyi neden kullandım?

OpenAI Agents SDK, modelin görevini ve kullanabileceği araçları tanımlamak için kullanılıyor. Pydantic ise çıktının biçimini kontrol ediyor: arama planında sorgu ve gerekçe, raporda da özet ve rapor metni gibi alanlar bekleniyor. Markdown, raporun başlık ve listelerle düzenli gösterilmesini sağlıyor.

Bu örnek, yeni bir yapay zekâ modelini eğitmek üzerine kurulu değil. Mevcut modelleri belirli sorumluluklarla bir iş akışına bağlamayı gösteriyor.

Araştırma sorusunun girildiği ekran; burada henüz bir rapor üretilmiş değil.
Araştırma sorusunun girildiği ekran; burada henüz bir rapor üretilmiş değil.

Kontrol ettiğim noktalar

Arama sayısı, araştırmanın kapsamını ve bekleme süresini etkiliyor. Birden fazla kaynağın bulunması tek başına bilgiyi doğru yapmıyor; tarih, kaynak niteliği ve sonuçların birbirini destekleyip desteklemediği ayrıca incelenmeli. Kaynak kodda raporu e-postaya ileten ayrı bir adım da var; bu, rapor üretiminden farklı bir iş.

Ne öğrendim?

Ajanların birbirine serbest metin aktarması yerine belirli alanları olan çıktılar vermesi, sonraki adımı daha anlaşılır yapıyor. Mülakatta bu projeyi anlatırken özellikle sorunun arama planına dönüşmesini, paralel çalışmayı ve rapor biçiminin kontrolünü açıklayabilirim.

Bu sürümde ne geliştirdim?

Boş araştırma soruları model çağrısından önce reddediliyor. Raporun e-posta veya bildirimle iletilmesi varsayılan olarak kapalı; yalnızca SEND_REPORT_EMAIL=true ile açılıyor. Bu davranışlar için API çağrısı yapmadan çalışan otomatik testler ekledim.

Mülakatta sorulabilecek bir soru

Neden tek bir ajan kullanmadın?

Planlama, arama ve rapor yazma farklı işler. Bunları ayırınca hangi aşamanın eksik kaldığını daha kolay görebiliyorum. Birbirinden bağımsız aramalar da aynı anda yürüyebiliyor.

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

Kısa Özet

Bir araştırma sorusunu planlama, web araması ve rapor yazma adımlarına ayıran bir ajan uygulamasını çalıştırıp inceledim. Python ve OpenAI Agents SDK ile her aşama farklı bir görev üstleniyor. Pydantic, arama planının ve raporun beklenen biçimde gelmesini sağlıyor. Bu çalışmada öğrendiğim temel nokta, iyi bir sonuç için doğru soruları seçmenin ve bulunan kaynakları kontrol etmenin model seçimi kadar önemli olması.