Paylaşılan bağlam neden sürekli yeniden icat ediliyor
Bağlam paylaşması gereken çok ajanlı sistemlerin çoğu bir vektör deposuyla başlar. Bu, en az dirençli yoldur: her ajanın bildiğini gömer, benzerliğe göre geri getirir ve gerisini modelin halletmesine bırakır. Bu, iki ajanın aynı olgu üzerinde işlem yapması gerekene kadar çalışır.
Bir vektör deposu durumu değil, hatırlamayı paylaşır. Geri getirme, bir sorguyla ilgili görünen parçaların sıralı bir listesini döndürür; sistemin taahhüt ettiği önermeler kümesini döndürmez. İki ajan örtüşen bağlamı geri getirebilir ve yine de süresiz olarak uyumsuz inançlara sahip olabilir, çünkü depoda hiçbir şey çelişkiyi temsil etmez. Bir ajan bir dağıtım hedefinin staging olduğunu iddia eder; bir diğeri production olduğunu iddia eder. Her iki iddia da dizinde durur. Hiçbiri geçersiz kılınmış olarak işaretlenmez. Bir sonraki geri getirme, embedding mesafesine ve parça sınırlarına bağlı olarak ya birini ya da her ikisini ortaya çıkarabilir.
Başarısızlık modu, geri getirmenin kesin olmaması değildir. Geri getirmenin bir anlaşma kavramı olmamasıdır. Depoda sistemin şu anda doğru kabul ettiği şey budur diyen bir nesne ve bu yeni iddia şununla çelişiyor diyen bir işlem yoktur.
Grafikler tam da bu boşluğu kapatır. Bir bilgi grafiği ilişkileri açık hale getirir: varlıklar için düğümler, iddialar için kenarlar ve hangi ilişkilerin anlamlı olduğunu kısıtlayan bir şema. Bir kenar, sahiplenilebilen, sürümlenebilen, çelişilebilen ve kullanımdan kaldırılabilen bir önermedir. Çok ajanlı bir sistemin yalnızca benzer metni geri getirmek yerine anlaşma hakkında akıl yürütebilmesi için ihtiyaç duyduğu şey budur.
Öneri sağlamdır. Operasyonel sorular çözülmemiştir ve paylaşılan bir grafiğin yararlı mı yoksa bir yük mü olacağını belirleyenler tam da bunlardır. Grafik tabanlı ajan belleğine dair son dönemdeki ele alışlar depolama katmanına odaklanma eğilimindedir — hangi veritabanı, hangi embedding modeli, hangi geçiş. Daha zor sorular yetki ve çelişkiyle ilgilidir: hangi ajan hangi kenarı yazabilir ve iki ajan aynı anda doğru olamayacak kenarlar yazdığında ne olur.
Yazma yetkisi: her kenarın bir sahibi olmalı
Sahibi belirtilmemiş bir yazım, paylaşılan bir grafiğin nasıl bir dedikodu değirmenine dönüştüğünün yoludur. Herhangi bir ajan herhangi bir kenarı iddia edebilirse, grafik kökeni belirsiz iddialar biriktirir ve alt ajanların hangisine güveneceğine karar vermek için hiçbir dayanağı olmaz. Başarısızlık sessizdir: grafik sözdizimsel olarak geçerli kalırken anlamsal olarak güvenilmez hale gelir.
Çözüm, yazma yetkisini açık hale getirmektir. Şemadaki her kenar türü, hangi ajanın hangi görev altında hareket ederek bunu iddia edebileceğini belirten bir politika taşımalıdır. Bir şema parçası şöyle görünebilir:

