Skip to main content
Swarm, bir Code Mode betiğinden çok sayıda alt aracıyı düzenlemek için deneysel ve isteğe bağlı bir yöntemdir. Çalışmaları dağıtmak, sonuçları toplamak ve kararlar almak için Promise.all, while ve if gibi normal JavaScript veya TypeScript kontrol akışlarını kullanın. Graf DSL’si veya ayrı bir iş akışı biçimi yoktur. Düzenleme programın kendisidir. Swarm bu programa beklenebilir toplayıcı alt öğeler, yapılandırılmış sonuçlar, sınırlı eşzamanlılık ve ilerleme raporlaması ekler.

Swarm’ı etkinleştirme

Önerilen yol, Control UI içindeki Ayarlar → Laboratuvarlar → Swarm seçeneğidir. Anahtar hemen etkinleşir ve yapılandırmanıza tools.swarm.enabled yazar. Swarm’ı doğrudan openclaw.json içinde de etkinleştirebilirsiniz:
Boole kısaltması, diğer tüm değerler varsayılanlarında kalacak şekilde özelliği etkinleştirir veya devre dışı bırakır:
Sayısal değerler pozitif tam sayılar olmalıdır. OpenClaw, maxConcurrent değerini 11000, maxChildrenPerGroup değerini 110000, maxTotalPerGroup değerini 1100000 ve waitTimeoutSecondsMax değerini 186400 aralıklarıyla sınırlar. Yapılandırılmış tek bir aracı için Swarm’ı agents.entries.*.tools.swarm ile geçersiz kılabilirsiniz. Aracıya özgü nesne, üst düzey tools.swarm nesnesinin üzerine birleştirilir.

Gereksinimler

agents.run, phase ve log konuk global değişkenleri hem Swarm’ı hem de OpenClaw Code Mode’u gerektirir:
Code Mode’un ayrıca sessions_spawn için etkin erişimi olmalıdır. Araç profilleri, izin verme/reddetme politikası, sağlayıcı kuralları ve korumalı alan politikası bu aracı kaldırabilir. Bir betik sessions_spawn kullanılamıyor şeklinde bildirimde bulunursa Code Mode etkinleştirmesi ve Alt aracılar bölümlerine bakın. defaultAgentId ve çalıştırma başına agentId değerleri, istekte bulunanın subagents.allowAgents politikasının izin verdiği yapılandırılmış bir hedefi adlandırmalıdır. OpenClaw, başka bir aracıya geri dönmek yerine bilinmeyen veya izin verilmeyen bir hedefi reddeder.

Swarm betiği yazma

Swarm etkinleştirildiğinde Code Mode şu konuk API’sini kullanıma sunar:
schema olmadan agents.run(), alt öğenin nihai metnine çözümlenir. JSON Schema ile alt öğenin structured_output aracı üzerinden gönderdiği değere çözümlenir. Başarısız olan, sonlandırılan, zaman aşımına uğrayan veya şemaya uymayan bir alt öğe, promise’i bir SwarmAgentError ile reddeder. Tam olarak oluşturulan bildirimleri ve kısa düzenleme kalıplarını Code Mode içindeki API.read("agents.d.ts") kaynağından okuyun. Kontrol panelinde ve kenar çubuğunda tanınabilir bir alt öğe adı için label kullanın. Alt öğe başlamadan hemen önce bir aşama yayımlamak için seçeneklerde phase kullanın veya birkaç alt öğe aynı aşamaya aitse phase() çağrısını yapın. log() kısa bir ilerleme notu yayımlar. İlerleme çağrıları başlatılıp unutulur; kullanıcı arayüzü kullanılamıyorsa betiği geciktirmezler.

Yapılandırılmış sonuçlarla paralel dağıtma

Bu örnek, her konu için bir araştırmacı başlatır, hepsini bekler ve ardından son bir alt öğeden yapılandırılmış raporlarını sentezlemesini ister:
Promise.all, dağıtma ve birleştirme sınırıdır. OpenClaw grup için en fazla maxConcurrent alt öğe başlatır ve kalanları gönderim sırasıyla kuyruğa alır. Code Mode, eşzamanlı konuk köprüsü çağrılarını ayrıca tools.codeMode.maxPendingToolCalls ile sınırlar (varsayılan 16, azami 128). Çok büyük gruplarda, bu sınırın altında kalan sınırlı toplu işlemler başlatın ve phase(), log() ve alt öğe bekleme geçişleri için boşluk bırakın. maxConcurrent çalışan alt öğeleri sınırlar; konuk köprüsü çağrı sınırını yükseltmez.

