Ajan sistem tasarım desenleri

GenAI aracıları, GenAI modellerinin zekasını veri alma, dış eylemler ve diğer özelliklere yönelik araçlarla birleştirir. Bu sayfa ajan tasarımını ele alır.

  • Aracı sistemi oluşturmanın somut bir örneği, model ve araç çağrılarının birlikte nasıl aktığını düzenlemeyi gösterir.
  • Aracı sistemleri için tasarım desenleri , belirlenimci zincirlerden dinamik kararlar alınabilen tek aracılı sistemlere kadar, birden çok özel aracıyı koordine eden çok aracılı mimarilere kadar karmaşıklık ve özerklik sürekliliğini oluşturur.
  • Pratik bir öneri bölümü doğru tasarımı seçme ve aracı geliştirme, test etme ve üretime geçme konusunda öneriler sağlar.

Ajanslar, bilgi toplama ve dış eylemler gerçekleştirme araçlarına büyük ölçüde güvenir. Araçlar hakkında daha fazla arka plan için bkz. Araçlar.

Örnek aracı sistemi

Aracı sisteminin somut bir örneği için müşteriyle etkileşim kuran bir çağrı merkezi GenAI aracısı düşünün:

GenAI uygulamasıyla müşteri etkileşiminin akış çizelgesi.

Müşteri şu isteğinde bulunur: "Son siparişimi iade etmeme yardımcı olabilir misiniz?"

  1. Neden ve plan: Sorgunun amacı göz önünde bulundurulduğunda aracı "planlar": "Kullanıcının son siparişini arayın ve iade politikamızı kontrol edin."
  2. Bilgi bul (veri zekası): Aracı, ilgili siparişi almak için sipariş veritabanını sorgular ve bir ilke belgesine başvurur.
  3. Neden: Aracı, bu siparişin iade penceresine uyup uymadığını kontrol eder.
    • İsteğe bağlı insan müdahalesi: Aracı ek bir kural denetler: Öğe belirli bir kategoriye giriyorsa veya normal iade süresinin dışındaysa, bir insana yönlendirin.
  4. Eylem: Aracı, iade işlemini tetikler ve bir kargo etiketi oluşturur.
  5. Sebep: Temsilci müşteriye bir yanıt oluşturur.

Yapay zeka aracısı müşteriye şu yanıtı verir: "Bitti! İşte sevkiyat etiketiniz..."

Bu adımlar, insan çağrı merkezi bağlamında doğal olarak yapılır. Ajan sistemi bağlamında, LLM "mantık yürütür" ve sistem ayrıntıları doldurmak için özel araçları veya veri kaynaklarını çağırır.

Aracı sistemin kullandığı araçlar ve veri kaynakları.

Karmaşıklık düzeyleri: LLM'lerden aracı sistemlerine

GenAI uygulamaları, basit LLM çağrılarından karmaşık çok aracılı sistemlere kadar çeşitli sistemlerle desteklenebilir. Yapay zeka destekli herhangi bir uygulama oluştururken basit bir şekilde başlayın. Daha iyi esneklik veya model temelli kararlar almak için bunlara gerçekten ihtiyaç duyduğunuzda daha karmaşık aracı davranışları tanıtın. Belirlenimci zincirler, iyi tanımlanmış görevler için öngörülebilir, kural tabanlı akışlar sunar. Daha fazla aracı yaklaşım daha fazla esneklik ve potansiyel sunar, ancak ek karmaşıklık ve olası gecikme süresi maliyetiyle birlikte gelir.

Tasarım Deseni Ne Zaman Kullanılır? Avantajlar Dezavantajlar
LLM + komut istemi
  • Genel soru ve yanıt
  • Kısa süreli kullanım için hızlı prototip
  • Çok basit
  • Oluşturması kolay
  • En az özelleştirme
Deterministik zincir
  • İyi tanımlanmış görevler
  • Temel RAG gibi statik işlem hatları
  • Anında kararlara gerek yok
  • Simple
  • Denetlenecek kolay
  • Esnek olmayan
  • Uyarlamak için kod değişiklikleri gerektirir
