Multi-agent
Durum
OpenClaw "presence", aşağıdakilerin hafif ve azami gayret esaslı bir görünümüdür:
- Gateway'in kendisi ve
- Gateway'e bağlı, kullanıcı tarafından görülebilen istemciler (Mac uygulaması, WebChat, Node'lar vb.)
Presence, canlı bağlantı meta verilerini Control UI Cihazlar sayfasında (Ayarlar → Cihazlar altında) ve macOS uygulamasının Örnekler sekmesinde gösterir.
Bu sayfa, Gateway istemci listesini ele alır. En son kullandığınız Mac'i algılamak ve Node uyarılarını oraya yönlendirmek için Etkin bilgisayar presence'ı bölümüne bakın.
Presence alanları (görüntülenenler)
Presence girdileri, aşağıdakilere benzer alanlara sahip yapılandırılmış nesnelerdir:
instanceId(isteğe bağlıdır ancak önemle önerilir): kararlı istemci kimliği (genellikleconnect.client.instanceId)host: kolay anlaşılır ana makine adıip: azami gayretle belirlenen IP adresiversion: istemci sürümü dizesideviceFamily/modelIdentifier: donanım ipuçlarımode:ui,webchat,cli,backend,node,probe,testlastInputSeconds: biliniyorsa son kullanıcı girdisinden bu yana geçen saniyereason: istemcinin sağladığı serbest biçimli dize; Gateway'in kendisi yalnızcaself,connectvedisconnectdeğerlerini yayınlardeviceId,roles,scopes: bağlantı el sıkışmasından alınan cihaz kimliği ve rol/kapsam ipuçlarıts: son güncelleme zaman damgası (epoktan bu yana ms)
Üreticiler (presence'ın kaynakları)
Presence girdileri birden fazla kaynak tarafından üretilir ve birleştirilir.
1) Gateway'in kendi girdisi
Gateway, henüz hiçbir istemci bağlanmadan önce bile kullanıcı arayüzlerinde Gateway ana makinesinin gösterilmesi için başlangıçta her zaman bir "kendi" girdisi oluşturur.
2) WebSocket bağlantısı
Her WS istemcisi bir connect isteğiyle başlar. El sıkışma başarılı olduğunda
Gateway, bu bağlantının presence girdisini ekler veya günceller.
Geçici kontrol düzlemi bağlantıları neden görünmez?
CLI komutları, arka uç RPC istemcileri ve yoklamalar genellikle kısa süreliğine bağlanır. Bu
değişkenliği presence TTL süresinin tamamı boyunca tutmamak için cli, backend
veya probe modundaki istemciler presence girdilerine dönüştürülmez. Test modu istemcileri,
test paketleri onları gerçek istemcilerin yerine kullandığı için izlenmeye devam eder.
3) system-event sinyalleri
İstemciler, system-event yöntemiyle daha zengin periyodik sinyaller gönderebilir. Mac
uygulaması bunu ana makine adını, IP'yi, sürümü ve canlılık meta verilerini bildirmek için kullanır. Fiziksel
girdi etkinliği bu genel sinyalin parçası değildir; bunun sorumluluğu Etkin bilgisayar presence'ı
bölümünde açıklanan amaca özel yerel Node olayındadır. Mac, bu sinyalleri
system-presence-clear-last-input ile etiketler; güncel Gateway'ler, eski bir uygulamadan
kalan girdi güncelliği verilerini kaldırmak için bu geriye dönük uyumlu işareti kullanır. Sinyal ayrıca
30 günlük sabit bir değer taşır; böylece etiketi yok sayan eski Gateway'ler tam güncellik verisini
korumak yerine üzerine yazar. Bu uyumluluk değeri için yeni etkinlik örneklenmez.
4) Node bağlantıları (rol: Node)
Bir Node, role: node ile Gateway WebSocket üzerinden bağlandığında Gateway,
o Node için bir presence girdisi ekler veya günceller (diğer WS istemcileriyle aynı akış).
Birleştirme ve yinelenenleri kaldırma kuralları (instanceId neden önemlidir?)
Presence girdileri, sırasıyla ilk kullanılabilir olan eşleştirilmiş cihaz kimliği,
connect.client.instanceId veya son çare olarak bağlantı başına kimlik temelinde, büyük/küçük harfe
duyarsız anahtarlarla tek bir bellek içi haritada saklanır.
Geçici kontrol düzlemi istemcileri izleme dışında bırakılır (yukarıya bakın);
bu nedenle bağlantı kimlikleri hiçbir zaman anahtar hâline gelmez. Diğer tüm istemcilerde
bağlantı kimliği yedeği, kararlı bir instanceId olmadan yeniden bağlanan istemcinin
yinelenen bir satır olarak görünmesine neden olur.
TTL ve sınırlı boyut
Presence kasıtlı olarak geçicidir:
- TTL: 5 dakikadan eski girdiler kaldırılır
- Azami girdi: 200 (önce en eskiler kaldırılır)
Bu, listeyi güncel tutar ve sınırsız bellek büyümesini önler.
Uzak bağlantı/tünel uyarısı (geri döngü IP'leri)
Bir istemci SSH tüneli/yerel bağlantı noktası yönlendirmesi üzerinden bağlandığında Gateway,
uzak adresi 127.0.0.1 olarak görebilir. Bu tünel adresinin istemcinin IP'si olarak
kaydedilmesini önlemek için bağlantı işleme, geri döngü adresini girdiye yazmak yerine
yerel olduğu algılanan (geri döngü) istemcilerde ip alanını tamamen atlar.
Tüketiciler
Control UI Cihazlar sayfası
Cihazlar sayfası, system-presence verilerini kalıcı eşleştirme ve Node
kayıtlarıyla birleştirir. Gateway'in kendi sinyalini ilk sıraya sabitler ve canlı platform,
sürüm, model ve girdi güncelliği meta verileri için eşleşen cihaz veya örnek kimliklerini kullanır.
macOS Örnekler sekmesi
macOS uygulaması, system-presence çıktısını gösterir ve son güncellemenin yaşına göre
küçük bir durum göstergesi (Etkin/Boşta/Eski) uygular.
Hata ayıklama ipuçları
- Ham listeyi görmek için Gateway'de
system-presenceçağrısı yapın. - Yinelenen girdiler görürseniz:
- istemcilerin el sıkışmada kararlı bir
client.instanceIdgönderdiğini doğrulayın - periyodik sinyallerin aynı
instanceIddeğerini kullandığını doğrulayın - bağlantıdan türetilen girdide
instanceIdalanının eksik olup olmadığını kontrol edin (yinelenen girdiler beklenir)
- istemcilerin el sıkışmada kararlı bir
İlgili
Fiziksel Mac girdisinin etkin bir Node'u nasıl seçtiği ve bağlantı uyarılarını nasıl yönlendirdiği.
Yazma göstergelerinin ne zaman gönderildiği ve nasıl ayarlanacağı.
Giden akış, parçalara ayırma ve kanal başına biçimlendirme.
Gateway bileşenleri ve presence güncellemelerini yöneten WebSocket protokolü.
connect, system-event ve system-presence için kablo protokolü.