Ana içeriğe geç

Deterministik Olmayanı İzlemek: Concordance ve DeepEval'in Agent Değerlendirmesi Hakkında Ortaya Koydukları

Tutarsız agent kararları genellikle eksik girdi sorunudur. Değerlendirme, çıktıları sonradan puanlamak yerine tam karar bağlamını kaydetmeli ve yeniden oynatmalıdır.

California çölünde büyük bir güneş paneli dizisinin havadan görünümü

Tutarsızlık iddiası

LLM agent'ları hakkında sıkça dile getirilen bir şikayet, kararsız olmalarıdır: aynı istek iki kez girildiğinde iki farklı karar üretirler. Bu çerçeveleme neredeyse her zaman aynıdır — model tutarsızdır, örnekleme çok sıcaktır, prompt kırılgandır. CTGT'nin Concordance çalışması tam da bu çerçevelemeyi reddettiği için faydalıdır. Bir agent'ın bir sonuca giden yolu izler ve iki çalışmanın neden ayrıldığını sorar, ayrıldıklarını iddia etmek yerine. Cevap, çoğu zaman, çalışmaların hiçbir zaman aynı çalışma olmadığıdır.

Araç zincirinin diğer ucunda, DeepEval tarzı harness'lar çıktı puanlamayı ölçekte rutin hale getirdi. Bir dizi vaka çalıştırabilir, metrikler ekleyebilir ve bir geçme oranı elde edebilirsiniz. Bu harness'ların tek başına yapamadığı şey, bir başarısızlığın nedenini yerelleştirmektir: bir vakada sıfır puan, cevabın yanlış olduğunu söyler, yörüngedeki hangi adımın hatayı getirdiğini değil. Concordance tarzı izleme ile DeepEval tarzı puanlama arasındaki boşluk, metrik tasarımındaki bir boşluk değildir. Bağlam yakalamadaki bir boşluktur. İzleme aracı ayrışmayı açıklayabilir çünkü girdileri elinde tutar; puanlama harness'ı ayrışmayı raporlar çünkü onları atar.

Gizli varyans kaynakları

Bir agent'ın kararı, kullanıcı mesajından çok daha fazlasının bir fonksiyonudur. Dışarıdan aynı görünen iki çalışma arasında aşağıdakilerin tümü farklı olabilir:

Silhouetted container port cranes and calm water reflecting sunset hues in a busy shipyard

  • Getirilen bağlam. Vektör arama, indeks güncellemeleri, embedding model sürümleri ve eşitlik bozucu kurallarla değişen sıralı bir küme döndürür. İki çalışma örtüşen ancak aynı olmayan belgeler getirebilir ve model kendisine verilen üzerinden akıl yürütür.
  • Araç yanıtları. Bir hava durumu API'si, bir veritabanı sorgusu, bir arama çağrısı — her biri canlı veri döndürür. Bir araç yükündeki zaman damgası, bir sayfalama imleci veya yeniden sıralanmış bir sonuç kümesi bir sonraki adımı değiştirmeye yeter.
  • Sıralama ve zaman damgaları. Uzun bir konuşmada mesaj sıralaması, bir sistem prompt'una enjekte edilen duvar saati zamanı ve paralel araç çağrılarının çözümlenme sırası, hepsi prompt'a girer.
  • Örnekleme parametreleri. Temperature, top-p, seed ve max tokens sıklıkla ortam başına ayarlanır ve bunlara bağlı olan prompt ile birlikte nadiren sürüm damgası alır.
  • Prompt birleştirme kayması. Sistem prompt'ları şablonlardan, few-shot örneklerinden ve enjekte edilen bağlamdan birleştirilir. Bir parçayı değiştiren bir dağıtım, her istek için etkin girdiyi değiştirir ve çıktı puanındaki hiçbir şey bunun olduğunu kaydetmez.

Rahatsız edici sonuç şudur: birçok "aynı görünen girdi", harness incelendiğinde aynı değildir. Agent, girdileri verildiğinde deterministik davranmaktadır; sadece girdiler sabit tutulmuyor, kaydedilmiyor veya karşılaştırılmıyor. Agent değerlendirmesi üzerine son dönemdeki yayınlar sürekli bu noktanın etrafında dönüyor — ilginç varyansın yalnızca modelin kendisinde değil, modelin etrafındaki pipeline'da yaşadığı — ve pratik sonuç, tek başına çıktı puanlamanın nedeni yanlış atfetmeye devam edeceğidir.

Bir yeniden oynatma sözleşmesi

Çözüm bir sözleşmedir: her karar, tam olarak yeniden oynatılabilecek kadar bağlam kaydeder. Somut olarak, bir iz kaydı şunları taşımalıdır:

{
  "run_id": "...",
  "model": { "name": "...", "version": "...", "params": { "temperature": 0.0, "top_p": 1.0, "seed": 42 } },
  "prompt": { "template_hash": "...", "assembled": "...", "fragments": ["..."] },
  "retrieval": [
    { "doc_id": "...", "content_hash": "...", "score": 0.81, "rank": 1 }
  ],
  "steps": [
    {
      "index": 0,
      "tool": "search",
      "args": { "query": "..." },
      "response": { "...": "..." },
      "response_hash": "..."
    }
  ],
  "output": "..."
}

