Giriş noktaları
- Gateway RPC:
agentveagent.wait. - CLI:
openclaw agent.
Çalıştırma sırası
agentRPC parametreleri doğrular, oturumu çözümler (sessionKey/sessionId), oturum meta verilerini kalıcı hâle getirir ve hemen{ runId, acceptedAt }döndürür.agentCommandturu çalıştırır: model + düşünme/ayrıntı/iz varsayılanlarını çözümler, Skills anlık görüntüsünü yükler,runEmbeddedAgentçağrısını yapar ve gömülü döngü henüz bir tane yayınlamadıysa yedek bir yaşam döngüsü sonu/hatası yayınlar.runEmbeddedAgent: çalıştırmaları oturum başına ve küresel kuyruklar aracılığıyla serileştirir, model + kimlik doğrulama profilini çözümler, OpenClaw oturumunu oluşturur, çalışma zamanı olaylarına abone olur, yardımcı/araç deltalarını akışla iletir, çalıştırma zaman aşımını uygular (süre dolduğunda iptal eder) ve yüklerle birlikte kullanım meta verilerini döndürür. Codex uygulama sunucusu turlarında ayrıca, kabul edilmiş bir tur terminal olayından önce uygulama sunucusu ilerlemesi üretmeyi durdurursa turu iptal eder.subscribeEmbeddedAgentSession, çalışma zamanı olaylarınıagentakışına köprüler: araç olaylarınıstream: "tool"’ye, yardımcı deltalarınıstream: "assistant"’e, yaşam döngüsü olaylarınıstream: "lifecycle"’e (phase: "start" | "end" | "error").agent.wait(waitForAgentRun), birrunIdüzerinde yaşam döngüsü sonu/hatasını bekler ve{ status: ok|error|timeout, startedAt, endedAt, error? }döndürür.
Kuyruklama ve eşzamanlılık
Çalıştırmalar, oturum anahtarı (oturum hattı) başına ve isteğe bağlı olarak küresel bir hat üzerinden serileştirilerek araç/oturum yarışları önlenir. Mesajlaşma kanalları, bu hat sistemini besleyen bir kuyruk modu (yönlendirme/takip/toplama/kesme) seçer; bkz. Komut Kuyruğu. Transkript yazımları ayrıca oturum dosyasındaki bir oturum yazma kilidiyle korunur. Kilit süreç duyarlı ve dosya tabanlıdır; böylece süreç içi kuyruğu atlayan veya başka bir süreçten gelen yazıcıları yakalar. Yazıcılar, oturumu meşgul olarak bildirmeden önce varsayılan olarak 60 saniyeye kadar bekler (ortam geçersiz kılma değişkeni:OPENCLAW_SESSION_WRITE_LOCK_ACQUIRE_TIMEOUT_MS).
Oturum yazma kilitleri varsayılan olarak yeniden girişli değildir. Tek bir mantıksal yazıcıyı korurken aynı kilidin alınmasını kasıtlı olarak iç içe yerleştiren bir yardımcı, allowReentrant: true ile açıkça etkinleştirilmelidir.
Oturum ve çalışma alanı hazırlığı
- Çalışma alanı çözümlenir ve oluşturulur; korumalı alan çalıştırmaları, bir korumalı alan çalışma alanı köküne yönlendirilebilir.
- Skills yüklenir (veya bir anlık görüntüden yeniden kullanılır) ve ortama ve isteme eklenir.
- Önyükleme/bağlam dosyaları çözümlenir ve sistem istemine eklenir.
- Akış başlamadan önce bir oturum yazma kilidi alınır ve oturum transkript hedefi hazırlanır. Daha sonraki tüm transkript yeniden yazma, Compaction veya kesme yolları, SQLite transkript satırlarını değiştirmeden önce aynı kilidi almalıdır.
İstem oluşturma
Sistem istemi; OpenClaw’ın temel isteminden, Skills isteminden, önyükleme bağlamından ve çalıştırma başına geçersiz kılmalardan oluşturulur. Modele özgü sınırlar ve Compaction için ayrılmış belirteçler uygulanır. Modelin gördükleri için bkz. Sistem istemi.Kancalar
OpenClaw’ın iki kanca sistemi vardır:- Dahili kancalar (Gateway kancaları): komutlar ve yaşam döngüsü olayları için olay güdümlü betikler.
- Plugin kancaları: aracı/araç yaşam döngüsü ve Gateway işlem hattı içindeki genişletme noktaları.
Dahili kancalar (Gateway kancaları)
agent:bootstrap: sistem istemi kesinleşmeden önce önyükleme dosyaları oluşturulurken çalışır. Önyükleme bağlam dosyaları eklemek veya kaldırmak için kullanılır.- Komut kancaları:
/new,/reset,/stopve diğer komut olayları (Kancalar belgesine bakın).
Plugin kancaları
Bunlar aracı döngüsü veya Gateway işlem hattı içinde çalışır:
Giden/araç korumaları için kanca karar kuralları:
before_tool_call:{ block: true }terminaldir ve daha düşük öncelikli işleyicileri durdurur.{ block: false }işlem yapmaz ve önceki bir engeli temizlemez.before_install: yukarıdakiyle aynı terminal/işlemsiz semantiğine sahiptir. CLI kurulum ve güncelleme yollarını kapsaması gereken operatör sahipliğindeki kurulum izin verme/engelleme kararları içinbefore_installdeğil,security.installPolicykullanın.message_sending:{ cancel: true }terminaldir ve daha düşük öncelikli işleyicileri durdurur.{ cancel: false }işlem yapmaz ve önceki bir iptali temizlemez.
Akış
- Yardımcı deltaları, aracı çalışma zamanından
assistantolayları olarak akışla iletilir. - Blok akışı,
text_endveyamessage_endüzerinde kısmi yanıtlar yayınlayabilir. - Akıl yürütme akışı ayrı bir akış olabilir veya yanıtları engelleyebilir.
- Parçalama ve blok yanıt davranışı için bkz. Akış.
Araç yürütme
- Araç başlatma/güncelleme/sonlandırma olayları
toolakışında yayınlanır. - Araç sonuçları, günlüğe kaydedilmeden/yayınlanmadan önce boyut ve görüntü yükleri bakımından temizlenir.
- Mesajlaşma aracı gönderimleri, yinelenen yardımcı onaylarını engellemek için izlenir.
Yanıt şekillendirme
Nihai yükler; yardımcı metninden (isteğe bağlı akıl yürütmeyle birlikte), satır içi araç özetlerinden (ayrıntılı moddayken ve izin verildiğinde) ve model hata verdiğinde yardımcı hata metninden oluşturulur.- Tam sessiz belirteç
NO_REPLY, giden yüklerden filtrelenir. - Mesajlaşma aracı yinelemeleri nihai yük listesinden kaldırılır.
- İşlenebilir yük kalmazsa ve bir araç hata verdiyse, bir mesajlaşma aracı kullanıcıya görünür bir yanıt göndermiş olmadığı sürece yedek bir araç hatası yanıtı yayınlanır.
Compaction ve yeniden denemeler
Otomatik Compaction,compaction akış olayları yayınlar ve yeniden denemeyi tetikleyebilir. Yeniden denemede, yinelenen çıktıyı önlemek için bellek içi arabellekler ve araç özetleri sıfırlanır. Bkz. Compaction.
Olay akışları
lifecycle:subscribeEmbeddedAgentSessiontarafından (ve yedek olarakagentCommandtarafından) yayınlanır.assistant: aracı çalışma zamanından akışla iletilen deltalar.tool: aracı çalışma zamanından akışla iletilen araç olayları.
Sohbet kanalı işleme
Yardımcı deltaları, sohbetdelta mesajlarında arabelleğe alınır. Yaşam döngüsü sonu/hatasında bir sohbet final yayınlanır.
Zaman aşımları
Takılı oturum tanılaması
Tanılama etkinleştirildiğinde, yerleşik iki dakikalık eşik; gözlemlenen yanıt, araç, durum, engel veya ACP ilerlemesi bulunmayan uzunprocessing oturumlarını sınıflandırır:
- Etkin gömülü çalışmalar, model çağrıları ve araç çağrıları
session.long_runningolarak bildirilir. Sahibi belirli sessiz model çağrıları, yavaş veya akışsız sağlayıcıların çok erken takılmış olarak işaretlenmemesi için iptal eşiğine kadarsession.long_runningolarak kalır. - Yakın zamanda ilerleme göstermeyen etkin çalışma
session.stalledolarak bildirilir. Sahibi belirli model çağrıları, iptal eşiğinde veya sonrasındasession.stalleddurumuna geçer; sahibi olmayan eski model/araç etkinliği uzun süreli olarak gizlenmez. session.stuck, sahibi olmayan eski model/araç etkinliğine sahip boşta bekleyen kuyruk oturumları dâhil olmak üzere kurtarılabilir eski oturum kayıtları için ayrılmıştır.
session.stuck tanılamaları artan aralıklarla seyrekleştirilir.
İşlemlerin erken sonlanabileceği durumlar
- Agent zaman aşımı (iptal)
- AbortSignal (iptal)
- Gateway bağlantısının kesilmesi veya RPC zaman aşımı
agent.waitzaman aşımı (yalnızca bekleme içindir, agent’ı durdurmaz)
İlgili
- Araçlar - kullanılabilir agent araçları
- Kancalar - agent yaşam döngüsü olayları tarafından tetiklenen olay odaklı betikler
- Compaction - uzun konuşmaların nasıl özetlendiği
- Yürütme Onayları - kabuk komutları için onay geçitleri
- Düşünme - düşünme/akıl yürütme düzeyi yapılandırması