Lzh on GitHub

new_task

new_task 工具通过创建具有不同模式的子任务,同时保持父子关系,从而实现复杂的工作流管理。它将复杂的项目分解为可管理的、每个都以最适合特定工作的模式运行的独立部分。

new_task 工具通过创建具有不同模式的子任务,同时保持父子关系,从而实现复杂的工作流管理。它将复杂的项目分解为可管理的、每个都以最适合特定工作的模式运行的独立部分。

参数

该工具接受以下参数:

  • mode(必需):启动新任务的模式 slug(例如,“code”、“ask”、“architect”)。
  • message(必需):此新任务的初始用户消息或指令。
  • todos(可选):以 Markdown 清单格式提供的初始待办事项列表。

功能与使用时机

该工具会创建一个新的任务实例,并带有指定的起始模式和初始消息。它允许将复杂的工作流分解为拥有自己对话历史的子任务。父任务在子任务执行期间暂停,并在子任务完成时恢复,结果会传回给父任务。

它在以下情况中使用:

  • 当将复杂的项目分解为独立的、重点突出的子任务时。
  • 当任务的不同方面需要不同的专业模式时。
  • 当工作的不同阶段从上下文分离中受益时。
  • 当组织多阶段的开发工作流时。

主要功能与局限性

主要功能

  • 创建具有自己对话历史和专用模式的子任务
  • 暂停父任务以便稍后恢复
  • 维护分层任务关系以供导航
  • 在完成后将结果传回父任务
  • 支持复杂项目的工作流隔离
  • 允许项目的不同部分使用针对特定工作优化的模式
  • 需要明确的用户批准才能创建任务
  • 在界面中提供清晰的任务切换

局限性

  • 无法使用不存在的模式创建任务
  • 在创建每个新任务之前需要用户批准
  • 在子任务深度嵌套时任务界面可能会变得复杂
  • 子任务从父任务继承某些工作区和扩展配置
  • 在切换深度嵌套的任务时可能需要重新建立上下文
  • 任务完成需要明确的信号才能正确返回父任务

工作原理

当调用 new_task 工具时,它会遵循以下流程:

  1. 参数验证
  • 验证所需的 modemessage 参数
  • 验证请求的模式在系统中存在
  1. 任务栈管理
  • 维护一个任务栈以跟踪所有活动和暂停的任务
  • 保留当前模式以便稍后恢复
  • 将父任务设置为暂停状态
  1. 任务上下文管理
  • 使用提供的 message 创建新的任务上下文
  • 分配唯一的 taskIdinstanceId 标识符用于状态管理
  • 捕获工具使用和任务生命周期的遥测数据
  1. 模式切换与集成
  • 切换到指定模式并具有相应的角色和功能
  • 使用提供的 message 初始化新任务
  • 与 VS Code 的命令面板和代码操作集成
  1. 任务完成与结果传递
  • 当子任务完成时,通过 finishSubTask() 将结果传递回父任务
  • 父任务在其原始模式中恢复
  • 任务历史和 token 使用指标得到更新
  • 触发 taskCompleted 事件并附带性能数据

配置

使用可选的待办事项列表参数来简化分层任务规划:

  • 传递待办事项列表:在创建子任务时包含预定义的待办事项列表。
  • 维护上下文:以待办事项列表的形式将上下文传递给子任务。
  • 可选强制:如果需要,VS Code 中的“新建任务需要待办事项”设置可以强制所有新子任务都包含待办事项列表。

这项功能开箱即用,您也可以选择配置 VS Code 设置,以要求所有新任务都必须包含待办事项列表。

使用示例

  • 当一位前端开发者需要设计一个新功能、实现代码并编写文档时,他们可以为每个阶段创建独立的任务,并且结果可以从一个阶段流向下一个阶段。
  • 在实施修复之前调试问题时,调试任务可以记录发现结果,这些结果将传递给实现任务。
  • 在开发一个全栈应用时,来自架构师模式任务的数据库模式设计可以为后续代码模式任务中的实现细节提供参考。
  • 在实现后为系统编写文档时,文档任务可以参考已完成的实现,同时使用特定于文档的功能。

用法示例

创建代码模式的新任务:

<new_task>
  <mode>code</mode>
  <message>Implement a user authentication service with login, registration, and password reset functionality.</message>
</new_task>

完成实现后创建文档任务:

<new_task>
  <mode>docs</mode>
  <message>Create comprehensive API documentation for the authentication service we just built.</message>
</new_task>

将复杂功能分解为架构规划和实现:

<new_task>
  <mode>architect</mode>
  <message>Design the database schema and system architecture for our new e-commerce platform.</message>
</new_task>

创建包含初始待办事项列表的任务:

<new_task>
  <mode>code</mode>
  <message>Build a REST API for user management</message>
  <todos>
    [ ] Set up Express server
    [ ] Create user model
    [ ] Implement CRUD endpoints
    [ ] Add authentication middleware
    [ ] Write API tests
  </todos>
</new_task>