tek ajanlı sistem
  • Aynı alanda orta ve karmaşık sorgular
  • Bazı dinamik kararlar, birden çok özel aracın ek yükü olmadan yapılabilir.
  • Esnek
  • Çok aracılıdan daha basit
  • İyi "varsayılan"
  • Daha az tahmin edilebilir
  • Yinelenen veya yanlış araç çağrılarına karşı korunmak gerekir.
çok etmenli sistem
  • Büyük veya çok işlevli alanlar
  • Farklı mantık veya konuşma bağlamlarına sahip birden çok "uzman" aracı
  • Son derece modüler
  • Büyük alanlara ölçeklenir
  • Orkestrasyonu karmaşık
  • İzlemek ve hata ayıklamak daha zor

Agent Framework bu desenlerden bağımsızdır ve uygulama gereksinimleriniz arttıkça basitliğe başlamayı ve daha yüksek otomasyon ve özerklik düzeylerine doğru gelişmeyi kolaylaştırır.

Aracı sistemlerinin arkasındaki teori hakkında daha fazla bilgi edinmek için Databricks kurucularının blog gönderilerine bakın:

LLM ve komut

En basit tasarım, geniş bir eğitim veri kümesindeki bilgilere dayalı istemlere yanıt veren tek başına bir LLM veya başka bir GenAI modeline sahiptir. Bu tasarım basit veya genel sorgular için iyidir, ancak genellikle gerçek dünya iş verilerinizle bağlantısı kesilir. Özel yönergelerinizi veya ekli verilerinizi içeren bir sistem istemi sağlayarak davranışı özelleştirebilirsiniz.

LLM kullanıcılara yanıt verir

Deterministic chain (sabit kodlanmış adımlar)

Deterministik zincirler GenAI modellerini araç çağrısıyla genişletiyor, ancak geliştirici hangi araçların veya modellerin hangi sırada ve hangi parametrelerle çağrıldığını tanımlıyor. LLM, hangi araçları çağıracakları veya hangi sırayla çağıracakları konusunda karar vermez. Sistem, tüm istekler için önceden tanımlanmış bir iş akışı veya "zincir" izler ve bu da bunu yüksek oranda tahmin edilebilir hale getirir.

Örneğin, belirlenimci bir Artırılmış Üretim (RAG) zinciri her zaman:

  1. Kullanıcı isteğiyle ilgili bağlamı bulmak için bir vektör dizininden üst k sonuçları alın.
  2. Kullanıcı isteğini alınan bağlamla birleştirerek bir istemi genişletin.
  3. Genişletilmiş istemi bir LLM'ye göndererek bir yanıt oluşturun.

Temel bir RAG zinciri diyagramı

Ne zaman kullanılır:

  • Tahmin edilebilir iş akışlarına sahip iyi tanımlanmış görevler için.
  • Tutarlılık ve denetim en önemli öncelik olduğunda.
  • Düzenleme kararları için birden çok LLM çağrısından kaçınarak gecikme süresini en aza indirmek istediğinizde.

Avantajları:

  • En yüksek öngörülebilirlik ve denetlenebilirlik.
  • Genellikle daha düşük gecikme süresi (düzenleme için daha az LLM çağrısı).
  • Test etmek ve doğrulamak daha kolaydır.

Dikkat Edilmesi Gerekenler:

  • Çeşitli veya beklenmeyen istekleri işlemek için sınırlı esneklik.
  • Mantıksal dallar büyüdükçe karmaşık ve bakımı zor hale gelebilir.
  • Yeni özelliklere uyum sağlamak için önemli bir yeniden düzenleme gerektirebilir.

Tek aracılı sistem

Tek aracılı bir sistem, tek bir eşgüdümlü mantık akışını düzenleyen bir LLM'ye sahiptir. LLM, hangi araçların kullanılacağına, ne zaman daha fazla LLM çağrısı yapılacağına ve ne zaman durdurulacağına uyarlamalı olarak karar verir. Bu yaklaşım dinamik, bağlama duyarlı kararları destekler.

