
SkyDot nima
SkyDot — Pi Agent Runtime asosida yaratilgan, ochiq kodli, o‘z serveringizda joylashtiriladigan ko‘p foydalanuvchili Agent ish maydoni. Siz turli vazifalarni bajaradigan, nomlanadigan va sozlanadigan bir nechta Dot yaratishingiz mumkin; shuningdek, uzoq muddatli ish imkoniyatlarini Scheduler, Skills, MCP, Plugins va Memory orqali kengaytirib, bir nechta Dot’ni guruh chatiga qo‘shishingiz mumkin.
Bu shunchaki chat sahifasi emas. Workspace fayllar, sessiyalar, xotira va bajarish chegaralarini belgilaydi, Backend autentifikatsiya, ruxsatlar, navbat, rejalashtirish, Provider’lar va xabar kanallarini boshqaradi, Host yoki Docker Runner esa Agent’ni bevosita ishga tushiradi. Foydalanuvchi tasdig‘ini talab qiladigan vosita ruxsatlari, qurilma so‘rovlari va vazifa jarayoni ham ayni ish maydoniga qaytariladi.

Asosiy arxitektura va bajarish chegaralari
SkyDot interfeys, boshqaruv qatlami va bajarish qatlamini ajratadi. U shaxsiy foydalanish, shuningdek, jamoa tomonidan o‘z serverida joylashtirish uchun mos.
- Backend: Node.js, TypeScript, Hono, SQLite va WebSocket asosida qurilgan bo‘lib, autentifikatsiya, ma’lumotlarni saqlash, navbat, rejalashtirish, Provider’lar, kanallar va ruxsatlarni boshqaradi.
- Runner: Haqiqiy Agent vazifalarini bajarish uchun Pi Agent Runtime’dan foydalanadi; mahalliy Host rejimi yoki root huquqisiz Docker konteynerini tanlash mumkin.
- Workspace: Fayllar, Session, Memory, kanal bog‘lanishlari va ishga tushirish chegaralarini belgilaydi.
- Web, PWA va Electron: React biznes frontend’idan birgalikda foydalanadi. Electron Renderer faqat interfeys uchun javob beradi va ma’lumotlar bazasi, fayl tizimi, credential’lar, Docker yoki shell/process huquqlariga bevosita kira olmaydi.
Bir qatlamdagi ruxsat boshqa chegaralarni avtomatik ravishda chetlab o‘tishga imkon bermaydi. Jamoa muhitini joylashtirishdan oldin ruxsatlar matritsasi va xavfsizlik siyosatini o‘qish tavsiya etiladi.
Asosiy funksiyalar
Shaxsiy Dot va sessiyalar
Har bir Dot uchun nom, avatar, Prompt, model, fikrlash darajasi, Skills, MCP va bajarish siyosatini mustaqil sozlash mumkin. Suhbatda oqimli chiqish, Markdown, kod bloklari, fayl biriktirish, to‘xtatish, keyingi xabarlar va sessiyani tiklash qo‘llab-quvvatlanadi.

Turli Workspace’lar bir-biridan ajratilgan: fayllar, sessiyalar, xotira, kanal bog‘lanishlari va bajarish ruxsatlari bir xil interfeysga kirilgani uchun aralashib ketmaydi. Bajarish paytida Host rejimi yoki Container rejimini tanlash mumkin.
Bir nechta Dot bilan guruh chat va hamkorlik
Mahalliy guruh chatini yoqqandan so‘ng, bir vaqt jadvalida bir nechta Dot xabarlari, vazifa tasdiqlari, jarayonlari va natijalarini ko‘rish mumkin. Aniq tilga olish va boshqariladigan delegatsiya hamkorlik doirasini nazorat qiladi; qayta ulanish yoki sahifani qayta ochish faqat holatni o‘qiydi va yangi vazifani avtomatik yubormaydi.

Guruh chatlari sukut bo‘yicha o‘chirilgan. Mahalliy guruh chatini yoqish uchun SKYDOT_BOT_GROUPS=true ni sozlash kerak; Bot’lar o‘rtasidagi hamkorlikka ham ruxsat berish zarur bo‘lsa, qo‘shimcha ravishda SKYDOT_BOT_HANDOFFS=true ni sozlash, shuningdek, administrator ishga tushirish ruxsatlari va chaqiruv budjetini belgilashi kerak.

Rejalashtirilgan vazifalar, Skills va Memory
Scheduler Cron, belgilangan interval va bir martalik vazifalarni qo‘llab-quvvatlaydi hamda darhol ishga tushirish, pauza qilish, bekor qilish, ishga tushirish tarixini ko‘rish va natijalarni yetkazib berish imkonini beradi. Skills, MCP va Plugins markazlashgan holda boshqarilib, Dot konfiguratsiyasiga ko‘ra yoqilishi mumkin.
Memory Workspace bo‘yicha faktlar, afzalliklar, qarorlar, tajribalar va keyingi ishlarni saqlaydi; qidirish, yaratish, tahrirlash, unutish va versiyalar tarixini qo‘llab-quvvatlaydi. Session muayyan suhbat kontekstini, Workspace Memory esa sessiyalar o‘rtasida qayta foydalanish mumkin bo‘lgan bilimlarni saqlaydi; ular bir-biridan mustaqil.
O‘rnatishdan oldingi tayyorgarlik
- Node.js: 22.19 yoki undan yuqori versiya, Node.js 24 LTS tavsiya etiladi. Pi Durable xotirasi Node.js’ning ichki SQLite modulini talab qiladi.
- npm: Node.js bilan birga o‘rnatiladi va har bir kichik loyiha bog‘liqliklarini o‘rnatish uchun ishlatiladi.
- Docker: Faqat Container bajarish rejimida kerak.
- Model Provider: Haqiqiy AI suhbati uchun ishlaydigan model Provider kerak; API Key bo‘lmasa ham interfeysni avval ishga tushirish mumkin.
- GNU Make: Ixtiyoriy, turlarni tekshirish, zaxiralash va texnik xizmat buyruqlari uchun ishlatiladi.
SkyDot’ni noldan o‘rnatish
1. Repozitoriyni klonlash va bog‘liqliklarni o‘rnatish
Terminalda quyidagi buyruqlarni bajarib, asosiy loyiha, Web frontend va Agent Runner bog‘liqliklarini alohida o‘rnating:
git clone https://github.com/2SinceJuly/SkyDot.git
cd SkyDot
npm install
npm --prefix web install
npm --prefix container/agent-runner install2. Xizmatni qurish va ishga tushirish
Bog‘liqliklar o‘rnatilgach, barcha komponentlarni qurib, Backend’ni ishga tushiring:
npm run build:all
npm starthttp://127.0.0.1:3000 manzilini oching va sahifadagi ko‘rsatmalar bo‘yicha administratorni boshlang‘ich sozlashni yakunlang. Provider va xabar kanallarini keyinroq sozlash mumkin, biroq model konfiguratsiyasisiz haqiqiy AI suhbati ishlamaydi.
3. Ishlab chiqish muhitini ishga tushirish

Ishlab chiqish vaqtida Backend va Vite Web Client’ni bir vaqtda ishga tushirish mumkin:
npm run dev:allIshlab chiqish sahifasining standart manzili http://127.0.0.1:5173. Agar faqat interfeysni mahalliy kompyuterda tez ko‘rib chiqish kerak bo‘lsa, loopback manzili orqali login talab qilinmaydigan Demo’dan foydalanish mumkin:
SKYDOT_DEMO_OPEN=true PROVIDER_SETUP_SKIPPED=true npm startDemo rejimini umumiy internet yoki ishonchsiz tarmoqda yoqmang. Ushbu rejimdagi to‘liq cheklovlar uchun repozitoriydagi DEMO.md fayliga qarang.
Model Provider’ni sozlash
SkyDot avval interfeysni ishga tushirib, Provider’ni keyinroq sozlamalarda to‘ldirish imkonini beradi. Haqiqiy modelni ulashda tegishli API Key, Session Cookie yoki boshqa credential’larni tayyorlang va credential’larni skrinshotlar, buyruq satri tarixi yoki Git repozitoriysiga yozib qo‘ymang.
Agar uchinchi tomon OpenAI Completions interfeysidan foydalansangiz, Provider’ning maxsus muhit o‘zgaruvchilarida quyidagini sozlashingiz mumkin:
SKYDOT_MODEL_API=openai-completionsStandart protokol anthropic-messages. Ushbu sozlama oddiy Dot suhbatlarining Host va Container Runner’lari uchun ham ishlatiladi.
Agent bajarish rejimini tanlash
Host rejimi
Host rejimi mahalliy Runner’dan bevosita foydalanadi, Docker kerak emas va mahalliy ishlab chiqish hamda tezkor tekshirish uchun mos. Bajarish ruxsatlari baribir Workspace, foydalanuvchi va ishga tushirish siyosati bilan cheklanadi.
Container rejimi

Container rejimi ishlaydigan Docker’ni va Agent Runner image’ini tayyorlashni talab qiladi. Standart image 2sincejuly/skydot-agent:latest, uni joriy manba kodidan ham qurish mumkin:
docker build --pull -t 2sincejuly/skydot-agent:latest containerBoshqa image’dan foydalanish uchun SKYDOT_CONTAINER_IMAGE ni sozlash mumkin; mos konfiguratsiya parametri CONTAINER_IMAGE. Xizmat va image qurilishi bir xil Docker daemon’iga ulangan bo‘lishi kerak. make start yoki make dev avval mahalliy image’dan foydalanadi, image mavjud bo‘lmasa uni yuklab olishga urinadi.
Electron desktop versiyasini ishga tushirish
Backend va Vite allaqachon ishga tushirilgan bo‘lsa, boshqa terminalda Electron’ni ishga tushiring:
SKYDOT_RENDERER_URL=http://127.0.0.1:5173 npm run desktop:devBackend qurilgan sahifani taqdim etayotgan bo‘lsa, quyidagini bevosita bajarish ham mumkin:
npm run desktop:devElectron masofaviy Backend’ga ham ulanishi mumkin:
SKYDOT_SERVER_URL=https://your-skydot.example.com npm run desktop:devMahalliy paket yaratish uchun quyidagi buyruqlardan foydalanish mumkin:
npm run desktop:package:dir
npm run desktop:packageLoyiha sukut bo‘yicha macOS arm64 paketlash konfiguratsiyasini taqdim etadi, Windows va Linux maqsadlarini ham saqlab qoladi. Rasmiy chiqarishdan oldin maqsadli platforma uchun imzolash va notarial tasdiqlashni sozlash kerak.
Muhim muhit o‘zgaruvchilari

WEB_PORT: Backend tinglaydigan port, standart qiymati3000.SKYDOT_SERVER_URL: Electron ulanadigan Backend manzili, standart qiymatihttp://127.0.0.1:3000.SKYDOT_RENDERER_URL: Electron yuklaydigan Renderer manzili.SKYDOT_CONTAINER_IMAGE: Agent Runner konteyner image’i.PROVIDER_SETUP_SKIPPED: Tizim sozlamalari fayli mavjud bo‘lmaganda Provider yo‘riqnomasini o‘tkazib yuboradi.SKYDOT_BOT_GROUPS: Mahalliy ko‘p Dot guruh chatini yoqadi.SKYDOT_BOT_HANDOFFS: Guruh chatida Bot’lar hamkorlikda ishlashini yoqadi.SKYDOT_PERSONAL_GOALS: Shaxsiy Goal tajriba funksiyasini yoqadi.
Shaxsiy Goal va Durable Runtime sukut bo‘yicha o‘chirilgan. Oddiy rejalashtirilgan vazifalar ushbu kalitlarga bog‘liq emas; ishga tushirishdan oldingi aniq shartlar uchun Goals and Tasks hujjatiga qarang.
Asosiy foydalanish jarayoni
- SkyDot’ga kiring va administratorni boshlang‘ich sozlashni yakunlang.
- Sozlamalarda mavjud Model Provider’ni sozlang.
- Dot yarating va unga nom, Prompt, model hamda bajarish siyosatini belgilang.
- Dot uchun Workspace tanlang va fayl hamda xotira chegaralari kutilganidek ekanini tekshiring.
- Suhbatda vazifani yuboring, oqimli chiqish, vosita ruxsatlari va bajarish natijasini kuzating.
- Uzoq muddatli ishlash kerak bo‘lsa, Cron, belgilangan interval yoki bir martalik vazifa yarating.
- Bir nechta rol hamkorligi kerak bo‘lganda, guruh chatini yoqing va Bot hamkorligi ruxsatlarini aniq sozlang.
Masalan, kod tahlili uchun mas’ul bo‘lgan bitta Dot va materiallarni tartibga solish uchun mas’ul bo‘lgan boshqa Dot yaratib, ularni bir xil guruh chatiga qo‘shish mumkin. Vazifalarni aniq tilga olish yoki boshqariladigan delegatsiya orqali taqsimlash yordamida foydalanuvchilar umumiy vaqt jadvalida jarayon va natijalarni ko‘rishlari, shu bilan birga har bir Workspace’ning ruxsat chegaralarini saqlab qolishlari mumkin.
Ekspluatatsiya va xavfsizlik bo‘yicha tavsiyalar
Ishlash vaqtidagi ma’lumotlar sukut bo‘yicha repozitoriyning data/ katalogida saqlanadi. Ular SQLite, Workspace, Session, Memory va ishga tushirish konfiguratsiyasini o‘z ichiga oladi. Bu katalog Git’ga kiritilmaydi, biroq zaxira nusxalarida maxfiy konfiguratsiya va ma’lumotlar bazasi bo‘lishi mumkin, shuning uchun ularga asl ma’lumotlar kabi himoya qo‘llanilishi kerak.
- Backend, jurnallar va Docker holatini ko‘rish uchun
make statusbuyrug‘idan foydalaning. - Joriy portdagi SkyDot xizmatini to‘xtatish uchun
make stopbuyrug‘idan foydalaning. - Ishlash vaqtida yaratilgan ma’lumotlarning zaxira nusxasini yaratish uchun
make backupbuyrug‘idan foydalaning. - Belgilangan zaxira nusxasini tiklash uchun
make restore FILE=...buyrug‘idan foydalaning. - Backend, Web, Agent Runner va hujjatlarni tekshirish uchun
make typecheckbuyrug‘ini bajaring. - Vitest testlarini ishga tushirish uchun
npm test -- --runbuyrug‘idan foydalaning.
Masofaviy joylashtirishda HTTPS va WSS’dan foydalanish, teskari proksi, Cookie va kirishni boshqarishni to‘g‘ri sozlash kerak. Renderer, ma’lumotlar bazasi yoki Docker daemon’ni ishonchsiz foydalanuvchilarga bevosita ochmang, qulaylik uchun ommaviy Demo’ni ham yoqmang.
Keyingi kengaytirishlar
SkyDot imkoniyatlar kutubxonasi ichki, host mashinasi, loyiha, foydalanuvchi, Workspace va Plugin kabi manbalarni qo‘llab-quvvatlaydi. Agent ishga tushishidan oldin mavjud imkoniyatlar ro‘yxati yaratiladi hamda siyosat asosida Prompt, resurslar va kontekstga kiritiladi. Loyiha, shuningdek, Plugin versiyalari suratlarini, Subagents’ni hamda Host va Container uchun bir xil imkoniyat chegaralarini qo‘llab-quvvatlaydi.
Xabarlar kirish nuqtalari bo‘yicha Web, PWA va Electron bir xil biznes frontendidan foydalanadi hamda Feishu, Telegram, QQ, DingTalk, WeChat, Discord, WhatsApp va boshqa kanallarga ulanishi mumkin. Kanallarni muayyan Workspace yoki Session’ga bog‘lash mumkin.
Xulosa
SkyDot ko‘p Dot’li suhbatlar, Workspace izolyatsiyasi, Agent ijrosi, rejalashtirilgan vazifalar, kengaytiriladigan imkoniyatlar va jamoaviy ruxsatlarni bitta o‘z serveringizda joylashtiriladigan ish stoliga birlashtiradi. Ushbu maqolaga muvofiq Node.js muhitini tayyorlab, bog‘liqliklarni o‘rnatib, loyihani yig‘ib va ishga tushirib, Provider’ni sozlaganingizdan so‘ng avval shaxsiy Dot’ni ishga tushirishingiz, keyin esa Docker, Electron, guruh chatlari, Scheduler, Skills, MCP va Memory kabi imkoniyatlarni bosqichma-bosqich yoqishingiz mumkin.
Loyiha hali ham faol ishlab chiqilayotgani sababli, haqiqiy modellar, Docker, tashqi kanallar va masofaviy joylashtirishning har biri o‘ziga tegishli ma’lumotlar va ish muhiti mavjud bo‘lishini talab qiladi. Goal, Durable yoki Cloud Runtime kabi eksperimental imkoniyatlar ham sukut bo‘yicha yoqilgan funksiyalar deb qaralmasligi kerak.
