İçeriğe atla
SinaptikLabAI KNOWLEDGE PLATFORM
AnalizGözlemlenebilirlik

Ajan izlenebilirliği sonradan eklenmez; akışla birlikte tasarlanır

Ajan sistemlerinde hata ayıklama, klasik yazılımdakine benzemiyor: aynı girdi iki farklı yol izleyebiliyor ve yanlış çıktının nedeni tek bir satırda durmuyor. İzlenebilirlik bu yüzden bir gözlemlenebilirlik eklentisi değil, akışın bir parçası. Karar noktaları, araç çağrıları ve bağlam içeriği kaydedilmeden bir ajan hatası yeniden üretilemiyor — ve yeniden üretilemeyen hata düzeltilemiyor.

Sinaptik Research · · 8 dakikalık okuma

Kısa cevap

Ajan sistemlerinde aynı girdi iki farklı yol izleyebiliyor ve yanlış çıktının nedeni tek bir satırda durmuyor. Karar noktaları, araç çağrıları ve bağlam içeriği kaydedilmezse hata yeniden üretilemez; yeniden üretilemeyen hata düzeltilemez.

Tez#

Klasik yazılımda bir hatayı düzeltmenin yolu belirli: hatayı yeniden üret, yığın izine bak, kusurlu satırı bul, düzelt, test yaz. Bu döngünün her adımı determinizme dayanıyor — aynı girdi aynı yolu izliyor.

Ajan akışlarında bu varsayım geçerli değil. Aynı kullanıcı isteği bir koşuda üç araç çağrısıyla, başka koşuda yedi çağrıyla sonuçlanabiliyor. Modelin hangi aracı çağıracağı kararı örnekleme içeriyor; araçların döndürdüğü içerik dış duruma bağlı; bağlamın hangi bölümü pencereye sığdığı önceki adımların uzunluğuna bağlı. Sonuç: hatanın nedeni bir satır değil, bir yol. O yol kaydedilmediyse hata bir daha görülmeyebilir — ve görülmeyen hata düzeltilmiş sayılmıyor, sadece unutulmuş oluyor.

Bağlam: ajan hatalarının katmanları#

Ajan hataları tek bir sınıf değil. Her katman farklı bir kayıt gerektiriyor ve eksik kayıt, o katmandaki hatayı görünmez kılıyor.

KatmanTipik hataGörülmesi için gereken kayıtKayıt yoksa görünen
KararYanlış aracı seçtiKarar anındaki bağlam ve seçenek kümesi"Model saçmaladı"
AraçÇağrı doğru, parametre yanlışTam çağrı yükü ve dönen yanıt"Araç bozuk"
BağlamGereken bilgi pencereye girmediPencereye giren içeriğin tamamı"Model bilmiyor"
DöngüAynı adımı tekrarlıyorAdım dizisi ve durum değişimi"Yavaş çalışıyor"
Sonlandırmaİşi bitmeden bitti sandıBitirme kararının gerekçesi"Eksik cevap verdi"
Sağ sütun, kayıt tutulmadığında ekibin sorunu nasıl adlandırdığını gösteriyor. Beş farklı hata, beş yanlış teşhis.

Üçüncü satır en sık yanlış teşhis edilen katman. Bir ajan gereken bilgiye erişemediğinde davranışı, bilgiyi bilmiyormuş gibi görünüyor ve ekip model değiştirmeye ya da istemi düzeltmeye yöneliyor. Oysa sorun bağlam yönetiminde: önceki adımların çıktısı pencereyi doldurmuş ve kritik belge dışarıda kalmış. Pencereye ne girdiği kaydedilmiyorsa bu ayrımı yapmak mümkün değil.

Kanıt: asgari kayıt kümesi#

Ajan izinin ne taşıması gerektiği pratikte netleşti. Aşağıdaki küme, bir hatayı yeniden üretmek için yeterli olan asgari sınır.

  • Koşu kimliği ve adım sırası: her adımın hangi koşuya ait olduğu ve kaçıncı adım olduğu. Bu olmadan iz birleştirilemez.
  • Her adımın girdisi: modele gerçekten gönderilen bağlamın tamamı, kırpılmış hâliyle. İstemin şablonu değil, son hâli.
  • Araç çağrısı ve yanıtı: parametreler ve dönen içerik. Yanıt uzunsa özet değil, tam kayıt — parametre hatası ancak tam yükte görülüyor.
  • Karar gerekçesi: modelin o adımda neden o aracı seçtiğine dair ürettiği metin. Akıl yürütme izi varsa o da.
  • Durum değişimi: adım sonunda ajanın hafızasında ne değişti. Döngü teşhisi bu kayıt olmadan yapılamıyor.
  • Sonlandırma kararı: akış neden bitti — görev tamamlandı, tur sınırı doldu, hata mı? Üçü ayrı ayrı kaydedilmeli.

