Agent Frameworks

Temporal ve Özel Ajan Orkestratörleri ile Deterministik AI İş Akışları Oluşturma

Büyük Dil Modellerinin (LLM) hızlı evrimi, yazılım geliştirme paradigmalarını deterministik mantıktan olasılıksal muhakameye kaydırdı. LLM'ler içerik üretme, bağlam anlama ve yaratıcı problem çözme konularında olağanüstü olsa da, doğaları gereği deterministik değildir. Bu olasılıksal doğa, finansal işlemler, sağlık tanıları veya karmaşık tedarik zinciri lojistiği gibi kritik iş süreçlerine AI entegrasyonu sırasında önemli zorluklar ortaya çıkarır.

AI'nın yaratıcılığı ile kurumsal güvenilirlik arasındaki boşluğu doldurmak için tutarlılık, hata toleransı ve gözlemlenebilirlik sağlayan sağlam bir orkestrasyon katmanına ihtiyacımız var. İşte burada Temporal devreye girer. Temporal'ün dayanıklı yürütme motorunu özel ajan orkestratörleriyle birleştirerek, geliştiriciler yalnızca zeki olmakla kalmayan, aynı zamanda kontrol akışında kesinlikle deterministik olan AI iş akışları oluşturabilir.

AI Sistemlerinde Deterministik Olmama Sorunu

Geleneksel yazılımda, aynı kodu aynı girdilerle iki kez çalıştırdığınızda aynı çıktılar beklersiniz. LLM'ler bu ilkeyi ihlal eder. Sıcaklık değeri sıfır olsa bile, donanımdaki küçük değişiklikler veya model güncellemeleri farklı sonuçlara yol açabilir. Karmaşık bir ajan iş akışında birden fazla LLM çağrısını birbirine bağladığınızda, bu küçük sapmalar birikir ve öngörülemez nihai durumlara neden olur.

Ayrıca, AI ajanları genellikle LLM muhakama adımları arasında harici durum kontrolleri, veritabanı güncellemeleri veya API çağrıları gerektirir. Bir LLM yanıt oluşturduktan ancak sonuç kalıcı hale getirilmeden önce bir ağ zaman aşımı oluşursa, standart bir mikro hizmet tutarsız bir şekilde başarısız olabilir. Bir AI iş akışında bu durum, çoğaltılmış eylemlere, öksüz durumlara veya sonsuz yeniden deneme döngülerine yol açabilir.

Ajan Orkestrasyonu İçin Neden Temporal?

Temporal, ölçeklenebilir ve dayanıklı uygulamalar oluşturmak için tasarlanmış asenkron bir yürütme platformudur. Geleneksel sunucusuz çerçevelerden farklı olarak Temporal Dayanıklı Yürütme sağlar. Bu, iş akışınızın durumunun otomatik olarak kalıcı hale getirildiği anlamına gelir. Bir işlem çökerse veya altyapı ölçeklendirilirse, Temporal iş akışını kaldığı yerden tam olarak devam ettirir; böylece hiçbir adım kaybolmaz ve hiçbir adım çoğaltılmaz.

AI ajanları için bu şu anlama gelir:

  • Tam Olarak Bir Kez Yürütme (Exactly-Once) Semantiği: Bir ajan tarafından tetiklenen kritik bir API çağrısının, işçi düğümü başarısız olsa bile yalnızca bir kez yürütülmesini sağlar.
  • Uzun Süreli İşlemler: AI ajanları genellikle insan onayı veya harici onay gerektiren, saatler veya günler sürebilen adımlar içerir. Temporal, beklerken sunucu kaynaklarını tüketmeden bu uzun süreli iş akışlarını verimli bir şekilde yönetir.
  • Gözlemlenebilirlik: Ajanınızın karar verme sürecindeki her adım günlüğe kaydedilir ve izlenebilir; bu da üretim ortamları için gereken denetlenebilirliği sağlar.

Deterministik Bir Ajan İş Akışının Uygulanması

Pratik bir örneğe bakalım. Kullanıcının sipariş durumunu kontrol etmesi, politika temelinde bir iadeye hak kazanıp kazanmadığını belirlemesi ve onaylanırsa iadeyi gerçekleştirmesi gereken bir müşteri destek ajanını hayal edin. Bu mantığı yapılandırmak için Temporal'ün Python SDK'sını kullanacağız.

from temporalio.worker import Worker
from temporalio import workflow, activity
import openai

# Aktiviteleri tanımlayın
@activity.defn
async def check_order_status(order_id: str) -> dict:
    # Veritabanından siparişi getirme mantığı
    return {"status": "delivered", "eligible_for_refund": True}

@activity.defn
async def generate_refusal_reason(context: dict) -> str:
    # Bir iadenin neden reddedilebileceğini açıklayan LLM çağrısı
    return "Siparişiniz kriterleri karşılamıyor."

@activity.defn
async def execute_refund(order_id: str, amount: float):
    # Gerçek ödeme işleme mantığı
    print(f"{order_id} numaralı sipariş için {amount} $ iade ediliyor")

# İş Akışını Tanımlayın
@workflow.defn
class SupportAgentWorkflow:
    @workflow.run
    async def run(self, order_id: str) -> dict:
        # Adım 1: Deterministik kontrol
        order_data = await workflow.execute_activity(
            check_order_status,
            order_id,
            start_to_close_timeout=timedelta(seconds=10)
        )
        
        if order_data["eligible_for_refund"]:
            # Adım 2: LLM için yeniden denenebilir mantık
            try:
                reason = await workflow.execute_activity(
                    generate_refusal_reason,
                    order_data,
                    start_to_close_timeout=timedelta(seconds=30)
                )
            except Exception as e:
                # LLM hizmet bozulmasını zarifçe yönetin
                return {"outcome": "error", "message": "AI hizmeti kullanılamıyor"}
            
            # Adım 3: Kritik finansal işlem
            await workflow.execute_activity(
                execute_refund,
                order_id,
                50.00,
                start_to_close_timeout=timedelta(seconds=30)
            )
            return {"outcome": "success", "refund_amount": 50.00}
            
        return {"outcome": "denied", "reason": "Hak kazanamadı"}

Üretim İçin En İyi Uygulamalar

Bu sistemleri oluştururken, karar mantığını (deterministik olmalı ve Temporal tarafından yönetilmelidir) üretim mantığından (LLM tarafından yönetilir) her zaman ayırın. Durum geçişlerini yönetmek için Temporal'i kullanırken, LLM'yi bir aktivite içinde güçlü bir araç olarak kullanmasına izin verin. Ayrıca, AI çıkarım uç noktalarının doğal gecikmesini ve ara sıra yaşanan başarısızlıkları ele almak için aktiviteleriniz için zaman aşımı ve yeniden deneme politikalarını her zaman tanımlayın.

Sonuç

AI uygulamalarının geleceği, deterministik sistemleri değiştirmek değil, onları güçlendirmektedir. Ajan orkestratörlerinizin omurgası olarak Temporal'den yararlanarak, hem zeki hem de güvenilir sistemler oluşturabilirsiniz. Bu yaklaşım, geliştiricilerin deneysel not defterlerinin ötesine geçmelerini ve kurumsal üretim ortamlarının sıkı gereksinimlerini karşılayan AI çözümlerini dağıtmalarını sağlar.

Share: