Aracılığıyla paylaş


Temsilci Mimarisine Genel Bakış

Bu makale temel ilkeler, tasarım hedefleri ve stratejik hedefler de dahil olmak üzere Aracı Çerçevesi mimarisindeki temel kavramları kapsar.

Hedefler

Agent Framework aşağıdaki temel öncelikleri göz önünde bulundurularak geliştirilmiştir:

  • Semantik Çekirdek aracı çerçevesi, aracı işlevlerini uygulamak için temel temel görevi görür.
  • Farklı türlerdeki birden çok aracı tek bir konuşmada işbirliği yapabilir ve her biri benzersiz özelliklerine katkıda bulunurken insan girişini tümleştirebilir.
  • Bir temsilci aynı anda birden fazla eşzamanlı konuşmaya katılabilir ve bu konuşmaları yönetebilir.

Temsilci

Soyut Agent sınıfı, tüm aracı türleri için temel soyutlama işlevi görür ve daha özel aracılar oluşturmak için genişletilebilen temel bir yapı sağlar. Bu temel sınıf, tümü ilgili işlevlerini yürütmek için Çekirdeğin özelliklerinden yararlanan daha belirli aracı uygulamaları için temel oluşturur. Aracı Türleri bölümünde tüm kullanılabilir aracı türlerine bakın.

Altında yatan Anlam Çekirdeği Agent soyutlaması burada bulunabilir.

Altında yatan Anlam Çekirdeği Agent soyutlaması burada bulunabilir.

Ajanlar, görevleri gerçekleştirmek için doğrudan devreye sokulabilir veya farklı desenler tarafından orkestre edilebilir. Bu esnek yapı, aracıların çeşitli konuşma veya görev temelli senaryolara uyum sağlamasına olanak sağlayarak geliştiricilere akıllı, çok aracılı sistemler oluşturmak için güçlü araçlar sağlar.

Anlam Çekirdeğindeki Aracı Türleri

Aracı Thread

Soyut AgentThread sınıfı, iş parçacığı veya konuşma için temel soyutlama görevi görür. Farklı aracılara göre konuşma durumunun yönetilebileceği çeşitli yolları soyutlayan bir yapı oluşturur.

Durumlu aracı hizmetleri genellikle konuşma durumunu hizmette depolar ve bu hizmetle bir kimlik ile etkileşimde bulunabilirsiniz. Diğer aracıların, her çağrıda tüm sohbet geçmişinin aracıya iletilmesini gerektirdiği durumlar olabilir, bu durumda, konuşma durumu uygulamanın içinde yerel olarak yönetilir.

Durum bilgisi olan aracılar genellikle yalnızca eşleşen bir AgentThread uygulamasıyla çalışırken, diğer aracı türleri birden fazla AgentThread türüyle çalışabilir. Örneğin, AzureAIAgent eşleşen bir AzureAIAgentThreadgerektirir. Bunun nedeni, Azure AI Agent hizmetinin konuşmaları hizmette depolaması ve bir iş parçacığı oluşturup güncelleştirmek için belirli hizmet çağrıları gerektirmesidir. AzureAIAgentile farklı bir temsilci iş parçacığı türü kullanılıyorsa, beklenmeyen bir iş parçacığı türü nedeniyle programı anında sonlandırır ve çağıranı uyarmak için bir hata bildirimi oluştururuz.

Aracı Orkestrasyonu

Önemli

Aracı Çerçevesi'ndeki Aracı Orkestrasyonu özellikleri deneysel aşamadadır. Bunlar etkin geliştirme aşamasındadır ve önizleme veya sürüm adayı aşamasına geçmeden önce önemli ölçüde değişebilir.

Uyarı

Lütfen AgentGroupChat orkestra düzenini kullanıyorsanız, artık korunmadığını unutmayın. Geliştiricilerin yeni GroupChatOrchestration düzeni kullanmasını öneririz. Burada bir geçiş kılavuzu sağlanır.

