Yapay zeka projelerinde birden fazla ajan kullandığınızda, bir noktada şu soruyla karşılaşırsınız: “Bu ajan işini bitirdiğinde görevi diğerine nasıl devredecek?” İşte ajanlar arası görev devri handoff tasarımı tam da bu kritik geçiş anını yönetmenizi sağlayan mimari yaklaşımdır. Yanlış kurgulanmış bir handoff, tüm sistemin çökmesine veya sonsuz döngülere yol açabilir. Doğru tasarlandığında ise karmaşık iş akışlarını modüler, ölçeklenebilir ve hata toleranslı hale getirir.
Kilit Çıkarım: Handoff, sadece “bir ajandan diğerine geçiş” değil; bağlam aktarımı, yetki kontrolü ve hata yönetimini kapsayan bir orkestrasyon mekanizmasıdır.
Başlamadan Önce
Handoff tasarımına geçmeden önce bazı temel kavramları ve araçları netleştirmek gerekiyor. Eksik bir altyapıyla başlamak, ileride ciddi refaktör maliyetlerine neden olur.
Gerekenler:
- Çoklu ajan destekleyen bir framework (OpenAI Agents SDK, LangGraph, AutoGen vb.)
- Temel Python veya TypeScript bilgisi
- State management (durum yönetimi) kavramına aşinalık
- API anahtarları ve geliştirme ortamı
Ön Koşullar:
- En az iki farklı göreve sahip ajan tanımlamış olmak
- Her ajanın “ne zaman işi bitti” sayılacağını belirlemiş olmak
- Hata senaryolarını (timeout, API hatası) listelemek
Handoff Kavramı ve Temel Mantığı
Handoff, bir ajanın mevcut görevi tamamladığında veya kendi yetki alanı dışına çıktığında, kontrolü başka bir ajana devretmesidir. Müşteri destek sistemlerini düşünün: Sipariş durumu soran bir kullanıcıyı “Sipariş Takip Ajanı” karşılar; ancak iade talebi geldiğinde “İade İşlemleri Ajanı”na handoff yapılır.
Pratikte en sık görülen handoff tetikleyicileri şunlardır:
- Görev tamamlanması: Ajan işini bitirdi, sıradaki adıma geçilmeli
- Yetki sınırı: Ajan bu konuda yetkili değil, uzman ajana yönlendirmeli
- Kullanıcı talebi: Kullanıcı açıkça farklı bir hizmet istedi
- Hata durumu: Ajan başarısız oldu, fallback ajana geçilmeli
Handoff Tasarım Yaklaşımları
Güncel multi-agent sistemlerde üç temel handoff mimarisi öne çıkıyor. Hangisini seçeceğiniz, projenizin karmaşıklığına ve kontrol ihtiyacınıza bağlı.
| Yaklaşım | Kontrol Mekanizması | Uygun Senaryo | Karmaşıklık |
|---|---|---|---|
| Merkezi Orkestratör | Tek bir “manager” ajan tüm geçişleri yönetir | Öngörülebilir iş akışları | Düşük-Orta |
| Dağıtık (Peer-to-Peer) | Ajanlar birbirini doğrudan çağırır | Esnek, dinamik görevler | Orta-Yüksek |
| Hibrit | Orkestratör + koşullu doğrudan geçişler | Kurumsal ölçekli sistemler | Yüksek |
Pro İpucu: İlk projenizde merkezi orkestratör modeliyle başlayın. Debug etmesi çok daha kolay. Dağıtık modele geçiş, sisteminiz olgunlaştıktan sonra yapılabilir.
Adım Adım Handoff Tasarımı
Şimdi somut bir handoff mekanizması kuralım. OpenAI Agents SDK’yı referans alacağız, ancak mantık diğer framework’lere de uyarlanabilir.
- Ajanları ve sorumluluklarını tanımla. Her ajanın tek bir odak noktası olmalı. “Sipariş Ajanı” hem sipariş hem iade yapmasın; bunları ayır.
- Handoff koşullarını belirle. Her ajan için “hangi durumda hangi ajana geçiş yapılacak” kurallarını yaz. Bu kurallar açık ve çakışmasız olmalı.
- Bağlam aktarım şemasını oluştur. Handoff sırasında hangi verilerin taşınacağını belirle: kullanıcı ID’si, konuşma geçmişi, mevcut görev durumu gibi.
- Handoff fonksiyonunu implement et. SDK’larda genellikle handoff() veya transfer_to_agent() gibi hazır metodlar bulunur. Bunları kullan veya kendi wrapper’ını yaz.
- Geri dönüş (fallback) mekanizmasını kur. Hedef ajan ulaşılamaz veya hata verirse ne olacak? Varsayılan bir “genel destek” ajanına yönlendirme veya kullanıcıya bilgilendirme mesajı göster.
- Döngü korumasını ekle. A ajanı B’ye, B tekrar A’ya handoff yaparsa sonsuz döngü oluşur. Maksimum handoff sayısı veya ziyaret edilen ajan listesi tut.
- Loglama ve izleme entegre et. Her handoff olayını kaydet: kaynak ajan, hedef ajan, zaman damgası, aktarılan bağlam özeti. Bu veriler debug için altın değerinde.
Pro İpucu: Handoff sayısını 3-5 ile sınırla. Daha fazlası genellikle tasarım hatasına işaret eder; ajanların sorumluluk alanlarını gözden geçir.
Yaygın Hatalar ve Kaçınılması Gerekenler
Handoff tasarımında sıkça yapılan hatalar, sistemin güvenilirliğini ciddi şekilde etkiler. Şu tuzaklardan uzak durun:
- Bağlam kaybı: Handoff sırasında konuşma geçmişini aktarmamak. Kullanıcı her seferinde kendini tekrar etmek zorunda kalır.
- Belirsiz tetikleyiciler: “Gerekirse diğer ajana geç” gibi muğlak kurallar. Koşullar net ve ölçülebilir olmalı.
- Tek yönlü tasarım: A’dan B’ye geçişi düşünüp, B’den A’ya dönüşü unutmak.
- Aşırı handoff: Her küçük alt görev için farklı ajan kullanmak. Bu, latency’yi artırır ve kullanıcı deneyimini bozar.
- Test eksikliği: Sadece “happy path” test etmek. Edge case’leri (timeout, eşzamanlı istek, geçersiz bağlam) mutlaka simüle edin.
Şu Durumda Ne Yaparsın?
Senaryo: Müşteri destek sisteminde kullanıcı önce sipariş durumu soruyor, sonra aynı konuşmada iade talep ediyor, ardından tekrar sipariş hakkında soru soruyor.
Çözüm yaklaşımı: Orkestratör ajan, kullanıcının intent’ini (niyetini) her mesajda yeniden değerlendirmeli. Sipariş Ajanı’ndan İade Ajanı’na handoff yaparken konuşma bağlamını aktar. İade işlemi tamamlandığında, kullanıcı yeni bir sipariş sorusu sorarsa tekrar Sipariş Ajanı’na dön. Burada kritik nokta: her handoff’ta “önceki ajanın özet çıktısını” da bağlama eklemek.
Maliyet, Süre ve Risk Değerlendirmesi
| Metrik | Değer | Not |
|---|---|---|
| Kurulum Süresi | 2-5 gün | Temel handoff için; karmaşık senaryolar daha uzun |
| Token Maliyeti | +%15-30 | Bağlam aktarımı ek token tüketir |
| Latency Etkisi | +200-500ms | Her handoff için ek gecikme |
| Risk Seviyesi | Orta | Döngü ve bağlam kaybı riskleri yönetilebilir |
Sıkça Sorulan Sorular
Handoff sırasında kullanıcı bekletilmeli mi? Kısa handoff’larda (birkaç saniye) bekletme kabul edilebilir. Uzun sürecekse kullanıcıya “İşleminiz farklı bir uzmana yönlendiriliyor” gibi bir bilgilendirme gösterin.
Kaç ajan arası handoff normal sayılır? Tek bir kullanıcı oturumunda 3-5 handoff makul. Daha fazlası, ajan sorumluluklarının yeniden tasarlanması gerektiğine işaret eder.
Handoff başarısız olursa ne yapmalı? Retry mekanizması (1-2 deneme) + fallback ajan + kullanıcıya şeffaf bilgilendirme. Asla sessizce başarısız olmayın.
Farklı framework’ler arası handoff mümkün mü? Teknik olarak evet, API katmanında standartlaştırılmış bir protokolle. Ancak karmaşıklığı artırır; mümkünse tek framework içinde kalın.
Sonuç
Ajanlar arası görev devri (handoff), çoklu ajan sistemlerinin omurgasını oluşturur. Doğru tasarlanmış bir handoff mekanizması; bağlamı korur, kullanıcı deneyimini kesintisiz tutar ve sistemi ölçeklenebilir kılar. Merkezi orkestratör modeliyle başlayın, bağlam aktarımını ihmal etmeyin ve döngü korumalarını mutlaka ekleyin. Test aşamasında edge case’lere özel önem verin. Bu temelleri sağlam attığınızda, karmaşık multi-agent sistemleri güvenle inşa edebilirsiniz.