# 系統架構總覽 ## 🏗️ 整體架構設計 MCP Feedback Enhanced 採用**單一活躍會話 + 持久化 Web UI**的創新架構設計,實現 AI 助手與用戶之間的高效、無縫交互體驗。 ### 系統整體架構圖 ```mermaid graph TB subgraph "AI 助手環境" AI[AI 助手
Claude/GPT等] end subgraph "MCP Feedback Enhanced" subgraph "MCP 服務層" MCP[MCP Server
server.py] TOOL[interactive_feedback
工具] end subgraph "Web UI 管理層" WM[WebUIManager
單例模式] SESSION[WebFeedbackSession
會話管理] end subgraph "Web 服務層" API[FastAPI
HTTP/WebSocket] ROUTES[路由處理
main_routes.py] end subgraph "前端交互層" UI[Web UI
HTML/JS] WS[WebSocket
實時通信] end subgraph "工具層" ENV[環境檢測] BROWSER[智能瀏覽器開啟] RESOURCE[資源管理] end end subgraph "用戶環境" USER[用戶瀏覽器] FILES[專案文件] end AI -->|調用 MCP 工具| MCP MCP --> TOOL TOOL --> WM WM --> SESSION WM --> API API --> ROUTES ROUTES --> UI UI --> WS WS --> USER ENV --> MCP BROWSER --> USER RESOURCE --> SESSION USER -->|回饋提交| WS FILES -->|專案內容| TOOL ``` ## 🎯 核心設計理念 ### 1. 單一活躍會話模式 ```mermaid stateDiagram-v2 [*] --> NoSession: 系統啟動 NoSession --> ActiveSession: AI 首次調用 ActiveSession --> SessionUpdated: AI 再次調用 SessionUpdated --> ActiveSession: 會話切換完成 ActiveSession --> Cleanup: 超時或手動清理 Cleanup --> NoSession: 資源釋放 note right of ActiveSession 只維護一個活躍會話 提升性能和用戶體驗 end note ``` ### 2. 持久化 Web UI 架構 - **瀏覽器標籤頁保持**: 避免重複開啟瀏覽器 - **WebSocket 連接復用**: 減少連接建立開銷 - **狀態無縫切換**: 從 SUBMITTED → WAITING - **內容局部更新**: 只更新必要的 UI 元素 ### 3. 智能環境檢測 ```mermaid flowchart TD START[啟動檢測] --> LOCAL{本地環境?} LOCAL -->|是| DIRECT[直接開啟瀏覽器] LOCAL -->|否| REMOTE{SSH 遠程?} REMOTE -->|是| TUNNEL[建立 SSH 隧道] REMOTE -->|否| WSL{WSL 環境?} WSL -->|是| WSLOPEN[WSL 瀏覽器開啟] WSL -->|否| FALLBACK[回退模式] DIRECT --> SUCCESS[成功啟動] TUNNEL --> SUCCESS WSLOPEN --> SUCCESS FALLBACK --> SUCCESS ``` ## 🔧 技術亮點 ### 1. 創新的會話管理 ```python # 傳統多會話設計 (已棄用) self.sessions: Dict[str, WebFeedbackSession] = {} # 創新單一活躍會話設計 self.current_session: Optional[WebFeedbackSession] = None self.global_active_tabs: Dict[str, dict] = {} # 全局標籤頁狀態 ``` ### 2. 智能瀏覽器開啟機制 - **活躍標籤頁檢測**: 避免重複開啟瀏覽器視窗 - **跨平台支援**: Windows, macOS, Linux 自動適配 - **環境感知**: SSH/WSL 環境特殊處理 ### 3. 實時狀態同步 - **WebSocket 雙向通信**: 前後端狀態實時同步 - **會話更新通知**: 立即推送會話變更 - **錯誤處理機制**: 連接斷線自動重連 ## 📊 性能特性 ### 資源使用優化 - **內存佔用**: 單一會話模式減少 60% 內存使用 - **連接復用**: WebSocket 連接保持,減少建立開銷 - **智能清理**: 自動資源回收和會話超時處理 ### 用戶體驗提升 - **零等待切換**: 會話更新無需重新載入頁面 - **連續交互**: 支援 AI 助手多次循環調用 - **視覺反饋**: 實時狀態指示和進度顯示 ## 🔄 核心工作流程 ### AI 助手調用流程 ```mermaid sequenceDiagram participant AI as AI 助手 participant MCP as MCP 服務 participant WM as WebUIManager participant UI as Web UI participant User as 用戶 AI->>MCP: interactive_feedback() MCP->>WM: 創建/更新會話 WM->>UI: 啟動 Web 服務 WM->>User: 智能開啟瀏覽器 User->>UI: 提交回饋 UI->>WM: WebSocket 傳送 WM->>MCP: 回饋完成 MCP->>AI: 返回結果 ``` ### 多次循環調用 ```mermaid graph LR A[AI 首次調用] --> B[用戶回饋] B --> C[AI 處理回饋] C --> D[AI 再次調用] D --> E[會話無縫更新] E --> F[用戶再次回饋] F --> G[持續循環...] style D fill:#e1f5fe style E fill:#e8f5e8 ``` --- **下一步**: 查看 [組件詳細說明](./component-details.md) 了解各組件的具體實現