update_todo_list
update_todo_list
工具可在聊天界面中实现动态、交互式的任务管理。它会替换整个TODO列表为更新后的清单,确保任务状态始终最新,并为复杂多步骤工作流提供逐步跟踪功能。
参数
工具接受以下参数:
todos
(必填): 表示完整清单的markdown格式字符串,包含状态指示器
功能说明
该工具创建并管理一个交互式待办列表,以UI组件形式显示在聊天界面中。它支持实时任务跟踪、状态更新,以及在复杂工作流中发现新任务时动态添加项目。该列表提供了一种结构化方式来管理多步骤任务,并带有清晰的视觉进度指示器。
使用场景
- 当管理复杂多步骤任务且需要结构化跟踪时
- 当Roo需要展示一系列相关活动的进度时
- 当任务需要在继续前验证每个步骤完成情况时
- 在长时间或复杂工作流中发现新的可操作项目时
- 当需要为用户提供清晰的检查点和进度可视化时
主要特性
- 完整清单替换:用提供的更新版本覆盖现有待办列表
- 交互式UI组件:在聊天中显示为可编辑的界面元素
- 多种状态类型:支持待处理、进行中和已完成任务状态
- 动态任务管理:在工作流执行过程中添加新任务
- 用户友好编辑:在聊天界面中提供直接编辑功能
- 逐步跟踪:在更新和继续前确认每个步骤完成情况
- 进度可视化:清晰的任务完成状态视觉指示器
- 工作流集成:与任务执行和完成流程无缝集成
限制
- 完整替换:替换整个列表而非增量更新
- 单层结构:使用单层markdown清单,不支持嵌套
- 格式要求:需要特定的markdown复选框语法以正确解析
- 手动更新:需要显式调用工具来更新列表状态
- 状态管理:待办列表状态与当前任务和对话上下文绑定
工作原理
当调用update_todo_list
工具时,它遵循以下流程:
-
输入验证:
- 验证必需的
todos
参数是否提供 - 解析markdown清单格式的语法正确性
- 检查有效的状态指示器:
[ ]
、[-]
和[x]
- 验证必需的
-
列表处理:
- 处理markdown格式的清单
- 提取带有状态指示器的单个待办项
- 验证每个项目的结构和格式
-
UI集成:
- 向用户展示更新后的待办列表以供批准
- 用新版本替换任何现有的待办列表
- 将列表渲染为聊天界面中的交互组件
-
用户交互:
- 在编辑模式下允许用户直接在UI中编辑待办项
- 提供"添加待办项"功能以实时扩展列表
- 将更改同步回扩展以保持状态一致性
-
状态管理:
- 更新任务的内部待办列表表示
- 保持UI状态与后端数据的同步
- 在对话交互间保留待办列表状态
清单格式要求
该工具使用特定的markdown格式来表示待办项:
状态选项
[ ]
- 待处理任务(未开始)[-]
- 进行中任务(当前正在处理)[x]
- 已完成任务(全部完成)
格式规则
- 使用单层markdown清单(无嵌套或子任务)
- 按预期执行顺序列出待办项
- 每个待办项应清晰且可操作
- 状态应准确反映当前任务状态
任务管理指南
状态更新
- 在所有工作完成后立即将任务标记为已完成
- 通过标记为进行中来开始下一个任务
- 对尚未开始的任务使用待处理状态
- 仅当任务完全完成且没有未解决的依赖关系时才标记为已完成
动态列表管理
- 在任务执行过程中发现新任务时立即添加
- 仅当任务不再相关或明确要求时才删除
- 保留所有未完成任务并根据需要更新其状态
- 如果任务被阻塞,保持其为进行中状态并添加解决步骤的新待办项
使用示例
- 开发Web应用时,Roo创建跟踪设计、实现、测试和部署阶段的待办列表
- 设置开发环境时,Roo跟踪依赖安装、配置步骤和验证任务
- 调试复杂问题时,Roo维护调查步骤、潜在原因和测试程序的列表
- 重构代码时,Roo跟踪需要更新的文件、需要修改的测试和所需的文档变更
- 实现新功能时,Roo管理规划、编码、测试和集成步骤的任务
用法示例
为开发任务创建初始待办列表:
<update_todo_list>
<todos>
[ ] 分析需求
[ ] 设计架构
[ ] 实现核心逻辑
[ ] 编写测试
[ ] 更新文档
</todos>
</update_todo_list>
完成第一个任务后更新进度:
<update_todo_list>
<todos>
[x] 分析需求
[-] 设计架构
[ ] 实现核心逻辑
[ ] 编写测试
[ ] 更新文档
</todos>
</update_todo_list>
在实现过程中添加新发现的任务:
<update_todo_list>
<todos>
[x] 分析需求
[x] 设计架构
[x] 实现核心逻辑
[-] 编写测试
[ ] 更新文档
[ ] 添加性能基准测试
[ ] 创建部署脚本
</todos>
</update_todo_list>
管理复杂的调试工作流:
<update_todo_list>
<todos>
[x] 复现问题
[x] 检查最近的代码变更
[-] 分析错误日志
[ ] 使用不同配置测试
[ ] 检查数据库查询
[ ] 验证网络连接
[ ] 创建修复并进行测试
</todos>
</update_todo_list>