Anlam Çekirdeği'ndeki Aracı Düzenleme çerçevesi, karmaşık görevleri işbirliğiyle çözmek için birden çok aracının koordinasyonunu sağlar. Aracıların etkileşim kurma, bilgi paylaşma ve temsilci sorumluluklarını tanımlamaya yönelik esnek bir yapı sağlar. Temel bileşenler ve kavramlar şunlardır:

  • Düzenleme Desenleri: Concurrent, Sequential, Handoff, Group Chat ve Magentic gibi önceden oluşturulmuş desenler, geliştiricilerin senaryoları için en uygun işbirliği modelini seçmesine olanak sağlar. Her desen, aracıların görevleri iletmesi ve işlemesi için farklı bir yol tanımlar (ayrıntılar için Orchestration desenleri tablosuna bakın).
  • Veri Dönüştürme Mantığı: Giriş ve çıkış dönüşümleri, düzenleme akışlarının aracılarla dış sistemler arasında verileri uyarlamasına olanak tanır ve hem basit hem de karmaşık veri türlerini destekler.
  • Döngüdeki insan: Bazı desenler döngüde insan katılımını destekleyerek insan aracıların düzenleme sürecine katılmasını sağlar. Bu, özellikle insan yargısı veya uzmanlığının gerekli olduğu senaryolar için kullanışlıdır.

Bu mimari, geliştiricileri işbirliği, özelleştirme ve dinamik koordinasyon aracılığıyla gerçek dünya sorunlarını çözebilecek akıllı, çok aracılı sistemler oluşturma konusunda güçlendirmektedir.

Anlam Çekirdeği Özellikleriyle Aracı Hizalama

, Agent Framework Birçok geliştiricinin Anlam Çekirdeği ekosisteminde öğrendiği temel kavramlar ve özellikler üzerine kurulmuştur. Bu temel ilkeler, Aracı Çerçevesi'nin tasarımı için yapı taşları görevi görür. Aracı Çerçevesi, Anlam Çekirdeği'nin tanıdık yapısından ve özelliklerinden yararlanarak daha gelişmiş, otonom aracı davranışlarına olanak tanımak için işlevselliğini genişletir ve daha geniş Anlam Çekirdeği mimarisiyle tutarlılığı korur. Bu, geliştiriciler için sorunsuz bir geçiş sağlar ve çerçeve içinde akıllı, uyarlanabilir aracılar oluşturmak için mevcut bilgilerini uygulamalarına olanak sağlar.

Eklentiler ve İşlev Çağrısı

Eklentiler , Anlam Çekirdeği'nin temel bir özelliğidir ve geliştiricilerin özel işlevleri tümleştirmesine ve yapay zeka uygulamasının özelliklerini genişletmesine olanak tanır. Bu eklentiler, temel yapay zeka iş akışlarına özel özellikleri veya işletmeye özgü mantığı dahil etmek için esnek bir yol sunar. Ayrıca, eklentiler kullanılarak ve İşlev Çağrısı kullanılarak çerçeve içindeki aracı özellikleri önemli ölçüde geliştirilebilir. Bu, aracıların dış hizmetlerle dinamik olarak etkileşim kurmasına veya karmaşık görevler yürütmesine olanak tanır ve yapay zeka sisteminin kapsamını ve çok yönlülüğünü farklı uygulamalar içinde daha da genişletir.

Aracıları eklentileri kullanacak şekilde yapılandırmayı buradan öğrenin.

Temsilci Mesajları

Hem giriş hem de yanıt dahil olmak üzere aracı mesajlaşması, semantik çekirdeğin temel içerik türlerini temel alarak iletişim için birleşik bir yapı sağlar. Bu tasarım seçimi, uygulama geliştirmenizde geleneksel sohbet tamamlama desenlerinden daha gelişmiş aracı temelli desenlere geçiş sürecini basitleştirir. Geliştiriciler, tanıdık Anlam Çekirdeği içerik türlerinden yararlanarak, mevcut sistemlerin elden geçirmesine gerek kalmadan aracı özelliklerini uygulamalarıyla sorunsuz bir şekilde tümleştirebilir. Bu akış, temel konuşma yapay zekasından daha otonom, görev odaklı aracılara doğru geliştikçe temel alınan çerçevenin tutarlı kalmasını ve geliştirmenin daha hızlı ve verimli olmasını sağlar.

