Arova Nexus 產品發展策略 — 從客戶 MVP 到完整產品
Arova Nexus — Phase 0 Product Definition | 2026-03-31

版本: v2.0 | 日期: 2026-03-26 | 分類: 產品策略


一、定位釐清

說明
Arova Nexus Arova 公司的中長期產品計劃,PRD v1.3 定義了完整的模組架構(Core + 7 個可選模組、233+ User Stories)
客戶泰國廠 MVP/PoC 約 1 個月內部署到客戶現場的最小可用版本。這就是 Nexus 的第一個版本,後續會持續發展成完整產品
客戶 MVP ──→ Nexus v0.1 ──→ v0.2 ──→ ... ──→ v1.0(完整產品)
 (1 個月)     (部署)        (迭代)            (PRD 全實現)

核心原則:我們為客戶做的每一件事,都是在蓋 Nexus 產品本身。


二、MVP 包含什麼(對照 PRD)

2.1 MVP 模組選擇

根據客戶的即時需求和 1 個月時間限制:

PRD 模組 MVP 納入? 範圍 理由
Nexus Core AI Copilot Chat + 基礎 Dashboard 必備
Incident Webhook 接收 + AI 摘要 + 佇列 + 狀態管理 客戶核心需求
Integration LibreNMS + Graylog Connector 資料來源
Analytics Pro ✅ 部分 排程報表(每日/週/月)+ PDF 產出 客戶核心需求
Service Desk ❌ Phase 2 客戶暫不需要工單系統
Automation ❌ Phase 2 排程功能先用 BullMQ 簡化實作
Knowledge ❌ Phase 2 後續加 RAG
CMDB ❌ Phase 2 規格已就緒(IG-012),Phase 2 加入

2.2 MVP 功能 vs PRD User Stories

PRD Story MVP 實作方式 完整度
AI Copilot AIC-001 — Chat 介面 Next.js + useChat() 80%(缺嵌入式面板,先做獨立頁面)
AI Copilot AIC-002 — 自然語言查系統狀態 Mastra Agent + LibreNMS/Graylog Tools 90%
Dashboard DB-006 — 設備健康狀態 Agent 查詢 + Chat 回覆 / 簡易 Dashboard 頁面 60%(先 Chat,後 UI)
Incident IN-001 — Webhook 自動建立 Incident Graylog/LibreNMS Webhook → Incident 100%
Incident IN-011 — AI 自動摘要 Agent analyzeIncident() 100%
Incident IN-004 — Incident 佇列 簡易列表頁面 70%
Incident IN-009 — 告警合併 5 分鐘窗口合併 100%
Incident IN-010 — 自動升級 依嚴重度通知(Email) 80%(缺 UI 設定)
Integration IG-001 — Connector 管理 Agent Tool + 環境變數 50%(缺 UI,用 YAML 設定)
Integration IG-007 — Payload Mapping 寫死 LibreNMS/Graylog 格式 70%(缺自訂 UI)
Integration IG-011~018 — LibreNMS/Graylog API Agent Tools 全部實作 100%
Analytics AN-009 — 排程報表 BullMQ + Handlebars + PDF 90%(缺 UI 管理)

三、技術架構(Nexus v0.1 MVP)

3.1 分層架構