Tek aracılı bir sistem şunları yapabilir:

  1. Kullanıcı sorguları gibi istekleri ve konuşma geçmişi gibi ilgili bağlamları kabul edin.
  2. Dış veriler veya eylemler için araç çağırmanın gerekip gerekmediğine isteğe bağlı olarak karar verip, en iyi yanıtı nasıl vereceğinizi değerlendirin.
  3. Gerekirse, bir hedefe ulaşılana veya geçerli verileri alma veya hata çözme gibi belirli bir koşul karşılanana kadar LLM veya araçları tekrar tekrar çağırarak yineleyin.
  4. Araç çıktılarınızı konuşmaya entegre edin.
  5. Uyumlu bir yanıtı çıktı olarak döndürün.

Örneğin, bir yardım masası yardımcısı aracısı aşağıdaki gibi uyarlanabilir:

  • Kullanıcı basit bir soru sorarsa ("İade ilkemiz nedir?"), aracı doğrudan LLM'nin bilgisinden yanıt verebilir.
  • Kullanıcı sipariş durumunu istiyorsa, aracı işlevi lookup_order(customer_id, order_id)çağırabilir. Bu araç "geçersiz sipariş numarası" ile yanıt verirse, temsilci son yanıtı verene kadar devam ederek, doğru kimliği yeniden denemeyi veya kullanıcıdan istemeyi sürdürebilir.

Yapay zeka aracıları bir planı rasyonalize eder ve araçlarla yürütür.

Ne zaman kullanılır:

  • Çeşitli kullanıcı sorguları bekliyorsunuz ancak yine de uyumlu bir etki alanı veya ürün alanındasınız.
  • Belirli sorgular veya koşullar, müşteri verilerinin ne zaman getirilebileceğine karar verme gibi araç kullanımını garanti edebilir.
  • Belirleyici bir zincirden daha fazla esneklik istiyorsunuz ancak farklı görevler için ayrı özel aracılar gerektirmezsiniz.

Avantajları:

  • Aracı, kullanılacak araçları (varsa) seçerek yeni ya da beklenmedik sorgulara yanıt verebilir.
  • Etmen, tam olarak çok etmenli bir kuruluma gerek kalmadan sonuçları iyileştirmek için tekrarlanan LLM çağrıları veya araç çağrıları arasında döngü yapabilir.
  • Bu tasarım deseni genellikle kurumsal kullanım örnekleri için en uygun noktadır. Hata ayıklamak, dinamik mantığa ve sınırlı otonomiye izin verirken çok aracılı kurulumlara göre daha kolaydır.

Dikkat Edilmesi Gerekenler:

  • Sabit kodlanmış bir zincirle karşılaştırıldığında, tekrar eden veya geçersiz araç çağrılarına karşı kendinizi korumalısınız. Sonsuz döngüler herhangi bir araç çağırma senaryosunda oluşabilir, bu nedenle yineleme sınırlarını veya zaman aşımlarını ayarlayın.
  • Uygulamanız temelde farklı alt etki alanlarına (finans, devops, pazarlama vb.) yayılıyorsa, tek bir aracı işlev gereksinimleriyle yönetilemez hale gelebilir veya aşırı yüklenebilir.
  • Aracıyı odaklanmış ve ilgili tutmak için yine de dikkatle tasarlanmış istemlere ve kısıtlamalara ihtiyacınız vardır.
  • Etkenlik bir devamlılıktır; sistemin davranışını denetlemek için modellere ne kadar fazla özgürlük sağlarsanız, uygulama o kadar etken hale gelir. Uygulamada çoğu üretim sistemi, uyumluluk ve öngörülebilirlik sağlamak için örneğin riskli eylemler için insan onayı gerektirerek aracının özerkliğini dikkatle kısıtlar.

Çok aracılı sistem

