Lzh on GitHub

update_todo_list

update_todo_list 工具可以在聊天界面内实现动态、交互式的任务管理。它用一个更新后的清单替换整个待办事项列表,确保任务状态始终是最新的,并为复杂、多步骤的工作流提供分步跟踪。

update_todo_list 工具可以在聊天界面内实现动态、交互式的任务管理。它用一个更新后的清单替换整个待办事项列表,确保任务状态始终是最新的,并为复杂、多步骤的工作流提供分步跟踪。

参数

该工具接受以下参数:

  • todos(必填):一个用 Markdown 格式表示的完整清单字符串,包含状态指示器。

功能

此工具可以创建和管理一个交互式待办事项列表,该列表在聊天界面中显示为 UI 组件。它允许实时任务跟踪、状态更新,并在复杂工作流中发现新项目时动态添加。该列表提供了一种结构化的方式,通过清晰的视觉进度指示器来管理多步骤任务。

使用时机

  • 管理受益于结构化跟踪的复杂、多步骤任务时。
  • Roo 需要展示一系列相关活动的进度时。
  • 任务在继续之前需要分步完成验证时。
  • 在长期或复杂工作流中发现新的可操作项目时。
  • 为用户提供清晰的检查点和进度可见性时。

主要功能

  • 完全替换清单:用提供的更新版本覆盖现有的待办事项列表。
  • 交互式 UI 组件:在聊天中显示为可编辑的界面元素。
  • 多种状态类型:支持待处理、进行中和已完成的任务状态。
  • 动态任务管理:在工作流执行过程中出现新任务时添加它们。
  • 用户友好的编辑:在聊天界面内提供直接编辑功能。
  • 分步跟踪:允许在更新和继续之前确认每个步骤。
  • 进度可视化:清晰的视觉指示器,显示任务完成状态。
  • 工作流集成:与任务执行和完成流程无缝集成。

局限性

  • 完全替换:替换整个列表,而不是进行增量更新。
  • 单层结构:使用单层 Markdown 清单,不支持嵌套。
  • 格式要求:需要特定的 Markdown 复选框语法才能正确解析。
  • 手动更新:需要显式调用工具来更新列表状态。
  • 状态管理:待办事项列表状态与当前任务和对话上下文相关联。

工作原理

当调用 update_todo_list 工具时,它遵循以下过程:

  1. 输入验证
  • 验证是否提供了必需的 todos 参数。
  • 解析 Markdown 清单格式以确保语法正确性。
  • 检查有效的状态指示器:[ ][-][x]
  1. 列表处理
  • 处理 Markdown 格式的清单。
  • 提取每个待办事项及其状态指示器。
  • 验证每个项目的结构和格式。
  1. UI 集成
  • 向用户展示更新后的待办事项列表以供批准。
  • 用新版本替换任何现有的待办事项列表。
  • 将列表作为交互式组件呈现在聊天界面中。
  1. 用户交互
  • 在编辑模式下,允许用户直接在 UI 中编辑待办事项。
  • 提供“添加待办事项”功能以进行实时列表扩展。
  • 将更改同步回扩展程序以保持状态一致性。
  1. 状态管理
  • 更新任务的内部待办事项列表表示。
  • 保持 UI 状态和后端数据之间的同步。
  • 在对话交互中保留待办事项列表状态。

清单格式要求

该工具使用特定的 Markdown 格式来表示待办事项:

状态选项

  • [ ] - 待处理任务(未开始)
  • [-] - 进行中任务(当前正在处理中)
  • [x] - 已完成任务(已完全完成)

格式规则

  • 使用单层 Markdown 清单(无嵌套或子任务)。
  • 按预期的执行顺序排列待办事项。
  • 每个待办事项都应清晰且可操作。
  • 状态应准确反映当前任务状态。

任务管理指南

状态更新

  • 所有工作完成后,立即将任务标记为已完成。
  • 通过将其标记为进行中来开始下一个任务。
  • 对于尚未开始的任务,使用待处理状态。
  • 仅当任务完全完成且没有未解决的依赖项时,才将其标记为已完成。

动态列表管理

  • 在任务执行过程中一旦发现新待办事项,就立即添加它们。
  • 仅当任务不再相关或用户明确要求时,才将其移除。
  • 保留所有未完成的任务并根据需要更新其状态。
  • 如果任务被阻止,请将其保持为进行中状态,并添加新的待办事项以解决。

使用示例

  • 当开发一个 Web 应用程序时,Roo 会创建一个待办事项列表来跟踪设计实现测试部署阶段。
  • 当设置开发环境时,Roo 会跟踪依赖项的安装配置步骤验证任务
  • 当调试复杂问题时,Roo 会维护一个包含调查步骤潜在原因测试程序的列表。
  • 当重构代码时,Roo 会跟踪哪些文件需要更新、哪些测试需要修改以及所需的文档更改
  • 当实现新功能时,Roo 会管理规划编码测试集成步骤的任务。

为开发任务创建初始待办事项列表:

<update_todo_list>
<todos>
[ ] Analyze requirements
[ ] Design architecture  
[ ] Implement core logic
[ ] Write tests
[ ] Update documentation
</todos>
</update_todo_list>

完成第一个任务后更新进度:

<update_todo_list>
<todos>
[x] Analyze requirements
[-] Design architecture
[ ] Implement core logic
[ ] Write tests
[ ] Update documentation
</todos>
</update_todo_list>

在实施过程中添加新发现的任务:

<update_todo_list>
<todos>
[x] Analyze requirements
[x] Design architecture
[x] Implement core logic
[-] Write tests
[ ] Update documentation
[ ] Add performance benchmarks
[ ] Create deployment script
</todos>
</update_todo_list>

管理复杂的调试工作流:

<update_todo_list>
<todos>
[x] Reproduce the issue
[x] Check recent code changes
[-] Analyze error logs
[ ] Test with different configurations
[ ] Check database queries
[ ] Verify network connectivity
[ ] Create fix and test
</todos>
</update_todo_list>