API 核心: - constants.py: 系統常量定義 - unit_of_work.py: Unit of Work 模式 - incident_approval_service.py: Incident-Approval 同步服務 文檔更新: - LOGBOOK.md: 進度更新 - AWOOOI_AGENTIC_WORKSPACE_ROADMAP.md: 路線圖 - 2026-03-26_llm_testing_evaluation.md: LLM 測試評估 - phase5_telemetry_architecture.md: 遙測架構 - SECRETS_REFERENCE.md: 密鑰參考 配置/腳本: - Skill 02 v1.x: leWOOOgo 後端更新 - .dependency-cruiser.cjs: 依賴規則 - demo-multisig-flow.sh: 演示腳本 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
14 KiB
AWOOOI 典範轉移:AI-Native 前端產品藍圖 (Agentic Workspace Roadmap)
文件狀態:Living Document (持續更新) 建立日期:2026-03-26 核心命題:絕對不能變成傳統監控後台,必須是真正的 AI 智慧管理平台。
🌟 核心哲學:從「儀表板 (Dashboard)」走向「代理人協作空間 (Agentic Workspace)」
傳統監控後台的底層邏輯是:「系統把數據攤開,人類負責尋找答案」。 AWOOOI 作為真正的 AI 平台,其底層邏輯必須是:「人類下達意圖 (Intent),AI 負責尋找數據、推演解法並請求授權」。
未來的 SRE 就像看著 Jarvis 一樣。前端 UI 必須具備以下三大 AI-Native 基因:
- 生成式介面 (Generative UI / GenUI) 這是打破傳統後台的關鍵。前端不應該寫死「CPU 圖表」或「Memory 圖表」。當 OpenClaw 判定是資料庫慢查詢時,前端即時生成 (Render-on-the-fly) 一個包含 SQL 語法與執行計畫的特製卡片;如果是網路異常,則生成網路拓撲圖。畫面是跟著 AI 的思考邏輯動態長出來的。
- 空間推演畫布 (Spatial Investigation Canvas) 放棄傳統的「分頁 (Pagination)」。當一個 P0 災難發生時,SRE 需要的是一個無限延伸的「白板」。左邊是告警,中間是 AI 的分析推演樹,右邊是爆炸半徑拓撲。所有的關聯資訊都在同一個視覺平面上展開,這稱為「心智圖式導航」。
- 零信任的「核鑰」體驗 (Nuclear Key UX)
當 AI 提出高風險指令(如
kubectl delete pod)時,授權介面不能只是一個普通的藍色 [Submit] 按鈕。必須透過 UI 傳遞危險感(如紅黑條紋警示、需要長按 3 秒的滑動解鎖、顯示倒數計時),讓人類在按下核准的那一刻,能感受到決策的重量。
🗺️ AWOOOI 終極前端版圖:6 大心智樞紐 (Cognitive Hubs) 的進化
將這三項 AI 基因注入傳統的六大模組中,將迎來質變:
1. 全局心智樞紐 (The Nexus) ── 系統的腦波
- 進化點:拋棄傳統的「圓餅圖/折線圖」。
- 呈現方式:
- AI 自治率指標 (Autonomy Index): 顯示「今日 AI 成功攔截並修復的災難比例」。
- 思考流瀑布 (Thinking Stream): 以 Nothing.tech 的極簡純文字風格,讓背景即時流動著 OpenClaw 正在處理的微小任務(如
[Investigator] Scanning Redis queue... OK)。帶來極大的系統生命力。 - 脈搏聚合器 (Pulse Aggregator): 只有當系統需要統帥介入時,才會在正中央浮現一張高對比度的「決策簡報卡」。
2. 多簽核戰情沙盤 (The War Room) ── 決策的最終防線
- 進化點:不是「待辦清單」,而是「軍事簡報」。
- 呈現方式:
- 紅藍對抗報告: 畫面直接顯示 Strategist Agent(提出解法)與 Guardrail Agent(攔截風險)的辯論結果。
- Dry-Run 預覽: 在統帥按下授權前,直接顯示這行指令下去後,K8s 狀態機將會發生什麼變化的「前後對比圖 (Diff View)」。
3. 拓撲因果畫布 (Topological Canvas) ── 災難的透視鏡
- 進化點:結合 GraphRAG,這不只是一張靜態的架構圖。
- 呈現方式:
- 爆炸半徑高光: 當異常發生,畫布會自動聚焦在核心節點,並以脈衝動畫向外渲染受影響的服務。
- 時光倒流 (Time-Travel): 提供一個時間軸拉桿,統帥可以拉動滑桿,看著這場災難在過去 15 分鐘內是如何從一個小錯誤蔓延成全局崩潰的。
4. 事件記憶迴廊 (Episodic Memory Vault) ── 究責與進化
- 進化點:不是看 Log,是看「案件調查報告」。
- 呈現方式:每次事件結案後,自動生成一份豐富的圖文報告,包含 AI 當時擷取的截圖、Metrics 快照與執行日誌。SRE 可以在這份報告上劃重點、下標籤,將其轉化為下一次的訓練素材。
5. AI 兵工廠 (Tool Forge) ── 訓練與掛載
- 進化點:將「設定 API」變成「配發武器」。
- 呈現方式:採用卡片化管理 (Card-based UI)。每一種 MCP Tool(如 K8s-Operator、DB-Admin)都是一張裝備卡。統帥可以透過拖曳 (Drag & Drop) 的方式,將不同的工具配發給特定的 Agent 角色。
6. 大腦節流閥 (Engine Control) ── 換檔與調校
- 進化點:將複雜的 JSON 設定轉化為直觀的儀表。
- 呈現方式:
- 雙軌切換器 (Dual-Track Toggle): 巨大且清晰的實體感撥桿,一鍵在「雲端大腦」與「本地大腦」之間切換。
- 成本燃燒速率表 (Token Burn Rate): 即時顯示 API 呼叫的成本消耗,防止預算失控。
🎨 視覺與互動語彙:Cyber-Tactical 結合 Nothing.tech 美學
為了讓體驗最優,我們必須堅持極致的**「克制 (Restraint)」**:
- Color Palette (色彩): 90% 的絕對黑與白 (Dark Mode First / Glassmorphism)、5% 的消光灰(用於次要資訊)、僅在關鍵狀態使用極高對比的 霓虹綠 (Success) 與 警戒紅 (Critical) 或 神經藍 (AI prompt)。
- Typography (字體): 全面採用等寬字體 (Monospace,如 VT323 / JetBrains Mono) 呈現數據與 Log,搭配俐落的無襯線體 (Sans-serif) 作為標題。這能營造出「專業、無情、精準」的工程師浪漫。
- Micro-interactions (微互動): 所有的動畫都必須是「冷靜而迅速」的(時間控制在 150ms 以內)。放棄花俏的彈跳,改用透明度漸變、游標掃描線等科技感元素。
🚀 起點:全局底部常駐的 AI 終端 (Omni-Terminal)
首要實作任務:Omni-Terminal (全局心智中樞)。
戰略原因:
- 改變使用者習慣的槓桿率最高: Terminal 改變的是「人機互動方式」。一旦 SRE 習慣了在任何頁面輸入
/incident show latest並獲得 GenUI 卡片回應,這套系統就真正擁有「AI 靈魂」了。 - 開發成本與 ROI: 實作一個結合 WebSocket/SSE 的互動對話框,能立刻將後端 OpenClaw 的強大推理能力 100% 釋放到前端。
現況 (v1.0.0):已於前端框架中建置 OmniTerminal 外殼與白玻璃材質元件,並擴充了 Zustand SSE 狀態儲存庫。待後端 FastAPI Endpoint 對接即可上線。
🎭 賽博戰術劇場 (Cyber-Tactical Theatre):五維實體視覺矩陣
如果只給出一堆冰冷的數據圖表,那這只不過是「另一個 Grafana」。為了在堅持 Nothing.tech 極簡美學的前提下,將 AWOOOI 的底層運作完美具象化,我們必須採用**「符號化、終端機語彙與動態呼吸感」**,讓每一次的告警處理都像是一場人類與各種 AI 實體協同作戰的科幻電影。
以下是為 AWOOOI 量身訂製的**「五維實體 UI/UX 視覺矩陣」**:
🦞 1. OpenClaw 龍蝦 (The Orchestrator 總樞紐)
它是系統中負責「夾取、拆解、分發」的最高指揮網路。
- 視覺符號: 使用極簡的幾何線條或 ASCII 藝術來暗示「雙鉗」的意象,例如
>--[ DATA ]--<或[ 爪 ]。 - 動態表現: 當系統收到複雜告警,準備分發任務時,畫面上方出現閃爍的終端機字樣:
[OpenClaw Protocol: ENGAGED],伴隨著兩道極細的掃描線從螢幕兩側向中央夾擊,象徵「龍蝦正在撕裂並解析問題」。
🧠 2. AI (The Core Brain 底層神經大腦)
代表背後的算力深淵(Ollama / Claude)。它安靜、巨大、深不可測。
- 視覺符號: 點陣矩陣 (Dot Matrix) 背景。
- 動態表現: 當 AI 正在進行深度推理時,背景的點陣圖會產生微弱的「呼吸燈效 (Pulsing Opacity)」。UI 卡片邊緣會泛起 1px 的微光,展現出「算力正在燃燒」的生命力。
🕵️♂️ 3. Agent (The Council 幕僚代理人)
具備特定性格與專業的專家(調查員、策略師、政委)。必須讓使用者感覺到「有一群專家正在後台開會」。
- 視覺符號: 在 Omni-Terminal 中,賦予他們專屬的代號標籤(Badge),例如
@Investigator、@Strategist。 - 動態表現: 在畫面快速刷過他們的「對話軌跡」,展現 AI 互相爭辯的過程,帶來極大的視覺震撼。
@Investigator: 發現 Redis 記憶體飆升至 98%。@Strategist: 提議執行 Cache 清除指令。@Guardrail: ⚠️ 警告:此指令將導致瞬間 Cache Miss,建議改為緩步淘汰。
🤖 4. 機器人 (The Executor 無情執行者)
代表 K8s Worker、Redis 消費者。沒有思想,只有絕對的服從與力量。
- 視覺符號: 剛硬的進度條、齒輪隱喻、純粹的機械狀態碼。
- 動態表現: 指令被授權執行時,畫面瞬間切換為冷酷的終端機模式。進度條為方塊狀
[██████░░░],伴隨[EXECUTING],[NODE_RESTARTED],[EXIT_CODE_0],展現高度工業化的機械精準度。
👑 5. 人類 (The Commander 統帥/最終裁決者)
人類是最尊貴的「核鑰持有者」。
- 視覺符號: 絕對高對比的視覺焦點。需要人類時,其他元素亮度降至 30%,唯獨留下中央的授權卡片高亮。
- 動態表現: 提示字眼永遠是尊貴且帶有責任感的:
[ AWAITING COMMANDER OVERRIDE ]或[ 請求統帥親核 ]。操作需透過「長按 3 秒」或「向右滑動解鎖紅線」,建立起對系統的絕對掌控感。
📐 附錄 A:首席架構師視覺與動態基準 (Architectural Visual & Kinetic Directives)
為了將上述「賽博戰術劇場」從概念轉化為嚴謹的 Frontend Code,必須建立一套不可踰越的 「冷酷工程師美學 (Cold Engineering Aesthetic)」 參數。以下是我的專業架構建議:
1. 深度與特權的 Z-Index 矩陣 (Z-Index Hierarchy of Trust)
- Z-0 (系統深淵):點陣圖背景、OpenClaw 的掃描線。這裡屬於潛意識層,採用
opacity-20極度模糊。 - Z-10 (幕僚對話):Agent 爭辯的 Omni-Terminal 訊息流。採用
bg-white/40 backdrop-blur-[10px]的半透明玻璃。 - Z-100 (核鑰授權):人類 Commander 的決策卡片。必須物理性地隔絕雜訊,採用最高等級的
bg-white/90 backdrop-blur-[40px] drop-shadow-2xl,並搭配 2px 的實體黑色邊框border-2 border-nothing-black。
2. 賽博戰術色票 (Cyber-Tactical Color Palette)
拒絕廉價的高飽和色彩,所有顏色必須具有「警示功能」:
- Claw-Blue (大腦藍):
#4A90E2。專屬於 AI 推理。 - Agent-Orange (幕僚橘):
#F5A623。代表警戒與討論中 (WARNING)。 - Commander-Red (核鑰紅):
#FF3B30。極度危險、不可逆轉的操作 (Delete Pod / Drop Table) 才允許使用。必須搭配條紋斑馬線背景。 - Executor-Green (執行綠):
#34C759。只有在 K8s 確定EXIT_CODE_0(成功) 後才能閃爍一次,象徵危機解除。
3. 動態防抖法則 (Kinetic Debounce Rule)
- 如果系統同時死亡 50 顆 Pod,絕不能讓畫面閃爍 50 次紅光(這會讓 SRE 崩潰)。
- 必須在前端實作
requestAnimationFrame防抖 (Debounce) 或 Throttling。將所有動畫聚合為一秒一次深沉的脈衝 (Deep Pulse),展現出「雖然事態嚴重,但系統仍在掌握中」的冷靜感。
4. 職責分離的字體矩陣 (Typographic Separation of Concerns)
- VT323 (點陣體):只能用於「OpenClaw 思考流」與背景雜訊。它自帶復古感,但長文閱讀性差。
- JetBrains Mono (等寬體):僅用於「K8s Executor 日誌」與「SQL 語法」。特製的 0 與 O 區別,是緊急 Debug 時的安全網。
- Inter (無襯線體):專屬於「人類 Commander」的按鈕、標題與確認對白,確保在最疲勞的狀態下也能一秒看懂。
⚡ 附錄 B:神經網路對接基準 (Neural Link Integration Protocol)
為了讓 Omni-Terminal 成為真正的「心智中樞」,我們必須在前後端交界的 API 合約上,實作以下三大高階架構設計:
1. GenUI 的「動態渲染合約」 (The Rendering Protocol)
後端 AI 生成的速度很快,前端必須透過自訂的 Server-Sent Events (SSE) 類型來決定何時渲染純文字,何時呈現視覺卡片。
API Payload Contract (草案):
event: thought:思考軌跡 (快速刷動的背景字)。例如{"agent": "Investigator", "msg": "Analyzing Redis latency..."}event: tool_call:工具呼叫 (顯示微動畫)。例如{"tool": "K8s-Operator", "status": "executing"}event: render_ui:GenUI 實體掛載。當前端 Zustand 收到此事件,立刻用 Nothing.tech 風格的 React Component 替換文字流。{"component": "MetricsCard", "props": {"cpu": 95, "memory": 88, "pod": "worker-1"}}
2. 空間感知的上下文注入 (Spatial Context Awareness)
當使用者在 Omni-Terminal 輸入指令時,前端發出的 Request 必須帶有「隱形夾帶 (Ghost Payload)」,讓 AI 知道使用者當前的視線落在哪裡。
- 戰術設計:按下 Enter 瞬間,前端抓取目前的「路由 (Current Route)」與「畫面焦點 (Active Entity ID)」。
這賦予了系統強大的感知能力:「統帥正在看 INC-001,他說的 restart 就是指重啟這個事件的 Pod。」
{ "intent": "/restart", "context": { "current_page": "/war-room", "focused_incident_id": "INC-20260326-001" } }
3. 打斷與覆寫機制 (The "Interrupt" Override)
AI 的生成可能需要數秒。若此時爆發新的 P0 告警,系統必須立刻拋棄當前迴圈。
- 使用者打斷:前端綁定
AbortController。按下[ 🛑 HALT ]按鈕瞬間,切斷連線並透過 FastAPI 殺掉底層執行緒以釋放資源。 - 系統級插隊 (Priority Preemption):FastAPI 具備多工流 (Multiplexing) 能力。當 Redis 傳來 P0 告警,直接在當前的 SSE 通道強制插入
event: urgent_alert。前端收到後將現有字體轉灰,直接升起紅色警報卡片:[ SYSTEM OVERRIDE ] P0 Alert: DB Crash。