進行中 2024年3月
U.E.P 個人虛擬桌面助理
事件驅動的智能助理系統,整合長期記憶、動態情感與個性化互動,採用模組化架構結合語音辨識、自然語言處理、LLM、語音合成與類似桌寵的行為模式與動畫,提供完整的多模態互動體驗。
AI U.E.P Python Agent Multi-Module
專案簡介
U.E.P 是一個事件驅動的智能助理系統,旨在打造具備長期記憶、動態情感與個性化互動的 AI 夥伴。專案採用模組化架構設計,整合語音辨識、自然語言處理、大型語言模型、語音合成與視覺動畫等技術,提供完整的多模態互動體驗。
核心理念
- 長期記憶能力:解決傳統 AI 助理記憶短暫、無法累積使用者互動歷史的問題
- 靈活的工作流系統:透過 LLM 自動識別使用者意圖並執行對應的複雜任務流程
- 模組化與可擴展性:採用事件驅動架構,支援模組獨立開發、測試與替換
我的職責
作為專案的核心開發者,我負責:
系統架構設計
- 設計三層事件驅動架構(輸入層 → 處理層 → 輸出層)
- 實現中央事件匯流排(Event Bus)協調 9 個功能模組
- 建立三層會話管理系統(Global Session / Chat Session / Working Session)
核心功能實作
- 記憶系統:基於 FAISS 的向量資料庫,支援身份隔離與長期記憶檢索
- 工作流引擎:整合 MCP 協議,實現 21 種自動化工作流(文件生成、日程管理、知識檢索等)
- 前後端整合:開發 Frontend Bridge 與三視窗工具(Live2D 動畫、字幕、對話氣泡)
- 特殊狀態系統:實現動態情感系統(MISCHIEF 搗蛋模式、SLEEP 睡眠狀態等)
測試與文檔
- 建立完整測試體系:476 個測試案例,覆蓋率達 85%
- 撰寫系統設計文件(SDD)、專案執行計畫(PEP)與測試報告(TR-00 ~ TR-07)
核心功能
1. 事件驅動的模組化架構
- 9 個功能模組:語音輸入(STT)、自然語言處理(NLP)、記憶管理(MEM)、語言模型(LLM)、系統控制(SYS)、語音合成(TTS)、使用者介面(UI)、動畫控制(ANI)、動作執行(MOV)
- Event Bus 中樞:透過 20+ 種事件類型協調模組間通訊,實現鬆耦合設計
2. 身份隔離的長期記憶系統
- 每個使用者擁有獨立的 FAISS 向量索引
- 支援語意檢索、時間範圍過濾與記憶管理
- MCP 工具化設計,讓 LLM 能主動查詢與創建記憶
3. LLM 驅動的工作流自動化
- 21 種工作流:日程管理、筆記記錄、文件生成、知識檢索、提醒設定、電子郵件草稿等
- NLP 意圖識別:自動分析使用者輸入並觸發對應工作流
- MCP 協議整合:標準化 LLM 工具調用介面
4. 三層會話管理
- Global Session (GS):系統層級設定與全域狀態
- Chat Session (CS):單次對話的上下文與參與者資訊
- Working Session (WS):工作流執行期間的臨時狀態
5. 動態情感與個性系統
- Status Manager:追蹤使用者狀態(IDLE, LISTENING, THINKING, SPEAKING 等)
- MISCHIEF 搗蛋模式:低機率觸發的趣味互動
- SLEEP 睡眠狀態:可拖曳喚醒的動畫互動
6. 前後端完整整合
- Frontend Bridge:統一管理前端通訊(Live2D 動畫、字幕顯示、對話氣泡)
- 三視窗工具:主視窗(Live2D)、字幕視窗、對話視窗
- 動畫事件系統:前端動畫完成後回報事件,確保流程同步
使用技術
AI / ML 技術
- Whisper:OpenAI 語音辨識模型
- Google Gemini:大型語言模型(支援 2M token 上下文快取)
- FAISS:Facebook 向量相似度搜尋引擎
- Edge-TTS:微軟語音合成服務
系統架構
- Python 3.10:核心開發語言
- PyQt6:系統循環與事件整合
- Event Bus 模式:中央事件協調
- MCP 協議:Model Context Protocol(LLM 工具調用標準)
- YAML 配置管理:模組化設定檔案
開發工具
- pytest:單元測試與整合測試
- GitHub Actions:CI/CD 自動化
- logging:分級日誌系統(debug/runtime/error)
專案狀態
當前版本:v0.9.4-stable
- 核心模組穩定性:Event Bus, Sessions, Controller, Frontend Bridge 均已穩定
測試狀態
- 總測試案例:476 個
- 通過率:81.9%(390 通過 / 476 總數)
- 測試覆蓋率:85% 行覆蓋,80% 分支覆蓋
- 已知問題:28 個(P0=1, P1=6, P2=18, P3=3)
開發挑戰與收穫
1. 架構重構:從直接調用到事件驅動
挑戰:v1.0 採用直接函式調用,導致模組高度耦合,難以維護與擴展。
解決方案:完全重構為事件驅動架構,所有模組透過 Event Bus 通訊,實現鬆耦合設計。
收穫:
- 模組可獨立開發與測試
- 新增功能無需修改現有程式碼
- 系統穩定性大幅提升
2. MCP 協議整合
挑戰:如何讓 LLM 能夠主動調用系統功能(記憶查詢、工作流執行等)?
解決方案:整合 Model Context Protocol,將系統功能封裝為標準化工具,讓 LLM 可透過結構化呼叫執行操作。
收穫:
- 實現 LLM 主動查詢記憶
- 支援複雜工作流自動化(如生成帶附件的電子郵件草稿)
- 建立可擴展的工具生態系統
3. 身份隔離記憶系統
挑戰:如何在多使用者環境下確保記憶隔離與安全性?
解決方案:為每個使用者建立獨立的 FAISS 索引,透過 Memory Token 機制追蹤記憶流動。
收穫:
- 完全隔離的使用者記憶
- 高效的語意檢索(FAISS 向量搜尋)
- 可追溯的記憶來源(避免幻覺問題)
4. 效能優化
挑戰:系統冷啟動耗時過長(初始 120s),影響使用者體驗。
解決方案:
- 延遲載入非必要模組
- Gemini 上下文快取(減少 token 處理時間)
- 移除冗餘初始化流程
成果:冷啟動時間降至 47.6s(降低 60%)
5. 技術債務管理
挑戰:ConditionalStep 工作流步驟順序執行無等待機制,導致競爭條件。
當前狀態:已記錄於技術債務清單,計劃於 v0.10.0 重構工作流引擎。
未來規劃
短期目標
- 修復 TTS 模組載入耗時問題(當前 20~24s)
- 提升單元測試通過率至 90%
- 完成工作流引擎的錯誤處理機制
中期目標
- 重構工作流引擎(解決 ConditionalStep 架構債務)
- 實現更多工作流類型(30+ 種)
- 提升測試覆蓋率至 90%
長期目標
- 支援多使用者並行會話
- 雲端記憶同步功能
- 完整的插件生態系統
專案亮點
技術創新
- ✅ 事件驅動架構實現模組完全解耦
- ✅ MCP 協議整合,LLM 可主動調用系統功能
- ✅ 身份隔離的向量記憶系統
開發成就
- ✅ 476 個測試案例,85% 覆蓋率
- ✅ 21 種自動化工作流
- ✅ 完整的前後端整合(Live2D 動畫、字幕、對話氣泡)
專案管理
- ✅ 完整的文檔體系(SDD, PEP, TR 測試報告)
- ✅ 迭代式開發(Phase 1 → Phase 2 → Phase 3)
- ✅ CI/CD 自動化測試
長期價值
- ✅ 可擴展的模組化設計,易於新增功能
- ✅ 標準化介面(Event Bus, MCP),支援第三方整合
- ✅ 完善的測試與監控體系,確保系統穩定性
程式語言:Python 3.10
程式碼規模:約 15,000+ 行(不含測試)
測試覆蓋率:85% 行覆蓋,80% 分支覆蓋
測試通過率:81.9%(390/476 案例)