State denilen iki şey
Bir agent runtime'ındaki checkpoint genellikle bir çalışmanın mekaniğini kaydeder: graph'ın hangi node'u yürütüldü, hangi tool çağrıldı, tool ne döndürdü, hangi edge bekliyor. Bu, execution state'tir. "Makine neredeydi?" sorusunu yanıtlamak için yeterlidir.
"Makine ne yapmaya çalışıyordu ve hangi koşullar altında?" sorusunu yanıtlamak için yeterli değildir. Bu ikinci şey, intent state'tir: şu anda anlaşıldığı haliyle hedef, çalışmanın kabul ettiği kısıtlar, hâlihazırda taahhüt ettiği varsayımlar ve henüz yerine getirmediği yükümlülükler. Execution state bir imleçtir. Intent state bir sözleşmedir.
Dayanıklı yürütme motorları imleç konusunda iyidir. Bir adımlar jurnalini yeniden oynatır, tamamlanmış işleri atlar ve kontrolü ilk tamamlanmamış adımda geri verir. Bu, anlamı tanım anında sabitlenmiş bir workflow için doğru davranıştır. Bir agent böyle değildir. Anlamı, her adımda görebildiği geçmişten yeniden inşa edilir ve geçmiş, onu üreten niyetle aynı şey değildir. Sözleşme olmadan imleci geri yüklerseniz çalışma çökmez. Aynı kendinden emin tonla, yanlış yönde, akıcı biçimde devam eder.
Bayat hedeften yeniden planlama
Bir çalışma başlangıçta bir kısıt kabul eder: bir üretim veri kümesine karşı salt okunur çalışmak ya da kapsamı tek bir tenant ile sınırlamak. Çalışma sırasında operatör kapsamı genişletir ve kısıt orchestrator'ın yapılandırmasında güncellenir. Süreç bir sonraki adımdan önce ölür. Devam ettiğinde, checkpoint adım indekslerini ve tool çıktılarını içerir ama yürürlükte olan kısıtı içermez. Agent planını hayatta kalan geçmişten ve güncel yapılandırmadan yeniden türetir ve ikisi çelişir. Transkriptteki hiçbir şey bu dikişi işaretlemez. Ortaya çıkan plan kendi içinde tutarlı, dışarıdan yanlıştır.
Yinelenen yan etkiler
Klasik durum: son tool çağrısı başarılı oldu ama onay kayboldu. İlk tamamlanmamış adımda devam eden bir dayanıklı yürütme motoru çağrıyı yeniden yapar. Çağrı charge_card ya da send_email ya da create_ticket ise, çalışmanın artık iki tane vardır. Bu bir akıl yürütme arızası değildir; bir checkpoint sözleşmesi arızasıdır. Jurnal, etkinin olgusunu değil, çağrı niyetini kaydetti ve ikisi ancak etkinin kendisi downstream sistemin tanıdığı bir anahtar taşıyorsa ayırt edilebilir.

Varsayım kayması
Aynı geçmişler verildiğinde, bir agent her zaman aynı planları yeniden türetmez. Örnekleme, context kısaltma ve model sürümü değişiklikleri dağılımı kaydırır. Geçmişi yeniden oynatıp modelden devam etmesini isteyen bir devam, geçmiş göz önüne alındığında makul ama yürürlükte olan plan olmayan bir plan üretir. Varsayım kayması, bayat hedef arızasının sessiz versiyonudur: hiçbir yapılandırma değişmedi, yalnızca yeniden inşa değişti. Çalışma sağlıklı görünür ve sapar.
Uygulanabilir bir checkpoint sözleşmesi
Çözüm, checkpoint'i bir niyet serileştirmesi olarak ele almaktır; execution state de birkaç alandan biridir. Güvenle devam edilebilecek bir checkpoint, birlikte ve atomik olarak şunları taşımalıdır:
- Hedefi, başlatıldığı haliyle değil, çalışmanın şu anda taahhüt ettiği haliyle.
- Kabul edilen kısıtları, her biri çalışmada kabul edildiği nokta ve onu ileri süren kaynakla birlikte.
- Tool sonuçlarını, çağrı sırasına göre değil bir idempotency key'e göre anahtarlanmış olarak.
- Çözülmemiş yükümlülükleri: çalışmanın yapmayı vaat ettiği ama henüz yapmadığı şeyler.
- Bir schema sürümünü, böylece daha eski bir runtime tarafından yazılmış bir checkpoint bu şekilde tanınabilir.
Bunu pratikte işler kılan mekanizma, wall-clock ya da sıradan değil kararlı girdilerden türetilen çalışma kapsamlı bir idempotency key'dir:
key = hash(run_id, step_name, canonical_args)
Yan etkisi olan her tool çağrısı bu anahtarı taşır. Downstream sistem ya da önündeki ince bir adaptör, hâlihazırda yürüttüğü anahtarları kaydeder ve yeniden oynatmada etkiyi tekrar gerçekleştirmek yerine önceki sonucu döndürür. Anahtar, yeniden denemeler arasında kararlı ve farklı niyetler arasında benzersiz olmalıdır; onu bir sayaçtan değil adım adından ve kanonikleştirilmiş argümanlardan türetmek, adımları yeniden sıralayan ya da atlayan bir yeniden başlatmadan sonra yeniden oynatmayı güvenli kılan şeydir.
İkinci mekanizma reddetmedir. Bir checkpoint bir schema sürümü taşır ve runtime, en iyi çaba ile bir geçiş denemek yerine uyumsuz sürümler arasında devam etmeyi reddeder. Niyetin geçişi bir yeniden plandır ve bir yeniden plan, döngüde bir insan ya da gözetleyici agent bulunan 