Etkili Agent Oluşturma
Etkili Agent Oluşturmak
Çeşitli sektörlerde LLM ajanları geliştiren düzinelerce ekiple çalıştık. En başarılı uygulamalar, karmaşık çerçeveler yerine basit, birleştirilebilir modeller kullanıyor.
“Hedeflerinizi gülünç derecede yüksek belirleyip başarısız olursanız, diğer herkesin başarısının üzerinde bir başarısızlık yaşarsınız.”
Nelson Mandela
Agent (Ajan) Nedir?
“Ajan” çeşitli şekillerde tanımlanabilir. Bazı müşteriler, ajanları karmaşık görevleri yerine getirmek için çeşitli araçlar kullanarak uzun süreler boyunca bağımsız olarak çalışan, tamamen özerk sistemler olarak tanımlar. Diğerleri ise bu terimi, önceden tanımlanmış iş akışlarını izleyen daha kuralcı uygulamaları tanımlamak için kullanır. Anthropic'te, tüm bu varyasyonları ajansal sistemler olarak sınıflandırıyoruz, ancak iş akışları ve ajanlar arasında önemli bir mimari ayrım yapıyoruz:
İş akışları, LLM'lerin ve araçların önceden tanımlanmış kod yolları aracılığıyla koordine edildiği sistemlerdir. Öte yandan, ajanlar, LLM'lerin kendi süreçlerini ve araç kullanımını dinamik olarak yönlendirerek görevleri nasıl gerçekleştirecekleri üzerinde kontrolü elinde tutan sistemlerdir. Aşağıda, her iki tür ajansal sistemi ayrıntılı olarak inceleyeceğiz. Ek 1'de (“Uygulamada Ajanlar”), müşterilerin bu tür sistemleri kullanarak özel değer buldukları iki alanı açıklıyoruz.
Aşağıda, her iki tür ajans sistemini ayrıntılı olarak inceleyeceğiz. Ek 1'de (“Uygulamada Ajanlar”), müşterilerin bu tür sistemleri kullanarak özel değer buldukları iki alanı açıklıyoruz.
Ajanlar (agent) Ne Zaman Kullanılmalı ve Kullanılmamalı
LLM'lerle uygulama geliştirirken, mümkün olan en basit çözümü bulmanızı ve yalnızca gerektiğinde karmaşıklığı artırmanızı öneririz. Bu, ajans sistemleri hiç geliştirilmemesi anlamına gelebilir. Ajans sistemleri genellikle daha iyi görev performansı için gecikme ve maliyet arasında bir denge kurar ve bu dengeyi ne zaman kurmanın mantıklı olduğunu düşünmelisiniz.
Daha fazla karmaşıklık gerektiğinde, iş akışları iyi tanımlanmış görevler için öngörülebilirlik ve tutarlılık sunarken, esneklik ve model odaklı karar verme büyük ölçekte gerekli olduğunda ajanlar daha iyi bir seçenektir. Ancak birçok uygulama için, tek bir LLM çağrısını geri alma ve bağlam içi örneklerle optimize etmek genellikle yeterlidir.
FrameWork Ne Zaman Kullanılmalı Ne zaman Kullanılmamalı
Framework, LLM'leri çağırma, araçları tanımlama ve ayrıştırma ve çağrıları birbirine zincirleme gibi standart düşük seviyeli görevleri basitleştirerek başlangıcı kolaylaştırır. Ancak, genellikle altta yatan komutları ve yanıtları gizleyebilecek ekstra soyutlama katmanları oluştururlar ve bu da hata ayıklamayı zorlaştırır. Ayrıca, daha basit bir kurulum yeterliyken karmaşıklığı artırmaya teşvik edebilirler.
Geliştiricilerin doğrudan LLM API'lerini kullanarak başlamalarını öneririz: birçok model birkaç satır kodla uygulanabilir. Bir çerçeve kullanıyorsanız, altta yatan kodu anladığınızdan emin olun. Altta yatanlar hakkında yanlış varsayımlar, müşteri hatalarının yaygın bir kaynağıdır.
Yapı Taşları, Workflow ve Agent (Ajan)
Bu bölümde, üretimde gördüğümüz ajans sistemleri için yaygın kalıpları inceleyeceğiz. Temel yapı taşımız olan artırılmış LLM ile başlayıp, basit kompozisyon iş akışlarından otonom ajanslara kadar karmaşıklığı kademeli olarak artıracağız.
Yapı taşı: Geliştirilmiş LLM
Ajan sistemlerinin temel yapı taşı, geri alma, araçlar ve bellek gibi geliştirmelerle güçlendirilmiş bir LLM'dir. Mevcut modellerimiz bu yetenekleri aktif olarak kullanabilir; kendi arama sorgularını oluşturabilir, uygun araçları seçebilir ve hangi bilgilerin saklanacağını belirleyebilir.
Uygulamanın iki temel yönüne odaklanmanızı öneririz: bu yetenekleri özel kullanım durumunuza göre uyarlama ve LLM'niz için kolay, iyi belgelenmiş bir arayüz sağladıklarından emin olma. Bu geliştirmeleri uygulamak için birçok yol olsa da, bir yaklaşım, geliştiricilerin basit bir istemci uygulaması ile büyüyen bir üçüncü taraf araç ekosistemine entegre olmalarını sağlayan, yakın zamanda piyasaya sürdüğümüz Model Context Protocol'tür.Bu yazının geri kalanında, her LLM çağrısının bu geliştirilmiş yeteneklere erişimi olduğunu varsayacağız.
Workflow: Prompt chaining
Komut zinciri, bir görevi bir dizi adıma ayırır ve her LLM çağrısı bir öncekinin çıktısını işler. Sürecin yolunda gittiğinden emin olmak için herhangi bir ara adıma programlı kontroller (aşağıdaki şemada “kapı” olarak gösterilen) ekleyebilirsiniz.
Bu iş akışını ne zaman kullanmalı:
Bu iş akışı, görevin kolay ve net bir şekilde sabit alt görevlere ayrılabileceği durumlar için idealdir. Ana hedef, her LLM çağrısını daha kolay bir görev haline getirerek gecikmeyi daha yüksek doğrulukla dengelemektir.
Prompt zincirlemenin yararlı olduğu örnekler:
---Pazarlama metni oluşturmak ve ardından bunu farklı bir dile çevirmek.
---Bir belgenin taslağını yazmak, taslağın belirli kriterleri karşıladığını kontrol etmek, ardından taslağa göre belgeyi yazmak.
İş akışı: Yönlendirme
Yönlendirme, bir girişi sınıflandırır ve onu özel bir takip görevine yönlendirir. Bu iş akışı, endişelerin ayrılmasını ve daha özel istemlerin oluşturulmasını sağlar. Bu iş akışı olmadan, bir tür giriş için optimizasyon yapmak diğer girişlerin performansını olumsuz etkileyebilir.
Bu iş akışını ne zaman kullanmalı:
Yönlendirme, ayrı ayrı ele alınması daha uygun olan farklı kategorilerin bulunduğu ve sınıflandırmanın LLM veya daha geleneksel bir sınıflandırma modeli/algoritması ile doğru bir şekilde yapılabildiği karmaşık görevler için etkilidir.
Yönlendirmenin yararlı olduğu örnekler:
---Farklı türdeki müşteri hizmetleri taleplerini (genel sorular, geri ödeme talepleri, teknik destek) farklı alt süreçlere, istemlere ve araçlara yönlendirmek.
---Kolay/yaygın soruları daha küçük modellere, zor soruları ise daha yetenekli modellere yönlendirmek.
İş akışı: Paralelleştirme
LLM'ler bazen bir görev üzerinde eşzamanlı olarak çalışabilir ve çıktıları programlı olarak toplanabilir. Bu iş akışı, paralelleştirme, iki temel varyasyonda ortaya çıkar:
---Oylama: Farklı çıktılar elde etmek için aynı görevi birden çok kez çalıştırma.
Bu iş akışını ne zaman kullanmalı: Paralelleştirme, bölünmüş alt görevler hız için paralelleştirilebildiğinde veya daha güvenilir sonuçlar için birden fazla bakış açısı veya deneme gerektiğinde etkilidir.
İş akışı: Orkestratör-çalışanlar
Orkestratör-çalışanlar iş akışında, merkezi bir LLM görevleri dinamik olarak parçalara ayırır, bunları çalışan LLM'lere delege eder ve sonuçlarını sentezler.
Bu iş akışını ne zaman kullanmalı: Bu iş akışı, gerekli alt görevleri önceden tahmin edemediğiniz karmaşık görevler için çok uygundur.
İş akışı: Değerlendirici-optimize edici
Değerlendirici-optimize edici iş akışında, bir LLM çağrısı yanıt üretirken, diğeri bir döngü içinde değerlendirme ve geri bildirim sağlar.
Bu iş akışını ne zaman kullanmalı: Bu iş akışı, değerlendirme kriterleri net olduğunda ve yinelemeli iyileştirme ölçülebilir değer sağladığında özellikle etkilidir.
Agent (Ajan)
LLM'ler karmaşık girdileri anlama, akıl yürütme ve planlama yapma, araçları güvenilir bir şekilde kullanma ve hatalardan kurtulma gibi temel yeteneklerde olgunlaştıkça, üretimde ajanlar ortaya çıkmaya başlamıştır. Ajanlar, insan kullanıcının verdiği bir komutla veya etkileşimli bir tartışma ile çalışmalarına başlar. Görev netleştiğinde, ajanlar bağımsız olarak planlama ve çalışma yapar.
Ajanlar karmaşık görevleri yerine getirebilir, ancak bunların uygulanması genellikle basittir. Genellikle, döngü içinde ortam geri bildirimine dayalı araçlar kullanan LLM'lerdir.
Ajanları ne zaman kullanmalı: Ajanlar, gerekli adım sayısını tahmin etmenin zor veya imkansız olduğu ve sabit bir yol belirleyemediğiniz açık uçlu problemler için kullanılabilir.
Ajanların yararlı olduğu örnekler:
---Görev açıklamasına göre birçok dosyada düzenleme yapmayı içeren SWE-bench görevlerini çözmek için bir kodlama Ajanı;
Claude'un görevleri yerine getirmek için bir bilgisayar kullandığı “bilgisayar kullanımı” referans uygulama:
Bu kalıpları birleştirme ve Özelleştirme
Bu yapı taşları kuralcı değildir. Bunlar, geliştiricilerin farklı kullanım durumlarına uyacak şekilde şekillendirebilecekleri ve birleştirebilecekleri yaygın kalıplardır.
Özet
LLM alanında başarı, en sofistike sistemi oluşturmakla ilgili değildir. İhtiyaçlarınıza uygun doğru sistemi oluşturmakla ilgilidir. Basit komutlarla başlayın, kapsamlı değerlendirmeyle bunları optimize edin ve yalnızca daha basit çözümler yetersiz kaldığında çok adımlı ajan sistemleri ekleyin.
Ajanları uygularken üç temel ilkeye uymaya çalışıyoruz:
1. Ajanınızın tasarımında basitliği koruyun.
2. Ajanın planlama adımlarını açıkça göstererek şeffaflığı önceliklendirin.
3. Kapsamlı araç belgeleri ve testler yoluyla ajan-bilgisayar arayüzünüzü (ACI) dikkatlice oluşturun.
Framework hızlı bir başlangıç yapmanıza yardımcı olabilir, ancak üretime geçerken soyutlama katmanlarını azaltmaktan ve temel bileşenlerle oluşturmaktan çekinmeyin. Bu ilkeleri takip ederek, sadece güçlü değil, aynı zamanda güvenilir, bakımı kolay ve kullanıcıları tarafından güvenilen ajanlar oluşturabilirsiniz.
Ek 1: Pratikte Ajanlar
Müşterilerimizle yaptığımız çalışmalar, yukarıda bahsedilen modellerin pratik değerini gösteren, AI ajanları için özellikle umut verici iki uygulama ortaya çıkardı.
--A. Müşteri Destek
Müşteri desteği, tanıdık chatbot arayüzlerini araç entegrasyonu yoluyla gelişmiş yeteneklerle birleştirir.
Destek etkileşimleri, dış bilgilere ve eylemlere erişim gerektirirken, doğal olarak bir konuşma akışını takip eder;
Araçlar, müşteri verilerini, sipariş geçmişini ve bilgi tabanı makalelerini çekmek için entegre edilebilir;
--B. Kod Ajanları (Agents)
Yazılım geliştirme alanı, kod tamamlamadan otonom problem çözmeye kadar gelişen yetenekleriyle LLM özellikleri için olağanüstü bir potansiyel sergilemiştir.
Ek 2: Araçlarınızın Prompt mühendisliği
Hangi ajans sistemini kurarsanız kurun, araçlar muhtemelen ajansınızın önemli bir parçası olacaktır. Araç tanımları ve özellikleri, genel komutlarınız kadar komut mühendisliğinin de dikkatini çekmelidir.


Bir Yorum Bırakın
E-posta adresiniz yayınlanmayacaktır.