Agent coordination
Alt ajanlar
Alt ajanlar, mevcut bir ajan çalıştırmasından başlatılan arka plan ajan çalıştırmalarıdır.
Her biri kendi oturumunda (agent:<agentId>:subagent:<uuid>) çalışır ve
tamamlandığında sonucunu istekte bulunan sohbet kanalına duyurur.
Her alt ajan çalıştırması bir arka plan görevi olarak izlenir.
Hedefler:
- Araştırmaları, uzun görevleri ve yavaş araç çalışmalarını ana çalıştırmayı engellemeden paralelleştirmek.
- Alt ajanları varsayılan olarak yalıtılmış tutmak (oturum ayrımı, isteğe bağlı korumalı alan kullanımı).
- Araç yüzeyinin kötüye kullanımını zorlaştırmak: alt ajanlar varsayılan olarak oturum veya mesaj araçlarına erişemez.
- Orkestratör kalıpları için yapılandırılabilir iç içe geçme derinliğini desteklemek.
Eğik çizgi komutu
/subagents, geçerli oturumdaki alt ajan çalıştırmalarını inceler:
/subagents list/subagents log <id|#> [limit] [tools]/subagents info <id|#>/subagents info, çalıştırma meta verilerini (durum, zaman damgaları, oturum kimliği,
konuşma dökümü yolu, temizlik) gösterir. /subagents log, bir çalıştırmanın son
sohbet turlarını yazdırır; araç çağrısı/sonuç mesajlarını (varsayılan olarak
atlanır) dahil etmek için tools token'ını ekleyin. Bir ajan turunun içinden
sınırlı ve güvenlik filtresinden geçirilmiş bir geri çağırma görünümü için
sessions_history kullanın veya ham ve eksiksiz konuşma dökümü için diskteki
konuşma dökümü yolunu inceleyin.
Control UI'da, yakın zamanda alt çalıştırmaları bulunan üst oturumların genişletilebilir bir kenar çubuğu satırı vardır. İç içe satırlar alt öğenin durumunu ve çalışma süresini gösterir; bunlardan biri seçildiğinde üst öğe hiyerarşisi korunarak o alt öğenin sohbeti açılır.
İş 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ışı
Ajanlar, sessions_spawn aracıyla arka plan alt ajanlarını başlatır.
Tamamlanmalar, dahili üst oturum olayları olarak döner; üst/istekte bulunan
ajan, kullanıcıya yönelik bir güncellemenin gerekip gerekmediğine karar verir.
Engellemesiz, gönderim tabanlı tamamlanma
sessions_spawnengellemesizdir; hemen bir çalıştırma kimliği döndürür.- Tamamlandığında alt ajan, üst/istekte bulunan oturuma geri bildirimde bulunur.
- Alt öğe sonuçlarına ihtiyaç duyan ajan turları, gerekli işleri başlattıktan sonra
sessions_yieldçağrısı yapmalıdır. Bu, geçerli turu sonlandırır ve tamamlanma olayının modelin görebileceği bir sonraki mesaj olarak gelmesini sağlar. - Tamamlanma gönderim tabanlıdır. Başlatıldıktan sonra, yalnızca bitmesini beklemek amacıyla
/subagents list,sessions_listveyasessions_historyöğelerini döngü içinde yoklamayın; durumu yalnızca hata ayıklarken gerektiğinde kontrol edin. - Alt öğe çıktısı, istekte bulunan ajanın sentezlemesi için bir rapor/kanıttır. Kullanıcı tarafından yazılmış talimat metni değildir ve sistem, geliştirici veya kullanıcı politikasını geçersiz kılamaz.
- Tamamlanma sırasında OpenClaw, duyuru temizleme akışı devam etmeden önce söz konusu alt ajan oturumu tarafından açılan izlenen tarayıcı sekmelerini/süreçlerini elinden geldiğince kapatır.
Tamamlanmanın teslimi
- OpenClaw, tamamlanmaları kararlı bir eşgüçlülük anahtarıyla bir
agentturu üzerinden istekte bulunan oturuma geri iletir. - İstekte bulunan çalıştırma hâlâ etkinse OpenClaw, ikinci bir görünür yanıt yolu başlatmak yerine önce bu çalıştırmayı uyandırmayı/yönlendirmeyi dener.
- Etkin bir istekte bulunan uyandırılamazsa OpenClaw, duyuruyu bırakmak yerine aynı tamamlanma bağlamıyla istekte bulunan ajana devretmeye geri döner.
- Üst öğenin görünür bir kullanıcı güncellemesinin gerekmediğine karar verdiği durumlarda bile başarılı bir üst öğe devri, alt ajan teslimini tamamlar.
- Yerel alt ajanlar mesaj aracına erişemez. Üst/istekte bulunan ajana düz asistan metni döndürürler; insanların görebildiği yanıtların sorumluluğu, üst/istekte bulunan ajanın normal teslim politikasında kalır.
- Doğrudan devir kullanılamazsa teslimat önce kuyruk yönlendirmesine, ardından tamamen vazgeçilmeden önce duyurunun kısa bir üstel geri çekilmeli yeniden denemesine geri döner.
- Teslimat, çözümlenen istekte bulunan rotasını korur: mevcut olduğunda iş parçacığına veya konuşmaya bağlı tamamlanma rotaları önceliklidir. Tamamlanmanın kaynağı yalnızca bir kanal sağlıyorsa OpenClaw, doğrudan teslimatın çalışmaya devam etmesi için eksik hedefi/hesabı istekte bulunan oturumun çözümlenen rotasından (
lastChannel/lastTo/lastAccountId) doldurur.
Tamamlanma devri meta verileri
İstekte bulunan oturuma yapılan tamamlanma devri, çalışma zamanı tarafından oluşturulan dahili bağlamdır (kullanıcı tarafından yazılmış metin değildir) ve şunları içerir:
Result— alt öğenin görünür en sonassistantyanıt metni. Araç/toolResult çıktısı alt öğe sonuçlarına yükseltilmez. Sonlandırıcı biçimde başarısız olan çalıştırmalar, yakalanmış yanıt metnini yeniden kullanmaz.Status—completed; ready for parent review/failed/timed out/unknown.- Kompakt çalışma zamanı/token istatistikleri.
- İstekte bulunan ajana, özgün görevin tamamlanıp tamamlanmadığına karar vermeden önce sonucu doğrulamasını söyleyen bir inceleme talimatı.
- Alt öğe sonucu daha fazla işlem gerektiriyorsa istekte bulunan ajana göreve devam etmesini veya bir takip kaydı oluşturmasını söyleyen takip rehberliği.
- Başka işlem gerekmeyen yol için ham dahili meta verileri iletmeden normal asistan diliyle yazılmış bir son güncelleme talimatı.
Modlar ve ACP çalışma zamanı
--modelve--thinking, söz konusu çalıştırma için varsayılanları geçersiz kılar.- Tamamlanmadan sonra ayrıntıları ve çıktıyı incelemek için
info/logkullanın. - Kalıcı iş parçacığına bağlı oturumlarda
thread: truevemode: "session"ilesessions_spawnkullanın. - İstekte bulunan kanal iş parçacığı bağlamalarını desteklemiyorsa olanaksız bir iş parçacığına bağlı birleşimi yeniden denemek yerine
mode: "run"kullanın. - ACP donanım oturumu oturumlarında (Claude Code, Gemini CLI, OpenCode veya açık Codex ACP/acpx), araç bu çalışma zamanını sunduğunda
runtime: "acp"ilesessions_spawnkullanın. Tamamlanmalarda veya ajanlar arası döngülerde hata ayıklarken ACP teslim modeli bölümüne bakın.codexPlugin'i etkinleştirildiğinde, kullanıcı açıkça ACP/acpx istemediği sürece 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'i yüklenene kadarruntime: "acp"öğesini gizler.runtime: "acp", harici bir ACP donanım oturumu kimliği veyaruntime.type="acp"içeren biragents.entries.*girdisi bekler;agents_listkaynaklı normal OpenClaw yapılandırma ajanları için varsayılan alt ajan çalışma zamanını kullanın.
Bağlam modları
Yerel alt ajanlar, çağıran taraf geçerli konuşma dökümünün dallandırılmasını açıkça istemediği sürece yalıtılmış olarak başlar.
| Mod | Ne zaman kullanılmalı | Davranış |
|---|---|---|
isolated |
Yeni araştırma, bağımsız uygulama, yavaş araç çalışması veya görev metninde açıklanabilecek herhangi bir iş | Temiz bir alt konuşma dökümü oluşturur. Bu varsayılandır ve token kullanımını daha düşük tutar. |
fork |
Geçerli konuşmaya, önceki araç sonuçlarına veya istekte bulunanın konuşma dökümünde zaten bulunan incelikli talimatlara bağlı işler | Alt öğe başlamadan önce istekte bulunanın konuşma dökümünü alt oturuma dallandırır. |
fork öğesini ölçülü kullanın. Bu, bağlama duyarlı yetkilendirme içindir;
açık bir görev istemi yazmanın yerine geçmez.
Araç: sessions_spawn
Global subagent şeridinde 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ın
sohbet kanalına gönderir.
Kullanılabilirlik, çağıran tarafın geçerli araç politikasına bağlıdır. Yerleşik
coding ve messaging profilleri sessions_spawn,
sessions_yield ve subagents öğelerini içerir; minimal içermez. full tüm
araçlara izin verir. Çalışmaları yetkilendirebilmesi gereken, özel ve daha dar
bir profildeki ajan için bu araçları tools.alsoAllow ile ekleyin veya yukarıdaki
profillerden birini kullanın.
Kanal/grup, sağlayıcı, korumalı alan ve ajan başına izin verme/reddetme politikaları,
profil aşamasından sonra da aracı kaldırabilir. Geçerli araç listesini doğrulamak
için aynı oturumdan /tools kullanın.
Varsayılanlar:
- Model:
agents.defaults.subagents.model(veya ajan başınaagents.entries.*.subagents.model) ayarlamadığınız sürece yerel alt ajanlar çağıran tarafın modelini devralır. ACP çalışma zamanı başlatmaları, yapılandırılmış alt ajan modeli mevcut olduğunda aynı modeli kullanır; aksi takdirde ACP donanım oturumu kendi varsayılanını korur. Açık birsessions_spawn.modelyine önceliklidir. - Düşünme:
agents.defaults.subagents.thinking(veya ajan başınaagents.entries.*.subagents.thinking) ayarlamadığınız sürece yerel alt ajanlar çağıran tarafın ayarını devralır. ACP çalışma zamanı başlatmaları da seçilen model içinagents.defaults.models["provider/model"].params.thinkinguygular. Açık birsessions_spawn.thinkingyine önceliklidir. - Çalıştırma zaman aşımı: OpenClaw, ayarlandığında
agents.defaults.subagents.runTimeoutSecondskullanır; aksi takdirde0değerine (zaman aşımı yok) geri döner.sessions_spawn, çağrı başına zaman aşımı geçersiz kılmalarını kabul etmez. - Süreç ömrü: ayrılmış bir OpenClaw alt ajanının kendi çalıştırma yaşam döngüsü vardır. Harici bir CLI arka ucunda oluşturulan arka plan görevi farklıdır: üst CLI alt sürecini paylaşır ve bu üst öğe
agents.defaults.timeoutSecondsdurumuna ulaşırsa durur. - Görev teslimi: yerel alt ajanlar, yetkilendirilen görevi ilk görünür
[Subagent Task]mesajlarında alır. Alt ajan sistem istemi, görevin gizli bir kopyasını değil çalışma zamanı kurallarını ve yönlendirme bağlamını taşır.
Kabul edilen yerel alt ajan başlatmaları, çözümlenen alt model meta verilerini
araç sonucuna dahil eder: resolvedModel uygulanan model başvurusunu,
başvuruda varsa resolvedProvider ise sağlayıcı önekini içerir.
Yetkilendirme istemi modu
agents.defaults.subagents.delegationMode yalnızca istem rehberliğini denetler; araç politikasını değiştirmez veya yetkilendirmeyi zorunlu kılmaz.
suggest(varsayılan): daha büyük veya daha yavaş işler için alt ajan kullanmaya yönelik standart istem yönlendirmesini korur.prefer: ana ajana yanıt vermeye hazır kalmasını ve doğrudan yanıt vermekten daha kapsamlı olan her şeyisessions_spawnaracılığıyla yetkilendirmesini söyler.
Ajan başına geçersiz kılma: agents.entries.*.subagents.delegationMode.
{ agents: { defaults: { subagents: { delegationMode: "prefer", maxConcurrent: 4, }, }, list: [ { id: "coordinator", subagents: { delegationMode: "prefer" }, }, ], },}Araç parametreleri
taskstringrequiredAlt ajanın görev açıklaması.
taskNamestringDaha sonraki durum çıktısında belirli bir alt öğeyi tanımlamak için isteğe bağlı kararlı tanıtıcı. [a-z][a-z0-9_-]{0,63} ile eşleşmelidir ve last veya all gibi ayrılmış bir hedef olamaz.
labelstringİsteğe bağlı, insanlar tarafından okunabilir etiket.
agentIdstringsubagents.allowAgents tarafından izin verildiğinde yapılandırılmış başka bir ajan kimliği altında oluşturur.
cwdstringAlt çalıştırma için isteğe bağlı görev çalışma dizini. Yerel alt ajanlar önyükleme dosyalarını yine hedef ajanın çalışma alanından yükler; cwd yalnızca çalışma zamanı araçlarının ve CLI koşumlarının devredilen işi nerede yaptığını değiştirir.
runtime"subagent" | "acp"default: subagentacp 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.entries.* girdileri içindir.
resumeSessionIdstringYalnızca ACP. runtime: "acp" durumunda mevcut bir ACP koşum oturumunu sürdürür; yerel alt ajan oluşturma işlemlerinde yok sayılır.
streamTo"parent"Yalnızca ACP. runtime: "acp" durumunda ACP çalıştırma çıktısını üst oturuma aktarır; yerel alt ajan oluşturma işlemlerinde atlayın.
modelstringAlt ajan modelini geçersiz kılar. 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ılar. visible: true ile kullanılamaz.
threadbooleandefault: falsetrue olduğunda bu alt ajan oturumu için kanal ileti dizisi bağlaması ister.
mode"run" | "session"default: runthread: true ise ve mode atlanmışsa varsayılan değer session olur. mode: "session", thread: true gerektirir.
İstekte bulunan kanal için ileti dizisi bağlaması kullanılamıyorsa bunun yerine mode: "run" kullanın.
visible: true ile mode değerini atlayın; görünür oturumlar kalıcıdır ve mode: "run" desteklemez.
cleanup"delete" | "keep"default: keep"delete", duyurudan hemen sonra oturumu arşivler (transkripti yeniden adlandırarak yine saklar).
sandbox"inherit" | "require"default: inheritrequire, hedef alt çalışma zamanı korumalı alan içinde değilse oluşturma işlemini reddeder.
context"isolated" | "fork"default: isolatedfork, istekte bulunanın mevcut transkriptini alt oturuma dallandırır. Yalnızca yerel alt ajanlar. İletişim dizisine bağlı oluşturma işlemleri varsayılan olarak fork; iletişim dizisine bağlı olmayan oluşturma işlemleri ise isolated kullanır. Görünür bir dal, istekte bulunanla aynı ajanı hedeflemelidir.
visiblebooleandefault: falseKullanıcının Control UI içinde açabileceği kalıcı bir pano oturumu oluşturur. Görünür oluşturma işlemleri yalnızca runtime: "subagent" destekler ve oluşturulan oturumu her zaman saklar.
worktreebooleandefault: falseYeni pano oturumu için yönetilen bir git çalışma ağacı sağlar. visible: true gerektirir.
worktreeNamestringİsteğe bağlı yönetilen çalışma ağacı adı. visible: true ve worktree: true gerektirir.
worktreeBaseRefstringYönetilen çalışma ağacı için isteğe bağlı git temel referansı. visible: true ve worktree: true gerektirir.
visible: true, model, cwd ve aynı ajana ait bir context: "fork" desteklenir. Korumalı alan içindeki bir hedef, cwd değerini o ajanın çalışma alanıyla sınırlar. Görünür oturumlar sessions.create aracılığıyla oluşturulan kalıcı pano oturumları olduğundan ileti dizisi bağlaması, mode, düşünme geçersiz kılmaları, lightContext, attachments ve attachAs bu yolda kullanılamaz. İstekte bulunanın kendisi devralınmış bir araç izin listesi veya engelleme listesiyle oluşturulmuşsa görünür oluşturma reddedilir; bu kısıtlama oluşturma anında sabitlenir ve yapılandırma ile geçersiz kılınamaz. Oturum listeleme ve adresleme tools.sessions.visibility kurallarına uyar; varsayılan tree kapsamı mevcut oturumu ve onun kendi oluşturma alt ağacını kapsar. Kullanıma alma adlandırması, kurulum, temizleme ve geri yükleme davranışı için Yönetilen çalışma ağaçları bölümüne bakın.
Görev adları ve hedefleme
taskName, oturum anahtarı değil, orkestrasyon için modele yönelik bir tanıtıcıdır.
Bir koordinatörün daha sonra ilgili alt öğeyi incelemesi gerekebilecek durumlarda
review_subagents, linux_validation veya docs_update gibi kararlı alt öğe adları için kullanın.
Hedef çözümleme, tam taskName eşleşmelerini ve belirsiz olmayan
önekleri kabul eder. Eşleştirme, numaralı /subagents hedeflerinin kullandığı
aynı etkin/yakın tarihli hedef penceresiyle sınırlandırılır; dolayısıyla eski ve tamamlanmış
bir alt öğe, yeniden kullanılan bir tanıtıcıyı belirsiz hâle getirmez. Etkin veya yakın tarihli
iki alt öğe aynı taskName değerini paylaşıyorsa hedef belirsizdir; bunun yerine
liste dizinini, oturum anahtarını veya çalıştırma kimliğini kullanın.
last ve all ayrılmış hedefleri zaten denetim anlamlarına
sahip olduklarından geçerli taskName değerleri değildir.
Araç: sessions_yield
Mevcut model dönüşünü sonlandırır ve başta alt ajan tamamlanma olayları olmak üzere çalışma zamanı olaylarının bir sonraki ileti olarak gelmesini bekler. İstekte bulunan, gerekli alt iş oluşturulduktan sonra bu işler tamamlanmadan nihai yanıt üretemiyorsa kullanın.
sessions_yield bekleme ilkelidir. Yalnızca alt öğenin tamamlandığını algılamak için
bunu subagents, sessions_list, sessions_history, kabuk
sleep veya süreç yoklama döngüleriyle değiştirmeyin.
sessions_yield aracını yalnızca oturumun etkin araç listesi bu aracı içerdiğinde
kullanın. Bazı asgari veya özel araç profilleri sessions_spawn ve
subagents araçlarını sunarken sessions_yield aracını sunmayabilir; bu durumda
yalnızca tamamlanmayı beklemek için bir yoklama döngüsü uydurmayın.
Etkin alt öğeler mevcut olduğunda OpenClaw, istekte bulunanın yoklama yapmadan
mevcut alt oturumları, çalıştırma kimliklerini, durumları, etiketleri, görevleri ve
taskName diğer adlarını görebilmesi için normal dönüşlere çalışma zamanı tarafından oluşturulan
küçük bir Active Subagents istem bloğu ekler. Bu bloktaki görev ve etiket alanları,
kullanıcı/model tarafından sağlanan oluşturma bağımsız değişkenlerinden gelebilecekleri için
talimat olarak değil, veri olarak tırnak içine alınır.
Araç: subagents
İstekte bulunan oturum ağacının sahip olduğu oluşturulmuş alt ajan çalışmalarını ve arka plan görevi kayıtlarını listeler. Görev satırları yerel alt ajanları, ACP çalışmalarını, Gateway CLI/medya işlerini ve cron yürütmelerini kapsar. Kapsamı mevcut istekte bulunanla sınırlıdır; bir alt öğe yalnızca kendi denetimindeki alt öğeleri görebilir.
İsteğe bağlı durum ve hata ayıklama için subagents kullanın. Tamamlanma olaylarını
beklemek için sessions_yield kullanın.
Bir görevi durdurmak için action: "list" tarafından döndürülen bir taskId ile
action: "cancel" kullanın. İptal işlemi denetlenen oturum ağacıyla sınırlıdır; bir yaprak
alt ajan, başka bir oturumun sahip olduğu işi iptal edemez.
İletişim dizisine bağlı oturumlar
Bir kanal için ileti dizisi bağlamaları etkinleştirildiğinde, bir alt ajan ileti dizisine bağlı kalabilir; böylece bu ileti dizisindeki sonraki kullanıcı iletileri aynı alt ajan oturumuna yönlendirilmeye devam eder.
İletişim dizisini destekleyen kanallar
Bir kanal, konuşma bağlama bağdaştırıcısı kaydettiğinde kalıcı ileti dizisine bağlı
alt ajan oturumlarını (sessions_spawn ile thread: true) destekler.
Bu desteğe sahip paketlenmiş kanallar: Discord, iMessage, Matrix ve
Telegram. Discord ve Matrix varsayılan olarak bir alt ileti dizisi oluşturur;
Telegram ve iMessage varsayılan olarak mevcut konuşmayı bağlar. Etkinleştirme,
zaman aşımları ve spawnSessions için kanal başına threadBindings
yapılandırma anahtarlarını kullanın.
Hızlı akış
Oluştur
thread: true (ve isteğe bağlı olarak mode: "session") ile sessions_spawn.
Bağla
OpenClaw, etkin kanalda o oturum hedefine bir ileti dizisi oluşturur veya bağlar.
Sonraki iletileri yönlendir
Bu ileti dizisindeki yanıtlar ve sonraki iletiler bağlı oturuma yönlendirilir.
Zaman aşımlarını incele
Etkin olmama durumunda odağın otomatik kaldırılmasını incelemek/güncellemek için /session idle,
kesin üst sınırı denetlemek için /session max-age kullanın.
Ayır
El ile ayırmak için /unfocus kullanın.
El ile denetimler
| Komut | Etki |
|---|---|
/focus <target> |
Mevcut ileti dizisini bir alt ajan/oturum hedefine bağlar (veya bir tane oluşturur) |
/unfocus |
Bağlı mevcut ileti dizisinin bağlamasını kaldırır |
/agents |
Etkin çalışmaları ve bağlama durumunu listeler (binding:<id>, unbound veya bindings unavailable) |
/session idle |
Boştayken odağın otomatik kaldırılmasını inceler/günceller (yalnızca odaklanılmış bağlı ileti dizileri) |
/session max-age |
Kesin üst sınırı inceler/günceller (yalnızca odaklanılmış bağlı ileti dizileri) |
Yapılandırma anahtarları
- Genel varsayılan:
session.threadBindings.enabled,session.threadBindings.idleHours,session.threadBindings.maxAgeHours. - Kanal geçersiz kılması ve oluşturma sırasında otomatik bağlama anahtarları bağdaştırıcıya özeldir. Yukarıdaki İletişim dizisini destekleyen kanallar bölümüne bakın.
Güncel bağdaştırıcı ayrıntıları için Yapılandırma referansı ve Eğik çizgi komutları bölümlerine bakın.
İzin listesi
agents.entries.*.subagents.allowAgentsstring[]Açık agentId aracılığıyla hedeflenebilecek yapılandırılmış ajan kimliklerinin listesi (["*"], yapılandırılmış tüm hedeflere izin verir). Varsayılan: yalnızca istekte bulunan ajan. Bir liste ayarlayıp istekte bulunanın agentId ile kendisini oluşturabilmesini de istiyorsanız istekte bulunanın kimliğini listeye ekleyin.
agents.defaults.subagents.allowAgentsstring[]İstekte bulunan ajan kendi subagents.allowAgents değerini ayarlamadığında kullanılan, yapılandırılmış varsayılan hedef ajan izin listesi.
agents.defaults.subagents.requireAgentIdbooleandefault: falseagentId değerini atlayan sessions_spawn çağrılarını engeller (açık profil seçimini zorunlu kılar). Ajan başına geçersiz kılma: agents.entries.*.subagents.requireAgentId.
agents.defaults.subagents.announceTimeoutMsnumberdefault: 120000Gateway agent duyuru teslimatı denemeleri için çağrı başına zaman aşımı. Değerler pozitif tam sayı milisaniyelerdir ve platformun güvenli zamanlayıcı üst sınırına sıkıştırılır. Geçici yeniden denemeler, toplam duyuru bekleme süresini yapılandırılmış tek bir zaman aşımından daha uzun hâle getirebilir.
İstekte bulunan oturum korumalı alan içindeyse sessions_spawn,
korumalı alan dışında çalışacak hedefleri reddeder.
Keşif
Geçerli olarak hangi ajan kimliklerine izin verildiğini görmek için agents_list kullanın:
sessions_spawn. Yanıt, çağıranların OpenClaw, Codex
app-server ve yapılandırılmış diğer 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.
allowAgents girdileri, agents.entries.* içinde yapılandırılmış ajan kimliklerini göstermelidir.
["*"], yapılandırılmış herhangi bir hedef ajan ile istekte bulunan anlamına gelir. Bir ajan yapılandırması
silinir ancak kimliği allowAgents içinde kalırsa, sessions_spawn bu kimliği reddeder
ve agents_list bunu dahil etmez. Eski izin listesi girdilerini temizlemek için
openclaw doctor --fix çalıştırın veya hedefin varsayılanları devralırken
oluşturulabilir kalması gerekiyorsa asgari bir agents.entries.* girdisi ekleyin.
Otomatik arşivleme
- Alt ajan oturumları,
agents.defaults.subagents.archiveAfterMinutessonrasında (varsayılan60) otomatik olarak arşivlenir. - Arşivleme,
sessions.deletekullanır ve dökümün adını*.deleted.<timestamp>olarak değiştirir (aynı klasörde). cleanup: "delete", duyurudan hemen sonra arşivler (dökümü yeniden adlandırarak korumaya devam eder).- Otomatik arşivleme azami gayret esasına dayanır; Gateway yeniden başlatılırsa bekleyen zamanlayıcılar kaybolur.
- Yapılandırılmış çalışma zaman aşımı süreleri otomatik arşivleme yapmaz; yalnızca çalışmayı durdurur. Oturum, otomatik arşivlemeye kadar kalır.
- Otomatik arşivleme, derinlik 1 ve derinlik 2 oturumlarına eşit biçimde uygulanır.
- Tarayıcı temizliği, arşiv temizliğinden ayrıdır: döküm/oturum kaydı korunsa bile çalışma tamamlandığında izlenen tarayıcı sekmeleri/süreçleri azami gayretle 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 ayarını kullanı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, range 1-5) maxChildrenPerAgent: 5, // max active children per agent session (default: 5, range 1-20) maxConcurrent: 8, // global concurrency lane cap (default: 8) runTimeoutSeconds: 900, // default timeout for sessions_spawn (0 = no timeout) announceTimeoutMs: 120000, // per-call gateway announce 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'ye izin verildiğinde orkestratör) | Yalnızca maxSpawnDepth >= 2 ise |
| 2 | agent:<id>:subagent:<uuid>:subagent:<uuid> |
Alt-alt ajan (uç çalışan) | Asla |
Duyuru zinciri
Sonuçlar zincirde geriye doğru akar:
- Derinlik 2 çalışanı tamamlanır → üst öğesine (derinlik 1 orkestratörü) duyurur.
- Derinlik 1 orkestratörü duyuruyu alır, sonuçları sentezler, tamamlanır → ana ajana duyurur.
- Ana ajan duyuruyu alır ve kullanıcıya iletir.
Her düzey yalnızca doğrudan alt öğelerinden gelen duyuruları görür.
Derinliğe göre araç politikası
- Bir alt öğe oluşturulduğunda istekte bulunanın etkin gönderici politikasını yakalar. Göndericisiz alt öğe çalışmaları ve kimliği doğrulanmış operatör devam ettirmeleri,
toolsBySenderdaha sonra değişse bile bu anlık görüntüyü korur; geçerli genel, ajan, sağlayıcı, korumalı alan ve alt ajan kısıtlamaları uygulanmaya devam eder. Alt öğeyi hedefleyen yeni bir harici kanal etkileşimi ise geçerli gönderici politikasını yeniden çözümler. - Rol ve denetim kapsamı, oluşturma sırasında oturum meta verilerine yazılır. Bu, düzleştirilmiş 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): alt öğeler oluşturabilmesi ve durumlarını inceleyebilmesi içinsessions_spawn,subagents,sessions_list,sessions_historyaraçlarını alır. Diğer oturum/sistem araçları reddedilmeye devam eder. - 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. Başka alt öğeler oluşturamaz.
Ajan başına oluşturma sınırı
Her ajan oturumu (herhangi bir derinlikte) aynı anda en fazla maxChildrenPerAgent
(varsayılan 5) etkin alt öğeye sahip olabilir. Bu, tek bir orkestratörden
denetimsiz dallanmayı önler.
Basamaklı durdurma
Derinlik 1 orkestratörünün durdurulması, tüm derinlik 2 alt öğelerini otomatik olarak durdurur:
- Ana sohbetteki
/stop, tüm derinlik 1 ajanlarını durdurur ve durdurmayı bunların derinlik 2 alt öğelerine yayar.
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, ilgili ajanın
agentDirkonumundan yüklenir. - Ana ajanın kimlik doğrulama profilleri bir geri dönüş seçeneği olarak birleştirilir; çakışmalarda ajan profilleri ana profilleri geçersiz kılar.
Birleştirme eklemelidir; bu nedenle ana profiller her zaman geri dönüş seçenekleri olarak kullanılabilir. Ajan başına tamamen yalıtılmış kimlik doğrulama henüz desteklenmemektedir.
Duyuru
Alt ajanlar bir duyuru adımı aracılığıyla geri bildirimde bulunur:
- Duyuru adımı, istekte bulunanın oturumunda değil alt ajan oturumunda çalışır.
- Alt ajan tam olarak
ANNOUNCE_SKIPyanıtını verirse hiçbir şey gönderilmez. - En son asistan metni tam olarak
NO_REPLY/no_replysessiz belirteciyse, daha önce görünür ilerleme olsa bile duyuru çıktısı engellenir.
Teslimat, 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 alt öğe sonuçlarını oturum içinde sentezleyebilmesi için dahili bir takip eklemesi (
deliver=false) alır. - İç içe istekte bulunan alt ajan oturumu artık yoksa OpenClaw, mevcut olduğunda ilgili oturumun istekte bulunanına geri döner.
Üst düzey istekte bulunan oturumlarında, tamamlanma modundaki doğrudan teslimat önce bağlı konuşma/ileti dizisi rotasını ve kanca geçersiz kılmasını çözümler, ardından eksik kanal-hedef alanlarını istekte bulunan oturumunun kayıtlı rotasından doldurur. Bu, tamamlanmanın kaynağı yalnızca kanalı tanımlasa bile tamamlanmaların doğru sohbet/konu üzerinde kalmasını sağlar.
İç içe tamamlanma bulguları oluşturulurken alt öğe tamamlanmalarının birleştirilmesi geçerli istekte bulunan çalışmasıyla sınırlandırılır; böylece önceki çalışmalardan kalan eski alt öğe çıktılarının geçerli duyuruya sızması önlenir. Duyuru yanıtları, kanal bağdaştırıcılarında mevcut olduğunda ileti dizisi/konu 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 | Alt öğe oturum anahtarı/kimliği |
| Tür | Duyuru türü + görev etiketi |
| Durum | Çalışma zamanı sonucundan türetilir (ok, error, timeout veya unknown) — model metninden çıkarım yapılmaz |
| Sonuç içeriği | Alt öğenin en son görünür asistan metni |
| Takip | Ne zaman yanıt verileceğini veya sessiz kalınacağını açıklayan talimat |
Başarısız sonlandırılmış çalışmalar, yakalanan yanıt metnini yeniden oynatmadan başarısızlık durumunu bildirir. Araç/araçSonucu çıktısı, alt öğe sonuç metnine yükseltilmez.
İstatistik satırı
Duyuru yükleri, sonunda bir istatistik satırı içerir (sarmalanmış olsalar bile):
- Çalışma zamanı (ör.
runtime 5m12s). - Belirteç kullanımı (girdi/çıktı/toplam).
- Model fiyatlandırması yapılandırıldığında tahmini maliyet (
models.providers.*.models[].cost). - Ana ajanın
sessions_historyaracılığıyla geçmişi getirebilmesi veya diskteki dosyayı inceleyebilmesi içinsessionKey,sessionIdve döküm yolu.
Dahili meta veriler yalnızca orkestrasyon içindir; kullanıcıya yönelik yanıtlar normal asistan üslubuyla yeniden yazılmalıdır.
Neden sessions_history tercih edilmeli?
sessions_history, bir ajan etkileşimi içinden alt öğenin
dökümünü okumak için daha güvenli orkestrasyon yoludur:
- Genel amaçlı günlük redaksiyonu devre dışı olsa bile kimlik bilgisi/belirteç benzeri metni redakte eder.
- Uzun metin bloklarını kısaltır (blok başına 4000 karakter) ve düşünme imzalarını, akıl yürütme yeniden oynatma yüklerini ve satır içi görüntü verilerini çıkarır.
- 80 KB yanıt sınırı uygular; aşırı büyük satırlar
[sessions_history omitted: message too large]ile değiştirilir. - Mevcut olduğunda eski döküm pencerelerinde geriye doğru sayfalama yapmak için
nextOffsetkullanın. sessions_history, ileti metninden akıl yürütme etiketlerini,<relevant-memories>iskeletini veya araç çağrısı XML'ini çıkarmaz — yalnızca redakte edilmiş ve boyutu sınırlandırılmış şekilde, ham döküm biçimine yakın yapılandırılmış içerik blokları döndürür./subagents log, yapılandırılmış bloklar yerine düz sohbet satırları oluşturduğu için daha kapsamlı düzyazı temizleyicisini uygular (akıl yürütme etiketlerini, bellek iskeletini ve araç çağrısı XML'ini çıkarır).- Bayt bayt tam döküme ihtiyacınız olduğunda, diskteki ham dökümün incelenmesi geri dönüş seçeneğidir.
Araç politikası
Alt ajanlar önce üst veya hedef ajanla aynı profili ve araç politikası işlem hattını kullanır. Ardından OpenClaw, alt ajan kısıtlama katmanını uygular.
Alt ajanlar, derinlik veya rolden bağımsız olarak gateway, agents_list, session_status ve
cron araçlarını her zaman kaybeder (sistem düzeyindeki/etkileşimli araçlar veya
ana ajanın koordine etmesi gereken araçlar). Uç alt ajanlar (varsayılan derinlik 1
davranışı ve her zaman derinlik 2'de) ayrıca subagents,
sessions_list, sessions_history ve sessions_spawn araçlarını kaybeder. Alt ajanlar hiçbir zaman
message aracını almaz — bu araç, bu ret listesiyle filtrelenmek yerine oluşturma sırasında
devre dışı bırakılır — ve alt ajanların yalnızca duyuru zinciri üzerinden
iletişim kurması için sessions_send reddedilmeye devam eder.
sessions_history burada da sınırlandırılmış, temizlenmiş bir anımsama görünümü olarak kalır —
ham bir döküm çıktısı değildir.
maxSpawnDepth >= 2 olduğunda, derinlik 1 orkestratör alt ajanları alt öğelerini
yönetebilmeleri için ayrıca sessions_spawn, subagents, sessions_list ve
sessions_history araçlarını alır.
Yapılandırma aracılığıyla geçersiz kılma
{ agents: { defaults: { subagents: { maxConcurrent: 1, }, }, }, tools: { subagents: { tools: { // deny önceliklidir deny: ["gateway", "cron"], // allow ayarlanırsa yalnızca izin verilenlere dönüşür (deny yine önceliklidir) // allow: ["read", "exec", "process"] }, }, },}tools.subagents.tools.allow son bir yalnızca izin verilenler filtresidir. Önceden çözümlenmiş
araç kümesini daraltabilir ancak tools.profile tarafından kaldırılan bir aracı
geri ekleyemez. Örneğin, tools.profile: "coding"
web_search/web_fetch öğelerini içerir ancak browser aracını içermez.
Kodlama profilli alt aracıların tarayıcı otomasyonu kullanabilmesi için tarayıcıyı
profil aşamasında ekleyin:
{ tools: { profile: "coding", alsoAllow: ["browser"], },}Yalnızca tek bir aracının tarayıcı otomasyonuna erişmesi gerekiyorsa aracı başına
agents.entries.*.tools.alsoAllow: ["browser"] kullanın.
Eşzamanlılık
Alt aracılar, özel bir işlem 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 bulunmamasını bir
alt aracının hâlâ çalıştığına dair kalıcı kanıt olarak değerlendirmez. Eski çalıştırma penceresinden
(2 saat veya yapılandırılmış çalıştırma zaman aşımı ile kısa bir ek sürenin toplamından
hangisi daha uzunsa) daha eski, sonlandırılmamış çalıştırmalar; /subagents list,
durum özetleri, alt öğe tamamlanma denetimi ve oturum başına
eşzamanlılık kontrollerinde etkin/beklemede olarak sayılmaz.
Gateway yeniden başlatıldıktan sonra, eski ve sonlandırılmamış geri yüklenmiş çalıştırmalar,
bunların alt oturumu abortedLastRun: true olarak işaretlenmemişse temizlenir. Yeniden başlatma nedeniyle
iptal edilen çalıştırmalar, alt aracı yetim kurtarma akışına kayıtlı kalır: eski
çalıştırmalar devam ettirilmeden sonlandırılırken yeni alt oturumlar, iptal işareti
temizlenmeden önce yapay bir devam ettirme mesajı alır.
Otomatik yeniden başlatma kurtarması, alt oturum başına sınırlıdır. Aynı
alt aracı alt öğesi, hızlı yeniden kilitlenme penceresi içinde yetim kurtarma için
tekrar tekrar kabul edilirse OpenClaw bu oturumda bir kurtarma mezar taşı kalıcılaştırır
ve sonraki yeniden başlatmalarda oturumu otomatik olarak devam ettirmeyi durdurur. Görev
kaydını uzlaştırmak için openclaw tasks maintenance --apply komutunu veya mezar taşı bulunan oturumlardaki
eski iptal edilmiş kurtarma işaretlerini temizlemek için
openclaw doctor --fix komutunu çalıştırın.
Durdurma
- İstekte bulunan sohbette
/stopgöndermek, istekte bulunan oturumu iptal eder ve buradan başlatılan tüm etkin alt aracı çalıştırmalarını durdurarak bu işlemi iç içe alt öğelere yayar.
Sınırlamalar
- Alt aracı duyurusu mümkün olan en iyi çabayla gerçekleştirilir. Gateway yeniden başlatılırsa bekleyen "geri duyurma" işi kaybolur.
- Alt aracılar yine aynı Gateway işlemi kaynaklarını paylaşır;
maxConcurrentöğesini bir güvenlik valfi olarak değerlendirin. sessions_spawnher zaman engellemesizdir:{ status: "accepted", runId, childSessionKey }değerini hemen döndürür.- Alt aracı bağlamı yalnızca
AGENTS.mdveTOOLS.mdöğelerini ekler (SOUL.md,IDENTITY.md,USER.md,MEMORY.md,HEARTBEAT.mdveyaBOOTSTRAP.mdeklenmez). Codex'e özgü alt aracılar aynı sınırı izler:TOOLS.mddevralınan Codex iş parçacığı talimatlarında kalırken yalnızca üst öğeye ait persona, kimlik ve kullanıcı dosyaları, alt öğelerin bunları kopyalamaması için tur kapsamlı iş birliği talimatları olarak eklenir. - En fazla iç içe geçme derinliği 5'tir (
maxSpawnDeptharalığı: 1-5). Çoğu kullanım durumu için 2 derinliği önerilir. maxChildrenPerAgent, oturum başına etkin alt öğeleri sınırlar (varsayılan5, aralık1-20).