Gateway
什麼是 Gateway?
Gateway 是 Neotask 的核心, , 一個管理所有代理程式工作階段、訊息頻道、工具執行和裝置連接的長期執行服務。所有事情都透過 Gateway 流轉。
它是一個 WebSocket 伺服器,監聽來自用戶端(桌面應用程式、行動應用程式、網頁儀表板)的連接,並管理整個 AI 助理的生命週期。
架構
元件
- WebSocket 伺服器, 接受用戶端連接(預設連接埠 18789)
- HTTP 伺服器, 提供控制 UI、畫布主機和健康端點
- 頻道轉接器, 維護與訊息平台的連接(WhatsApp、Telegram、Discord 等)
- 工作階段管理器, 持久化並管理代理程式對話狀態
- Cron 排程器, 執行排程工作和心跳喚醒
- 外掛執行期, 載入和管理外掛生命週期
- 瀏覽器服務, 控制 Chromium 實例進行網頁自動化
綁定模式
| 模式 | 說明 |
|---|---|
| Loopback | 預設。只能從 localhost(127.0.0.1)存取 |
| LAN | 可在本機網路上存取。透過 Bonjour/mDNS 自動探索 |
| Tailnet | 透過 Tailscale VPN 和 MagicDNS 存取 |
| Custom | 綁定至特定位址 |
驗證
| 方法 | 說明 |
|---|---|
| Token | WebSocket 不記名令牌(UUID 或自訂字串) |
| Password | 基於密碼的驗證(bcrypt 雜湊) |
| Trusted Proxy | 用於帶有預驗證標頭的反向代理 |
| Local Trust | 回送連接自動核准 |
設定
Gateway 透過 neotask.json(JSON5 格式)進行設定。主要區段:
| 區段 | 控制 |
|---|---|
agents |
代理程式清單、預設值、工作空間 |
gateway |
連接埠、綁定模式、驗證、重新載入行為 |
channels |
每頻道設定和憑證 |
tools |
工具權限、設定檔、安全性 |
plugins |
外掛載入、啟用、每外掛設定 |
models |
提供者驗證、備援、提供者設定 |
skills |
技能目錄、每技能設定 |
browser |
瀏覽器設定檔、連接埠、無頭模式 |
cron |
排程器設定 |
session |
重置規則、壓縮閾值 |
messages |
TTS 設定、媒體策略 |
memory |
記憶體索引設定 |
security |
沙盒、提升模式、核准 |
熱重載
設定更改可以在不重新啟動的情況下套用:
| 模式 | 行為 |
|---|---|
| Hybrid(預設) | 熱套用安全更改,其他更改需重新啟動 |
| Hot | 只套用熱安全更改,忽略其他更改 |
| Restart | 在任何需要重新載入的更改時重新啟動 |
| Off | 無自動重新載入 |
遠端存取
Tailscale(推薦)
Tailscale 提供安全的零設定遠端存取:
- 將 Gateway 綁定到您的 Tailnet
- 從同一 Tailscale 網路上的任何裝置存取
- 透過 MagicDNS 自動 DNS
- Tailscale Serve 可以透過 HTTPS 暴露儀表板
SSH 隧道
透過 SSH 轉發 Gateway 連接埠:
- 簡單、安全,無需更改設定
- 適用於任何支援 SSH 的機器
- 支援完整的 WebSocket 協定和控制 UI
安全規則
- Loopback + SSH/Tailscale 是最安全的組合
- 非回送綁定需要驗證令牌設定
- 可提供 TLS 指紋釘選以獲得額外安全性
- 預設情況下,遠端連接停用瀏覽器控制
健康監控
健康端點
/health HTTP 端點返回:
- Gateway 狀態
- RPC 活躍性
- 每頻道健康狀況(連接狀態、驗證狀態、帳戶數量)
- 瀏覽器就緒狀態
- 活躍代理程式和已連接節點
- 正常運行時間
探測
- RPC 活躍性, WebSocket 連接 + 回聲測試
- 頻道健康, 每頻道驗證檢查 + API ping
- 瀏覽器就緒性, 連接埠檢查、程序檢查
- 節點連通性, 上次心跳時間戳記
探索
Bonjour/mDNS
當綁定至區域網路時,Gateway 透過多播 DNS 廣播自己:
- 服務類型:
_neotask-gw._tcp - 包含連接埠、傳輸方式、TLS 狀態和 Tailscale DNS 資訊
- 伴侶應用程式自動探索 Gateway
廣域探索
透過可設定的超時時間探索網路上的 Gateway。支援本機 Bonjour 和 Tailscale DNS 探索。
多個 Gateway
您可以使用設定檔在同一台機器上執行多個 Gateway 實例:
- 每個設定檔都有獨立的設定、工作空間、工作階段和狀態
- 每個 Gateway 使用不同的連接埠
- 適用於隔離(個人與工作)或測試
診斷
醫生
內建診斷工具檢查:
- 設定有效性
- 檔案權限
- 頻道連通性
- 模型驗證狀態
- Node.js 版本相容性
- 常見設定錯誤
獲得許可後,它可以自動修復許多問題。
日誌記錄
Gateway 日誌寫入每日 JSONL 檔案:
- 每次完成的令牌使用量追蹤
- 頻道事件日誌
- 帶有結構化上下文的錯誤日誌記錄
- 可設定的日誌層級