İkinci madde en çok atlanan ve en pahalıya çıkan. Çoğu sistem istem şablonunu kaydediyor, şablona doldurulan son hâli kaydetmiyor. Oysa hata neredeyse her zaman doldurulan içerikte: yanlış belge geldi, kırpma kritik paragrafı kesti, bir alan boş kaldı. Şablon kaydı bu hataların hiçbirini göstermiyor ve ekip şablonu inceleyip "istem doğru" sonucuna varıyor.

Mekanizma: neden sonradan eklenemiyor#

İzlenebilirliğin sonradan eklenememesinin nedeni teknik değil yapısal. Kayıt, akışın içinden geçen veriyi gerektiriyor ve o veri akış bittikten sonra mevcut değil.

Somutlaştırmak gerekirse: bir ajan çalıştırıcısı kırpma kararını bir yardımcı fonksiyonda veriyorsa ve o fonksiyon neyi attığını döndürmüyorsa, kırpılan içerik hiçbir yerde yok. Sonradan izlenebilirlik eklemek, o fonksiyonun imzasını değiştirmek demek ve onu çağıran her yeri. Aynı şekilde araç çıktısı modele verilmeden önce özetleniyorsa, özetleme kaybı kaydedilmediği sürece "model yanlış anladı" ile "özet yanlış özetledi" ayrımı yapılamıyor. Bu yüzden izlenebilirlik bir günlük kütüphanesi seçimi değil, akışın veri yollarının tasarımı — ve tasarım kararları sonradan değiştirilirse akışın kendisi değişiyor.

Karşı görüş#

Üç itiraz ciddi. Birincisi: bu kayıt hacmi maliyetli — her adımın tam bağlamını saklamak depolama ve gizlilik yükü getiriyor. İkincisi: örnekleme sıcaklığını sıfıra çekip determinizmi geri kazanmak mümkün. Üçüncüsü: bu kadar ayrıntı erken aşamada gereksiz; ürün oturunca eklenir.

İzleri tam tutmaya başlayınca depolama maliyeti model maliyetinin yarısına çıktı. Örnekleme yaptık: her koşunun yüzde beşini tam, kalanını özet tutuyoruz. Hata ayıklamada fark etmedi, hata bildirildiğinde o koşuyu tam kaydediyoruz.

— Bir ajan platformu ekibinden

Alıntı birinci itirazın haklı yanını ve pratik çözümünü birlikte veriyor: tam kayıt pahalı, örneklenebilir. Kritik nokta, kayıt yolunun baştan var olması — örnekleme oranı sonradan ayarlanabilir bir parametre ama kayıt yolunun hiç olmaması sonradan düzeltilemeyen bir tasarım. İkinci itiraz yanlış: sıcaklığı sıfıra çekmek araç çıktılarının ve dış durumun değişkenliğini ortadan kaldırmıyor; aynı istek yarın farklı bir veritabanı durumuyla karşılaşıyor ve yol değişiyor. Üçüncü itiraz ise tam tersini yapıyor — erken aşamada hata oranı en yüksek ve tam o dönemde iz yoksa, öğrenilecek en çok şey kaybediliyor.

Sınırlar ve belirsizlik#

Bu analiz belirli bir araç önermiyor ve kayıt hacminin doğru oranını vermiyor.

  • Örnekleme oranı ürüne özgü: hata oranı yüksekken daha yüksek oran gerekiyor, oturmuş akışlarda düşük oran yetiyor.
  • Gizlilik yükü hesaba katılmalı: tam bağlam kaydı kişisel veri içerebilir; saklama süresi ve erişim kısıtı ayrıca tanımlanmalı.
  • Standart yerleşmedi: ajan izlerinin ortak bir şeması yok; araçlar arası taşınabilirlik sınırlı.
  • Kayıt maliyetinin model maliyetine oranı ölçülmemiş: yukarıdaki saha gözlemi tek bir ekibin deneyimi, genellenemez.

Sonuç#

Ajan hataları yeniden üretilebilir olmadıkça düzeltilemiyor ve yeniden üretilebilirlik determinizmden değil kayıttan geliyor. Bu yüzden izlenebilirlik, ajan akışının bir eklentisi değil bir parçası: hangi verinin akıştan geçtiği ve nerede kaydedildiği, akışın tasarımıyla birlikte kararlaştırılmalı.

