Asosiy tarkibga o'tish

35. Buyruqlar navbati (2026-01-16)

  1. Bir nechta agent ishlarining to‘qnashuvini oldini olish uchun barcha kanallar bo‘yicha kiruvchi auto-reply ishlarini kichik, jarayon ichidagi navbat orqali ketma-ketlashtiramiz, shu bilan birga sessiyalar bo‘yicha xavfsiz parallelizmga ruxsat beramiz.

37. Nega

    1. Auto-reply ishlar qimmat bo‘lishi mumkin (LLM chaqiruvlari) va bir nechta kiruvchi xabarlar bir-biriga yaqin kelganda to‘qnashishi mumkin.
    1. Ketma-ketlashtirish umumiy resurslar (sessiya fayllari, loglar, CLI stdin) uchun raqobatni kamaytiradi va yuqori oqimdagi rate limitlar ehtimolini pasaytiradi.

40. Qanday ishlaydi

    1. Yo‘laklarga sezgir FIFO navbat har bir yo‘lakni sozlanadigan parallelizm chegarasi bilan bo‘shatadi (sozlanmagan yo‘laklar uchun standart 1; main uchun 4, subagent uchun 8).
    1. runEmbeddedPiAgent sessiya kaliti bo‘yicha navbatga qo‘shadi (yo‘lak session:<key>) va har bir sessiya uchun faqat bitta faol ishni kafolatlaydi.
    1. Har bir sessiya ishi so‘ngra global yo‘lak ga (standart bo‘yicha main) navbatga qo‘shiladi, shuning uchun umumiy parallelizm agents.defaults.maxConcurrent bilan cheklanadi.
    1. Batafsil loglash yoqilganda, navbatdagi ishlar boshlanishidan oldin ~2 soniyadan ko‘proq kutgan bo‘lsa, qisqa bildirishnoma chiqaradi.
    1. Navbatga qo‘shish paytida (kanal tomonidan qo‘llab-quvvatlanganda) typing indikatorlari darhol ishga tushadi, shuning uchun navbatimizni kutayotganimizda ham foydalanuvchi tajribasi o‘zgarmaydi.

46. Navbat rejimlari (har bir kanal bo‘yicha)

  1. Kiruvchi xabarlar joriy ishni yo‘naltirishi, keyingi navbatdagi burilishni kutishi yoki ikkalasini ham qilishi mumkin:
  • steer: joriy ishga darhol kiritadi (keyingi tool chegarasidan keyin kutilayotgan tool chaqiruvlarini bekor qiladi). 49. Agar streaming bo‘lmasa, followup ga qaytadi.
    1. followup: joriy ish tugagach, keyingi agent burilishi uchun navbatga qo‘shadi.
    1. collect: navbatga olingan barcha xabarlarni bitta keyingi javobga birlashtiradi (standart). 2. Agar xabarlar turli kanallar/ipliklarga yo‘naltirilgan bo‘lsa, marshrutlashni saqlash uchun ular alohida-alohida chiqariladi.
    1. steer-backlog (ya’ni steer+backlog): hozir yo‘naltiradi va xabarni keyingi javob uchun saqlab qoladi.
    1. interrupt (eskirgan): shu sessiya uchun faol ishni to‘xtatadi, so‘ng eng yangi xabarni ishga tushiradi.
    1. queue (eskirgan sinonim): steer bilan bir xil.
  1. Steer-backlog shuni anglatadiki, yo‘naltirilgan ish tugagach yana keyingi javob olishingiz mumkin, shuning uchun oqimli interfeyslar dublikatga o‘xshab ko‘rinishi mumkin. 7. Agar har bir kiruvchi xabar uchun bitta javob xohlasangiz, collect/steer ni afzal ko‘ring.
  2. Mustaqil buyruq sifatida /queue collect yuboring (har sessiya uchun) yoki messages.queue.byChannel.discord: "collect" ni o‘rnating.
  3. Standartlar (konfiguratsiyada o‘rnatilmagan bo‘lsa):
  • Global yoki kanal bo‘yicha messages.queue orqali sozlang:
  1. Global yoki kanal bo‘yicha messages.queue orqali sozlang:
12. {
  messages: {
    queue: {
      mode: "collect",
      debounceMs: 1000,
      cap: 20,
      drop: "summarize",
      byChannel: { discord: "collect" },
    },
  },
}

13. Navbat parametrlari

  1. Parametrlar followup, collect va steer-backlog ga qo‘llanadi (hamda steer keyingi javobga qaytganda):
  • Summarize tashlab yuborilgan xabarlarning qisqa punktlar ro‘yxatini saqlaydi va uni sun’iy keyingi so‘rov sifatida kiritadi.
  • Standartlar: debounceMs: 1000, cap: 20, drop: summarize.
    1. drop: to‘lib ketganda siyosat (old, new, summarize).
  1. Summarize tashlab yuborilgan xabarlarning qisqa punktlar ro‘yxatini saqlaydi va uni sun’iy keyingi so‘rov sifatida kiritadi.
  2. Standartlar: debounceMs: 1000, cap: 20, drop: summarize.

20. Sessiya bo‘yicha alohida sozlamalar

    1. Joriy sessiya uchun rejimni saqlash uchun mustaqil buyruq sifatida /queue <mode> yuboring.
    1. Parametrlarni birlashtirish mumkin: /queue collect debounce:2s cap:25 drop:summarize
    1. /queue default yoki /queue reset sessiya bo‘yicha o‘rnatilgan sozlamani tozalaydi.

24. Qamrov va kafolatlar

    1. Javob shlyuzi quvuridan foydalanadigan barcha kiruvchi kanallarda avtomatik javob agenti ishlariga tatbiq etiladi (WhatsApp web, Telegram, Slack, Discord, Signal, iMessage, webchat va boshqalar).
    1. Standart yo‘lak (main) kiruvchi xabarlar va asosiy yurak urishlari uchun butun jarayon bo‘yicha umumiy; bir vaqtning o‘zida bir nechta sessiyaga ruxsat berish uchun agents.defaults.maxConcurrent ni o‘rnating.
    1. Qo‘shimcha yo‘laklar mavjud bo‘lishi mumkin (masalan, cron, subagent), shunda fon ishlar kiruvchi javoblarni bloklamasdan parallel ishlaydi.
    1. Sessiya bo‘yicha yo‘laklar bir vaqtning o‘zida faqat bitta agent ishi berilgan sessiyaga tegishini kafolatlaydi.
    1. Tashqi bog‘liqliklar yoki fon ishchi oqimlari yo‘q; sof TypeScript + promises.

30. Muammolarni bartaraf etish

    1. Agar buyruqlar tiqilib qolgandek ko‘rinsa, batafsil loglarni yoqing va navbat bo‘shayotganini tasdiqlash uchun “queued for …ms” qatorlarini qidiring.
    1. Agar navbat chuqurligi kerak bo‘lsa, batafsil loglarni yoqing va navbat vaqtlariga oid qatorlarni kuzating.