Agent iş akışları · 2026-10-10
Ajan çıktısını doğrulamak: metin yazan bir yargıç yerine Perplexity Decider ile olasılık
Ajanın cevabını göndermeden önce perplexity/pplx-decider-v1.1-27b ile evet/hayır olasılıklarıyla denetleyin: eşik, insana yönlendirme ve denetim başına maliyet.
Kısa cevap: cevabı göndermeden önce evet/hayır olasılıklarıyla denetleyin
LLMTR (llmtr.com), Türkiye'de ve global sağlayıcılarda barındırılan dil modellerine tek, OpenAI uyumlu API'den erişim veren bir gateway'dir. Ajan çıktısını denetlemek için perplexity/pplx-decider-v1.1-27b modelini https://llmtr.com/v1/systemone uç noktasından çağırırsınız; temel adres https://llmtr.com/v1'dir. Kullanıcının sorusunu, aracın sonucunu ve ajanın cevabını durum olarak gönderir, kontrol listenizi noul sorularına çevirirsiniz. Her soru için 0 ile 1 arasında bir evet olasılığı döner ve 1 milyon girdi token'ı 0,02 $'dır.
Metin yazan bir yargıç modelde karar bir cümlenin içinden ayrıştırılır: biçim kayabilir, açıklama eklenebilir, JSON yarıda kalabilir. Decider metin üretmez; her soruya yalnızca olasılık döndürür ve eşiği kodunuz uygular. Karşılığında gerekçe yazmaz. Bir cevabın neden düşük olasılık aldığını açıklatmak istiyorsanız bu ayrı bir adımdır.
Ajan çıktısı LLM-as-a-judge yerine olasılıkla nasıl doğrulanır?
Ajan bir turu bitirdiğinde, cevabı kullanıcıya göndermeden ya da bir işlem yapmadan önce aşağıdaki verify fonksiyonunu çağırın. Bütün kontroller eşiği geçerse cevap gönderilir; biri geçmezse cevap insan incelemesine düşer. Durum, user_message, tool_result ve agent_answer alanlarını taşıyan bir JSON nesnesidir; alan adlarını siz seçersiniz.
Her kontrol ayrı bir sorudur ve sorular birbirinden bağımsız değerlendirilir: bir kontrolün sonucu diğerine bağlam olmaz. Soru anahtarları modele gitmez, bu yüzden kontrolün tamamı instructions alanında tam bir cümle olarak yazılır.
Ajan cevabını üç noul sorusuyla denetleyen ve sonuca göre send ya da human_review döndüren Python fonksiyonu.
import os
import requests
CHECKS = {
"grounded": {
"type": "noul",
"instructions": "Is every figure and claim in the agent answer supported by the tool result?",
},
"answers_question": {
"type": "noul",
"instructions": "Does the agent answer address what the user asked?",
},
"promises_action": {
"type": "noul",
"instructions": "Does the agent answer promise an action such as a refund, a call or a delivery date?",
},
}
# Thresholds live next to the questions they apply to.
THRESHOLDS = {"grounded": 0.9, "answers_question": 0.9, "promises_action": 0.2}
def verify(user_message, tool_result, agent_answer):
response = requests.post(
"https://llmtr.com/v1/systemone",
headers={"Authorization": "Bearer " + os.environ["LLMTR_API_KEY"]},
json={
"model": "perplexity/pplx-decider-v1.1-27b",
"state": {
"user_message": user_message,
"tool_result": tool_result,
"agent_answer": agent_answer,
},
"questions": CHECKS,
},
timeout=90,
)
response.raise_for_status()
answers = response.json()["answers"]
passed = (
answers["grounded"]["noul"] >= THRESHOLDS["grounded"]
and answers["answers_question"]["noul"] >= THRESHOLDS["answers_question"]
and answers["promises_action"]["noul"] <= THRESHOLDS["promises_action"]
)
return "send" if passed else "human_review"
Kontrol listesini noul sorularına çevirmek
Her kontrol tek bir koşulu sormalıdır. 'Cevap iyi mi?' gibi geniş bir soru yerine doğrulanabilir koşullar yazın: cevaptaki her rakam araç sonucunda geçiyor mu, cevap kullanıcının sorduğunu karşılıyor mu, ajan yapamayacağı bir işlemi vaat ediyor mu. criteria alanında true ve false uçlarını tanımlayarak sınırı netleştirebilirsiniz.
Bir seviyeyi, örneğin cevabın tonunu, değerlendirecekseniz noul yerine score kullanın; noul'da 0,5 orta kalite değil, belirsizlik demektir. Sonraki adımı modele seçtirmek isterseniz choice ile send, revise ve escalate gibi seçenekler tanımlayabilirsiniz; choice yanıtı ayrıca bir confidence değeri taşır.
| Anahtar | Soru | Tip | Örnek eşik |
|---|---|---|---|
| grounded | Cevaptaki her rakam ve iddia araç sonucunda var mı? | noul | 0,9 ve üstü |
| answers_question | Cevap kullanıcının sorduğunu karşılıyor mu? | noul | 0,9 ve üstü |
| promises_action | Cevap iade, arama ya da teslim tarihi gibi bir işlem vaat ediyor mu? | noul | 0,2 ve altı |
Eşik nereye konur, ne zaman insana devredilir?
Olasılıklar modelin tahminidir, garanti değildir. Eşikleri kendi gerçek örneklerinizle belirleyin: doğru ve hatalı olduğunu bildiğiniz geçmiş ajan cevaplarından bir set seçin, Decider'ın bunlara verdiği olasılıklara bakın ve otomatik göndermek istediğiniz noktayı oradan seçin. 0,5 civarındaki değerler modelin kararsız olduğunu gösterir; bu bölgeyi otomatik karara bırakmayın.
Eşiğin altında kalan cevabı sessizce atmayın: insana yönlendirin ya da ajana yeniden yazdırıp tekrar denetleyin. Eşikleri ve soru metinlerini kodda tek bir yerde tutun, örnekteki CHECKS ve THRESHOLDS gibi. İnceleyen kişi bir cevabın neden gönderildiğini ya da durdurulduğunu oradan görür.
Maliyet ve gecikme: denetim başına girdi token'ı kadar
1 milyon girdi token'ı 0,02 $'dır ve çıktının fiyatı yoktur. Durum her soru için yeniden sayılır: 3.000 token'lık bir duruma üç kontrol sorusu yaklaşık 9.000 girdi token'ı eder. Bir denetim böylece yaklaşık 0,00018 $, 10.000 denetim yaklaşık 1,80 $ tutar (soru metinleri hariç). Kontrolleri kararı gerçekten değiştiren sorularla sınırlayın; bir istekte en fazla 128 soru olabilir.
Yanıt süresi girdiyle uzar. Uzun araç sonuçlarında istemci zaman aşımını en az 90 saniye yapın, örnekteki timeout=90 gibi. Her soru durumla birlikte 262.144 token'ın altında kalmalıdır; aşan istek yaklaşık bir dakika sonra 502 döner. Çok uzun araç sonuçlarını göndermeden önce kararın dayandığı kısma indirin.
LLMTR ile başlamak: hesap, anahtar ve ilk denetim
llmtr.com'da bir hesap açın, kredi yükleyin ve Dashboard > API Anahtarları altında bir anahtar oluşturun; ham anahtar bir kez gösterilir, LLMTR_API_KEY ortam değişkeninde saklayın. Sonra verify fonksiyonunu ajanınızın cevap adımına bağlayın. Ücret ön ödemeli krediden katalog fiyatıyla düşülür ve aynı anahtar ajanınızın kullandığı sohbet modelleri dahil katalogdaki her modelde çalışır.
Ajan cevabını Perplexity Decider ile denetleme
Kontrol listenizi noul sorularına çevirin, ajanın cevabını perplexity/pplx-decider-v1.1-27b ile https://llmtr.com/v1/systemone üzerinden denetleyin ve eşiği geçmeyeni insana yönlendirin.
- Anahtar. llmtr.com'da hesap açın, kredi yükleyin ve Dashboard > API Anahtarları altında bir anahtar oluşturup LLMTR_API_KEY ortam değişkeninde saklayın.
- Kontrol listesi. Her kontrolü tek koşul soran bir noul sorusu olarak instructions alanına yazın ve her biri için bir eşik belirleyin.
- Denetim. Kullanıcının sorusunu, araç sonucunu ve ajanın cevabını state olarak https://llmtr.com/v1/systemone adresine gönderin; eşiği geçmeyen cevabı insana yönlendirin.
Sık sorulan sorular
Perplexity Decider LLM-as-a-judge olarak kullanılabilir mi?
Evet, evet/hayır ya da seçim olarak yazılabilen kontroller için. Decider metin üretmez, her kontrol sorusuna bir olasılık döndürür ve gerekçe yazmaz. LLMTR'de perplexity/pplx-decider-v1.1-27b kimliğiyle /v1/systemone üzerinden çağrılır.
Bir ajan cevabını Decider ile denetlemek ne kadar tutar?
1 milyon girdi token'ı 0,02 $'dır. 3.000 token'lık bir durum ve üç soruyla bir denetim yaklaşık 9.000 girdi token'ı, yani yaklaşık 0,00018 $ eder. Çıktının fiyatı yoktur.
Eşik değeri ne olmalı?
Tek bir doğru değer yoktur; eşiği kendi örneklerinizle belirleyin. 0,5 civarındaki değerler modelin kararsız olduğunu gösterir. Eşiğin altında kalan cevabı insana yönlendirin.