Gateway
Apa Itu Gateway?
Gateway adalah inti dari Neotask, sebuah layanan yang berjalan lama yang mengelola semua sesi agen, saluran pesan, eksekusi alat, dan koneksi perangkat. Semuanya mengalir melalui Gateway.
Ini adalah server WebSocket yang mendengarkan koneksi dari klien (aplikasi desktop, aplikasi mobile, dasbor web) dan mengelola seluruh siklus hidup asisten AI.
Arsitektur
Komponen
- Server WebSocket, Menerima koneksi klien (port default 18789)
- Server HTTP, Melayani Control UI, host kanvas, dan endpoint health
- Adapter Channel, Mempertahankan koneksi ke platform pesan (WhatsApp, Telegram, Discord, dll.)
- Manajer Sesi, Mempertahankan dan mengelola status percakapan agen
- Penjadwal Cron, Menjalankan pekerjaan terjadwal dan wakeup heartbeat
- Runtime Plugin, Memuat dan mengelola siklus hidup plugin
- Layanan Browser, Mengontrol instans Chromium untuk otomasi web
Mode Binding
| Mode | Deskripsi |
|---|---|
| Loopback | Default. Hanya dapat diakses dari localhost (127.0.0.1) |
| LAN | Dapat diakses di jaringan lokal Anda. Dapat ditemukan otomatis melalui Bonjour/mDNS |
| Tailnet | Dapat diakses melalui VPN Tailscale dengan MagicDNS |
| Kustom | Ikat ke alamat tertentu |
Autentikasi
| Metode | Deskripsi |
|---|---|
| Token | Token bearer WebSocket (UUID atau string kustom) |
| Kata sandi | Autentikasi berbasis kata sandi (bcrypt di-hash) |
| Trusted Proxy | Untuk reverse proxy dengan header pra-auth |
| Local Trust | Koneksi loopback disetujui otomatis |
Konfigurasi
Gateway dikonfigurasi melalui neotask.json (format JSON5). Bagian utama:
| Bagian | Kontrol |
|---|---|
agents |
Daftar agen, default, workspace |
gateway |
Port, mode binding, auth, perilaku reload |
channels |
Konfigurasi dan kredensial per-channel |
tools |
Izin alat, profil, keamanan |
plugins |
Pemuatan plugin, pengaktifan, konfigurasi per-plugin |
models |
Auth penyedia, fallback, pengaturan penyedia |
skills |
Direktori skill, konfigurasi per-skill |
browser |
Profil browser, port, mode headless |
cron |
Konfigurasi penjadwal |
session |
Aturan reset, ambang kompaksi |
messages |
Pengaturan TTS, kebijakan media |
memory |
Konfigurasi pengindeksan memori |
security |
Sandboxing, mode elevated, persetujuan |
Hot Reload
Perubahan konfigurasi dapat diterapkan tanpa memulai ulang:
| Mode | Perilaku |
|---|---|
| Hybrid (default) | Terapkan perubahan aman secara hot, restart untuk yang lainnya |
| Hot | Hanya terapkan perubahan yang aman secara hot, abaikan yang lainnya |
| Restart | Restart untuk perubahan yang memerlukan reload |
| Off | Tidak ada reload otomatis |
Akses Jarak Jauh
Tailscale (Direkomendasikan)
Tailscale menyediakan akses jarak jauh yang aman dan tanpa konfigurasi:
- Ikat Gateway ke Tailnet Anda
- Akses dari perangkat mana pun di jaringan Tailscale yang sama
- DNS otomatis melalui MagicDNS
- Tailscale Serve dapat mengekspos dasbor dengan HTTPS
SSH Tunnel
Teruskan port Gateway melalui SSH:
- Sederhana, aman, tidak diperlukan perubahan konfigurasi
- Bekerja dengan mesin yang mendukung SSH apa pun
- Mendukung protokol WebSocket penuh dan Control UI
Aturan Keamanan
- Loopback + SSH/Tailscale adalah kombinasi paling aman
- Binding non-loopback memerlukan konfigurasi token auth
- Pemintaan sidik jari TLS tersedia untuk keamanan ekstra
- Kontrol browser dinonaktifkan untuk koneksi jarak jauh secara default
Pemantauan Kesehatan
Endpoint Health
Endpoint HTTP /health mengembalikan:
- Status Gateway
- Aktivitas RPC
- Kesehatan per-channel (terhubung, status auth, jumlah akun)
- Kesiapan browser
- Agen aktif dan node yang terhubung
- Waktu aktif
Probe
- Aktivitas RPC, Koneksi WebSocket + uji echo
- Kesehatan channel, Pemeriksaan auth + ping API per channel
- Kesiapan browser, Pemeriksaan port, pemeriksaan proses
- Konektivitas node, Timestamp heartbeat terakhir
Penemuan
Bonjour/mDNS
Saat terikat ke LAN, Gateway mengiklankan dirinya melalui multicast DNS:
- Jenis layanan:
_neotask-gw._tcp - Mencakup port, transport, status TLS, dan info DNS Tailscale
- Aplikasi pendamping menemukan Gateway secara otomatis
Penemuan Area Luas
Temukan gateway di seluruh jaringan Anda dengan timeout yang dapat dikonfigurasi. Mendukung penemuan Bonjour lokal dan DNS Tailscale.
Beberapa Gateway
Anda dapat menjalankan beberapa instans Gateway di mesin yang sama menggunakan profil:
- Setiap profil memiliki konfigurasi, workspace, sesi, dan status terpisah
- Port berbeda untuk setiap Gateway
- Berguna untuk isolasi (pribadi vs pekerjaan) atau pengujian
Diagnostik
Doctor
Alat diagnostik bawaan memeriksa:
- Validitas konfigurasi
- Izin file
- Konektivitas channel
- Status auth model
- Kompatibilitas versi Node.js
- Konfigurasi yang salah umum
Alat ini dapat memperbaiki banyak masalah secara otomatis ketika diberi izin.
Logging
Log Gateway ditulis ke file JSONL harian:
- Pelacakan penggunaan token per-completion
- Log event channel
- Logging kesalahan dengan konteks terstruktur
- Level log yang dapat dikonfigurasi