┌─────────────────────────────────────────────────────────┐
│                    Nexus Web UI                          │
│                                                          │
│  ┌──────────────────────────────────────────────────┐   │
│  │ AI Copilot        │ Incident Queue │ Dashboard   │   │
│  │ (Chat Page)       │ (List Page)    │ (Summary)   │   │
│  │                   │                │             │   │
│  │ Next.js + @ai-sdk/react                          │   │
│  └──────────────────────┬───────────────────────────┘   │
│                          │                               │
│  ┌───────────────────────┴──────────────────────────┐   │
│  │              Nexus API Layer                      │   │
│  │  /api/chat    /api/incidents    /api/reports      │   │
│  │  /api/devices /api/alerts       /api/dashboard    │   │
│  └───────────────────────┬──────────────────────────┘   │
│                          │                               │
│  ┌───────────────────────┴──────────────────────────┐   │
│  │           AI Engine (Mastra)                       │   │
│  │                                                   │   │
│  │  Supervisor Agent                                 │   │
│  │  ├── LibreNMS Agent  (= Integration IG-011~014)  │   │
│  │  ├── Graylog Agent   (= Integration IG-015~018)  │   │
│  │  ├── Incident Agent  (= Incident IN-011 AI 摘要) │   │
│  │  └── Report Agent    (= Analytics AN-009 報表)   │   │
│  └───────────────────────┬──────────────────────────┘   │
│                          │                               │
│  ┌───────────────────────┴──────────────────────────┐   │
│  │           Data Layer                              │   │
│  │  PostgreSQL  │  Redis  │  ./reports/              │   │
│  └──────────────────────────────────────────────────┘   │
│                                                          │
│  ┌──────────────────────────────────────────────────┐   │
│  │           Scheduler (BullMQ)                      │   │
│  │  每日簡報 08:00 │ 週報 週一 │ 月報 3日            │   │
│  └──────────────────────────────────────────────────┘   │
└──────────────────────────────────────────────────────────┘
           │                        │
    GX10 Ollama              LibreNMS / Graylog
    (Qwen3.5)                (10.20.92.x 內網)

3.2 和 PRD 架構的對應

PRD 架構層 MVP 實作 備註
API Gateway Next.js API Routes Phase 2 加 JWT + Rate Limiting
AI Native Foundation(Ch6.8) Mastra Supervisor + Agents 直接映射
AI Context Service Redis 快取(對話歷史 + 指標快取) Phase 2 完善
Event Bus BullMQ(排程 + 事件通知) Phase 2 加 Kafka
Auth Service 環境變數 / 基礎 session Phase 2 加 JWT + RBAC
Notification Service Nodemailer + Line Notify Phase 2 加站內通知
各模組 Service Agent 內的 Specialist Agents Phase 2 逐步獨立為微服務

3.3 MVP 的資料庫 Schema(精簡版)

-- MVP 只需要 4 張表

-- 1. Incidents(IN-001~008 的核心)
CREATE TABLE incidents (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  title TEXT NOT NULL,
  description TEXT,
  severity VARCHAR(10) NOT NULL,  -- SEV1/SEV2/SEV3/SEV4
  status VARCHAR(20) NOT NULL DEFAULT 'triggered',  -- triggered/acknowledged/investigating/resolved/closed
  source TEXT,                     -- 來源設備 hostname
  source_type VARCHAR(20),         -- graylog/librenms/manual
  assignee TEXT,
  ai_summary TEXT,                 -- IN-011 AI 摘要
  raw_payload JSONB,               -- 原始 Webhook payload
  triggered_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  acknowledged_at TIMESTAMPTZ,
  resolved_at TIMESTAMPTZ,
  created_at TIMESTAMPTZ DEFAULT NOW(),
  updated_at TIMESTAMPTZ DEFAULT NOW()
);

