Orta Katman Yazılımı Ekleme

Önceki sayfada beceri paketinin, talimatlar, başvuru materyalleri ve betiklerden oluşan, yeniden kullanılabilir etki alanı uzmanlığını, herhangi bir temsilcinin isteğe bağlı olarak yükleyebileceği bağımsız birimlere nasıl dönüştürdüğü gösterildi. Ancak aracıları üretime dağıtırken yeni bir sorun kategorisi ortaya çıkar: aracının ne yaptığı fark etmeksizin her etkileşimi kesen sorunlar.

Her isteği ve yanıtı günlüğe kaydetmeniz gerekiyor. Zararlı içeriği model görmeden önce engelleyen koruyucu önlemlere ihtiyacınız vardır. Aracının temel mantığına dokunmadan hız sınırlarını zorlamanız, özel durumları düzgün bir şekilde yakalamanız ve telemetri eklemeniz gerekir. Bu endişeleri her aracıya (veya her araca, her beceriye) kopyalamak ölçeklenebilir değildir ve bakım kabuslarına yol açar.

Ara yazılım bunu çözer. Ara yazılım, aracının yürütme işlem hattını iyi tanımlanmış noktalarda istekleri ve yanıtları kesen, inceleyen ve değiştiren yeniden kullanılabilir davranışlarla sarmalamanıza olanak tanır. Ara yazılımı aracı etrafında bir dizi eşmerkezli katman olarak düşünün; her katman, aracıya ulaşmadan önce giriş üzerinde ve çağırana ulaşmadan önce çıkışta işlem yapma şansına sahip olur.

Bunu kullanmanız gereken durum

Aşağıdaki durumlarda aracınıza ara yazılım ekleyin:

  • Model işlemeden önce veya sonra zararlı, konu dışı veya ilkeyi ihlal eden içeriği engellemek için korumalara ihtiyacınız vardır.
  • Tüm ajan etkileşimleri için her bir ajanı ayrı ayrı değiştirmeden merkezi günlük kaydı veya telemetri istiyorsunuz.
  • Aracı mantığını değiştirmeden, istekleri veya yanıtları — istemleri zenginleştirerek, çıktıları dönüştürerek veya sonuçları tamamen değiştirerek — değiştirmeniz gerekir.
  • Her çalıştırma için geçerli olan hız sınırlama, içerik filtreleme veya kimlik doğrulama denetimleri gibi ilkeleri zorunlu kılmak istiyorsunuz.
  • Geçici hatalarda yeniden deneme, uygun geri dönüş yanıtları sağlama veya tanılama için hataları günlüğe kaydetme gibi istisnaları tutarlı bir şekilde işlemeniz gerekir.
  • durumu işlem hattı genelinde paylaşmak istiyorsunuz; örneğin, izleme isteği zamanlaması veya birden çok ara yazılım bileşeninin ihtiyaç duyduğu ölçümleri biriktirme.

Tavsiye

Agent Framework, izleme ve ölçümler için yerleşik enstrümantasyon içerir. Ayrıntılar için bkz. Gözlemlenebilirlik .

Ara yazılım işlem hattı nasıl çalışır?

Ajanınızın çalıştırma metodunu çağırdığınızda, istek doğrudan modele gitmez. Bunun yerine, her biri isteği inceleyip değiştirebilen, sonraki katmana temsilci olarak atanabilen ve geri dönerken yanıtı inceleyen veya değiştirebilen ara yazılım katmanlarından oluşan bir işlem hattı üzerinden akar.

┌─────────────────────────────────────────────────────────┐
│  Caller: agent.run("What's the weather?")               │
└──────────────┬──────────────────────────────────────────┘
               ▼
┌─────────────────────────────────────────────────────────┐
│  Middleware 1 (Logging)                                  │
│  • Logs the incoming request                            │
│  • Calls next middleware                                │
│  • Logs the outgoing response                           │
└──────────────┬──────────────────────────────────────────┘
               ▼
┌─────────────────────────────────────────────────────────┐
│  Middleware 2 (Guardrails)                               │
│  • Checks input against content policy                  │
│  • If blocked → returns early with rejection message    │
│  • If allowed → calls next middleware                   │
│  • Checks output against content policy                 │
└──────────────┬──────────────────────────────────────────┘
               ▼
┌─────────────────────────────────────────────────────────┐
│  Agent core (model invocation, tool calls, etc.)        │
└─────────────────────────────────────────────────────────┘

