Komut Kuyruğu (2026-01-16)
Birden fazla agent çalıştırmasının çakışmasını önlemek için gelen otomatik yanıt çalıştırmalarını (tüm kanallar) küçük bir süreç içi kuyruk üzerinden serileştiriyoruz; bununla birlikte oturumlar arasında güvenli paralelliğe yine izin veriyoruz.Neden
- Otomatik yanıt çalıştırmaları maliyetli olabilir (LLM çağrıları) ve birden fazla gelen mesaj birbirine yakın zamanda ulaştığında çakışabilir.
- Serileştirme, paylaşılan kaynaklar (oturum dosyaları, günlükler, CLI stdin) için rekabeti önler ve yukarı akış hız sınırları olasılığını azaltır.
Nasıl çalışır
- Şerit farkındalıklı bir FIFO kuyruğu, her şeridi yapılandırılabilir bir eşzamanlılık sınırıyla boşaltır (yapılandırılmamış şeritler için varsayılan 1;
mainvarsayılanı 4,subagentvarsayılanı 8). runEmbeddedPiAgent, oturum başına yalnızca bir etkin çalıştırmayı garanti etmek için oturum anahtarına göre kuyruğa alır (şeritsession:<key>).- Ardından her oturum çalıştırması, genel paralelliğin
agents.defaults.maxConcurrentile sınırlandırılması için global bir şeride (varsayılan olarakmain) alınır. - Ayrıntılı günlükleme etkin olduğunda, kuyruğa alınan çalıştırmalar başlamadan önce yaklaşık 2 saniyeden fazla beklediyse kısa bir bildirim yayar.
- Yazıyor göstergeleri, sıramızı beklerken kullanıcı deneyimi değişmesin diye, kuyruğa alma anında da hemen tetiklenir (kanal destekliyorsa).
Kuyruk modları (kanal başına)
Gelen mesajlar geçerli çalıştırmayı yönlendirebilir, takip dönüşünü bekleyebilir veya her ikisini de yapabilir:steer: geçerli çalıştırmaya hemen ekle (bir sonraki araç sınırından sonra bekleyen araç çağrılarını iptal eder). Akış yoksafollowupmoduna geri döner.followup: geçerli çalıştırma bittikten sonra bir sonraki agent dönüşü için kuyruğa al.collect: kuyruğa alınan tüm mesajları tek bir takip dönüşünde birleştirir (varsayılan). Mesajlar farklı kanalları/iş parçacıklarını hedefliyorsa yönlendirmeyi korumak için ayrı ayrı boşaltılır.steer-backlog(diğer adıylasteer+backlog): şimdi yönlendir ve mesajı bir takip dönüşü için koru.interrupt(legacy): bu oturum için etkin çalıştırmayı iptal eder, ardından en yeni mesajı çalıştırır.queue(legacy takma adı):steerile aynıdır.
collect/steer tercih edin.
Bağımsız bir komut olarak /queue collect gönderin (oturum başına) veya messages.queue.byChannel.discord: "collect" ayarlayın.
Varsayılanlar (yapılandırmada ayarlanmadığında):
- Tüm yüzeyler →
collect
messages.queue üzerinden genel olarak veya kanal başına yapılandırın:
Kuyruk seçenekleri
Seçeneklerfollowup, collect ve steer-backlog için geçerlidir (steer, followup moduna düştüğünde de geçerlidir):
debounceMs: bir takip dönüşü başlatmadan önce sakinleşmeyi bekler (“continue, continue” durumunu önler).cap: oturum başına kuyruğa alınabilecek en fazla mesaj sayısı.drop: taşma ilkesi (old,new,summarize).
debounceMs: 1000, cap: 20, drop: summarize.
Oturum başına geçersiz kılmalar
- Geçerli oturum için modu saklamak üzere bağımsız bir komut olarak
/queue <mode>gönderin. - Seçenekler birleştirilebilir:
/queue collect debounce:2s cap:25 drop:summarize /queue defaultveya/queue reset, oturum geçersiz kılmasını temizler.
Kapsam ve garantiler
- Gateway yanıt hattını kullanan tüm gelen kanallardaki otomatik yanıt agent çalıştırmalarına uygulanır (WhatsApp web, Telegram, Slack, Discord, Signal, iMessage, webchat vb.).
- Varsayılan şerit (
main), gelen mesajlar + ana heartbeat’ler için süreç geneli geçerlidir; birden fazla oturuma paralel izin vermek içinagents.defaults.maxConcurrentayarlayın. - Ek şeritler bulunabilir (ör.
cron,subagent); böylece arka plan işleri, gelen yanıtları engellemeden paralel çalışabilir. Bu ayrık çalıştırmalar background tasks olarak izlenir. - Oturum başına şeritler, belirli bir oturuma aynı anda yalnızca bir agent çalıştırmasının dokunacağını garanti eder.
- Harici bağımlılık veya arka plan worker thread’i yoktur; saf TypeScript + promise’ler kullanılır.
Sorun giderme
- Komutlar takılı kalmış gibi görünüyorsa ayrıntılı günlükleri etkinleştirin ve kuyruğun boşaldığını doğrulamak için “queued for …ms” satırlarını arayın.
- Kuyruk derinliğine ihtiyacınız varsa ayrıntılı günlükleri etkinleştirin ve kuyruk zamanlama satırlarını izleyin.