startNextTask
Find and begin the next executable task with completed dependencies to advance project plans by updating task status to in-progress.
Instructions
自动查找下一个可执行的任务(所有依赖均已完成)并开始执行。 这会将任务状态更新为 'in_progress'。这是推进计划的核心方法。
Returns: ToolResponse[TaskOutput]: 包含已启动任务的响应对象。
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/mcplanmanager/app.py:84-93 (handler)MCP tool handler function for 'startNextTask'. Registered via @mcp.tool() decorator and delegates execution to PlanManager.startNextTask().@mcp.tool() def startNextTask() -> ToolResponse[TaskOutput]: """ 自动查找下一个可执行的任务(所有依赖均已完成)并开始执行。 这会将任务状态更新为 'in_progress'。这是推进计划的核心方法。 Returns: ToolResponse[TaskOutput]: 包含已启动任务的响应对象。 """ return plan_manager.startNextTask()
- Core logic implementation in PlanManager class. Finds the next pending task with satisfied dependencies, marks it as in_progress, updates plan state, and returns the task details.def startNextTask(self) -> Dict: """自动开始下一个可执行的任务""" # 查找可执行的任务 executable_tasks = [] for task in self.plan_data["tasks"]: if (task["status"] == "pending" and self._check_dependencies_satisfied(task)): executable_tasks.append(task) if not executable_tasks: return {"success": False, "message": "No executable tasks available", "data": None} # 选择第一个可执行的任务 next_task = executable_tasks[0] next_task["status"] = "in_progress" self.plan_data["state"]["current_task_id"] = next_task["id"] self.plan_data["state"]["status"] = "running" self._update_timestamp() return { "success": True, "data": next_task, "message": f"Started task {next_task['id']}: {next_task['name']}" }
- src/mcplanmanager/models.py:33-43 (schema)Pydantic model for TaskOutput, which defines the structure of the data returned by the startNextTask tool inside ToolResponse.class TaskOutput(BaseModel): """ 用于工具函数返回任务信息时,定义单个任务输出的Pydantic模型。 """ id: int name: str status: str dependencies: List[int] reasoning: str result: Optional[str] = None
- src/mcplanmanager/models.py:6-13 (schema)Generic Pydantic model for ToolResponse[T], used as the return type for startNextTask (with T=TaskOutput). Defines the standardized response structure.class ToolResponse(BaseModel, Generic[T]): """ 一个通用的工具响应模型,用于标准化所有工具的返回结构。 """ success: bool = Field(True, description="操作是否成功。") message: Optional[str] = Field(None, description="关于操作结果的可读消息。") data: Optional[T] = Field(None, description="操作返回的主要数据负载。")