Przegląd
System kolejki poleceń (Command Queue) serializuje przychodzące uruchomienia auto-reply ze wszystkich kanałów poprzez kolejkę procesową. Zapobiega to kolizjom, jednocześnie umożliwiając bezpieczną współbieżność między sesjami.
Cel kolejki
- Zapobiega rywalizacji wielu uruchomień agenta o wspólne zasoby, gdy wiadomości docierają jednocześnie
- Redukuje kolizje wywołań LLM i problemy z rate-limitingiem upstreamowym
- Utrzymuje responsywność UX dzięki natychmiastowym wskaźnikom pisania
Mechanizm
Kolejka FIFO ze świadomością pasów (lane-aware) zarządza współbieżnym wykonaniem:
- Pasy sesji — gwarantują jedno aktywne uruchomienie per sesja (format
session:<key>) - Pasy globalne — ograniczają ogólną współbieżność (domyślnie 4 równoległe dla głównego pasa, 8 dla subagentów)
- Logowanie szczegółowe — pokazuje czasy oczekiwania w kolejce przekraczające ok. 2 sekundy
Tryby kolejki (per kanał)
- steer — wstrzyknij natychmiast; anuluj oczekujące wywołania narzędzi
- followup — zakolejkuj do następnej tury po bieżącym uruchomieniu
- collect — scal kolejkowane wiadomości w jeden followup (domyślne)
- steer-backlog — steruj teraz I zachowaj do followupu
- interrupt — przerwij aktywne uruchomienie; wykonaj najnowszą wiadomość
Konfiguracja
{
"messages": {
"queue": {
"mode": "collect",
"debounceMs": 1000,
"cap": 20,
"drop": "summarize",
"byChannel": { "discord": "collect" }
}
}
}
Kluczowe parametry:
debounceMs— opóźnienie przed rozpoczęciem followupu (zapobiega szybkim łańcuchom „kontynuuj")cap— maksymalna liczba wiadomości w kolejce per sesja (domyślnie 20)drop— polityka przepełnienia:summarizetworzy podsumowanie porzuconych wiadomości
Nadpisania per sesja
Składnia polecenia: /queue <mode> [opcje]
/queue collect debounce:2s cap:25 drop:summarize
/queue default # wyczyść nadpisanie
Zakres i gwarancje
- Dotyczy uruchomień auto-reply na: WhatsApp, Telegram, Slack, Discord, Signal, iMessage, WebChat
- Zero zależności zewnętrznych — czysta implementacja TypeScript
- Pasy per-sesja zapewniają izolację; dodatkowe pasy (cron, subagent) umożliwiają współbieżność zadań w tle