Şablon oluşturma

Bir aracının rolü öncelikli olarak aldığı yönergelere göre şekillendirilir ve bu da davranışını ve eylemlerini belirler. Bir istem çağırmaya Kernelbenzer şekilde, aracının yönergeleri yürütme sırasında dinamik olarak değiştirilen şablonlu parametreleri (hem değerler hem de işlevler) içerebilir. Bu, esnek, bağlama duyarlı yanıtlar sağlar ve aracının çıkışını gerçek zamanlı girişe göre ayarlamasını sağlar.

Ayrıca, bir aracı doğrudan bir İstem Şablonu Yapılandırması kullanılarak yapılandırılabilir ve geliştiricilere davranışını tanımlamak için yapılandırılmış ve yeniden kullanılabilir bir yol sağlar. Bu yaklaşım, aracı yönergelerini standartlaştırmak ve özelleştirmek, çeşitli kullanım örnekleri arasında tutarlılık sağlamak ve dinamik uyarlanabilirliği sürdürmek için güçlü bir araç sunar.

Anlam Çekirdeği şablonuyla aracı oluşturma hakkında daha fazla bilgi için buraya bakın.

Bildirim Temelli Belirtim

Bildirim temelli özellikleri kullanma belgeleri yakında kullanıma sunulacaktır.

Önemli

Bu özellik deneysel aşamadadır. Bu aşamadaki özellikler geliştirme aşamasındadır ve önizleme veya sürüm adayı aşamasına geçmeden önce değiştirilebilir.

Özel Aracı Türlerini Kaydetme

Bildirim temelli YAML belirtim sistemiyle özel bir aracı kullanmak için önce aracı sınıfınızı aracı kayıt defterine kaydetmeniz gerekir. AgentRegistry'in YAML belirtimindeki type: alanını ayrıştırması ve aracınızı tanıyıp oluşturabilmesi için bu gereklidir.

Özel bir aracı türünü kaydetmek için @register_agent_type dekoratörünü kullanın.

from semantic_kernel.agents import register_agent_type, Agent, DeclarativeSpecMixin

@register_agent_type("custom_agent")
class CustomAgent(DeclarativeSpecMixin, Agent):
    ...

Dekoratöre sağlanan dize (örneğin, "custom_agent") YAML belirtimindeki tür: alanıyla eşleşmelidir.

Kaydedildikten sonra, özel aracınız, örneğin AgentRegistry.create_from_yaml(...) aracılığıyla, deklaratif desen kullanılarak örneklendirilebilir.

DeclarativeSpecMixin, from_yaml, from_dict ve resolve_placeholders gibi yöntemler için destek ekler ve aracınızın YAML veya sözlük belirtiminden oluşturulabilmesine olanak tanır.

@classmethod
async def from_yaml(cls, yaml_str: str, *, kernel=None, plugins=None, prompt_template_config=None, settings=None, extras=None, **kwargs):
    # Resolves placeholders and loads YAML, then delegates to from_dict.
    ...

@classmethod
async def from_dict(cls, data: dict, *, kernel=None, plugins=None, prompt_template_config=None, settings=None, **kwargs):
    # Normalizes and passes spec fields to _from_dict.
    ...

@classmethod
@abstractmethod
async def _from_dict(cls, data: dict, *, kernel, prompt_template_config=None, **kwargs):
    # Subclasses implement this to create the agent from a dict.
    ...

@classmethod
def resolve_placeholders(cls, yaml_str: str, settings=None, extras=None) -> str:
    # Optional: override this to customize how environment or runtime placeholders are resolved in YAML.
    return yaml_str

Tavsiye

YAML tabanlı yapıyı etkinleştirmek için herhangi bir özel aracı DeclarativeSpecMixin 'den devralmalı ve @register_agent_type kullanılarak kayıt defterine kaydedilmelidir.

Bu özellik kullanılamıyor.

Sonraki Adımlar