Önemli noktalar:

  1. Her ara yazılım devam edip etmeyeceğine karar verir. Ara yazılım, zincirdeki bir sonraki katmanı çağırarak normal bir şekilde devam edebilir veya doğrudan bir yanıt döndürerek (örneğin, bir koruma bir isteği engellediğinde) işlem hattında kısa devre yapabilir.
  2. Ara yazılım her iki yönü de görür. Ara yazılım, kodu devretmeden önce (girişi incelemek veya değiştirmek için) ve yanıt geldikten sonra (çıkışı incelemek veya değiştirmek için) çalıştırır. Bu klasik "soğan" desenidir.
  3. Bir araya gelmiş birden çok ara yazılım zincir oluşturur. Birkaç ara yazılım bileşenini kaydettiğinizde, bunlar iç içe yerleştirilmiştir: ilk kayıtlı ara yazılım en dış katmandır ve son kaydedilen katman aracıya en yakın olan katmandır.

Tavsiye

Ara yazılımların bağlam sağlayıcıları ve sohbet istemci katmanları dahil olmak üzere tam aracı yürütme işlem hattına nasıl uyduğunu ayrıntılı bir görünüm için bkz. Aracı İşlem Hattı Mimarisi.

Ara yazılım neler yapabilir?

Agent Framework, aracı çalıştırma, işlev çağrısı ve sohbet istemcisi olmak üzere işlem hattının üç katmanında ara yazılımı destekler ve yürütmeyi nerede durdurabileceğiniz üzerinde ayrıntılı denetim sağlar. Yaygın desenler şunlardır:

Desen Example Referans
Korumalar ve sona erdirme Zararlı içeriği engelle, konuşma uzunluğunu sınırla Sonlandırma ve Korumalar
İstisna yönetimi Geçici hataları tekrar deneyin, yedek yanıtlar verin Özel Durum İşleme
Sonuç geçersiz kılmalar Hassas verileri düzenleme, ajan çıktısını geliştirme veya değiştirme Sonuç Geçersiz Kılmaları
Paylaşılan durum ara yazılım arasında istek kimliklerini veya zamanlama verilerini geçirme Paylaşılan Durum
Çalışma zamanı bağlamı Oturuma, kullanıcıya veya çalıştırma başına yapılandırmaya göre davranışı değiştirme Çalışma Zamanı Bağlamı
Kapsam Belirleme Ara yazılımı tüm çalışmalara veya tek bir çalışmaya uygulayın. Aracı ve Çalıştırma Kapsamı karşılaştırması

Ara yazılımı tanımlama ve kaydetme konusunda tam bir kılavuz için bkz. Ara Yazılımı Tanımlama. Tam mimariye genel bakış için bkz. Ara Yazılıma Genel Bakış.

Değerlendirmeler

Değerlendirme Ayrıntılar
Sorumlulukların ayrılması Ara yazılım, çapraz kesen mantığı temsilci kodunuzdan, araçlarınızdan ve becerilerinizden uzak tutar. Her ara yazılım bileşeninin, bağımsız olarak ekleyebileceğiniz, kaldırabileceğiniz veya sıralayabileceğiniz tek bir sorumluluğu vardır (günlük kaydı, güvenlik önlemleri, hata işleme).
Sipariş bağımlılığı Ara yazılım bir zincir oluşturur. Ara yazılım kaydettirme sırası önemlidir: Öncelikli çalışan bir günlüğe kaydetme ara yazılımı ham girişi görürken, son olarak çalıştırılan bir ara yazılım önceki ara yazılım tarafından değiştirilmiş girişi görür. Boru hattı sıralamanızı dikkatli bir şekilde planlayın.
Hata ayıklama karmaşıklığı Ara yazılım girişleri veya çıkışları değiştirdiğinde, hata ayıklama işlemi tüm işlem hattının anlaşılmasını gerektirir. Yanıt, bir etmen nedeniyle değil, ara yazılım tarafından dönüştürüldüğü için yanlış görünebilir. İyi günlükleme ara yazılımı (zincirin başına yerleştirildiğinde) bu durumları tanılamaya yardımcı olur.
Performans yükü Her ara yazılım katmanı, her isteğe işleme süresi ekler. Hafif işlemler, örneğin günlüğe kaydetme gibi, ihmal edilebilir. Dış içerik denetleme API'sini çağırma gibi maliyetli işlemler için gecikme, özellikle birden fazla bu tür ara katman yazılımı zincirlenmişse, artar.

Sonraki Adımlar

Artık aracınızda araçlar, beceriler ve ara yazılım olduğuna göre, sonraki adım bağlam sağlayıcılarıdır ( her çalıştırmadan önce aracının bağlam penceresine bellek, kullanıcı profilleri ve dinamik bilgi ekleyen bileşenler).

Daha derine gidin: