Python'da Human-in-the-Loop Ara Katmanı: Onay Akışlarıyla Güvenli AI Ajanları Oluşturma

Python'da Human-in-the-Loop Ara Katmanı: Onay Akışlarıyla Güvenli AI Ajanları Oluşturma

AI Agents LangChain Python Middleware

Giriş

Otonom olarak araç çalıştırabilen ve eylem alabilen AI ajanları oluşturmak güçlüdür, ancak beraberinde doğuştan gelen riskler getirir. Bir ajan yanlış bilgi içeren bir e-posta göndermeye, büyük bir finansal işlemi onaylamaya veya kritik veritabanı kayıtlarını değiştirmeye karar verirse ne olur? Uygun güvenlik önlemleri olmadan, otonom ajanlar kimsenin farkına varmadan önce önemli zararlar verebilir. İşte bu noktada human-in-the-loop (insan döngüsünde) ara katmanı devreye girer. Bu kapsamlı rehberde, Python ve LangChain kullanarak human-in-the-loop ara katmanının nasıl uygulanacağını inceleyecek, hassas işlemleri yürütmeden önce insan onayıyla duraklayan AI ajanları oluşturmayı öğreneceksiniz. Onay akışları eklemeyi, düzenleme yeteneklerini uygulamayı ve reddetmeleri nasıl yöneteceğinizi göreceksiniz—tüm bunları otonom sistemlerinizin verimliliği ve zekasını koruyarak başaracaksınız.

Thumbnail for Python'da Human in the Loop Middleware

AI Ajan Döngüleri ve Araç Çalıştırmanın Temelleri

Human-in-the-loop ara katmanına geçmeden önce, AI ajanlarının temelde nasıl çalıştığını anlamak önemlidir. Bir AI ajanı, görevini tamamladığına karar verene kadar sürekli tekrar eden bir döngüyle çalışır. Temel ajan döngüsü üç ana bileşenden oluşur: bir dil modeli (ne yapılacağına karar verir), ajanın çağırabileceği araçlar ve konuşma geçmişini ve ilgili bağlamı takip eden bir durum yönetim sistemi. Ajan, bir kullanıcıdan giriş mesajı alarak başlar; ardından dil modeli bu girişi ve mevcut araçları analiz eder, bir aracı çağırmaya mı yoksa nihai bir yanıt vermeye mi karar verir. Model bir aracı çağırmaya karar verirse, ilgili araç çalıştırılır ve sonuçlar tekrar konuşma geçmişine eklenir. Bu döngü—model akıl yürütme, araç seçimi, araç çalıştırma, sonuç entegrasyonu—model, başka araç çağrısına gerek olmadığına karar verene ve kullanıcıya nihai yanıt verene kadar devam eder.

Bu basit ama güçlü desen, son birkaç yılda yüzlerce AI ajan çerçevesinin temeli olmuştur. Ajan döngüsünün zarafeti, esnekliğinde yatar: Bir ajana sunulan araçları değiştirerek, çok farklı görevleri yerine getirmesini sağlayabilirsiniz. E-posta araçlarına sahip bir ajan iletişimi yönetebilir, veritabanı araçlarına sahip bir ajan sorgu atabilir ve kayıtları güncelleyebilir, finansal araçlara sahip bir ajan işlemleri yönetebilir. Ancak, bu esneklik aynı zamanda risk de getirir. Çünkü ajan döngüsü otonom çalışır ve belirli bir eylemin gerçekten yapılması gerekip gerekmediğini bir insana sormak için yerleşik bir mekanizma yoktur. Model bir e-posta göndermeye, bir veritabanı sorgusu çalıştırmaya ya da bir finansal işlemi onaylamaya karar verebilir—ve bir insan ne olduğunu fark ettiğinde, eylem zaten gerçekleşmiş olur. Temel ajan döngüsünün bu sınırlamaları, üretim ortamlarında daha belirgin hale gelir.

Üretim AI Sistemlerinde İnsan Denetiminin Önemi

AI ajanları daha yetenekli hale geldikçe ve gerçek dünya iş ortamlarında kullanılmaya başladıkça, insan denetimi ihtiyacı giderek kritikleşir. Otonom ajan eylemlerinin risk düzeyi, bağlama göre büyük ölçüde değişir. Bazı araç çağrıları düşük risklidir ve insan incelemesi olmadan hemen çalıştırılabilir—örneğin, bir e-posta okumak veya bir veritabanından bilgi almak. Diğer araç çağrıları ise yüksek risklidir ve geri döndürülemez olabilir; örneğin, kullanıcı adına iletişim göndermek, para transferi yapmak, kayıtları silmek veya bir kurumu bağlayıcı taahhütlerde bulunmak gibi. Üretim sistemlerinde, bir ajanın yüksek riskli bir işlemi yanlış yapmasının maliyeti çok büyük olabilir. Yanlış kişiye gönderilen hatalı bir e-posta, iş ilişkilerine zarar verebilir. Hatalı onaylanan bir bütçe, finansal kayıplara yol açabilir. Yanlışlıkla silinen bir veritabanı kaydı, yedeklerden saatler veya günler sürecek veri kaybına neden olabilir.

Doğrudan operasyonel risklerin ötesinde, uyum ve düzenleyici gereksinimler de vardır. Birçok sektörde, belirli kararların insan yargısı ve onayı içermesi zorunludur. Finansal kuruluşlarda, belirli büyüklükteki işlemlerde insan denetimi gerekir. Sağlık sistemlerinde, bazı otomatik kararların insan tarafından incelenmesi zorunludur. Hukuk firmalarında, müşteri adına gönderilen iletişimlerin insan gözetiminden geçmesi gerekir. Bu düzenleyici gereklilikler sadece bürokratik yük değildir—bu alanlarda tamamen otonom kararların sonuçları ciddi olduğu için vardırlar. Ayrıca, insan denetimi ajanı zamanla iyileştiren bir geri bildirim mekanizması sağlar. İnsan, bir ajanın önerdiği eylemi inceleyip onayladığında veya düzenleme önerdiğinde, bu geri bildirim ajan istemlerini iyileştirmek, araç seçimini ayarlamak veya temel modelleri yeniden eğitmek için kullanılabilir. Böylece ajan, kuruluşun özel ihtiyaçlarına ve risk toleransına daha iyi uyumlu ve güvenilir hale gelir.

Human-in-the-Loop Ara Katmanı Nedir?

Human-in-the-loop ara katmanı, ajan döngüsünü kritik bir noktada kesintiye uğratan özel bir bileşendir: bir araç çalıştırılmadan hemen önce. Ajanın bir araç çağrısını hemen çalıştırmasına izin vermek yerine, ara katman yürütmeyi duraklatır ve önerilen eylemi bir insanın incelemesine sunar. İnsan burada birkaç şekilde yanıt verebilir: Eylemi onaylayabilir ve işlemin ajanın önerdiği şekilde devam etmesine izin verir; eylemi düzenleyebilir (örneğin, e-posta alıcısını veya mesaj içeriğini değiştirip onaylayabilir); ya da eylemi tamamen reddedip, neden uygun olmadığını açıklayan bir geri bildirimle ajana gönderir. Bu üçlü karar mekanizması—onayla, düzenle, reddet—farklı insan gözetim ihtiyaçlarını karşılayan esnek bir çerçeve sunar.

Ara katman, standart ajan döngüsünü ek bir karar noktasıyla değiştirerek çalışır. Temel ajan döngüsünde sıra şöyledir: model araçları çağırır → araçlar çalışır → sonuçlar modele döner. Human-in-the-loop ara katmanıyla, sıra şöyle olur: model araçları çağırır → ara katman keser → insan inceler → insan karar verir (onayla/düzenle/reddet) → onaylanır veya düzenlenirse araç çalışır → sonuçlar modele döner. İnsan karar noktası eklemek ajan döngüsünü bozmaz; tam tersine, ona bir güvenlik supabı ekler. Ara katman yapılandırılabilir: Hangi araçların insan incelemesi gerektireceğini, hangilerinin otomatik çalışacağını belirleyebilirsiniz. Örneğin, tüm e-posta gönderen araçlarda kesintiye uğratmak isteyebilir, salt-okunur veritabanı sorgularının ise otomatik çalışmasını sağlayabilirsiniz. Bu ayrıntılı kontrol, insan denetimini tam olarak gerektiği yere eklemenizi, düşük riskli işlemler için gereksiz darboğazlar oluşturmamanızı sağlar.

Üç Yanıt Türü: Onay, Düzenleme ve Reddetme

Bir human-in-the-loop ara katmanı, bir ajanın araç çalıştırmasını kestiğinde, insan inceleyicinin üç ana yanıt şekli vardır ve her biri onay akışında farklı bir amaca hizmet eder. Bu üç yanıt türünü anlamak, etkili human-in-the-loop sistemleri tasarlamak için temel önemdedir.

Onay, en basit yanıt türüdür. İnsan, önerilen araç çağrısını incelediğinde uygun ve ajanın önerdiği şekilde devam etmesi gerektiğine karar verirse, onay kararı verir. Bu, ara katmana, aracın ajanın belirttiği parametrelerle çalıştırılması gerektiğini bildirir. Bir e-posta asistanı örneğinde, onay demek, e-posta taslağının uygun olduğu ve belirlenen alıcıya, başlık ve gövdeyle gönderilmesi gerektiği anlamına gelir. Onay, en az dirençli yoldur—ajanın önerdiği eylemin değişiklik olmadan gerçekleşmesini sağlar. Ajan görevini iyi yaptıysa ve insan inceleyici önerilen eylemi uygun buluyorsa bu uygundur. Onay kararları genellikle hızlı verilir ve bu önemlidir çünkü insan incelemesinin tüm iş akışınızı yavaşlatan bir darboğaza dönüşmesini istemezsiniz.

Düzenleme, ajanın genel yaklaşımının doğru olduğunu, fakat bazı detayların yürütülmeden önce düzeltilmesi gerektiğini kabul eden daha ayrıntılı bir yanıt türüdür. İnsan, düzenleme yanıtı verdiğinde, ajanın eylem alma kararını reddetmez; bunun yerine, eylemin nasıl uygulanacağına dair ayrıntıları inceler. E-posta örneğinde, düzenleme alıcı adresini değiştirmek, başlık satırını daha profesyonel yapmak veya gövde metnini ek bağlamla zenginleştirmek ya da sorunlu ifadeleri çıkarmak anlamına gelebilir. Düzenleme yanıtının temel özelliği, araç çağrısı aynı kalırken parametrelerin değiştirilmesidir. Ajan e-posta göndermeye karar verdi, insan da e-posta göndermenin doğru olduğuna katıldı, ancak içeriğin veya alıcının değiştirilmesini istiyor. İnsan düzenlemelerini sunduktan sonra araç, güncellenen parametrelerle çalıştırılır ve sonuçlar ajana iletilir. Bu yaklaşım özellikle değerlidir çünkü insanlara, ajanın eylem önerilerinden yararlanırken, çıktıların kendi uzmanlığı ve kurumsal bağlama uygun olmasını sağlama gücü verir.

Reddetme, en önemli yanıt türüdür çünkü yalnızca önerilen eylemin gerçekleşmesini engellemekle kalmaz, aynı zamanda ajanın neden uygun olmayan bir eylem önerdiğini açıklayan bir geri bildirim de gönderir. İnsan, bir araç çağrısını reddettiğinde, ajanın önerdiği eylemin hiç yapılmaması gerektiğini söyler ve ajanın yaklaşımını tekrar gözden geçirmesi için rehberlik sağlar. E-posta örneğinde, ajan detay veya gerekçeden yoksun büyük bir bütçe onaylama e-postası göndermek isterse, insan bu eylemi reddeder ve önce daha fazla ayrıntı istenmesi gerektiğini açıklar. Bu reddetme mesajı ajanın bağlamına eklenir ve ajan bu geri bildirimle yeniden akıl yürütüp yeni bir yaklaşım önerebilir. Ajan, ardından örneğin daha fazla bilgi isteyen farklı bir e-posta taslağı önerebilir. Reddetme yanıtları, ajanın aynı uygunsuz eylemi tekrar tekrar önermesini engellemede çok önemlidir. Neden reddedildiğine dair net geri bildirim vererek, ajanın karar mekanizmasını iyileştirirsiniz.

Human-in-the-Loop Ara Katmanının Uygulanması: Pratik Bir Örnek

Human-in-the-loop ara katmanının LangChain ve Python ile somut bir uygulamasını birlikte inceleyelim. Kullanacağımız örnek, insan denetiminin değerini somut olarak gösteren ve anlaşılması kolay bir e-posta asistanıdır. Bu e-posta asistanı, kullanıcı adına e-posta gönderebilir ve tüm gönderimlerin yürütülmeden önce insan denetiminden geçmesini sağlayan bir human-in-the-loop ara katmanı ekleyeceğiz.

Öncelikle, ajanın kullanacağı e-posta aracını tanımlamamız gerekir. Bu araç üç parametre alır: alıcı e-posta adresi, konu satırı ve e-posta gövdesi. Araç basittir—bir e-postanın gönderilmesi işlemini temsil eder. Gerçek bir uygulamada bu, Gmail veya Outlook gibi bir e-posta servisiyle entegre olabilir; fakat gösterim için basit tutabiliriz. Temel yapı şöyle:

def send_email(recipient: str, subject: str, body: str) -> str:
    """Belirtilen alıcıya bir e-posta gönder."""
    return f"Email sent to {recipient} with subject '{subject}'"

Sonra, bu e-posta aracını kullanan bir ajan oluşturuyoruz. GPT-4 dil modelini kullanacağız ve ajana, “Sydney için yardımcı bir e-posta asistanısın, kullanıcı adına e-posta gönderebilirsin” şeklinde bir sistem istemi vereceğiz. Ajan, e-posta aracı ile başlatılır ve kullanıcı isteklerine yanıt vermeye hazırdır:

from langchain.agents import create_agent
from langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-4o")
tools = [send_email]

agent = create_agent(
    model=model,
    tools=tools,
    system_prompt="Sydney için yardımcı bir e-posta asistanısın. Kullanıcı adına e-posta gönderebilirsin."
)

Bu noktada, e-posta gönderebilen temel bir ajanımız oldu. Ancak, insan denetimi yoktur—ajan e-postaları herhangi bir inceleme olmadan gönderebilir. Şimdi human-in-the-loop ara katmanını ekleyelim. Uygulaması son derece basit ve sadece iki satır gerektirir:

from langchain.agents.middleware import HumanInTheLoopMiddleware

agent = create_agent(
    model=model,
    tools=tools,
    system_prompt="Sydney için yardımcı bir e-posta asistanısın. Kullanıcı adına e-posta gönderebilirsin.",
    middleware=[
        HumanInTheLoopMiddleware(
            interrupt_on={"send_email": True}
        )
    ]
)

HumanInTheLoopMiddleware ekleyip interrupt_on={"send_email": True} belirterek, ajana herhangi bir send_email araç çağrısından önce duraklamasını ve insan onayını beklemesini söylüyoruz. True değeri, tüm send_email çağrılarının varsayılan yapılandırmayla kesintiye uğratılacağı anlamına gelir. Daha ayrıntılı bir kontrol isteseydik, hangi karar türlerinin izinli olduğunu belirtebilir veya kesinti için özel açıklamalar verebilirdik.

Ara Katmanı Düşük Riskli Senaryolarla Test Etmek

Ara katmanı ekledikten sonra, düşük riskli bir e-posta senaryosuyla test edelim. Farz edin ki bir kullanıcı, Alice isimli bir iş arkadaşından gelen haftaya kahve daveti e-postasına yanıt vermesini ajanından ister. Ajan bu isteği işler ve dostça bir yanıt e-postası göndermek üzere karar verir. Olanlar şunlardır:

  1. Kullanıcı mesaj gönderir: “Alice’in haftaya kahve içme teklifine yanıt verir misin?”
  2. Ajanın dil modeli, send_email aracını recipient=“alice@example.com ”, subject=“Kahve haftaya?”, body=“Seninle haftaya kahve içmek isterim!” parametreleriyle çağırmaya karar verir.
  3. E-posta gönderilmeden önce, ara katman araç çağrısını keser ve bir kesinti oluşturur.
  4. İnsan inceleyici önerilen e-postayı görür ve inceler. E-posta uygun, dostça ve profesyoneldir.
  5. İnsan, onay kararı vererek eylemi onaylar.
  6. Ara katman aracı çalıştırır ve e-posta gönderilir.

Bu iş akışı temel onay yolunu gösterir. İnsan incelemesi, süreci ciddi şekilde yavaşlatmadan bir güvenlik katmanı ekler. Bu tür düşük riskli işlemlerde, ajan makul bir eylem önerdiği için onay genellikle hızlı olur.

Ara Katmanı Yüksek Riskli Senaryolarla Test Etmek: Düzenleme Yanıtı

Şimdi düzenlemenin değerli olduğu daha ciddi bir senaryoyu ele alalım. Diyelim ki ajan, bir startup iş ortağından gelen ve kullanıcının Q1 için 1 milyon dolarlık mühendislik bütçesini onaylamasını isteyen bir e-postaya yanıt vermekle görevlendirildi. Bu, dikkatli değerlendirme gerektiren yüksek riskli bir karardır. Ajan şöyle bir e-posta önerebilir: “1 milyon dolarlık Q1 mühendislik bütçesi teklifini inceledim ve onayladım.”

Bu önerilen e-posta, ara katmanın oluşturduğu kesintiyle insan inceleyiciye ulaştığında, insan bunun önemli bir finansal taahhüt olduğunu ve daha dikkatli incelenmeden onaylanmaması gerektiğini anlar. İnsan, tamamen yanıtı reddetmek istemez, fakat yanıtı daha temkinli olacak şekilde değiştirmek ister. İnsan düzenleme yanıtı vererek e-posta gövdesini şöyle değiştirir: “Teklif için teşekkürler. Onay vermeden önce detayları daha dikkatli incelemek isterim. Bütçenin nasıl dağıtılacağına dair bir döküm gönderebilir misiniz?”

Kodda bir düzenleme yanıtı şöyle görünür:

edit_decision = {
    "type": "edit",
    "edited_action": {
        "name": "send_email",
        "args": {
            "recipient": "partner@startup.com",
            "subject": "Q1 Mühendislik Bütçe Teklifi",
            "body": "Teklif için teşekkürler. Onay vermeden önce detayları daha dikkatli incelemek isterim. Bütçenin nasıl dağıtılacağına dair bir döküm gönderebilir misiniz?"
        }
    }
}

Ara katman bu düzenleme kararını aldığında, aracı düzenlenmiş parametrelerle çalıştırır. E-posta, insanın revize ettiği daha uygun içerikle gönderilir. Bu, düzenleme yanıt türünün gücünü gösterir: İnsanlar, ajanın iletişim taslaklarından yararlanırken, nihai çıktının insan yargısı ve kurumsal standartlara uygun olmasını sağlayabilirler.

Ara Katmanı Reddetme ve Geri Bildirimle Test Etmek

Reddetme yanıt türü özellikle etkilidir çünkü hem uygunsuz bir eylemi engeller hem de ajanın akıl yürütmesini geliştiren geri bildirim sunar. Yine aynı yüksek bütçeli e-posta senaryosunu ele alalım. Diyelim ki ajan şöyle bir e-posta öneriyor: “Q1 için 1 milyon dolarlık mühendislik bütçesini inceledim ve onayladım.”

İnsan inceleyici bunu görür ve bunun çok aceleci olduğunu fark eder. 1 milyon dolarlık bir taahhüt, kapsamlı bir inceleme, paydaşlarla görüşme ve detayların anlaşılması olmadan onaylanmamalıdır. İnsan, sadece e-postayı düzenlemek istemez; yaklaşımın tamamını reddedip ajanın tekrar düşünmesini ister. İnsan, aşağıdaki gibi bir reddetme yanıtı ve geri bildirim verir:

reject_decision = {
    "type": "reject",
    "message": "Bu bütçeyi daha fazla bilgi olmadan onaylayamam. Lütfen teklifin detaylı bir dökümünü, fonların farklı mühendislik ekiplerine nasıl dağıtılacağını ve beklenen somut çıktıları soran bir e-posta taslağı oluştur."
}

Ara katman bu reddetme kararını aldığında, aracı çalıştırmaz. Bunun yerine, reddetme mesajını konuşma bağlamının bir parçası olarak ajana gönderir. Ajan, önerdiği eylemin reddedildiğini ve nedenini görür. Ajan, bu geri bildirimi analiz ederek farklı bir yaklaşım önerebilir. Bu durumda, ajan bütçe teklifiyle ilgili daha fazla detay isteyen yeni bir e-posta önerebilir ki bu, yüksek riskli bir finansal isteğe daha uygun bir yanıttır. İnsan daha sonra bu yeni öneriyi onaylayabilir, daha fazla düzenleyebilir ya da gerekirse tekrar reddedebilir.

Bu yinelemeli süreç—öner, incele, reddet ve geri bildir, tekrar öner—human-in-the-loop ara katmanının en değerli yönlerinden biridir. Ajanın hızı ve akıl yürütme yeteneği, insan yargısı ve alan bilgisiyle birleşerek işbirliğine dayalı bir iş akışı yaratır.

FlowHunt ile İş Akışınızı Hızlandırın

FlowHunt ile araştırmadan içerik üretimi ve yayına, analizlere kadar tüm AI içerik ve SEO iş akışlarınızı tek platformda otomatikleştirin.

Gelişmiş Yapılandırma: Kesintiler Üzerinde Ayrıntılı Kontrol

Human-in-the-loop ara katmanının temel uygulaması basit olsa da, LangChain daha ayrıntılı yapılandırma seçenekleri sunar ve kesintilerin tam olarak nasıl ve ne zaman olacağını hassas şekilde ayarlamanıza olanak tanır. Önemli bir seçenek, her araç için hangi karar türlerinin izinli olacağını belirlemektir. Örneğin, e-posta gönderimlerinde onay ve düzenleme izinli olsun ama reddetme olmasın isteyebilirsiniz. Ya da finansal işlemler için üç karar türüne de izin verirken, salt-okunur veritabanı sorgularında yalnızca onay izinli olabilir.

Daha ayrıntılı bir yapılandırma örneği şöyle:

from langchain.agents.middleware import HumanInTheLoopMiddleware

agent = create_agent(
    model=model,
    tools=tools,
    middleware=[
        HumanInTheLoopMiddleware(
            interrupt_on={
                "send_email": {
                    "allowed_decisions": ["approve", "edit", "reject"]
                },
                "read_database": False,  # Otomatik çalıştırma, kesinti yok
                "delete_record": {
                    "allowed_decisions": ["approve", "reject"]  # Silmelerde düzenleme yok
                }
            }
        )
    ]
)

Bu yapılandırmada, e-posta gönderimleri kesintiye uğrayacak ve üç karar türüne de izin verilecek. Okuma işlemleri otomatik yürütülecek, kesinti olmayacak. Silme işlemleri ise düzenleme olmaksızın sadece onay veya reddetmeye izin verecek şekilde kesintiye uğratılacak. Bu ayrıntılı kontrol, insan denetimini tam olarak gerektiği yere eklemenizi, düşük riskli işlemler için gereksiz darboğazlar oluşturmamanızı sağlar.

Bir diğer gelişmiş özellik, kesintiler için özel açıklamalar sunma imkanıdır. Varsayılan olarak, ara katman “Araç çalıştırma için onay gereklidir.” gibi genel bir açıklama sunar. Bunu daha bağlama özel bilgilerle özelleştirebilirsiniz:

HumanInTheLoopMiddleware(
    interrupt_on={
        "send_email": {
            "allowed_decisions": ["approve", "edit", "reject"],
            "description": "E-posta gönderimleri yürütülmeden önce insan onayı gerektirir"
        }
    }
)

Önemli Uygulama Notları: Checkpointer ve Durum Yönetimi

Human-in-the-loop ara katmanını uygularken gözden kaçırılması kolay ancak kritik bir konu, bir checkpoint mekanizmasına ihtiyaç duyulmasıdır. Checkpointer, kesintinin oluştuğu anda ajan durumunu kaydeden bir mekanizmadır ve iş akışının daha sonra devam ettirilmesini sağlar. Bu gereklidir çünkü insan incelemesi anında gerçekleşmeyebilir—kesinti ile insan kararının verilmesi arasında gecikme olabilir. Checkpointer olmadan, bu gecikme sırasında ajan durumu kaybolur ve iş akışı doğru şekilde devam ettirilemez.

LangChain çeşitli checkpointer seçenekleri sunar. Geliştirme ve test için bellek içi (in-memory) bir checkpointer kullanılabilir:

from langgraph.checkpoint.memory import InMemorySaver

checkpointer = InMemorySaver()

agent = create_agent(
    model=model,
    tools=tools,
    checkpointer=checkpointer,
    middleware=[
        HumanInTheLoopMiddleware(
            interrupt_on={"send_email": True}
        )
    ]
)

Üretim sistemlerinde, durumu veritabanı veya dosya sistemine kaydeden kalıcı bir checkpointer kullanmak gerekir; böylece uygulama yeniden başlasa bile kesintiler devam ettirilebilir. Checkpointer, her adımda ajan durumunun tam kaydını tutar: konuşma geçmişi, yapılan araç çağrıları ve bu çağrıların sonuçları. İnsan bir karar verdiğinde (onay, düzenleme veya reddetme), ara katman checkpointer ile kaydedilmiş durumu alır, insan kararını uygular ve ajan döngüsünü o noktadan devam ettirir.

Gerçek Dünya Uygulamaları ve Kullanım Senaryoları

Human-in-the-loop ara katmanı, otonom ajanların eylem alması gerekip bu eylemlerin insan denetimi gerektirdiği çok çeşitli gerçek dünya senaryolarında uygulanabilir. Finansal hizmetlerde, işlemleri işleyen, kredi onaylayan veya yatırımları yöneten ajanlar, yüksek değerli kararların kalifiye insanlar tarafından incelenmesini sağlamak için human-in-the-loop ara katmanı kullanabilir. Sağlıkta, tedavi öneren veya hasta kayıtlarına erişen ajanlar, gizlilik ve klinik protokollere uyum için ara katman kullanabilir. Hukukta, iletişim taslağı oluşturan veya gizli belgelere erişen ajanlarda avukat denetimi sağlanabilir. Müşteri hizmetlerinde, iade yapan, taahhüt veren ya da şikayetleri yükselten ajanlarda şirket politikalarına uygunluk için ara katman kullanılabilir.

Bu sektör özel uygulamaların ötesinde, human-in-the-loop ara katmanı, bir ajanın hata yapmasının maliyetinin yüksek olduğu her yerde faydalıdır. Bu, kullanıcı içeriği kaldıran içerik moderasyonu sistemleri, işe alım kararları işleyen İK sistemleri, sipariş veren veya stok ayarlayan tedarik zinciri sistemlerini kapsar. Ortak nokta, ajanın önerdiği eylemlerin gerçek sonuçları olması ve bu sonuçların insan incelemesini gerektirecek kadar önemli olmasıdır.

Alternatif Yaklaşımlarla Karşılaştırma

Human-in-the-loop ara katmanının, ajan sistemlerine insan denetimi eklemek için kullanılan alternatif yaklaşımlarla nasıl karşılaştırıldığını değerlendirmekte fayda var. Bir alternatif, tüm ajan çıktılarının yürütmeden sonra insanlarca gözden geçirilmesidir, fakat bu yaklaşımda insan incelemesine gelindiğinde eylem zaten gerçekleşmiştir ve geri almak zor ya da imkansız olabilir. E-posta gönderilmiş, kayıt silinmiş ya da finansal işlem yapılmış olabilir. Human-in-the-loop ara katmanı, bu geri döndürülemez eylemlerin baştan gerçekleşmesini engeller.

Bir diğer alternatif, ajanların yapabileceği tüm işleri insanların manuel olarak yapmasıdır; bu da ajanların amacını ortadan kaldırır. Ajanların değeri, rutin işleri hızlı ve verimli şekilde yapabilmeleri, insanları daha üst düzey kararlar için serbest bırakmalarıdır. Human-in-the-loop ara katmanının amacı, doğru dengeyi sağlamaktır: Ajanlar günlük işleri yapsın, riskli durumlarda insan incelemesiyle duraklasın.

Üçüncü bir alternatif ise, ajanların uygunsuz eylemler yapmasını engelleyen güvenlik duvarları veya doğrulama kuralları uygulamaktır. Örneğin, ajanın kurum dışına e-posta göndermesini veya onay olmadan kayıt silmesini engelleyen kurallar koyabilirsiniz. Güvenlik duvarları yararlı olsa da, human-in-the-loop ara katmanıyla birlikte kullanılmalıdır; çünkü kurallar tipik olarak kural tabanlıdır ve her uygunsuz eylemi önleyemez. Bir ajan tüm güvenlik duvarlarınızı geçebilir ama yine de belirli bir bağlamda uygunsuz bir eylem önerebilir. İnsan yargısı kural tabanlı güvenlik duvarlarından daha esnek ve bağlama duyarlıdır; bu nedenle human-in-the-loop ara katmanı çok değerlidir.

Human-in-the-Loop İş Akışlarının Uygulanmasında En İyi Uygulamalar

Uygulamalarınızda human-in-the-loop ara katmanını uygularken, sisteminizin etkili ve verimli olmasını sağlayacak bazı en iyi uygulamalar vardır. Öncelikle, hangi araçların kesinti gerektirdiği konusunda stratejik olun. Her araç çağrısında kesinti yapmak darboğazlara yol açar ve iş akışınızı yavaşlatır. Bunun yerine, kesintileri pahalı, riskli veya yanlış yürütülmesi ciddi sonuçlara yol açabilecek araçlara odaklayın. Salt-okunur işlemler genellikle kesintiye gerek duymaz. Veri değiştiren ya da dış eylem alan işlemler ise tipik olarak kesinti gerektirir.

İkinci olarak, insan inceleyicilere net bağlam sunun. Bir kesinti oluştuğunda, insan önerilen eylemin ne olduğunu ve neden önerildiğini anlamalıdır. Kesinti açıklamalarınız açık ve ilgili bağlamı sunar olmalıdır. Ajan e-posta göndermeyi öneriyorsa, tam e-posta içeriğini gösterin. Kayıt silmeyi öneriyorsa, hangi kaydın ve neden silindiğini gösterin. Ne kadar fazla bağlam sağlarsanız, insan kararları o kadar hızlı ve doğru olur.

Üçüncü olarak, onay sürecini mümkün olduğunca sorunsuz hale getirin. İnsanlar, süreç basit ve fazla gezinme ya da veri girişi gerektirmiyorsa eylemleri daha hızlı onaylar. Onayla, düzenle ve reddet seçenekleri için net butonlar veya seçenekler sunun. Düzenleme izinliyse, insanların ilgili parametreleri kod veya veri yapısını bilmeden kolayca değiştirmesini sağlayın.

Dördüncü olarak, reddetme geri bildirimini stratejik kullanın. Bir ajanın önerdiği eylem reddedildiğinde, neden uygun olmadığı ve ne yapılması gerektiğine dair net geri bildirim verin. Bu geri bildirim, ajanın karar mekanizmasını geliştirmesine yardımcı olur. Zamanla, ajan önerilerine geri bildirim aldıkça, organizasyonunuzun standartlarına ve risk toleransına daha iyi uyum sağlar.

Beşinci olarak, kesinti desenlerini izleyin ve analiz edin. Hangi araçların en sık kesintiye uğradığını, hangi kararların (onay, düzenleme, reddetme) daha yaygın olduğunu ve onay sürecinin ne kadar sürdüğünü takip edin. Bu verilerle darboğazları belirleyebilir, kesinti yapılandırmanızı iyileştirebilir, ajan istemlerinizi veya araç seçiminizi geliştirebilirsiniz.

Human-in-the-Loop Ara Katmanını FlowHunt ile Entegre Etmek

Human-in-the-loop iş akışlarını ölçekli olarak uygulamak isteyen organizasyonlar için, FlowHunt LangChain’in ara katman yetenekleriyle sorunsuz entegre olan kapsamlı bir platform sunar. FlowHunt ile, onay akışlarına sahip AI ajanları kolayca oluşturabilir, insan denetimini otomasyon süreçlerinize kolayca ekleyebilirsiniz. Hangi araçların insan onayı gerektirdiğini yapılandırabilir, onay arayüzünü ihtiyaçlarınıza göre özelleştirebilir ve tüm onayları ile reddetmeleri uyum ve denetim için takip edebilirsiniz. Platform, durum yönetimi, checkpointing ve iş akışı orkestrasyonunun karmaşıklığını sizin yerinize halleder; böylece etkili ajanlar oluşturmaya ve uygun onay politikaları

Sıkça sorulan sorular

Human-in-the-loop ara katmanı nedir?

Human-in-the-loop ara katmanı, AI ajanı belirli araçları çalıştırmadan önce işlemi duraklatan ve bir insanın önerilen eylemi onaylamasına, düzenlemesine veya reddetmesine olanak veren bir bileşendir. Bu, pahalı veya riskli işlemler için bir güvenlik katmanı ekler.

Human-in-the-loop ara katmanını ne zaman kullanmalıyım?

E-posta göndermek, finansal işlemler, veritabanı yazma işlemleri veya uyum denetimi gerektiren ya da yanlış yürütülmesi durumunda ciddi sonuçlara yol açabilecek tüm araç çalıştırmaları gibi yüksek riskli işlemler için kullanın.

Human-in-the-loop'ta üç ana yanıt türü nedir?

Üç ana yanıt türü şunlardır: Onay (aracı önerildiği gibi çalıştır), Düzenleme (aracı çalıştırmadan önce parametreleri değiştir), ve Reddetme (işlemi reddet ve modelin revize etmesi için geri bildirim gönder).

LangChain'de human-in-the-loop ara katmanı nasıl uygulanır?

HumanInTheLoopMiddleware'i langchain.agents.middleware'dan içe aktarın, duraklatmak istediğiniz araçlarla yapılandırın ve ajan oluşturma fonksiyonunuza ekleyin. Ayrıca, kesintiler arasında durumu korumak için bir checkpoint mekanizmasına ihtiyacınız olacak.

Arshia, FlowHunt'ta bir Yapay Zeka İş Akışı Mühendisidir. Bilgisayar bilimi geçmişi ve yapay zekaya olan tutkusu ile, yapay zeka araçlarını günlük görevlere entegre eden verimli iş akışları oluşturmada uzmanlaşmıştır ve bu sayede verimlilik ile yaratıcılığı artırır.

Arshia Kahani
Arshia Kahani
Yapay Zeka İş Akışı Mühendisi

AI İş Akışlarınızı FlowHunt ile Güvenli Şekilde Otomatikleştirin

Onay akışları ve insan denetimiyle entegre akıllı ajanlar oluşturun. FlowHunt, iş süreçleriniz için human-in-the-loop otomasyonunu kolayca uygulamanıza olanak tanır.

Daha fazla bilgi

İnsan Döngüde (Human in the Loop)
İnsan Döngüde (Human in the Loop)

İnsan Döngüde (Human in the Loop)

İnsan Döngüde (HITL), insan uzmanlığını yapay zeka sistemlerinin eğitimi, ayarlanması ve uygulanmasına entegre eden bir yapay zeka ve makine öğrenimi yaklaşımıd...

2 dakika okuma
AI Human-in-the-Loop +4