Çok aracılı bir sistem, ileti alışverişi yapan veya görevler üzerinde işbirliği yapan iki veya daha fazla özel aracı içerir. Her aracının kendi etki alanı veya görev uzmanlığı, bağlamı ve potansiyel olarak farklı araç kümeleri vardır. Ayrı bir "koordinatör" veya "AI gözetmen" istekleri uygun aracıya yönlendirir veya bir aracıdan diğerine ne zaman teslim edilmesi gerektiğine karar verir. Gözetmen başka bir LLM veya kural tabanlı yönlendirici olabilir.

Düzenleyici birden çok yapay zeka aracılarını yönetir.

Örneğin, bir müşteri yardımcısı, özel aracıları temsil eden bir gözetmene sahip olabilir:

  • Alışveriş yardımcısı: Müşterilerin ürün aramalarına yardımcı olur ve değerlendirmelerden artılar ve eksiler hakkında öneriler sağlar
  • Müşteri destek temsilcisi: Geri bildirimleri, iadeleri ve gönderimi işler

Ne zaman kullanılır:

  • Kodlama aracısı veya finans aracısı gibi farklı sorun alanlarınız veya beceri kümeleriniz var.
  • Her aracının konuşma geçmişine veya etki alanına özgü istemlere erişmesi gerekir.
  • O kadar çok aracınız var ki hepsini tek bir temsilcinin şemasına sığdırmak pratik değil; her temsilci bir alt kümeye sahip olabilir.
  • Uzman ajanlar arasında yansıma, eleştiri veya karşılıklı işbirliği uygulamak istiyorsunuz.

Avantajları:

  • Bu modüler yaklaşım, her bir aracı ayrı ekipler tarafından geliştirilebileceği veya korunabileceği ve dar bir etki alanında uzmanlaşabileceği anlamına gelir.
  • Tek bir aracının uyumlu bir şekilde yönetmekte zorlanabileceği büyük, karmaşık kurumsal iş akışlarını işleyebilir.
  • Gelişmiş çok adımlı veya çok perspektifli mantığı kolaylaştırır. Örneğin, bir aracı yanıt oluştururken diğeri bunu doğrular.

Dikkat Edilmesi Gerekenler:

  • Aracılar arasında yönlendirme stratejisi ve birden çok uç noktada günlük kaydı, izleme ve hata ayıklama için gereken ek yük gerektirir.
  • Çok sayıda alt aracınız ve aracınız varsa, hangi aracının hangi verilere veya API'lere erişimi olduğunu belirlemek karmaşık olabilir.
  • Aracılar, dikkatli bir şekilde kısıtlanmadığı takdirde görevleri kendi aralarında süresiz olarak aktarabilir ve bu durum çözümsüz kalmalarına neden olabilir. Tek aracılı araç çağırmada da sonsuz döngü riskleri vardır, ancak çok aracılı kurulumlar başka bir hata ayıklama karmaşıklığı katmanı ekler.

Pratik öneriler

Kullanım örneğiniz Bilgi Yardımcısı veya yapay zeka işlevleri teklifi kullanılarak ele alınabiliyorsa bu kılavuzlu, daha basit seçenekle başlayın.

Özel bir aracı sistemi oluşturmanız gerekiyorsa Azure Databricks ve Mozaik AI Aracısı Çerçevesi , seçtiğiniz desenden bağımsızdır ve uygulamanız büyüdükçe tasarım desenlerini geliştirmeyi kolaylaştırır. Kararlı, sürdürülebilir aracı sistemleri geliştirmek için aşağıdaki en iyi yöntemleri göz önünde bulundurun:

  1. Basit başlangıç: Yalnızca basit bir zincire ihtiyacınız varsa, belirleyici bir zincirin oluşturulması hızlıdır.
  2. Yavaş yavaş karmaşıklık ekleyin: Daha dinamik sorgulara veya esnek veri kaynaklarına ihtiyacınız olduğundan, araç çağrısıyla tek aracılı bir sisteme geçin. Açıkça farklı etki alanlarınız veya görevleriniz, birden çok konuşma bağlamı veya büyük bir araç kümeniz varsa, çok aracılı bir sistemi göz önünde bulundurun.
  3. Desenleri birleştir: Pratikte, birçok gerçek dünya aracı sistemi desenleri birleştirir. Örneğin, çoğunlukla belirlenimci bir zincir, LLM'nin gerekirse belirli API'leri dinamik olarak çağırabileceği bir adıma sahip olabilir.

