Skip to main content

update_todo_list

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


参数

该工具接受以下参数:

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

功能说明

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


使用场景

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

核心特性

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

限制

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

工作原理

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

  1. 输入验证

    • 验证是否提供了必需的 todos 参数
    • 解析 Markdown 清单格式以确保语法正确
    • 检查有效的状态指示符:[ ][-][x]
  2. 列表处理

    • 处理 Markdown 格式的清单
    • 提取带有状态指示符的各个待办事项
    • 验证每个项目的结构和格式
  3. UI 集成

    • 将更新后的待办事项列表呈现给用户以供审批
    • 用新版本替换任何现有的待办事项列表
    • 在聊天界面中将列表渲染为交互式组件
  4. 用户交互

    • 在编辑模式下允许用户直接在 UI 中编辑待办事项
    • 提供“添加待办事项”功能以实现实时列表扩展
    • 将更改同步回扩展程序以保持状态一致性
  5. 状态管理

    • 更新任务的内部待办事项列表表示
    • 保持 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>