edge_types:
- name: service_owns_database
subject: service
object: database
writers:
- agent: inventory-agent
task: reconcile-service-topology
cardinality: many-to-many
conflict_policy: quarantine
- name: deployment_target
subject: service
object: environment
writers:
- agent: release-agent
task: promote-release
cardinality: one-to-one
conflict_policy: last-write-wins-with-timestamp
Önemli tasarım tercihi, yetkinin bir ajanın prompt'unda değil şemada yaşamasıdır. Prompt düzeyindeki kurallar tavsiye niteliğindedir. Yalnızca emin olduğu kenarları yazması istenen bir model, bağlam bunu yapması gerektiğini ima ettiğinde yine de bir kenar yazacaktır ve yazımı reddedecek bir mekanizma yoktur. Şema düzeyindeki politika yazma yolu tarafından uygulanır: o kenar türü için bildirilmiş bir yazarla eşleşmeyen bir iddia, grafiğe ulaşmadan önce reddedilir.
Bu, her yazım için merkezi bir yetki gerektirmez. Yetkinin bildirilmiş ve denetlenebilir olmasını gerektirir. Bir ajana bir görev için geniş bir yazma kapsamı verilebilir, ancak bu veriş bir kayıttır, sistem prompt'undaki bir talimat değildir.
Çelişki çözümü: çelişkili kenarlar normaldir
İki ajanın çelişkili kenarlar iddia etmesi bir hata değil, normal bir olaydır. Ajanlar kısmi görüşler üzerinde, farklı zamanlarda, farklı kanıtlarla çalışır. Çelişkiyi bir istisna olarak ele alan bir grafik ya duracak ya da sessizce üzerine yazacaktır ve her ikisi de yanlıştır.
Öncelik, kenar türü başına önceden kararlaştırılmalıdır. Üç uygulanabilir seçenek:
- Zaman damgalarıyla son yazan kazanır. Basit ve öngörülebilir, ancak kanıt yerine yeniliğe ayrıcalık tanır. Daha iyi bilgilendirilmiş bir inançtan daha sonra eski bir inancı yazan bir ajan kazara kazanır.
- Güven ağırlıklı birleştirme. Her iddia bir güven ve bir kaynak taşır. Birleştirme kuralı bunları bir araya getirir. Bu daha ifade gücü yüksektir, ancak güvenin kalibre edilmiş olmasını gerektirir ve kalibre edilmemiş bir güven puanı, birleştirmeyi ilkeli gösteren bir sayıdan başka bir şey değildir.
- Bir çözümleyici çalışana kadar karantina. Çelişen kenarlar okunabilir grafiğin dışında tutulur ve bir çözümleme adımı — özel bir ajan, bir insan incelemesi veya deterministik bir kural — hangisinin hayatta kalacağına karar verir.
Diğer ajanların üzerinde işlem yapacağı olgular için karantina genellikle doğrudur. Maliyeti gecikmedir: grafik o kenar için geçici olarak eksiktir ve olguya ihtiyaç duyan herhangi bir ajan beklemeli ya da açık bir bilinmeyenle ilerlemelidir. Bu gerçek bir ödünleşimdir. Son yazan kazanır, grafiği sürekli okunabilir tutar, karşılığında zaman zaman yanlış bir inancın yayılmasına yol açar. Karantina, grafiği güvenilir tutar, karşılığında kullanılabilirliği feda eder. Tercih, yazma yolunun kolaylığını değil, yanlış bir kenar üzerind
a/server-rack-closeup-5ed2bb-8c3175.jpg)
Karantinanın ayrıca bir çıkış koşuluna ihtiyacı vardır. Hiç çözülmeyen bir çelişki kalıcı bir boşluktur. Çözümleyici, tanımlı bir tetikleyiciye sahip tanımlı bir adım olmalıdır — planlanmış bir uzlaştırma, kaç alt okumanın engellendiğine dair bir eşik veya çelişki bir çalıştırma sınırı boyunca devam ettiğinde bir yükseltme.
Alt adımlar için okuma tutarlılığı
Çalışma ortasında grafiği okuyan bir ajanın canlı bir görünüme değil, bir anlık görüntüye ihtiyacı vardır. Grafik aynı ajan yörüngesi içindeki iki okuma arasında değişirse, yörünge yeniden üretilebilir değildir: ajanın kararları artık var olmayan ve yeniden oluşturulamayan bir duruma bağlıdır.
Mekanizma grafik sürümlemedir. Her yazım bir sürüm sayacını ilerletir ve bir okuma belirli bir sürüme karşı sunulur. Çalıştırma, okuduğu sürümü araç çağrıları ve model çıktılarıyla birlikte yörüngesine kaydeder. Çalıştırmayı aynı sürüme karşı yeniden oynatmak aynı girdileri verir; bu, çok ajanlı bir başarısızlığı hata ayıklamak için asgari gereksinimdir.
Bu, karantinayla etkileşir. Karantinaya alınmış bir kenar anlık görüntüde yoktur, dolayısıyla o sürümü okuyan bir ajan olguyu tartışmalı olarak değil bilinmeyen olarak görür. Bunun kabul edilebilir olup olmadığı, ajanın bir bilinmeyenle ilerleyip ilerleyemeyeceğine bağlıdır. İlerleyemiyorsa, çalıştırma ihtiyaç duyduğu bir olguyu atlayan bir sürümü okumak yerine çözümleme üzerinde bloke olmalıdır.
Sürümleme ayrıca saklamayı yönetilebilir kılar. Eski kenarlar, bellek saklamayla aynı şekle sahip bir saklama politikası sorusudur: bir kenar ne kadar süre okunabilir kalır ve kullanımdan kaldırılmasını ne tetikler? Geçersiz kılınmış bir kenar hemen silinmez — geçmiş bir çalıştırmayı açıklamak için gerekli olabilir. Pratik kural, kenarları mevcut okunabilir sürümden kaldırırken denetim için sürüme göre adreslenebilir tutmaktır. Çöp toplama daha sonra tek tek kenarlar üzerinde değil sürümler üzerinde çalışır, bu da denetim izini tutarlı tutar.
Bunun tasarım için anlamı
Çok ajanlı bir sistem için paylaşılan bir bilgi grafiği bir depolama tercihi değildir. Bir grafikte ifade edilen yetki, çelişki ve tutarlılıkla ilgili bir politikalar kümesidir. Depolama katmanı kolay kısımdır.
Tasarım işi şemadadır: hangi kenar türleri vardır, bunları kim yazabilir, iki yazar anlaşmazlığa düştüğünde ne olur ve bir okuyucu hangi sürümü görür. Bu kararlar, grafiğin ajanların hakkında akıl yürütebileceği paylaşılan bir durum mu yoksa ajanların geri getirdiği paylaşılan bir dedikodu değirmeni mi olacağını belirler.
Dürüst ödünleşim, politika yönetimli bir grafiğin bir vektör deposuna kıyasla yazmaya ve okumaya daha yavaş olmasıdır. Yazımlar yetkiye karşı denetlenir, çelişkiler karantinaya alınabilir ve okumalar sürümlere sabitlenir. Bu ek yük, yeniden üretilebilirliği ve savunulabilir bir anlaşma kavramını satın alır. Ajanların paylaşılan olgular üzerinde işlem yaptığı sistemler için genellikle doğru tercih budur. Ajanların yalnızca benzer metni hatırlaması gereken sistemler için gereksizdir.