Ölçü basit ve erken uygulanabilir: bir hata bildirimi geldiğinde o koşuyu adım adım yeniden okuyabiliyor musunuz? Cevap hayırsa, elinizde bir gözlemlenebilirlik boşluğu değil bir hata ayıklama yeteneği eksikliği var. Kayıt yolunu baştan kurmanın maliyeti bir hafta; sonradan kurmanın maliyeti akışı yeniden yazmak.

Ne yapmalı?#

  1. 1Kayıt yolunu akışla birlikte kurun

    Kırpma, özetleme ve seçim yapan her fonksiyon ne attığını da döndürsün. Sonradan eklenmesi imza değişikliği demek.

  2. 2Şablon değil son istemi kaydedin

    Hata neredeyse her zaman doldurulan içerikte. Şablon kaydı bu hataları göstermiyor.

  3. 3Beş hata katmanını ayrı izleyin

    Karar, araç, bağlam, döngü ve sonlandırma. Her biri farklı kayıt gerektiriyor.

  4. 4Örneklemeyi baştan parametre yapın

    Tam kayıt pahalı; oran ayarlanabilir olsun. Kayıt yolunun hiç olmaması ise düzeltilemez.

  5. 5Hata bildiriminde tam kayda geçin

    Bir koşu şikâyet konusu olduğunda o koşunun izini tam tutmaya geçin.

  6. 6Saklama ve erişim kuralı yazın

    Tam bağlam kaydı kişisel veri içerebilir; süre ve erişim kısıtı kayıt kadar önemli.

Bu tezi ne çürütür?

Ajan akışlarının deterministik hâle geldiği — aynı girdinin her koşuda aynı adım dizisini ürettiği — bir çalıştırma modeli standartlaşırsa tez zayıflar; o durumda klasik hata ayıklama yeterli olur. Örnekleme sıcaklığı sıfıra çekilse bile araç çıktılarının ve dış durumun değişkenliği bu determinizmi engelliyor.

Her analiz kendi yanlışlanma koşulunu yazar. Bir tezin hangi gözlemle çürütüleceğini söyleyemiyorsak ortada tez değil temenni vardır; o metin yayımlanmaz.

Sık sorulan sorular

Ajan izinde ne kaydedilmeli?

Asgari küme altı parçadan oluşuyor: koşu kimliği ve adım sırası, her adımda modele gerçekten gönderilen bağlamın son hâli, araç çağrılarının tam parametreleri ve dönen içerik, modelin karar gerekçesi, adım sonunda durumda ne değiştiği ve akışın neden bittiği. Bu küme bir hatayı yeniden üretmek için yeterli olan sınır; eksiğinde belirli hata katmanları görünmez kalıyor.

İstem şablonunu kaydetmek yetmez mi?

Yetmiyor ve bu en pahalıya çıkan atlama. Hata neredeyse her zaman şablona doldurulan içerikte oluyor: yanlış belge geldi, kırpma kritik paragrafı kesti, bir alan boş kaldı. Şablon kaydı bu hataların hiçbirini göstermediği için ekip şablonu inceleyip "istem doğru" sonucuna varıyor ve gerçek nedeni hiç görmüyor. Kaydedilmesi gereken, modele gönderilen son metin.

Tam kayıt çok pahalı değil mi?

Pahalı, ama örneklenebilir. Pratik kalıp koşuların küçük bir bölümünü tam, kalanını özet tutmak ve bir hata bildirildiğinde o koşuyu tam kayda almak. Kritik olan örnekleme oranı değil, kayıt yolunun baştan var olması: oran sonradan ayarlanabilir bir parametre, kayıt yolunun hiç olmaması ise akışı yeniden yazmayı gerektiren bir tasarım hatası. Tam bağlam kaydının gizlilik yükü de ayrıca planlanmalı.

Bir ajanın döngüye girdiğini nasıl anlarım?

Adım dizisi ve her adımdaki durum değişimi kaydedilerek. Döngü, dışarıdan bakıldığında yavaşlık gibi görünüyor: akış bitiyor ama uzun sürüyor. Durum değişimi kaydı olmadan tekrarlayan adımlarla ilerleyen adımlar ayırt edilemiyor. Pratik müdahale bir ilerleme ölçütü: son birkaç turda ajanın durumunda anlamlı bir değişiklik yoksa akış durdurulup insana devredilir.

Kaynaklar

  1. 01OpenTelemetry — Traces — OpenTelemetry · Dokümantasyon
  2. 02Building Effective Agents — Anthropic · Dokümantasyon
  3. 03Hidden Technical Debt in Machine Learning Systems — NeurIPS · Makale

UNDERSTAND

Analizin dayandığı kavramları da oku

Her analiz, Atlas'taki kalıcı kavram girdilerine yaslanır. Terimleri oradan derinleştirebilirsin.