Karar kapısında döngü oluşturma

Her geçişin başka bir geçiş gerekip gerekmediğine karar verdiği durumlarda sınırlı bir while döngüsü kullanın:
Karar döngülerini her zaman sınırlayın. maxTotalPerGroup nihai güvenlik önlemidir; açık bir durma koşulunun yerine geçmez.

İlk tamamlanan alt öğeyi işleme

agents.run() sıradan bir promise döndürdüğü için Promise.race ilk Code Mode alt öğesine tepki verebilir. Daha düşük düzeyli araçları çağıran test düzeneklerinde agents_wait aynı ilk tamamlanma sınırını sağlar: istenen çalıştırmalardan en az biri tamamlanır tamamlanmaz veya sınırlı zaman aşımı sona erdiğinde döner. Tam boşaltma döngüsü için Swarm’ı diğer test düzeneklerinden kullanma bölümüne bakın.

Toplayıcı alt öğelerin davranışı

Toplayıcı alt öğeler, farklı bir tamamlanma yoluna sahip sıradan ve yalıtılmış alt aracı oturumlarıdır. Ana oturuma yanıt duyurmak veya yönlendirmek yerine, üst öğenin beklemesi için kalıcı bir toplayıcı sonucu yazarlar. Hedef aracı şu sırayla çözümlenir:
  1. Başlatma veya agents.run() çağrısındaki agentId.
  2. tools.swarm.defaultAgentId.
  3. İstekte bulunan aracı.
Swarm alt öğelerinin daha küçük bir araç yüzeyine, daha ucuz bir modele veya daha sıkı bir korumalı alan politikasına ihtiyaç duyduğu durumlarda özel, yalın bir çalışan aracı yararlıdır. OpenClaw yerleşik bir worker aracı kimliğiyle gelmez; bunu varsayılan olarak adlandırmadan önce yapılandırın. Bu çalışanı, başlatılabilmesi ancak kendi üst düzey oturumlarından swarm başlatamaması için aracıya özgü yapılandırmasında tools.swarm: false ile sıkılaştırın:
Toplayıcı onayları güvenli biçimde başarısız olur. Bir alt öğe hiçbir zaman operatör onay istemi açmaz. Onay gerektirecek bir araç eylemi reddedilir ve alt öğe bu reddi sonucunda bildirebilir; böylece betik bir sonraki adımda ne yapılacağına karar verebilir. OpenClaw, yapılandırılmış çıktı için alt öğeye sentetik bir structured_output aracı ekler ve yükünü sağlanan JSON Schema’ya göre doğrular. Geçersiz veya eksik bir yük için bir düzeltme uyarısı verilir. Yeniden deneme de doğrulanmazsa toplayıcı tamamlanması alt öğenin ham metnini korur, structured değerini ayarlamadan bırakır ve schemaError içerir. Düşük düzeyli agents_wait sonucu, açık kurtarma mantığı için bu alanları kullanıma sunar.

Alt öğeler yapraktır

Swarm alt öğeleri varsayılan olarak yapraktır. Evrensel agents.defaults.subagents.maxSpawnDepth koruması, bir alt öğenin varsayılan 1 derinliğinde kendi alt öğelerini başlatmasını önler. Olağan düzenleme kalıbı, bir alt öğeden daha fazla çalışma başlatmak değil, çalışmayı üst öğeye döndürmektir:
İç içe alt aracılar, agents.defaults.subagents.maxSpawnDepth üzerinden operatörün isteğe bağlı olarak etkinleştirdiği bir özelliktir ve Swarm için önerilmez. Grup sınırları, bütçeler ve gözlemlenebilirlik düz toplayıcı grupları varsayar. Her alt öğenin bir kabul sahibi vardır. Duyuru ve etkileşimli alt öğeler agents.defaults.subagents.maxChildrenPerAgent (varsayılan 5) kullanır ve toplayıcı alt öğeleri saymaz. Toplayıcı alt öğeler yalnızca maxChildrenPerGroup ve maxTotalPerGroup kullanır; oturum başına alt öğe bütçesini tüketmezler. Başlatma derinliği koruması her iki mod için de geçerlidir. Kabulden sonra maxConcurrent üzerindeki alt öğeler, global alt aracı şeridinin içinde kendi swarm grupları dâhilinde FIFO sırasıyla kuyruğa girer. Bu eşzamanlılık katmanları çalışmayı reddetmek yerine kuyruğa alır. Grup sınırlarından herhangi birini aşan bir toplayıcı başlatma işlemi, hatadaki ilgili yapılandırma anahtarıyla reddedilir.

Swarm’ı gözlemleme

Bir swarm etkinken üst oturumun kontrol panelini Control UI içinde açın. Swarm pencere öğesi, her etkin toplayıcı grubunu alt öğe başına bir nokta olarak; kuyrukta, çalışıyor, tamamlandı veya başarısız durumuyla görüntüler. Etiketler nokta araç ipuçlarında görünür; bu nedenle kısa ve kararlı etiketler daha büyük swarm’ların okunmasını kolaylaştırır. Oturum kenar çubuğu normal üst/alt öğe ağacını korur. Swarm hiyerarşisini kaybetmeden bir toplayıcı alt öğeyi incelemek veya dökümünü açmak için üst öğe satırını genişletin. Toplayıcı sonuçları, grupları arşivlenene kadar beklenebilir durumda kalır. Her üye saklama süresinin sonuna ulaştıktan sonra OpenClaw, tamamlanmış sürülerin canlı oturum ağacında kalmaması için grubun alt öğelerini toplu olarak arşivler.

Swarm’ı diğer yürütme ortamlarından kullanma

Swarm’ı OpenClaw Code Mode olmadan kullanabilirsiniz. Temel araçları yürütme ortamından bağımsızdır: toplayıcı alt öğelerini sessions_spawn({ collect: true }) ile başlatın ve sınırlı agents_wait çağrılarıyla sonuçlarını alın. Codex Code Mode, uygun dinamik OpenClaw araçlarını otomatik olarak tools.* altında kullanıma sunar. OpenClaw’ın QuickJS konuk API’sini kullanmaz veya tools.codeMode gerektirmez; ancak tools.swarm yine de etkinleştirilmiş olmalıdır. Codex yürütme ortamının agents_wait çağrıları 600 saniyelik zaman aşımının tamamını destekler. Şu anda desteklenen Codex çalışma zamanında, dinamik OpenClaw araç sonuçları Code Mode’a JSON metni olarak ulaşır. Alanları okumadan önce her sonucu ayrıştırın. Codex ayrıca dinamik araç çağrılarını seri hâle getirir; bu nedenle Promise.all, birden fazla sessions_spawn çağrısını eşzamanlı olarak göndermez. Toplayıcıları sınırlı bir döngüde başlatın; daha sonraki başlatmalar gönderilirken önceden kabul edilmiş alt öğeler çalışmaya devam edebilir.
Her agents_wait çağrısı 1–1000 çalıştırma kimliği kabul eder. Şunu döndürür:
İstenen alt öğelerden herhangi biri zaten tamamlanmışsa, bekleyen alt öğelerden en az biri tamamlandığında, geçerli bekleyen kimlik kalmadığında veya zaman aşımı dolduğunda çağrı hemen döner. Tamamlanmış kayıtlar idempotenttir; dolayısıyla zaten tamamlanmış bir çalıştırma kimliğini geçirmek, sonucunu yeniden döndürür. Yalnızca başlatan oturum veya onun yetkilendirilmiş üst zinciri bir toplayıcıyı bekleyebilir. Bu, yoğun bir durum döngüsü değil, sınırlı uzun yoklamadır. pending boşalana kadar yalnızca kalan çalıştırma kimliklerini geçirmeye devam edin. Toplayıcı modu, yerel OpenClaw alt ajanlarını destekler; ACP çalışma zamanını, iş parçacığı bağlamayı, görünür oturumları veya kalıcı oturum modunu desteklemez.

Sınırlar ve yol haritası

Swarm v1, tek seferlik toplayıcı alt öğeleri çalıştırır; planlanan agents.session() API’si durum bilgisi taşıyan çok turlu çalışanlar ekleyecektir. Alt öğeler şu anda yerel Gateway’in alt ajan hattında çalışır; bulut yerleşimi, açık bir başlatma seçeneği olarak planlanmaktadır. Kaydedilmiş iş akışı tanımları ve bir grafik DSL’si, Swarm’ın mevcut yöneliminin parçası değildir.

İlgili