2025-04-11 17:31:48 +08:00
|
|
|
|
# 蝦米任務管理器系統架構
|
|
|
|
|
|
|
|
|
|
本文檔描述蝦米任務管理器的系統架構設計,包括各組件的功能、交互方式和數據流。
|
|
|
|
|
|
|
|
|
|
## 1. 系統整體架構
|
|
|
|
|
|
|
|
|
|
蝦米任務管理器採用模塊化設計,基於 MCP (Model Context Protocol) 協議實現與 LLM 的互動。系統由以下核心組件構成:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
+------------------+
|
|
|
|
|
| |
|
|
|
|
|
| MCP 客戶端 |
|
|
|
|
|
| (如 Cursor IDE) |
|
|
|
|
|
| |
|
|
|
|
|
+---------+--------+
|
|
|
|
|
|
|
|
|
|
|
| MCP 協議
|
|
|
|
|
|
|
|
|
|
|
+---------v--------+
|
|
|
|
|
| |
|
|
|
|
|
| 工具註冊層 | <-- 新增 delete_task 工具
|
2025-04-11 18:02:56 +08:00
|
|
|
|
| (index.ts) | 新增 clear_all_tasks 工具
|
|
|
|
|
| | 新增 update_task 工具
|
|
|
|
|
| | 新增 update_task_files 工具
|
2025-04-11 17:31:48 +08:00
|
|
|
|
+---------+--------+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+------------------+------------------+
|
|
|
|
|
| | |
|
|
|
|
|
+---------v--------+ +-------v---------+ +------v-----------+
|
|
|
|
|
| | | | | |
|
|
|
|
|
| 工具實現層 | | 模型邏輯層 | | 工具實現層 |
|
|
|
|
|
| (taskTools.ts) | | (taskModel.ts) | | (logTools.ts) |
|
|
|
|
|
| | | | | |
|
|
|
|
|
+------------------+ +-------+---------+ +------------------+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+---------v--------+
|
|
|
|
|
| |
|
|
|
|
|
| 數據存儲層 |
|
|
|
|
|
| (JSON 文件) |
|
|
|
|
|
| |
|
|
|
|
|
+------------------+
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 2. 主要組件說明
|
|
|
|
|
|
|
|
|
|
### 2.1 工具註冊層 (index.ts)
|
|
|
|
|
|
|
|
|
|
工具註冊層負責將各功能工具註冊到 MCP 系統中,使其能夠被 LLM 訪問和使用。
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
**主要功能**:
|
|
|
|
|
|
|
|
|
|
- 註冊 `plan_task` 工具函數,用於任務規劃
|
|
|
|
|
- 註冊 `analyze_task` 工具函數,用於任務分析
|
|
|
|
|
- 註冊 `reflect_task` 工具函數,用於批判性審查分析結果
|
|
|
|
|
- 註冊 `split_tasks` 工具函數,用於將複雜任務分解為子任務
|
|
|
|
|
- 註冊 `list_tasks` 工具函數,用於生成任務清單
|
|
|
|
|
- 註冊 `execute_task` 工具函數,用於執行特定任務
|
|
|
|
|
- 註冊 `verify_task` 工具函數,用於驗證任務完成度
|
|
|
|
|
- 註冊 `complete_task` 工具函數,用於標記任務為完成狀態
|
|
|
|
|
- 註冊 `delete_task` 工具函數,用於刪除未完成的任務
|
|
|
|
|
- 註冊 `clear_all_tasks` 工具函數,用於清除所有未完成的任務
|
|
|
|
|
- 註冊 `update_task` 工具函數,用於更新任務內容
|
|
|
|
|
- 註冊 `update_task_files` 工具函數,用於更新任務相關文件列表
|
|
|
|
|
- 註冊 `list_conversation_log` 工具函數,用於查詢系統對話日誌
|
|
|
|
|
- 註冊 `clear_conversation_log` 工具函數,用於清除所有對話日誌記錄
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
### 2.2 工具實現層 (tools/\*.ts)
|
|
|
|
|
|
|
|
|
|
工具實現層包含具體工具函數的實現,處理參數解析、驗證和結果格式化。
|
|
|
|
|
|
|
|
|
|
**核心文件**:
|
|
|
|
|
|
|
|
|
|
- `taskTools.ts`: 任務管理相關工具
|
|
|
|
|
- `logTools.ts`: 日誌管理相關工具
|
2025-04-12 16:57:47 +08:00
|
|
|
|
- `fileLoader.ts`: 任務相關文件的摘要生成工具
|
|
|
|
|
|
|
|
|
|
**主要功能**:
|
|
|
|
|
|
|
|
|
|
- 實現 `planTask` 工具函數,初始化並詳細規劃任務流程
|
|
|
|
|
- 實現 `analyzeTask` 工具函數,深入分析任務需求
|
|
|
|
|
- 實現 `reflectTask` 工具函數,批判性審查分析結果
|
|
|
|
|
- 實現 `splitTasks` 工具函數,將複雜任務分解為獨立且可追蹤的子任務
|
|
|
|
|
- 實現 `listTasks` 工具函數,生成結構化任務清單
|
|
|
|
|
- 實現 `executeTask` 工具函數,按照預定義計劃執行特定任務
|
|
|
|
|
- 實現 `verifyTask` 工具函數,全面驗證任務完成度
|
|
|
|
|
- 實現 `completeTask` 工具函數,正式標記任務為完成狀態
|
|
|
|
|
- 實現 `deleteTask` 工具函數,刪除未完成的任務
|
|
|
|
|
- 實現 `clearAllTasks` 工具函數,刪除所有未完成的任務
|
|
|
|
|
- 實現 `updateTask` 工具函數,更新任務內容
|
|
|
|
|
- 實現 `updateTaskRelatedFiles` 工具函數,更新任務相關文件列表
|
|
|
|
|
- 實現 `listConversationLog` 工具函數,查詢系統對話日誌
|
|
|
|
|
- 實現 `clearConversationLog` 工具函數,清除所有對話日誌記錄
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
### 2.3 模型邏輯層 (models/\*.ts)
|
|
|
|
|
|
|
|
|
|
模型邏輯層包含核心業務邏輯和數據處理函數,負責實現各種功能的邏輯處理。
|
|
|
|
|
|
|
|
|
|
**核心文件**:
|
|
|
|
|
|
|
|
|
|
- `taskModel.ts`: 任務數據模型和操作
|
|
|
|
|
- `conversationLogModel.ts`: 對話日誌數據模型和操作
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
**主要功能**:
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
- 在 `taskModel.ts` 中實現創建、讀取、更新和刪除任務的功能
|
|
|
|
|
- 在 `taskModel.ts` 中實現 `deleteTask` 函數,刪除未完成的任務
|
|
|
|
|
- 在 `taskModel.ts` 中實現 `clearAllTasks` 函數,刪除所有未完成的任務
|
|
|
|
|
- 在 `taskModel.ts` 中實現 `updateTask` 函數,更新任務內容
|
|
|
|
|
- 在 `taskModel.ts` 中實現 `updateTaskRelatedFiles` 函數,更新任務相關文件列表
|
|
|
|
|
- 在 `taskModel.ts` 中實現 `assessTaskComplexity` 函數,評估任務複雜度
|
|
|
|
|
- 在 `taskModel.ts` 中實現 `loadTaskById` 函數,載入特定任務
|
|
|
|
|
- 在 `taskModel.ts` 中實現 `completeTask` 函數,標記任務為完成狀態
|
|
|
|
|
- 在 `conversationLogModel.ts` 中實現對話日誌的記錄、查詢和清除功能
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
### 2.4 數據模型定義 (types/index.ts)
|
|
|
|
|
|
|
|
|
|
定義系統中使用的所有數據類型和接口。
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
**主要類型**:
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
- `TaskStatus` 枚舉:定義任務狀態,包括待處理、進行中、已完成和被阻擋
|
|
|
|
|
- `TaskDependency` 接口:定義任務依賴關係
|
|
|
|
|
- `RelatedFileType` 枚舉:定義文件關聯類型,如待修改、參考資料、輸出結果、依賴文件和其他
|
|
|
|
|
- `RelatedFile` 接口:定義任務相關文件結構
|
|
|
|
|
- `Task` 接口:定義任務的完整數據結構
|
|
|
|
|
- `ConversationParticipant` 枚舉:定義對話參與者類型,如 MCP 和 LLM
|
|
|
|
|
- `ConversationEntry` 接口:定義對話日誌條目
|
|
|
|
|
- `TaskComplexityLevel` 枚舉:定義任務複雜度級別,如低複雜度、中等複雜度、高複雜度和極高複雜度
|
2025-04-11 17:31:48 +08:00
|
|
|
|
- `TaskComplexityThresholds` 常量:定義複雜度評估閾值
|
|
|
|
|
- `TaskComplexityAssessment` 接口:記錄複雜度評估結果
|
|
|
|
|
|
|
|
|
|
### 2.5 工具函數 (utils/\*.ts)
|
|
|
|
|
|
|
|
|
|
提供各種輔助功能的工具函數。
|
|
|
|
|
|
|
|
|
|
**核心文件**:
|
|
|
|
|
|
|
|
|
|
- `summaryExtractor.ts`: 實現摘要提取和生成功能
|
2025-04-12 16:57:47 +08:00
|
|
|
|
- `fileLoader.ts`: 實現任務相關文件的摘要生成功能
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
**主要功能**:
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
- 實現 `extractSummary` 函數,從文本中提取簡短摘要
|
|
|
|
|
- 實現 `generateTaskSummary` 函數,基於任務名稱和描述生成任務完成摘要
|
|
|
|
|
- 實現 `extractTitle` 函數,從內容中提取適合作為標題的文本
|
|
|
|
|
- 實現 `extractSummaryFromConversation` 函數,從對話記錄中提取摘要信息
|
|
|
|
|
- 實現 `loadTaskRelatedFiles` 函數,生成任務相關文件的內容摘要
|
|
|
|
|
- 實現 `generateFileInfo` 函數,生成文件基本資訊摘要
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
### 2.6 數據存儲層
|
|
|
|
|
|
|
|
|
|
使用 JSON 文件作為數據存儲,保存任務信息和對話日誌。
|
|
|
|
|
|
|
|
|
|
**核心文件**:
|
|
|
|
|
|
|
|
|
|
- `data/tasks.json`: 存儲所有任務數據
|
|
|
|
|
- `data/conversation_log.json`: 存儲對話日誌數據
|
2025-04-12 16:57:47 +08:00
|
|
|
|
- `data/backups/`: 存儲任務數據備份
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
## 3. 數據流
|
|
|
|
|
|
|
|
|
|
### 3.1 任務刪除流程
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
LLM 調用 delete_task
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
識別任務是否存在
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
檢查任務狀態(拒絕刪除已完成任務)
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
檢查依賴關係(拒絕刪除有依賴的任務)
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
執行刪除操作
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
記錄操作到日誌
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
返回結果給 LLM
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 3.2 任務複雜度評估流程
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
LLM 調用 execute_task
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
載入任務信息
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
評估任務複雜度
|
|
|
|
|
|
|
|
|
|
|
+------------> 計算描述長度
|
|
|
|
|
| |
|
|
|
|
|
+------------> 計算依賴數量
|
|
|
|
|
| |
|
|
|
|
|
+------------> 計算注記長度
|
|
|
|
|
| |
|
2025-04-12 16:57:47 +08:00
|
|
|
|
+------------> 檢查是否有注記
|
|
|
|
|
| |
|
2025-04-11 17:31:48 +08:00
|
|
|
|
v v
|
|
|
|
|
確定複雜度級別 <----- 應用評估閾值
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
生成處理建議
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
更新任務提示,包含複雜度信息
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
返回增強後的任務執行提示給 LLM
|
|
|
|
|
```
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
### 3.3 任務完成流程
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
LLM 調用 complete_task
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
載入任務信息
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
檢查是否提供摘要
|
|
|
|
|
|
|
|
|
|
|
+---- 有 ----> 使用提供的摘要
|
|
|
|
|
|
|
|
|
|
|
+---- 無 ----> 自動生成摘要
|
|
|
|
|
|
|
|
|
|
|
+---> 基於任務名稱和描述
|
|
|
|
|
|
|
|
|
|
|
+---> 提取關鍵信息
|
|
|
|
|
|
|
|
|
|
|
+---> 格式化摘要文本
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
更新任務狀態為已完成
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
保存摘要到任務記錄
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
記錄操作到日誌
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
返回結果給 LLM
|
|
|
|
|
```
|
|
|
|
|
|
2025-04-11 18:02:56 +08:00
|
|
|
|
### 3.4 清除所有任務流程
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
LLM 調用 clear_all_tasks
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
檢查確認參數(必須為 true)
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
創建數據備份
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
載入當前任務列表
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
篩選出未完成的任務
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
記錄操作開始到日誌
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
執行批量刪除
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
更新數據文件
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
記錄操作結果到日誌
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
返回清除結果給 LLM
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 3.5 更新任務內容流程
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
LLM 調用 update_task
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
載入任務信息
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
檢查任務是否存在
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
檢查任務狀態(阻止更新已完成任務)
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
驗證更新參數(至少提供一個更新字段)
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
執行更新操作
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
記錄操作到日誌
|
|
|
|
|
|
|
|
|
|
|
v
|
2025-04-12 16:57:47 +08:00
|
|
|
|
返回更新結果給 LLM
|
2025-04-11 18:02:56 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 3.6 更新任務相關文件流程
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
LLM 調用 update_task_files
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
載入任務信息
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
檢查任務是否存在
|
|
|
|
|
|
|
|
|
|
|
v
|
2025-04-12 16:57:47 +08:00
|
|
|
|
檢查任務狀態(阻止更新已完成任務)
|
|
|
|
|
|
|
|
|
|
|
v
|
2025-04-11 18:02:56 +08:00
|
|
|
|
驗證文件列表格式
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
處理每個相關文件
|
|
|
|
|
| |
|
|
|
|
|
| +---> 驗證文件路徑
|
|
|
|
|
| |
|
|
|
|
|
| +---> 檢查行號範圍(如有提供)
|
|
|
|
|
| |
|
|
|
|
|
| +---> 驗證文件類型
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
更新任務的相關文件列表
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
記錄操作到日誌
|
|
|
|
|
|
|
|
|
|
|
v
|
2025-04-12 16:57:47 +08:00
|
|
|
|
返回更新結果給 LLM
|
2025-04-11 18:02:56 +08:00
|
|
|
|
```
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
### 3.7 文件處理流程
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
```
|
2025-04-12 16:57:47 +08:00
|
|
|
|
處理任務相關文件
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
|
v
|
2025-04-12 16:57:47 +08:00
|
|
|
|
根據文件類型進行優先級排序
|
|
|
|
|
| |
|
|
|
|
|
| +---> 待修改 > 參考資料 > 依賴文件 > 輸出結果 > 其他
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
|
v
|
2025-04-12 02:01:28 +08:00
|
|
|
|
生成文件摘要
|
2025-04-11 18:02:56 +08:00
|
|
|
|
| |
|
2025-04-12 02:01:28 +08:00
|
|
|
|
| +---> 對於指定行號範圍的文件,生成該範圍的摘要
|
2025-04-11 18:02:56 +08:00
|
|
|
|
| |
|
2025-04-12 16:57:47 +08:00
|
|
|
|
| +---> 對於一般文件,生成整體內容摘要
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
|
v
|
2025-04-12 16:57:47 +08:00
|
|
|
|
返回文件摘要結果
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 3.8 對話日誌查詢流程
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
LLM 調用 list_conversation_log
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
|
v
|
2025-04-12 16:57:47 +08:00
|
|
|
|
處理過濾參數
|
|
|
|
|
| |
|
|
|
|
|
| +---> 任務ID過濾(如有提供)
|
|
|
|
|
| |
|
|
|
|
|
| +---> 日期範圍過濾(如有提供)
|
|
|
|
|
| |
|
|
|
|
|
| +---> 應用分頁參數(limit和offset)
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
|
v
|
2025-04-12 16:57:47 +08:00
|
|
|
|
查詢符合條件的日誌條目
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
|
v
|
2025-04-12 16:57:47 +08:00
|
|
|
|
格式化日誌條目列表
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
返回查詢結果給 LLM
|
2025-04-11 18:02:56 +08:00
|
|
|
|
```
|
|
|
|
|
|
2025-04-11 17:31:48 +08:00
|
|
|
|
## 4. 系統交互圖
|
|
|
|
|
|
|
|
|
|
### 4.1 LLM 與任務管理器交互
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
+-------+ 1.調用工具 +----------------+
|
|
|
|
|
| |------------------>| |
|
|
|
|
|
| LLM | | 蝦米任務管理器 |
|
|
|
|
|
| |<------------------| |
|
|
|
|
|
+-------+ 4.返回結果 +-------+--------+
|
|
|
|
|
|
|
|
|
|
|
+-------v--------+
|
|
|
|
|
| |
|
|
|
|
|
| JSON 數據存儲 |
|
|
|
|
|
| |
|
|
|
|
|
+----------------+
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 4.2 工具層與模型層交互
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
+-------------+ 調用 +-------------+ 讀寫 +------------+
|
|
|
|
|
| |------------->| |------------>| |
|
|
|
|
|
| 工具實現層 | | 模型邏輯層 | | 數據存儲層 |
|
|
|
|
|
| |<-------------| |<------------| |
|
|
|
|
|
+-------------+ 返回結果 +-------------+ 返回數據 +------------+
|
|
|
|
|
```
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
## 5. 核心功能架構圖
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
### 5.1 任務規劃功能
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
```
|
2025-04-12 16:57:47 +08:00
|
|
|
|
+----------------+ +----------------+ +------------------+
|
|
|
|
|
| | | | | |
|
|
|
|
|
| planTaskSchema |---->| planTask |---->| 任務規劃響應生成 |
|
|
|
|
|
| | | (taskTools.ts) | | |
|
|
|
|
|
+----------------+ +-------+--------+ +------------------+
|
2025-04-11 17:31:48 +08:00
|
|
|
|
```
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
### 5.2 任務分析功能
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
+----------------+ +----------------+ +------------------+
|
|
|
|
|
| | | | | |
|
2025-04-12 16:57:47 +08:00
|
|
|
|
| analyzeTaskSchema|---->| analyzeTask |---->| 技術分析指引生成 |
|
|
|
|
|
| | | (taskTools.ts) | | |
|
|
|
|
|
+----------------+ +-------+--------+ +------------------+
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 5.3 任務反思功能
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
+----------------+ +----------------+ +------------------+
|
|
|
|
|
| | | | | |
|
|
|
|
|
| reflectTaskSchema|---->| reflectTask |---->| 反思提示與建議生成|
|
|
|
|
|
| | | (taskTools.ts) | | |
|
|
|
|
|
+----------------+ +-------+--------+ +------------------+
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 5.4 任務拆分功能
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
+----------------+ +----------------+ +------------------+
|
|
|
|
|
| | | | | |
|
|
|
|
|
| splitTasksSchema|---->| splitTasks |---->| createTasks |
|
|
|
|
|
| | | (taskTools.ts) | | (taskModel.ts) |
|
|
|
|
|
+----------------+ +-------+--------+ +------------------+
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 5.5 任務執行功能
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
+----------------+ +----------------+ +------------------+
|
|
|
|
|
| | | | | |
|
|
|
|
|
| executeTaskSchema|---->| executeTask |---->| assessTaskComplexity|
|
|
|
|
|
| | | (taskTools.ts) | | (taskModel.ts) |
|
|
|
|
|
+----------------+ +-------+--------+ +------------------+
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
+------+---------------------+------+
|
2025-04-12 16:57:47 +08:00
|
|
|
|
| 任務執行指南和上下文生成 |
|
2025-04-11 17:31:48 +08:00
|
|
|
|
+------+---------------------+------+
|
|
|
|
|
```
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
### 5.6 任務驗證功能
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
```
|
2025-04-12 16:57:47 +08:00
|
|
|
|
+----------------+ +----------------+ +------------------+
|
|
|
|
|
| | | | | |
|
|
|
|
|
| verifyTaskSchema|---->| verifyTask |---->| 任務驗證評估 |
|
|
|
|
|
| | | (taskTools.ts) | | |
|
|
|
|
|
+----------------+ +-------+--------+ +------------------+
|
2025-04-11 17:31:48 +08:00
|
|
|
|
```
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
### 5.7 完成任務功能
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
```
|
2025-04-12 16:57:47 +08:00
|
|
|
|
+----------------+ +----------------+ +------------------+
|
|
|
|
|
| | | | | |
|
|
|
|
|
| completeTaskSchema|---->| completeTask |---->| updateTaskSummary|
|
|
|
|
|
| | | (taskTools.ts) | | (taskModel.ts) |
|
|
|
|
|
+----------------+ +-------+--------+ +------------------+
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
+------+--------+
|
|
|
|
|
| summaryExtractor|
|
|
|
|
|
| (utils) |
|
|
|
|
|
+---------------+
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 5.8 任務刪除功能
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
+----------------+ +----------------+ +------------------+
|
|
|
|
|
| | | | | |
|
|
|
|
|
| deleteTaskSchema|---->| deleteTask |---->| modelDeleteTask |
|
|
|
|
|
| | | (taskTools.ts) | | (taskModel.ts) |
|
|
|
|
|
+----------------+ +-------+--------+ +------------------+
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
+------+---------------------+------+
|
|
|
|
|
| 檢查任務狀態和依賴關係 |
|
|
|
|
|
+------+---------------------+------+
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 5.9 清除所有任務功能
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
+------------------+ +----------------+ +------------------+
|
|
|
|
|
| | | | | |
|
|
|
|
|
| clearAllTasksSchema|---->| clearAllTasks |---->| modelClearAllTasks|
|
|
|
|
|
| | | (taskTools.ts) | | (taskModel.ts) |
|
|
|
|
|
+------------------+ +-------+--------+ +------------------+
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
+------+---------------------+------+
|
2025-04-12 16:57:47 +08:00
|
|
|
|
| 確認參數檢查和數據備份 |
|
2025-04-11 18:02:56 +08:00
|
|
|
|
+------+---------------------+------+
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
+------+---------------------+------+
|
2025-04-12 16:57:47 +08:00
|
|
|
|
| 篩選和批量刪除未完成任務 |
|
2025-04-11 18:02:56 +08:00
|
|
|
|
+------+---------------------+------+
|
|
|
|
|
```
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
### 5.10 更新任務功能
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
```
|
2025-04-12 16:57:47 +08:00
|
|
|
|
+------------------+ +----------------+ +------------------+
|
|
|
|
|
| | | | | |
|
|
|
|
|
| updateTaskSchema |---->| updateTask |---->| updateTask |
|
|
|
|
|
| | | (taskTools.ts) | | (taskModel.ts) |
|
|
|
|
|
+------------------+ +-------+--------+ +------------------+
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
+------+---------------------+------+
|
2025-04-12 16:57:47 +08:00
|
|
|
|
| 檢查任務狀態和更新參數有效性 |
|
2025-04-11 18:02:56 +08:00
|
|
|
|
+------+---------------------+------+
|
|
|
|
|
```
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
### 5.11 更新任務相關文件功能
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
```
|
2025-04-12 16:57:47 +08:00
|
|
|
|
+----------------------+ +---------------------+ +----------------------+
|
|
|
|
|
| | | | | |
|
2025-04-11 18:02:56 +08:00
|
|
|
|
| updateTaskFilesSchema |---->| updateTaskRelatedFiles |---->| updateTaskRelatedFiles |
|
2025-04-12 16:57:47 +08:00
|
|
|
|
| | | (taskTools.ts) | | (taskModel.ts) |
|
|
|
|
|
+----------------------+ +-----------+---------+ +-----------+----------+
|
2025-04-11 18:02:56 +08:00
|
|
|
|
| |
|
|
|
|
|
v v
|
|
|
|
|
+-------+-------------------------+------+
|
|
|
|
|
| 驗證文件格式和路徑有效性 |
|
|
|
|
|
+-------+-------------------------+------+
|
|
|
|
|
|
|
|
|
|
|
v
|
|
|
|
|
+-------+-------------------------+------+
|
|
|
|
|
| 更新任務相關文件列表 |
|
|
|
|
|
+-------+-------------------------+------+
|
|
|
|
|
```
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
### 5.12 日誌查詢功能
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
```
|
2025-04-12 16:57:47 +08:00
|
|
|
|
+------------------------+ +-------------------+ +---------------------+
|
|
|
|
|
| | | | | |
|
|
|
|
|
| listConversationLogSchema|---->| listConversationLog|---->| getConversationLogs |
|
|
|
|
|
| | | (logTools.ts) | | (logModel.ts) |
|
|
|
|
|
+------------------------+ +---------+---------+ +---------+-----------+
|
|
|
|
|
| |
|
|
|
|
|
v v
|
|
|
|
|
+-------+------------------------+-----+
|
|
|
|
|
| 過濾參數處理和分頁控制 |
|
|
|
|
|
+-------+------------------------+-----+
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 5.13 清除日誌功能
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
+-------------------------+ +--------------------+ +------------------------+
|
|
|
|
|
| | | | | |
|
|
|
|
|
| clearConversationLogSchema|---->| clearConversationLog|---->| clearConversationLogs |
|
|
|
|
|
| | | (logTools.ts) | | (logModel.ts) |
|
|
|
|
|
+-------------------------+ +---------+----------+ +----------+-------------+
|
|
|
|
|
| |
|
|
|
|
|
v v
|
|
|
|
|
+-------+-------------------------+-----+
|
|
|
|
|
| 確認參數檢查和刪除操作 |
|
|
|
|
|
+-------+-------------------------+-----+
|
2025-04-11 18:02:56 +08:00
|
|
|
|
```
|
|
|
|
|
|
2025-04-11 17:31:48 +08:00
|
|
|
|
## 6. 擴展性考慮
|
|
|
|
|
|
|
|
|
|
### 6.1 新功能擴展方式
|
|
|
|
|
|
|
|
|
|
蝦米任務管理器的模塊化設計使其易於擴展。要添加新功能,通常需要:
|
|
|
|
|
|
|
|
|
|
1. 在 `types/index.ts` 中定義相關數據類型
|
|
|
|
|
2. 在相應的模型文件中實現核心邏輯
|
|
|
|
|
3. 在工具層創建對應的工具函數
|
|
|
|
|
4. 在 `index.ts` 中註冊新工具
|
|
|
|
|
|
|
|
|
|
### 6.2 目前的擴展點
|
|
|
|
|
|
|
|
|
|
系統當前提供以下擴展點:
|
|
|
|
|
|
|
|
|
|
- **任務處理流程擴展**:可通過修改 `executeTask`、`verifyTask` 等函數擴展任務處理流程
|
|
|
|
|
- **複雜度評估擴展**:可在 `assessTaskComplexity` 中添加更多評估指標
|
|
|
|
|
- **摘要生成擴展**:可增強 `summaryExtractor.ts` 中的算法
|
2025-04-12 16:57:47 +08:00
|
|
|
|
- **文件處理擴展**:可在 `fileLoader.ts` 中支持更多文件類型的摘要格式化
|
|
|
|
|
- **過濾條件擴展**:可在日誌查詢中添加更多過濾條件選項
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
## 7. 系統限制與未來改進
|
|
|
|
|
|
|
|
|
|
### 7.1 當前限制
|
|
|
|
|
|
|
|
|
|
- 使用文件存儲,不適合多用戶並發場景
|
|
|
|
|
- 缺乏用戶認證和權限控制
|
|
|
|
|
- 摘要生成使用簡單規則,可進一步改進
|
2025-04-12 16:57:47 +08:00
|
|
|
|
- 文件處理不讀取實際文件內容,僅生成摘要信息
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
### 7.2 未來可能的改進
|
|
|
|
|
|
|
|
|
|
- 遷移到數據庫存儲,提高並發處理能力
|
|
|
|
|
- 添加用戶管理和訪問控制
|
2025-04-12 16:57:47 +08:00
|
|
|
|
- 使用更先進的算法優化摘要生成
|
2025-04-11 17:31:48 +08:00
|
|
|
|
- 添加任務優先級和時間規劃功能
|
|
|
|
|
- 實現任務執行進度追蹤
|
2025-04-11 18:02:56 +08:00
|
|
|
|
- 增強文件關聯系統,支持更複雜的關係類型
|
|
|
|
|
- 實現自動識別相關文件的能力
|
2025-04-12 16:57:47 +08:00
|
|
|
|
- 支持實際讀取文件內容,提供更詳細的上下文
|
2025-04-11 17:31:48 +08:00
|
|
|
|
|
|
|
|
|
## 8. 結論
|
|
|
|
|
|
2025-04-12 16:57:47 +08:00
|
|
|
|
蝦米任務管理器採用模塊化、分層設計,使系統具有良好的可維護性和擴展性。通過 14 個核心工具函數和完善的數據模型,系統能夠有效地管理複雜項目的任務流程,特別在需要長期上下文記憶的場景中表現出色。
|
2025-04-11 18:02:56 +08:00
|
|
|
|
|
|
|
|
|
系統的設計重點在於提供清晰的任務管理流程,同時增強 LLM 在執行任務時的上下文記憶能力,通過精確的文件關聯和智能上下文載入,有效解決了 LLM 在處理長期複雜任務時的記憶限制問題。
|
2025-04-12 16:57:47 +08:00
|
|
|
|
|
|
|
|
|
隨著系統的進一步發展,未來將著重改進數據存儲方式、優化摘要生成算法、增強文件處理能力和添加更多任務管理功能,使系統能夠應對更多複雜的任務管理場景。
|