Geliştirme kılavuzu

  • İstemler ve araçlar
    • Çelişkili yönergelerden, dikkat dağıtıcı bilgilerden kaçınmak ve halüsinasyonları azaltmak için talimatları net ve minimal tutun.
    • İlişkisiz API'ler veya büyük ilgisiz bağlamlar yerine yalnızca aracınızın gerektirdiği araçları ve bağlamı sağlayın. Tasarım sırasında araç yaklaşımınızı seçin.
  • Kayıt tutma ve gözlemlenebilirlik
    • MLflow İzleme'yi kullanarak her kullanıcı isteği, aracı planı ve araç çağrısı için ayrıntılı günlük kaydı uygulayın.
    • Günlükleri güvenli bir şekilde depolayın ve konuşma verilerinde kişisel bilgileri (PII) dikkate alın. Otomasyon için Veri Sınıflandırmayı göz önünde bulundurun.

Test ve yineleme kılavuzu

  • Değerlendirme
  • Hata işleme ve geri dönüş mantığı
    • Araç ya da LLM hataları nasıl yönetileceğine dair bir plan yapın. Zaman aşımları, hatalı biçimlendirilmiş yanıtlar veya boş sonuçlar bir iş akışını bozabilir. Gelişmiş özellikler başarısız olduğunda yeniden deneme stratejilerini, geri dönüş mantığını veya daha basit bir geri dönüş zincirini dahil edin.
  • Yinelemeli geliştirmeler
    • Zaman içinde istemleri ve aracı mantığını iyileştirmeyi bekleyebilirsiniz. İstemleriniz için MLflow Prompt Registry ve uygulamalarınız için MLflow uygulama sürümü izleme kullanılarak sürüm değişikliklerini takip edin. Sürüm oluşturma işlemleri basitleştirir ve geri alma ve karşılaştırmalara izin verir.
    • Değerlendirme verilerini toplar ve ölçümleri tanımlarken , MLflow prompt Optimization gibi daha otomatik iyileştirme yöntemlerini göz önünde bulundurun.

Üretim kılavuzu

  • Model güncelleştirmeleri ve sürüm sabitleme
    • Sağlayıcılar arka planda modelleri güncelleştirdiğinde LLM davranışları değişebilir. Aracı mantığınızın sağlam ve kararlı kalmasını sağlamak için sürüm sabitleme ve sık regresyon testlerini kullanın.
  • Gecikme süresi ve maliyet iyileştirme
    • Her ek LLM veya araç çağrısı, belirteç kullanımını ve yanıt süresini artırır. Mümkün olduğunda, performansı ve maliyeti yönetilebilir tutmak için adımları birleştirin veya yinelenen sorguları önbelleğe alın.
  • Güvenlik ve kum havuzu
    • Aracınız kayıtları güncelleyebiliyorsa veya kod çalıştırabiliyorsa, bu eylemleri korumalı bir ortamda izole edin veya gerektiğinde insan onayı almayı sağlayın. Bu, istenmeyen zararları önlemek için kurumsal veya düzenlemeye tabi ortamlarda kritik önem taşır. Unity Kataloğu işlevleri üretim için güvenli ve kontrollü bir yürütme ortamı sağlar.
    • Araç seçenekleri hakkında daha fazla kılavuz için bkz. Yapay zeka aracısı araçları .

Bu yönergeleri izleyerek, araç yanlış çağrıları, sürüklenen LLM performansı veya beklenmeyen maliyet artışları gibi en yaygın hata modlarının çoğunu hafifletebilir ve daha güvenilir, ölçeklenebilir aracı sistemleri oluşturabilirsiniz.