Telegramingizdagi raqamli xodimlar
Mila qanday qildi: tahlillar va yangiliklar
Milalar ortida kim turibdi va qanday qoʻshilish mumkin
Kontent, reklama va admin — bitta chatda uchta Mila? Odatda Mila botlarni tinglamaydi: bir-biriga javob qaytaradigan ikki bot obunani eng tez tugatib qoʻyadi. Oʻzinikilarni u qatʼiy qoidalar bilan eshitadi: bot sizning roʻyxatingizda boʻlsin, unga @nom orqali yoki xabariga javob bilan murojaat qilinsin, bitta botdan soatiga 20 tadan ortiq xabar kelmasin. Quyidagi har bir qatorda kodga havola bor.
Bir nechta Milasi — kontent, reklama, admin — bitta chatda ishlaydigan egasi uchun.
Sessiyaga xabar yetkazuvchi — install/companion-feeder.py — Telegramdan kelgan xabarlarni Milaning suhbatiga uzatadi. Odamlarning xabarlari avvalgidek doim oʻtadi. Botning xabari esa faqat toʻrtta shart bilan oʻtadi. team-hearing.md:3-6 companion-feeder.py:274-276 team-hearing.md:10-17 companion-feeder.py:316-339 team-hearing.md:19 companion-feeder.py:320-321
Yuboruvchi bizning botlar reyestrida — our-bots.json faylida bor. Begona botlarni Mila hech qachon eshitmaydi.
Matnda uning botining @nom koʻrinishidagi nomi bor (katta-kichik harf farqi yoʻq) yoki bu uning xabariga javob.
Uning oʻz botining xabari unga qaytib uzatilmaydi.
team-hearing.md:16 companion-feeder.py:325Bitta botdan oxirgi bir soat ichida 20 tadan ortiq xabar oʻtmaydi. Qolganini xabar yetkazuvchi tashlab yuboradi.
team-hearing.md:30-31 companion-feeder.py:331-339Mila uchun qoida oddiy: boshqasiga yetib borish uchun u @uning_boti_nomi deb yozadi yoki uning xabariga javob beradi. Aks holda u eshitmaydi. team-hearing.md:19-21
«@Kontent» kabi soʻz bilan yozilgan rol nomi ishlamaydi — faqat botning foydalanuvchi nomi ishlaydi. Kimni qanday chaqirishni jamoa canon/TEAM-CONTACTS.md jadvalida saqlaydi: kim, nima qiladi, qanday chaqiriladi. Repozitoriyda shablon bor, sizning jadvalingizga esa yangilanishlar tegmaydi. TEAM-CONTACTS.example.md:3-4 TEAM-CONTACTS.example.md:12 release.json:50-58 release.json:77
Mila xabarga javob berganda, iqtibos suhbatga 3000 belgigacha boradi va konvertning qolgan qismi kabi ekranlanadi. team-hearing.md:25-26 companion-feeder.py:84-86
@<admin_bot>.@<bot>.@<bot>. TEAM-CONTACTS.example.md:6-10our-bots.json — @ belgisisiz bot nomlarining JSON massivi, katta-kichik harf farqi yoʻq. our-bots.example.json faylidan nusxa oling va oʻz roʻyxatingizni yozing. Xabar yetkazuvchi faylni COMPANION_OUR_BOTS oʻzgaruvchisidagi yoʻldan qidiradi, standart holatda — ~/.mila-companion/our-bots.json. Fayl .gitignore ichida: haqiqiy roʻyxat repozitoriyga tushmaydi. team-hearing.md:37-41 our-bots.example.json:1 companion-feeder.py:277 team-hearing.md:43-45 .gitignore:5
Fayl boʻlmasa yoki buzilgan boʻlsa, reyestr boʻsh qoladi va Mila birorta ham botni eshitmaydi. Nosozlik eshikni ochmaydi, yopadi. team-hearing.md:45-46 companion-feeder.py:290-294
Oʻz botining nomini Mila COMPANION_BOT_USERNAME oʻzgaruvchisidan oladi, u boʻlmasa — qabul qiluvchining receiver.log jurnalidan. team-hearing.md:54 companion-feeder.py:297-313
# ~/.mila-companion/our-bots.json
["acme_content_bot",
"acme_traffic_bot",
"acme_admin_bot"]
Cheklagich har bir yuboruvchi botdan oxirgi 3600 soniyada uzatilgan xabarlarni sanaydi. Yigirma birinchisini xabar yetkazuvchi uzatmaydi va oʻz jurnaliga bot-loop-guard @nom qatorini bir soatdagi xabarlar soni bilan yozadi. companion-feeder.py:278-280 companion-feeder.py:331-338 team-hearing.md:30-32 companion-feeder.py:335
Shu chatdagi odam hech narsani sezmaydi: limit odamlarni sanamaydi. team-hearing.md:32-33 companion-feeder.py:320-321
Chegarani COMPANION_BOT_PAIR_MAX belgilaydi. U yerda son boʻlmasa, 20 qoladi. companion-feeder.py:283-287
Oʻzgaruvchilar toʻrtta, har birining standart qiymati bor. team-hearing.md:48-55
# oʻzgaruvchi → standart qiymat
COMPANION_OUR_BOTS
~/.mila-companion/our-bots.json
COMPANION_BOT_PAIR_MAX
20
COMPANION_BOT_USERNAME
receiver.log faylidan
COMPANION_STATE
~/.mila-companion/state
python3 install/test_team_hearing.py testi ALL OK javobini kutadi. Umumiy tests/run_all.sh uni qolgan test_* fayllari bilan birga ishga tushiradi. team-hearing.md:57 test_team_hearing.py:27 tests/run_all.sh:14-16
Holatlar — oʻsha qoidalar, birma-bir: odam, manzilsiz bot, tilga olish, javob, begona bot, oʻziga oʻzi, limit va iqtibos.
install/companion-feeder.py faylining bir qismi: u jurnaldagi kiruvchi xabarlarni Claude Code sessiyasiga uzatadi. companion-feeder.py:3-11 REFERENCE.md:97_bot bilan tugaydigan yuboruvchini bot deb biladi; qolganlarning hammasi odam sifatida oʻtadi. companion-feeder.py:317-321receiver.log ichida qator — u birorta ham botni eshitmaydi. companion-feeder.py:322-326 team-hearing.md:54 companion-feeder.py:297-313our-bots.json va canon/TEAM-CONTACTS.md har bir jamoada oʻziniki; repozitoriyda faqat namunalar bor. team-hearing.md:43-45 .gitignore:5 TEAM-CONTACTS.example.md:12 release.json:50-58 release.json:77| Fayl | Nima qiladi |
|---|---|
| docs/team-hearing.md | manzil qoidalari, reyestr, cheklagich, sozlamalar (ingliz tilida) |
| install/companion-feeder.py | xabar yetkazuvchi: gate_message bot xabarini uzatish-uzatmaslikni hal qiladi |
| install/test_team_hearing.py | test: toʻqqiz holat, ALL OK kutadi |
| our-bots.example.json | reyestr namunasi: uchta bot |
| TEAM-CONTACTS.example.md | «kimni qanday chaqirish» shabloni (ingliz tilida) |
| docs/REFERENCE.md | maʼlumotnomada xabar yetkazuvchi haqidagi qator (ingliz tilida) |
Toʻplam ochiq: koʻnikmalar, hooklar, asboblar va shablonlar. python3 install/test_team_hearing.py buyrugʻini ishga tushiring: shu sahifadagi toʻqqiz holat tekshiriladi, javob — ALL OK.
Sahifadagi faktlar: github.com/shakhruz/mila (main, 88d0704), 27.10.2026 da tekshirilgan; test_team_hearing.py ALL OK chiqardi. Telefondagi xabarlar — shu testdagi holatlar. «Mila», «MILAGPT» va logotip — MILAGPT tovar belgilari.