loadOrCreateTask 加载或创建任务
(agentID, taskID, contextID string, metadata Metadata)
| 255 | |
| 256 | // loadOrCreateTask 加载或创建任务 |
| 257 | func (s *Server) loadOrCreateTask(agentID, taskID, contextID string, metadata Metadata) (*Task, error) { |
| 258 | task, err := s.taskStore.Load(agentID, taskID) |
| 259 | if err == nil { |
| 260 | // 任务已存在 |
| 261 | if task.IsFinalState() { |
| 262 | // 已完成的任务收到新消息,重启任务 |
| 263 | task.UpdateStatus(TaskStateSubmitted, nil) |
| 264 | } else if task.Status.State == TaskStateInputRequired { |
| 265 | // 需要输入的任务收到消息,继续工作 |
| 266 | task.UpdateStatus(TaskStateWorking, nil) |
| 267 | } |
| 268 | return task, nil |
| 269 | } |
| 270 | |
| 271 | // 创建新任务 |
| 272 | if contextID == "" { |
| 273 | contextID = generateID() |
| 274 | } |
| 275 | |
| 276 | task = NewTask(taskID, contextID) |
| 277 | if metadata != nil { |
| 278 | task.Metadata = metadata |
| 279 | } |
| 280 | |
| 281 | return task, nil |
| 282 | } |
| 283 | |
| 284 | // ============== 辅助函数 ============== |
| 285 |
no test coverage detected