-- 2. Incident Timeline(IN-006 狀態變更紀錄)
CREATE TABLE incident_timeline (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  incident_id UUID REFERENCES incidents(id),
  action VARCHAR(50) NOT NULL,     -- status_change/comment/escalation/ai_analysis
  actor TEXT,                      -- 操作者或 'system'
  content TEXT,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- 3. Scheduled Reports(AN-009 排程報表設定)
CREATE TABLE scheduled_reports (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  name TEXT NOT NULL,
  config JSONB NOT NULL,           -- 報表設定(模板、查詢、閾值)
  cron_expression VARCHAR(50),
  notify_email TEXT[],
  last_run_at TIMESTAMPTZ,
  is_active BOOLEAN DEFAULT true,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- 4. Report Results(報表產出紀錄)
CREATE TABLE report_results (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  report_id UUID REFERENCES scheduled_reports(id),
  title TEXT NOT NULL,
  html_path TEXT,
  pdf_path TEXT,
  summary TEXT,                    -- AI 產出的摘要
  created_at TIMESTAMPTZ DEFAULT NOW()
);

四、MVP 開發計畫(1 個月)

Week 1:AI Engine + Core Tools

目標:Agent 能透過 CLI 查設備、查 log、產報告

Week 2:Chat UI + Dashboard

目標:使用者可以透過瀏覽器對話、看到 Incident 列表

Week 3:排程報表 + GX10 整合

目標:每日 08:00 自動產報告寄 Email;GX10 地端模型上線

Week 4:部署 + 調校 + 交付

目標:部署到客戶 EWAI OMNI,試運行調校

五、MVP 之後的演進路線

v0.2(+1 個月)— 完善 Incident + CMDB

v0.3(+2 個月)— Integration UI + Analytics

v0.4(+3 個月)— Automation + Knowledge

v1.0(+6 個月)— 完整產品


六、關鍵設計決策

6.1 從第一天就用 PostgreSQL(不是 JSON 檔案)

即使 MVP 很小,Incident 和報表設定也要存 PostgreSQL。原因:

6.2 API Routes 就是產品 API

MVP 的 Next.js API Routes(/api/v1/incidents/...)就是 PRD 定義的 REST API(Ch6.57)。從第一天就用正確的路徑:

/api/v1/incidents/webhook/generic    ← IN-001
/api/v1/incidents                     ← IN-004 列表
/api/v1/incidents/:id                 ← IN-007 詳情
/api/v1/chat                          ← AIC-001
/api/v1/reports                       ← AN-009
/api/v1/dashboard/summary             ← DB-003

6.3 Agent Skills = 未來的 Integration Connectors

Agent 的 Tool 定義(Zod schema + 實作)在 Phase 2 直接包裝成 Nexus Connector,不用重寫:

Phase 1: Agent Tool (list_devices)
    ↓ 加 UI 設定頁面
Phase 2: Nexus Connector (LibreNMS Connector → list_devices)

6.4 Handlebars 報表模板 = 產品報表模板

templates/ 目錄的 5 份模板在 Phase 2 直接變成 Analytics Pro 的報表模板庫。

6.5 Chat UI 是 AI Copilot 的 v1

不是「先做 Chat UI 再做 AI Copilot」,而是「Chat UI 就是 AI Copilot Phase 1」。同一個 useChat() hook,同一個 /api/chat 端點,Phase 2 只是從獨立頁面變成嵌入式側面板。


七、什麼不是 MVP(明確排除)

不做 原因 何時做
Service Desk 工單系統 客戶不需要(他們用 Incident,不用 Request) v0.4+
完整 RBAC MVP 單一角色(IT 管理員) v0.3
SSO / OIDC 客戶內網不需要 v0.4
Workflow 視覺化編輯器 排程用 BullMQ 夠了 v0.4
Knowledge RAG 暫不需要知識庫搜尋 v0.4
CMDB 拓撲圖 設備同步 Phase 2 加入 v0.3
多語系切換 固定繁體中文 v0.3
深色模式 固定淺色 v0.3
行動版 RWD 先做桌面版 v0.3

八、總結

問題 回答
客戶 MVP 是什麼? Nexus v0.1 — 產品的第一個版本
它和完整 Nexus 的關係? 同一個 codebase,持續迭代,不是另一個系統
現在設計的 Agent 架構會浪費嗎? 不會,它就是 PRD Ch6.8 AI Native Foundation
現在做的 Chat UI 會被丟掉嗎? 不會,它就是 AI Copilot v1
1 個月能做到什麼? Chat 對話 + Incident 管理 + 排程報表 + GX10 地端模型
之後怎麼演進? v0.2 CMDB → v0.3 Integration UI → v0.4 Automation → v1.0 完整產品