Birleştirilmiş prompt, parçalarının hash'leriyle birlikte kelimesi kelimesine saklanır, böylece bir şablon değişikliği megabaytlarca metni diff'lemeden tespit edilebilir. Getirme kümesi belge hash'lerini taşır, böylece kaymış bir indeks çıkarım yerine görünür olur. Araç argümanları ve yanıtları her adımda yakalanır, bu da yörüngeyi terminal bir dize yerine yeniden oynatılabilir bir diziye dönüştürür.

Industrial robotic arm in a Ciudad de México lab, illustrating automation technology

Bu kayıtla yeniden oynatma kontrollü bir deney haline gelir. Girdileri dondurun — aynı prompt, aynı getirme kümesi, aynı araç yanıtları, aynı model sürümü — ve kalan herhangi bir ayrışma model varyansıdır. Bir boyutu tek seferde çözün ve ayrışmayı getirmeye, bir araca veya bir dağıtıma atfedebilirsiniz. Puanlama o zaman terminal cevaptan yörüngeye taşınır: her adım karşılaştırılır ve ilk ayrışma noktası soruşturmanın başladığı yerdir. Bu, bir vakanın başarısız olduğunu bilmek ile hangi kararın başarısız olduğunu bilmek arasındaki farktır.

Ödünleşim gerçektir. Tam bağlam yakalama depolama açısından ağırdır, yazma yolunu yavaşlatır ve şu anda prompt'ları ve getirme yapılandırmalarını ortam değişkenleri olarak ele alan ekiplere disiplin dayatır. Araç yanıtlarını yakalamak hassas yükleri de yakalayabilir, bu da analiz zamanında değil yazma zamanında redaksiyon gerektirir. Bunların hiçbiri bedava değildir ve yeniden oynatmayı benimseyen bir stüdyo, getiriyi görmeden önce saklama politikasına ve şema yönetişimine yatırım yapmayı beklemelidir. Alternatif — yeniden üretemediğiniz çıktıları puanlamak — çalışma başına daha ucuz ve hata başına daha pahalıdır.

Bunun operatöre kazandırdıkları

Başarısız bir vaka yeniden üretilebilir hale gelir. Operatör, bir ekran görüntüsü ve ne sorulduğuna dair belirsiz bir hatıra yerine, aynı yanlış cevaba yeniden oynatılan bir iz ve hangi adımın onu getirdiğini gösteren bir diff'e sahip olur. Yeniden üretilebilirlik bir düzeltmenin ön koşuludur; o olmadan hata ayıklama spekülasyondur.

Değerlendirme maliyeti atfedilebilir hale gelir. Dondurulmuş girdilere karşı bir yeniden oynatma çalışması, canlı verileri yeniden çekmeden veya keşifsel getirmeyi yeniden çalıştırmadan karar mantığını test eder. Bu, regresyon paketlerini çalıştırmayı daha ucuz ve akıl yürütmeyi daha kolay hale getirir, çünkü her çalışma tüm pipeline yerine tek bir şeyi test eder. Taze keşifsel çalışmalar değerini korur, ancak tek seçenek olmaktan çıkarlar.

Tutarlılık, bir taban çizgisiyle ölçülebilir bir özellik haline gelir. Operatör, istikrarı bir anekdot olarak ele almak yerine — "dün çalışıyordu" — dağıtımlar arasında adım başına ayrışma oranlarını izleyebilir ve bir prompt değişikliğinin veya model yükseltmesinin bunları hareket ettirip ettirmediğini görebilir. Concordance ve DeepEval tartışmalarının birlikte işaret ettiği değişim budur: bağlamı izle, kontrol altında yeniden oynat ve yörüngeyi puanla. Gizem nadiren modeldir. Eksik olan girdilerdir.

İlgili okumalar

Bunun yanıtladığı sorular

Why do agents give different answers to the same request?

Usually because the inputs were not the same. Retrieved documents, tool responses, timestamps, message ordering, sampling parameters and assembled prompts can all differ between runs. Without a trace that records these, the variance is attributed to the model rather than to the pipeline around it.

What should a replay contract record?

At minimum: the assembled prompt with fragment hashes, the retrieval set with document hashes and ranks, each tool call's arguments and response, the model name and version, and the sampling parameters. That is enough to replay a decision exactly and separate model variance from input variance.

Why score the trajectory instead of the final answer?

Output scoring tells you a case failed, not where. Step-level scoring locates the first point of divergence, which is what makes a failure reproducible and therefore fixable. It also makes consistency a tracked property across deploys rather than an anecdote.

What is the main trade-off of full context capture?

Storage cost, write-path latency, and governance overhead. Tool responses may contain sensitive payloads, so redaction must happen at write time, and teams need retention policy and schema discipline. The payoff is reproducible failures and cheaper regression runs.