Agent coordination
Alt aracılar
Alt ajanlar, mevcut bir ajan çalıştırmasından başlatılan arka plan ajan çalıştırmalarıdır.
Kendi oturumlarında (agent:<agentId>:subagent:<uuid>) çalışırlar ve,
tamamlandıklarında, sonuçlarını istekte bulunan sohbet
kanalına duyururlar. Her alt ajan çalıştırması bir
arka plan görevi olarak izlenir.
Yetkilendirmenin arkasındaki güvenlik modeli için bkz. Çok ajanlı ve alt ajan sınırları. Alt ajanlar kullanışlı yalıtım ve iş akışı birimleridir, ancak tek bir paylaşılan Gateway içinde düşmanca çok kiracılı bir yetkilendirme sınırı değildir.
Birincil hedefler:
- Ana çalıştırmayı engellemeden "araştırma / uzun görev / yavaş araç" işlerini paralelleştirmek.
- Alt ajanları varsayılan olarak yalıtılmış tutmak (oturum ayrımı + isteğe bağlı korumalı alan).
- Araç yüzeyinin yanlış kullanılmasını zorlaştırmak: alt ajanlar varsayılan olarak oturum araçlarını almaz.
- Orkestratör desenleri için yapılandırılabilir iç içe geçme derinliğini desteklemek.
Eğik çizgi komutu
Geçerli oturum için alt ajan çalıştırmalarını incelemek veya denetlemek üzere /subagents kullanın:
/subagents list
/subagents kill <id|#|all>
/subagents log <id|#> [limit] [tools]
/subagents info <id|#>
/subagents send <id|#> <message>
/subagents steer <id|#> <message>
/subagents spawn <agentId> <task> [--model <model>] [--thinking <level>]
Geçerli istekte bulunan oturumun etkin çalıştırmasını yönlendirmek için üst düzey /steer <message> kullanın. Hedef bir alt çalıştırma olduğunda /subagents steer <id|#> <message> kullanın.
/subagents info çalıştırma üst verilerini gösterir (durum, zaman damgaları, oturum kimliği,
döküm yolu, temizlik). Sınırlı ve güvenlik filtreli bir geri çağırma görünümü için sessions_history kullanın; ham tam döküme ihtiyacınız olduğunda diskteki döküm yolunu inceleyin.
İş parçacığı bağlama denetimleri
Bu komutlar kalıcı iş parçacığı bağlamalarını destekleyen kanallarda çalışır. Aşağıdaki İş parçacığını destekleyen kanallar bölümüne bakın.
/focus <subagent-label|session-key|session-id|session-label>
/unfocus
/agents
/session idle <duration|off>
/session max-age <duration|off>
Başlatma davranışı
/subagents spawn, bir arka plan alt ajanını kullanıcı komutu olarak başlatır (iç
aktarım olarak değil) ve çalıştırma tamamlandığında istekte bulunan sohbete tek bir son tamamlanma güncellemesi gönderir.
Engelleyici olmayan, anlık tamamlanma
- Başlatma komutu engelleyici değildir; hemen bir çalıştırma kimliği döndürür.
- Tamamlandığında alt ajan, istekte bulunan sohbet kanalına bir özet/sonuç iletisi duyurur.
- Tamamlanma anlıktır. Başlatıldıktan sonra, yalnızca bitmesini beklemek için
/subagents list,sessions_listveyasessions_historykomutlarını bir döngüde yoklamayın; durumu yalnızca hata ayıklama veya müdahale için gerektiğinde inceleyin. - Tamamlandığında OpenClaw, duyuru temizlik akışı devam etmeden önce o alt ajan oturumu tarafından açılan izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla kapatır.
Elle başlatma teslim dayanıklılığı
- OpenClaw önce kararlı bir idempotency anahtarıyla doğrudan
agentteslimini dener. - İstekte bulunan ajanın tamamlanma dönüşü başarısız olursa, görünür çıktı üretmezse veya yakalanan alt sonuçtan açıkça eksik bir önek döndürürse OpenClaw, yakalanan alt sonuçtan doğrudan tamamlanma teslimine geri döner.
- Doğrudan teslim kullanılamazsa kuyruk yönlendirmesine geri döner.
- Kuyruk yönlendirmesi hâlâ kullanılabilir değilse duyuru, son vazgeçmeden önce kısa üstel geri çekilmeyle yeniden denenir.
- Tamamlanma teslimi çözümlenmiş istekte bulunan rotasını korur: kullanılabilir olduğunda iş parçacığına bağlı veya konuşmaya bağlı tamamlanma rotaları kazanır; tamamlanma kaynağı yalnızca bir kanal sağlıyorsa OpenClaw eksik hedefi/hesabı istekte bulunan oturumun çözümlenmiş rotasından (
lastChannel/lastTo/lastAccountId) doldurur, böylece doğrudan teslim yine çalışır.
Tamamlanma devri üst verileri
İstekte bulunan oturuma tamamlanma devri, çalışma zamanı tarafından üretilen iç bağlamdır (kullanıcı tarafından yazılmış metin değildir) ve şunları içerir:
Result— en son görünürassistantyanıt metni, yoksa temizlenmiş en son araç/toolResult metni. Terminalde başarısız olan çalıştırmalar yakalanan yanıt metnini yeniden kullanmaz.Status—completed successfully/failed/timed out/unknown.- Kompakt çalışma zamanı/token istatistikleri.
- İstekte bulunan ajana normal asistan sesiyle yeniden yazmasını söyleyen bir teslim talimatı (ham iç üst verileri iletmemesini).
Kipler ve ACP çalışma zamanı
--modelve--thinking, o belirli çalıştırma için varsayılanları geçersiz kılar.- Tamamlandıktan sonra ayrıntıları ve çıktıyı incelemek için
info/logkullanın. /subagents spawntek seferlik kiptir (mode: "run"). Kalıcı iş parçacığına bağlı oturumlar içinthread: truevemode: "session"ilesessions_spawnkullanın.- ACP koşum oturumları (Claude Code, Gemini CLI, OpenCode veya açıkça Codex ACP/acpx) için, araç bu çalışma zamanını bildiriyorsa
runtime: "acp"ilesessions_spawnkullanın. Tamamlanmaları veya ajandan ajana döngüleri hata ayıklarken ACP teslim modeli bölümüne bakın.codexplugin etkin olduğunda, kullanıcı açıkça ACP/acpx istemedikçe Codex sohbet/iş parçacığı denetimi ACP yerine/codex ...tercih etmelidir. - OpenClaw, ACP etkinleştirilene, istekte bulunan korumalı alanda olmayana ve
acpxgibi bir arka uç plugin yüklenene kadarruntime: "acp"değerini gizler.runtime: "acp"harici bir ACP koşum kimliği veyaruntime.type="acp"olan biragents.list[]girdisi bekler;agents_listiçindeki normal OpenClaw yapılandırma ajanları için varsayılan alt ajan çalışma zamanını kullanın.
Bağlam kipleri
Yerel alt ajanlar, çağıran açıkça geçerli dökümü çatallamayı istemedikçe yalıtılmış başlar.
| Kip | Ne zaman kullanılır | Davranış |
|---|---|---|
isolated |
Yeni araştırma, bağımsız uygulama, yavaş araç çalışması veya görev metninde özetlenebilen herhangi bir şey | Temiz bir alt döküm oluşturur. Varsayılan budur ve token kullanımını daha düşük tutar. |
fork |
Geçerli konuşmaya, önceki araç sonuçlarına veya istekte bulunan dökümde zaten bulunan nüanslı talimatlara bağlı çalışma | Alt öğe başlamadan önce istekte bulunan dökümü alt oturuma dallandırır. |
fork değerini sınırlı kullanın. Bu, bağlama duyarlı yetkilendirme içindir; açık bir görev istemi yazmanın yerine geçmez.
Araç: sessions_spawn
Genel subagent hattında deliver: false ile bir alt ajan çalıştırması başlatır,
ardından bir duyuru adımı çalıştırır ve duyuru yanıtını istekte bulunan
sohbet kanalına gönderir.
Kullanılabilirlik, çağıranın etkin araç ilkesine bağlıdır. coding ve
full profilleri varsayılan olarak sessions_spawn sunar. messaging profili
sunmaz; iş yetkilendirmesi yapması gereken ajanlar için tools.alsoAllow: ["sessions_spawn", "sessions_yield", "subagents"] ekleyin veya tools.profile: "coding" kullanın.
Kanal/grup, sağlayıcı, korumalı alan ve ajan başına izin verme/reddetme ilkeleri
profil aşamasından sonra aracı yine kaldırabilir. Etkin araç listesini doğrulamak için aynı
oturumdan /tools kullanın.
Varsayılanlar:
- Model:
agents.defaults.subagents.model(veya ajan başınaagents.list[].subagents.model) ayarlamadığınız sürece çağırandan devralır; açık birsessions_spawn.modelyine önceliklidir. - Düşünme:
agents.defaults.subagents.thinking(veya ajan başınaagents.list[].subagents.thinking) ayarlamadığınız sürece çağırandan devralır; açık birsessions_spawn.thinkingyine önceliklidir. - Çalıştırma zaman aşımı:
sessions_spawn.runTimeoutSecondsatlanırsa OpenClaw, ayarlandığındaagents.defaults.subagents.runTimeoutSecondskullanır; aksi halde0(zaman aşımı yok) değerine geri döner.
Araç parametreleri
taskstringrequiredAlt ajan için görev açıklaması.
labelstringİsteğe bağlı, insan tarafından okunabilir etiket.
agentIdstringsubagents.allowAgents tarafından izin verildiğinde başka bir ajan kimliği altında başlatın.
runtime"subagent" | "acp"acp yalnızca harici ACP koşumları (claude, droid, gemini, opencode veya açıkça istenen Codex ACP/acpx) ve runtime.type değeri acp olan agents.list[] girdileri içindir.
resumeSessionIdstringYalnızca ACP. runtime: "acp" olduğunda mevcut bir ACP koşum oturumunu sürdürür; yerel alt ajan başlatmaları için yok sayılır.
streamTo"parent"Yalnızca ACP. runtime: "acp" olduğunda ACP çalıştırma çıktısını üst oturuma aktarır; yerel alt ajan başlatmaları için atlayın.
modelstringAlt ajan modelini geçersiz kılın. Geçersiz değerler atlanır ve alt ajan, araç sonucunda bir uyarıyla varsayılan modelde çalışır.
thinkingstringAlt ajan çalıştırması için düşünme düzeyini geçersiz kılın.
runTimeoutSecondsnumberAyarlandığında varsayılan olarak agents.defaults.subagents.runTimeoutSeconds, aksi halde 0. Ayarlandığında alt ajan çalıştırması N saniye sonra durdurulur.
threadbooleantrue olduğunda bu alt ajan oturumu için kanal iş parçacığı bağlaması ister.
mode"run" | "session"thread: true ve mode atlanmışsa varsayılan session olur. mode: "session" için thread: true gerekir.
cleanup"delete" | "keep""delete" duyurudan hemen sonra arşivler (dökümü yine yeniden adlandırma yoluyla korur).
sandbox"inherit" | "require"require, hedef alt çalışma zamanı korumalı alanda değilse başlatmayı reddeder.
context"isolated" | "fork"fork, istekte bulunanın geçerli dökümünü alt oturuma dallandırır. Yalnızca yerel alt ajanlar. İş parçacığına bağlı başlatmalar varsayılan olarak fork; iş parçacığı olmayan başlatmalar varsayılan olarak isolated kullanır.
İş parçacığına bağlı oturumlar
Bir kanal için iş parçacığı bağlamaları etkinleştirildiğinde, bir alt ajan bir iş parçacığına bağlı kalabilir; böylece o iş parçacığındaki takip kullanıcı iletileri aynı alt ajan oturumuna yönlendirilmeye devam eder.
İş parçacığını destekleyen kanallar
Discord şu anda desteklenen tek kanaldır. Kalıcı iş parçacığına bağlı alt ajan oturumlarını (thread: true ile sessions_spawn), elle iş parçacığı denetimlerini (/focus, /unfocus, /agents,
/session idle, /session max-age) ve
channels.discord.threadBindings.enabled,
channels.discord.threadBindings.idleHours,
channels.discord.threadBindings.maxAgeHours ve
channels.discord.threadBindings.spawnSessions adaptör anahtarlarını destekler.
Hızlı akış
Oluştur
thread: true (ve isteğe bağlı olarak mode: "session") ile sessions_spawn.
Bağla
OpenClaw, etkin kanalda bu oturum hedefine bir konu oluşturur veya bağlar.
Takipleri yönlendir
Bu konudaki yanıtlar ve takip mesajları bağlı oturuma yönlendirilir.
Zaman aşımlarını incele
Etkinsizlikte otomatik odaktan çıkarma ayarını incelemek/güncellemek için /session idle ve
sabit üst sınırı denetlemek için /session max-age kullanın.
Ayır
Elle ayırmak için /unfocus kullanın.
Elle denetimler
| Komut | Etki |
|---|---|
/focus <target> |
Geçerli konuyu bir alt ajan/oturum hedefine bağla (veya bir tane oluştur) |
/unfocus |
Geçerli bağlı konu için bağlamayı kaldır |
/agents |
Etkin çalıştırmaları ve bağlama durumunu listele (thread:<id> veya unbound) |
/session idle |
Boşta otomatik odaktan çıkarmayı incele/güncelle (yalnızca odaktaki bağlı konular) |
/session max-age |
Sabit üst sınırı incele/güncelle (yalnızca odaktaki bağlı konular) |
Yapılandırma anahtarları
- Küresel varsayılan:
session.threadBindings.enabled,session.threadBindings.idleHours,session.threadBindings.maxAgeHours. - Kanal geçersiz kılma ve oluşturma sırasında otomatik bağlama anahtarları bağdaştırıcıya özeldir. Yukarıdaki Konu destekleyen kanallar bölümüne bakın.
Güncel bağdaştırıcı ayrıntıları için Yapılandırma başvurusu ve Slash komutları bölümlerine bakın.
İzin verilenler listesi
agents.list[].subagents.allowAgentsstring[]Açık agentId üzerinden hedeflenebilecek ajan kimliklerinin listesi (["*"] herhangi birine izin verir). Varsayılan: yalnızca istekte bulunan ajan. Bir liste ayarlar ve istekte bulunanın yine agentId ile kendisini oluşturmasını istiyorsanız, istekte bulunan kimliğini listeye ekleyin.
agents.defaults.subagents.allowAgentsstring[]İstekte bulunan ajan kendi subagents.allowAgents değerini ayarlamadığında kullanılan varsayılan hedef ajan izin listesi.
agents.defaults.subagents.requireAgentIdbooleanagentId değerini atlayan sessions_spawn çağrılarını engelle (açık profil seçimini zorunlu kılar). Ajan başına geçersiz kılma: agents.list[].subagents.requireAgentId.
İstekte bulunan oturum sandbox içindeyse, sessions_spawn sandbox dışında çalışacak hedefleri reddeder.
Keşif
sessions_spawn için şu anda hangi ajan kimliklerine izin verildiğini görmek için agents_list kullanın. Yanıt, çağıranların Pi, Codex uygulama sunucusu ve diğer yapılandırılmış yerel çalışma zamanlarını ayırt edebilmesi için listelenen her ajanın etkin modelini ve gömülü çalışma zamanı meta verilerini içerir.
Otomatik arşiv
- Alt ajan oturumları
agents.defaults.subagents.archiveAfterMinutessonrasında otomatik olarak arşivlenir (varsayılan60). - Arşiv,
sessions.deletekullanır ve transkripti*.deleted.<timestamp>olarak yeniden adlandırır (aynı klasörde). cleanup: "delete"duyurudan hemen sonra arşivler (transkripti yine yeniden adlandırma yoluyla tutar).- Otomatik arşiv en iyi çabayla çalışır; Gateway yeniden başlatılırsa bekleyen zamanlayıcılar kaybolur.
runTimeoutSecondsotomatik arşivlemez; yalnızca çalıştırmayı durdurur. Oturum otomatik arşive kadar kalır.- Otomatik arşiv, derinlik 1 ve derinlik 2 oturumlarına aynı şekilde uygulanır.
- Tarayıcı temizliği arşiv temizliğinden ayrıdır: izlenen tarayıcı sekmeleri/süreçleri, transkript/oturum kaydı tutulsa bile çalıştırma bittiğinde en iyi çabayla kapatılır.
İç içe alt ajanlar
Varsayılan olarak, alt ajanlar kendi alt ajanlarını oluşturamaz (maxSpawnDepth: 1). Bir iç içe geçme düzeyini etkinleştirmek için maxSpawnDepth: 2 ayarlayın — orkestratör kalıbı: ana → orkestratör alt ajan → çalışan alt-alt ajanlar.
{
agents: {
defaults: {
subagents: {
maxSpawnDepth: 2, // allow sub-agents to spawn children (default: 1)
maxChildrenPerAgent: 5, // max active children per agent session (default: 5)
maxConcurrent: 8, // global concurrency lane cap (default: 8)
runTimeoutSeconds: 900, // default timeout for sessions_spawn when omitted (0 = no timeout)
},
},
},
}
Derinlik düzeyleri
| Derinlik | Oturum anahtarı biçimi | Rol | Oluşturabilir mi? |
|---|---|---|---|
| 0 | agent:<id>:main |
Ana ajan | Her zaman |
| 1 | agent:<id>:subagent:<uuid> |
Alt ajan (derinlik 2 izinliyse orkestratör) | Yalnızca maxSpawnDepth >= 2 |
| 2 | agent:<id>:subagent:<uuid>:subagent:<uuid> |
Alt-alt ajan (uç çalışan) | Asla |
Duyuru zinciri
Sonuçlar zincirde yukarı doğru akar:
- Derinlik 2 çalışanı biter → üst öğesine (derinlik 1 orkestratör) duyurur.
- Derinlik 1 orkestratör duyuruyu alır, sonuçları sentezler, biter → ana ajana duyurur.
- Ana ajan duyuruyu alır ve kullanıcıya iletir.
Her düzey yalnızca doğrudan çocuklarından gelen duyuruları görür.
Derinliğe göre araç ilkesi
- Rol ve denetim kapsamı, oluşturma sırasında oturum meta verilerine yazılır. Bu, düz veya geri yüklenmiş oturum anahtarlarının yanlışlıkla orkestratör ayrıcalıklarını yeniden kazanmasını önler.
- Derinlik 1 (orkestratör,
maxSpawnDepth >= 2olduğunda): çocuklarını yönetebilmesi içinsessions_spawn,subagents,sessions_list,sessions_historyalır. Diğer oturum/sistem araçları reddedilmiş kalır. - Derinlik 1 (uç,
maxSpawnDepth == 1olduğunda): oturum aracı yoktur (geçerli varsayılan davranış). - Derinlik 2 (uç çalışan): oturum aracı yoktur —
sessions_spawnderinlik 2'de her zaman reddedilir. Daha fazla çocuk oluşturamaz.
Ajan başına oluşturma sınırı
Her ajan oturumunun (herhangi bir derinlikte) aynı anda en fazla maxChildrenPerAgent
(varsayılan 5) etkin çocuğu olabilir. Bu, tek bir orkestratörden denetimsiz yayılmayı önler.
Kademeli durdurma
Bir derinlik 1 orkestratörü durdurmak, tüm derinlik 2 çocuklarını otomatik olarak durdurur:
- Ana sohbette
/stop, tüm derinlik 1 ajanlarını durdurur ve onların derinlik 2 çocuklarına kademeli olarak uygular. /subagents kill <id>belirli bir alt ajanı durdurur ve çocuklarına kademeli olarak uygular./subagents kill allistekte bulunan için tüm alt ajanları durdurur ve kademeli uygular.
Kimlik doğrulama
Alt ajan kimlik doğrulaması oturum türüne göre değil, ajan kimliğine göre çözümlenir:
- Alt ajan oturum anahtarı
agent:<agentId>:subagent:<uuid>şeklindedir. - Kimlik doğrulama deposu bu ajanın
agentDirdizininden yüklenir. - Ana ajanın kimlik doğrulama profilleri yedek olarak birleştirilir; çakışmalarda ajan profilleri ana profillerin üzerine yazar.
Birleştirme eklemelidir, bu yüzden ana profiller her zaman yedek olarak kullanılabilir. Ajan başına tamamen yalıtılmış kimlik doğrulama henüz desteklenmez.
Duyuru
Alt ajanlar bir duyuru adımıyla geri bildirim yapar:
- Duyuru adımı, istekte bulunan oturumda değil, alt ajan oturumunun içinde çalışır.
- Alt ajan tam olarak
ANNOUNCE_SKIPyanıtını verirse hiçbir şey gönderilmez. - En son asistan metni tam sessiz belirteç olan
NO_REPLY/no_replyise, daha önce görünür ilerleme olsa bile duyuru çıktısı bastırılır.
Teslim, istekte bulunanın derinliğine bağlıdır:
- Üst düzey istekte bulunan oturumlar, harici teslimatla (
deliver=true) bir takipagentçağrısı kullanır. - İç içe istekte bulunan alt ajan oturumları, orkestratörün çocuk sonuçlarını oturum içinde sentezleyebilmesi için dahili bir takip eklemesi (
deliver=false) alır. - İç içe istekte bulunan bir alt ajan oturumu yoksa, OpenClaw mümkün olduğunda o oturumun istekte bulunanına geri döner.
Üst düzey istekte bulunan oturumlar için, tamamlama modu doğrudan teslim önce bağlı konuşma/konu rotasını ve hook geçersiz kılmasını çözer, ardından eksik kanal hedefi alanlarını istekte bulunan oturumun saklanan rotasından doldurur. Bu, tamamlama kaynağı yalnızca kanalı tanımlasa bile tamamlamaları doğru sohbet/konuda tutar.
Çocuk tamamlama toplaması, iç içe tamamlama bulguları oluşturulurken geçerli istekte bulunan çalıştırmayla sınırlanır ve eski önceki çalıştırma çocuk çıktılarının geçerli duyuruya sızmasını önler. Duyuru yanıtları, kanal bağdaştırıcılarında mevcut olduğunda konu/başlık yönlendirmesini korur.
Duyuru bağlamı
Duyuru bağlamı kararlı bir dahili olay bloğuna normalleştirilir:
| Alan | Kaynak |
|---|---|
| Kaynak | subagent veya cron |
| Oturum kimlikleri | Çocuk oturum anahtarı/kimliği |
| Tür | Duyuru türü + görev etiketi |
| Durum | Çalışma zamanı sonucundan türetilir (success, error, timeout veya unknown) — model metninden çıkarılmaz |
| Sonuç içeriği | En son görünür asistan metni, yoksa temizlenmiş en son araç/toolResult metni |
| Takip | Ne zaman yanıt verileceğini ve ne zaman sessiz kalınacağını açıklayan talimat |
Terminal başarısız çalıştırmalar, yakalanan yanıt metnini yeniden oynatmadan hata durumunu bildirir. Zaman aşımında, çocuk yalnızca araç çağrılarına kadar ilerlediyse duyuru, ham araç çıktısını yeniden oynatmak yerine bu geçmişi kısa bir kısmi ilerleme özetine daraltabilir.
İstatistik satırı
Duyuru yükleri en sonda bir istatistik satırı içerir (sarılmış olsa bile):
- Çalışma zamanı (örn.
runtime 5m12s). - Token kullanımı (girdi/çıktı/toplam).
- Model fiyatlandırması yapılandırıldığında tahmini maliyet (
models.providers.*.models[].cost). - Ana ajanın
sessions_historyüzerinden geçmişi getirebilmesi veya diskteki dosyayı inceleyebilmesi içinsessionKey,sessionIdve transkript yolu.
Dahili meta veriler yalnızca orkestrasyon içindir; kullanıcıya yönelik yanıtlar normal asistan sesiyle yeniden yazılmalıdır.
Neden sessions_history tercih edilmeli
sessions_history daha güvenli orkestrasyon yoludur:
- Asistan hatırlaması önce normalleştirilir: düşünme etiketleri çıkarılır;
<relevant-memories>/<relevant_memories>iskeleti çıkarılır; düz metin araç çağrısı XML yük blokları (<tool_call>,<function_call>,<tool_calls>,<function_calls>) çıkarılır; temiz kapanmayan kesilmiş yükler dahil; düşürülmüş araç çağrısı/sonuç iskeleti ve geçmiş bağlam işaretçileri çıkarılır; sızmış model denetim tokenları (<|assistant|>, diğer ASCII<|...|>, tam genişlikli<|...|>) çıkarılır; hatalı biçimli MiniMax araç çağrısı XML'i çıkarılır. - Kimlik bilgisi/token benzeri metin redakte edilir.
- Uzun bloklar kısaltılabilir.
- Çok büyük geçmişler eski satırları düşürebilir veya aşırı büyük bir satırı
[sessions_history omitted: message too large]ile değiştirebilir. - Tam bayt bayt transkripte ihtiyacınız olduğunda diskteki ham transkript incelemesi yedek yoldur.
Araç ilkesi
Alt ajanlar, önce üst veya hedef ajanla aynı profil ve araç ilkesi hattını kullanır. Bundan sonra OpenClaw, alt ajan kısıtlama katmanını uygular.
Kısıtlayıcı bir tools.profile olmadığında alt ajanlar, oturum araçları dışında tüm araçları ve sistem araçlarını alır:
sessions_listsessions_historysessions_sendsessions_spawn
sessions_history burada da sınırlı, temizlenmiş bir geri çağırma görünümü olarak kalır — ham bir transkript dökümü değildir.
maxSpawnDepth >= 2 olduğunda, derinlik-1 orkestratör alt ajanları ayrıca sessions_spawn, subagents, sessions_list ve sessions_history alır; böylece kendi çocuklarını yönetebilirler.
Yapılandırma ile geçersiz kılma
{
agents: {
defaults: {
subagents: {
maxConcurrent: 1,
},
},
},
tools: {
subagents: {
tools: {
// deny wins
deny: ["gateway", "cron"],
// if allow is set, it becomes allow-only (deny still wins)
// allow: ["read", "exec", "process"]
},
},
},
}
tools.subagents.tools.allow son bir yalnızca izin filtresidir. Zaten çözümlenmiş araç kümesini daraltabilir, ancak tools.profile tarafından kaldırılmış bir aracı geri ekleyemez. Örneğin, tools.profile: "coding" web_search/web_fetch içerir ancak browser aracını içermez. Kodlama profilli alt ajanların tarayıcı otomasyonu kullanmasına izin vermek için profil aşamasında browser ekleyin:
{
tools: {
profile: "coding",
alsoAllow: ["browser"],
},
}
Yalnızca tek bir ajanın tarayıcı otomasyonu alması gerekiyorsa ajan başına agents.list[].tools.alsoAllow: ["browser"] kullanın.
Eşzamanlılık
Alt ajanlar ayrılmış bir süreç içi kuyruk hattı kullanır:
- Hat adı:
subagent - Eşzamanlılık:
agents.defaults.subagents.maxConcurrent(varsayılan8)
Canlılık ve kurtarma
OpenClaw, endedAt yokluğunu bir alt ajanın hâlâ canlı olduğuna dair kalıcı kanıt olarak değerlendirmez. Bayat çalıştırma penceresinden daha eski, sonlandırılmamış çalıştırmalar /subagents list, durum özetleri, alt nesil tamamlama kapıları ve oturum başına eşzamanlılık kontrollerinde etkin/beklemede sayılmayı bırakır.
Gateway yeniden başlatıldıktan sonra, çocuk oturumları abortedLastRun: true olarak işaretli değilse bayat, sonlandırılmamış geri yüklenen çalıştırmalar budanır. Bu yeniden başlatma nedeniyle iptal edilmiş çocuk oturumları, alt ajan sahipsiz kurtarma akışı üzerinden kurtarılabilir kalır; bu akış, iptal işaretini temizlemeden önce sentetik bir sürdürme iletisi gönderir.
Otomatik yeniden başlatma kurtarması çocuk oturumu başına sınırlıdır. Aynı alt ajan çocuğu hızlı yeniden takılma penceresi içinde tekrar tekrar sahipsiz kurtarma için kabul edilirse OpenClaw, o oturumda bir kurtarma mezar taşı kalıcılaştırır ve sonraki yeniden başlatmalarda onu otomatik olarak sürdürmeyi durdurur. Görev kaydını uzlaştırmak için openclaw tasks maintenance --apply çalıştırın veya mezar taşlı oturumlardaki bayat iptal edilmiş kurtarma bayraklarını temizlemek için openclaw doctor --fix çalıştırın.
Durdurma
- İstekte bulunan sohbette
/stopgöndermek, istekte bulunan oturumu iptal eder ve ondan oluşturulmuş etkin alt ajan çalıştırmalarını durdurarak iç içe çocuklara kadar kademeli olarak uygular. /subagents kill <id>belirli bir alt ajanı durdurur ve çocuklarına kademeli olarak uygular.
Sınırlamalar
- Alt ajan duyurusu en iyi çaba esaslıdır. Gateway yeniden başlatılırsa bekleyen "geri duyur" işi kaybolur.
- Alt ajanlar yine aynı Gateway süreç kaynaklarını paylaşır;
maxConcurrentdeğerini bir güvenlik vanası olarak değerlendirin. sessions_spawnher zaman engellemesizdir: hemen{ status: "accepted", runId, childSessionKey }döndürür.- Alt ajan bağlamı yalnızca
AGENTS.md+TOOLS.mdenjekte eder (SOUL.md,IDENTITY.md,USER.md,HEARTBEAT.mdveyaBOOTSTRAP.mdyoktur). - Maksimum iç içe geçme derinliği 5'tir (
maxSpawnDeptharalığı: 1–5). Çoğu kullanım durumu için derinlik 2 önerilir. maxChildrenPerAgent, oturum başına etkin çocukları sınırlar (varsayılan5, aralık1–20).