AI

Çoklu Ajan Sistemlerini Orkestrasyon Yapmak

Yapay zeka deneysel sohbet botlarından karmaşık, otonom iş akışlarına doğru ilerlerken, bu sistemlerin mimarisi kritik hale gelir. Tekli ajanlar genellikle karmaşık görevleri yönetmek için gereken bilgi genişliğini veya muhakeme yeteneğini eksik bırakır. Çözüm, uzmanlaşmış ajanların işbirliği yaparak sorunları çözdüğü Çoklu Ajan Sistemlerinde (MAS) yatar. Ancak, prototipten üretim kalitesinde bir MAS'a geçiş, paylaşılan durumu yönetmek, ajanlar arasında sorunsuz devirler sağlamak ve ajanlar arasında anlaşmazlık çıktığında çatışmaları çözmek gibi önemli zorluklar getirir. Bu yazı, bu zorlukları ele alan tasarım kalıplarını keşfeder; ölçeklenebilirlik, güvenilirlik ve açıklığa odaklanır.

Merkezi Olmayan Sistemlerde Durum Zorluğu

Monolitik bir uygulamada durum genellikle tek bir veritabanında veya bellek alanında merkezi olarak tutulur. Çoklu ajanlı bir kurulumda ajanlar genellikle farklı süreçlerde hatta farklı makinelerde çalışabilen bağımsız birimlerdir. Ajan A, bir sonucu Ajan B'ye ilettiğinde, Ajan B bağlamı nasıl bilir? Bunun için en sağlam kalıp Bağlam Grafiği'dir. Ajanlar ham nesneler yerine paylaşılan, sürüm numarası olan bir bağlam grafiği ile etkileşim kurar. Bu grafik, konuşma veya görev yürütmesinin "gerçeğini" saklar. Her ajan bu grafiğe okuma ve yazma yapar, böylece tek bir doğruluk kaynağı sağlanır.
class ContextGraph:
    def __init__(self):
        self.nodes = []
        self.edges = []

    def add_node(self, agent_id, data, timestamp):
        node = {"id": agent_id, "data": data, "ts": timestamp}
        self.nodes.append(node)
        return node

    def get_latest(self, agent_id):
        # Belirli bir ajandan gelen en son katkıyı döndür
        pass
Ajanları doğrudan bellek erişiminden soyutlayarak, yarış durumlarını önlersiniz ve tüm katılımcıların görev geçmişinin tutarlı bir görünümünü görmesini sağlarsınız.

Sorunsuz Devirler İçin Tasarım

Devirler, mevcut ajanın bir sonraki adımı başka bir ajandan daha iyi yöneteceğini belirlediğinde gerçekleşir. Yaygın bir anti-kalıp, devir mantığını ajanın temel muhakeme döngüsünün içine sabit kodlamaktır. Bu, sıkı bir bağımlılık yaratır ve hata ayıklamayı zorlaştırır. Bunun yerine, bir Yönlendirici Kalıbı kullanın. Yönlendirici, mevcut ajanın çıktısını analiz eden ve bir sonraki adımı hangi ajanın üstleneceğine karar veren ayrı bir bileşendir. Bu, ajanların kendilerini değiştirmeden orkestrasyon mantığını değiştirmenize olanak tanır.
def route_next_step(current_agent_output):
    if "code_generated" in current_agent_output:
        return "QA_Agent"
    elif "summary_complete" in current_agent_output:
        return "Reporter_Agent"
    else:
        return "Human_Review_Agent"
Bu sorumluluk ayrımı sistemi modüler hale getirir. QA_Ajanı'nı farklı bir model veya mantıkla değiştirebilir, yönlendirme mekanizmasını bozmadan sistemi güncelleyebilirsiniz.

Çatışma Çözüm Stratejileri

Çatışmalar, iki ajan çelişkili bilgi sağladığında veya eylemleri birbirini engellediğinde ortaya çıkar. Örneğin, iki ajan aynı anda aynı kaydı güncellemeye çalışabilir. 1. Öncelik Tabanlı Çözüm: Ajanlara öncelik seviyeleri atayın. Daha yüksek öncelikli ajanların son sözü vardır. Bu, bir ajanın belirli bir alanın "sahibi" olduğu senaryolarda kullanışlıdır. 2. Zaman Penceresi Kilitleme: Veritabanı işlemlerine benzer şekilde, ajanlar kaynaklar üzerinde kilit edinebilir. Bir ajan kilidi tutuyorsa, diğerlerinin beklemesi veya yeniden denemesi gerekir. Bu, eşzamanlı güncellemeler sırasında veri bozulmasını önler. 3. Hakem Ajanı: Karmaşık anlaşmazlıklarda, tarafsız bir Hakem Ajanı devreye sokun. Bu ajan, birincil ajanlardan gelen çelişkili çıktıları gözden geçirir ve önceden tanımlanmış kriterler veya ek bağlam temelinde nihai bir karar verir.
class Arbitrator:
    def resolve_conflict(self, agent_a_output, agent_b_output):
        # Çıktıları karşılaştırmak ve en iyisini seçmek için mantık
        if agent_a_output.confidence > agent_b_output.confidence:
            return agent_a_output
        return agent_b_output

Sonuç

Çoklu ajan sistemleri oluşturmak yalnızca bireysel ajanlar yazmakla ilgili değildir; bunların birlikte çalışmasına olanak tanıyan altyapıyı tasarlamakla ilgilidir. Durum yönetimi için Bağlam Grafiği, devirler için Yönlendirici ve net çatışma çözüm stratejileri uygulayarak, sağlam, ölçeklenebilir ve sürdürülebilir sistemler oluşturabilirsiniz. Bu kalıplar, kaotik etkileşimleri koordineli bir senfonije dönüştürerek yapay zekanın, tek bir ajanın ulaşabileceğinin çok ötesindeki sorunları çözmesine olanak tanır.
Share: