NS Agent adalah bot WhatsApp berbasis TypeScript yang dikembangkan dari base SENNA BOT. Project ini sudah ditambahkan sistem AI agent, Telegram bridge opsional, plugin system, dan JID/LID resolver.
SENNA BOT dibuat oleh FG98 / Dylux menggunakan JavaScript ESM. NS Agent dimodifikasi dan dikembangkan ulang oleh nansoffc menggunakan TypeScript. Versi ini dipublikasikan dengan izin dari pemilik script asli.
- WhatsApp bot menggunakan Baileys.
- Sistem plugin command.
- AI agent untuk membaca, menganalisis, dan membantu mengedit project.
- Provider AI OpenAI-compatible, seperti NVIDIA NIM dan DashScope/Qwen.
- Provider router, fallback provider, retry, cooldown, dan queue agent.
- Telegram bridge opsional yang berjalan terpisah dari WhatsApp.
- JID/LID resolver untuk membantu mapping
@lidke@s.whatsapp.netjika data tersedia. - Konfigurasi utama terpusat di
config.ts. - Runtime data, session, token, API key, dan database tidak disertakan pada versi publik.
main.ts Proses utama WhatsApp/Baileys
index.ts Wrapper proses WhatsApp + Telegram
telegram.ts Entry Telegram bridge
handler.ts Dispatcher command WhatsApp
config.ts Semua konfigurasi utama
plugins/ Plugin bawaan bot
ws/plugins/ Plugin tambahan dari workspace agent
ws/projects/ Project/tool/website buatan agent
lib/ Helper utama bot non-agent
lib/agent/ Core AI agent
lib/agent-data/ Data runtime AI agent, tidak untuk commit
lib/jid-data/ Cache mapping JID/LID, tidak untuk commit- Node.js 20+ disarankan.
- npm.
- Server/VPS/Pterodactyl/Termux yang mendukung Node.js.
- Akun WhatsApp untuk pairing bot.
- Token Telegram hanya jika ingin memakai Telegram bridge.
- API key provider AI hanya jika ingin memakai fitur
.agent.
git clone https://github.com/nansboost/ns-agent.git
cd ns-agent
npm installLalu buka config.ts dan isi konfigurasi yang diperlukan.
Semua konfigurasi utama berada di:
config.tsProject ini sengaja tidak memakai .env bawaan. Jangan commit API key, token, session, atau database pribadi ke GitHub.
Bagian yang biasanya perlu diubah:
global.ownerIsi nomor owner WhatsApp kamu.
global.botName
global.packname
global.authorIsi identitas bot.
global.agentRouter.providers.nvidia.apiKey
global.agentRouter.providers.nvidia.apiKeys
global.agentRouter.providers.dashscope.apiKeyIsi API key provider AI jika ingin memakai AI agent.
global.telegramBot.enabled
global.telegramBot.token
global.telegramBot.ownerIdsIsi hanya jika ingin mengaktifkan Telegram bridge.
Menjalankan wrapper WhatsApp + Telegram:
npm startMenjalankan WhatsApp saja:
npm run start:waMenjalankan Telegram saja:
npm run start:telegramCek TypeScript:
npm run checkRebuild index agent:
npm run agent:indexTelegram bridge bersifat opsional. Jika global.telegramBot.enabled bernilai false, Telegram tidak akan aktif.
Telegram berjalan sebagai proses terpisah dari WhatsApp melalui index.ts. Jika Telegram error, WhatsApp tetap berjalan. Jika WhatsApp restart, Telegram tidak ikut mati selama wrapper masih hidup.
Command Telegram utama:
/start
/help
/id
/ping
/status
/provider
/models
/use <provider>
/model <model>
/agent <prompt>
/agentwrite <instruksi>Secara default, /agentwrite dari Telegram dibuat nonaktif demi keamanan. Aktifkan hanya jika benar-benar diperlukan.
Command AI agent di WhatsApp:
.agent <prompt>
.agentwrite <instruksi>
.agent status
.agent models
.agent providerMode .agent digunakan untuk membaca dan menganalisis. Mode .agentwrite digunakan untuk perubahan file dan sebaiknya hanya dipakai oleh owner yang paham risikonya.
Data runtime agent disimpan di:
lib/agent-data/Folder tersebut tidak perlu di-commit.
Command JID/LID:
.jid
.cekjid
.getjid
.jidmap
.jidmap refreshResolver akan mencoba membaca mapping dari cache, contact, signal repository, dan metadata grup. Jika private chat masih berbentuk @lid dan mapping belum tersedia, user perlu muncul di grup yang ada bot agar mapping bisa dikumpulkan dari metadata grup.
Cache mapping disimpan di:
lib/jid-data/jid-map.jsonFile tersebut tidak perlu di-commit.
File dan folder berikut dibuat otomatis saat bot berjalan:
database.json
sessions/
tmp/
logs/
lib/agent-data/*.json
lib/agent-data/reports/
lib/jid-data/*.json
.ns-agent/Pastikan file tersebut tetap masuk .gitignore.
- Jangan commit API key, token Telegram, session WhatsApp, database, atau cache JID/LID.
- Fitur owner seperti eval, shell, file tools, dan agent write memiliki risiko tinggi.
- Gunakan
.agentwritehanya jika kamu yakin dengan instruksi yang diberikan. - Jangan menjalankan bot untuk spam, penipuan, pencurian data, malware, atau aktivitas ilegal.
Original Project:
SENNA BOTOriginal Author:
FG98 / DyluxModified Project:
NS AgentModified by:
nansoffcTerima kasih kepada FG98 / Dylux yang telah mengizinkan versi modifikasi ini untuk dipublikasikan.
Project ini mengikuti lisensi SENNA BOT yang merujuk pada GNU General Public License v3.0 dengan ketentuan tambahan dari pemilik asli.
Lihat file LICENSE untuk detail lisensi.