41. Xabarlar¶
- Ushbu sahifa OpenClaw kiruvchi xabarlar, sessiyalar, navbatga qo‘yish, streaming va mulohaza ko‘rinishini qanday boshqarishini birlashtirib tushuntiradi.
43. Xabar oqimi (yuqori daraja)¶
44. Kiruvchi xabar
-> marshrutlash/bog‘lash -> sessiya kaliti
-> navbat (agar run faol bo‘lsa)
-> agent runi (streaming + vositalar)
-> chiquvchi javoblar (kanal cheklovlari + bo‘laklash)
- Asosiy sozlamalar konfiguratsiyada joylashgan:
-
- Prefikslar, navbatga qo‘yish va guruh xatti-harakati uchun
messages.*.
- Prefikslar, navbatga qo‘yish va guruh xatti-harakati uchun
-
- Blokli streaming va bo‘laklash sukut bo‘yicha sozlamalari uchun
agents.defaults.*.
- Blokli streaming va bo‘laklash sukut bo‘yicha sozlamalari uchun
-
- Kanal bo‘yicha override’lar (
channels.whatsapp.*,channels.telegram.*, va h.k.) 49. limitlar va streaming yoqib/o‘chirishlari uchun.
- Kanal bo‘yicha override’lar (
- To‘liq sxema uchun Configuration sahifasiga qarang.
1. Kiruvchi deduplikatsiya¶
- Qayta ulanishlardan so‘ng kanallar bir xil xabarni qayta yetkazishi mumkin. 3. OpenClaw kanal/hisob/peer/sessiya/xabar identifikatori bo‘yicha kalitlangan qisqa muddatli keshni saqlaydi, shuning uchun takroriy yetkazib berishlar agentni yana ishga tushirmaydi.
4. Kiruvchi debouncing¶
-
Bir xil yuboruvchidan tez-tez ketma-ket kelgan xabarlar
messages.inboundorqali bitta agent navbatiga birlashtirilishi mumkin. 6. Debouncing kanal + suhbat bo‘yicha chegaralanadi va javob ipi/IDlar uchun eng so‘nggi xabardan foydalanadi. -
Konfiguratsiya (global sukut bo‘yicha + kanal bo‘yicha o‘zgartirishlar):
8. {
messages: {
inbound: {
debounceMs: 2000,
byChannel: {
whatsapp: 5000,
slack: 1500,
discord: 1500,
},
},
},
}
- Eslatmalar:
-
- Debounce faqat matnli xabarlarga qo‘llanadi; media/ilovalar darhol yuboriladi.
-
- Boshqaruv buyruqlari debouncingni chetlab o‘tadi, shuning uchun ular alohida qoladi.
12. Sessiyalar va qurilmalar¶
- Sessiyalar mijozlar tomonidan emas, balki shlyuz tomonidan boshqariladi.
-
- To‘g‘ridan-to‘g‘ri chatlar agentning asosiy sessiya kalitiga birlashtiriladi.
-
- Guruhlar/kanallar o‘z sessiya kalitlariga ega bo‘ladi.
-
- Sessiya ombori va transkriptlar shlyuz xostida joylashadi.
-
Bir nechta qurilmalar/kanallar bir xil sessiyaga mos kelishi mumkin, ammo tarix har bir mijozga to‘liq sinxronlanmaydi. 18. Tavsiya: kontekstning ajralib ketishidan qochish uchun uzoq suhbatlarda bitta asosiy qurilmadan foydalaning. 19. Control UI va TUI har doim shlyuzga tayangan sessiya transkriptini ko‘rsatadi, shuning uchun ular haqiqat manbai hisoblanadi.
-
Tafsilotlar: Session management.
21. Kiruvchi bodylar va tarix konteksti¶
- OpenClaw prompt bodyni command bodydan ajratadi:
-
Body: agentga yuboriladigan prompt matni. 24. Bu kanal konvertlari va ixtiyoriy tarix o‘ramlarini o‘z ichiga olishi mumkin.
-
CommandBody: direktiva/buyruqlarni tahlil qilish uchun foydalanuvchining xom matni.
-
RawBody:CommandBodyuchun eski alias (moslik uchun saqlangan).
- Kanal tarixni taqdim etsa, u umumiy o‘ramdan foydalanadi:
-
[Chat messages since your last reply - for context]
-
[Current message - respond to this]
-
To‘g‘ridan-to‘g‘ri bo‘lmagan chatlar (guruhlar/kanallar/xonalar) uchun joriy xabar body yuboruvchi yorlig‘i bilan prefiks qilinadi (tarix yozuvlari uchun ishlatiladigan uslub bilan bir xil). 31. Bu real vaqt va navbatdagi/tarixiy xabarlarni agent promptida izchil saqlaydi.
-
Tarix buferlari faqat kutilayotgan holatdagi: ular ishga tushirishni qo‘zg‘atmagan guruh xabarlarini (masalan, eslatma bilan cheklangan xabarlar) o‘z ichiga oladi va sessiya transkriptida allaqachon mavjud xabarlarni istisno qiladi.
-
Direktivani olib tashlash faqat joriy xabar bo‘limiga qo‘llanadi, shuning uchun tarix saqlanib qoladi. 34. Tarixni o‘raydigan kanallar
CommandBodyni (yokiRawBody) asl xabar matniga o‘rnatishi vaBodyni birlashtirilgan prompt sifatida qoldirishi kerak. - Tarix buferlari
messages.groupChat.historyLimit(global sukut bo‘yicha) vachannels.slack.historyLimityokichannels.telegram.accounts.<id>kabi kanal bo‘yicha o‘zgartirishlar orqali sozlanadi36..historyLimit(o‘chirish uchun0ga o‘rnating).
37. Navbatga qo‘yish va followup’lar¶
- Agar ishga tushirish allaqachon faol bo‘lsa, kiruvchi xabarlar navbatga qo‘yilishi, joriy ishga yo‘naltirilishi yoki keyingi navbat uchun yig‘ilishi mumkin.
-
messages.queue(vamessages.queue.byChannel) orqali sozlang.
-
- Rejimlar:
interrupt,steer,followup,collect, shuningdek backlog variantlari.
- Rejimlar:
- Tafsilotlar: Queueing.
42. Striming, bo‘laklash va batchlash¶
- Blok strimingi model matn bloklarini ishlab chiqargan sari qisman javoblarni yuboradi.
-
Bo‘laklash kanal matn cheklovlariga amal qiladi va fenced code’ni bo‘lib yuborishdan qochadi.
-
Asosiy sozlamalar:
-
agents.defaults.blockStreamingDefault(on|off, sukut bo‘yicha off)
-
agents.defaults.blockStreamingBreak(text_end|message_end)
-
agents.defaults.blockStreamingChunk(minChars|maxChars|breakPreference)
-
agents.defaults.blockStreamingCoalesce(bo‘sh turishga asoslangan batchlash)
-
agents.defaults.humanDelay(blok javoblar orasidagi insoniyga o‘xshash tanaffus)
- Channel overrides:
*.blockStreamingand*.blockStreamingCoalesce(non-Telegram channels require explicit*.blockStreaming: true)
Details: Streaming + chunking.
Reasoning visibility and tokens¶
OpenClaw can expose or hide model reasoning:
/reasoning on|off|streamcontrols visibility.- Reasoning content still counts toward token usage when produced by the model.
- Telegram supports reasoning stream into the draft bubble.
Details: Thinking + reasoning directives and Token use.
Prefixes, threading, and replies¶
Outbound message formatting is centralized in messages:
messages.responsePrefix,channels.<channel>.responsePrefix, andchannels.<channel>.accounts.<id>.responsePrefix(outbound prefix cascade), pluschannels.whatsapp.messagePrefix(WhatsApp inbound prefix)replyToModeorqali javoblarni ipga bog‘lash va har bir kanal uchun sukut bo‘yicha sozlamalar
Batafsil: Konfiguratsiya va kanal hujjatlari.