Appearance
Gemini CLI 内置 Todo 任务规划系统,解决 AI 在长对话中"忘记目标"的问题:先描述目标,AI 生成结构化清单,你审查后再开始执行;执行过程中实时更新任务状态;按 Ctrl+T 随时查看完整进度。计划可以随时动态调整,不是一成不变的文本块。
任务规划:Todo 系统
Gemini CLI 的 Todo 任务规划功能让 AI 在执行复杂任务时保持专注,让你在开始前就能看到完整的执行计划。
前置条件
- Gemini CLI 已安装并完成认证,参见 安装指南
- 有一个需要拆解的复杂任务(如多文件重构、新功能开发)
为什么需要任务规划?
普通 AI 对话有一个固有缺陷:随着对话轮数增加,AI 可能"忘记"最初的目标,陷入细节而偏离方向。任务规划通过以下方式解决这个问题:
- 可见性:在动手之前,你能看到 AI 计划做什么
- 专注性:AI 始终清楚当前在处理第几步
- 韧性:如果 AI 卡住了,任务清单帮助它找回方向
请求生成计划
最简单的方式是明确要求 AI 先规划:
Prompt:
我想把这个项目从 JavaScript 迁移到 TypeScript。先帮我做个计划。AI 会分析你的代码库,用 write_todos 工具生成结构化清单:
1. [ ] 创建 tsconfig.json
2. [ ] 将 .js 文件重命名为 .ts
3. [ ] 修复 utils.js 中的类型错误
4. [ ] 修复 server.js 中的类型错误
5. [ ] 验证构建通过审查和调整计划
计划生成后,不要急着执行,先检查是否合理:
- 步骤遗漏? 告诉 AI:"你忘了添加安装
@types/node的步骤。" - 顺序不对? 告诉 AI:"验证构建应该在每个文件之后做,不是最后统一做。"
AI 会动态更新 Todo 清单。
执行计划
确认计划后,让 AI 开始工作:
Prompt:
看起来不错。从第一步开始。执行过程中,输入框上方的 Todo 清单会实时更新:
- 当前执行中的任务高亮显示(
[IN_PROGRESS] 创建 tsconfig.json) - 已完成的任务标记为完成
- 未开始的任务排队等待
监控进度(Ctrl+T)
长任务执行时,完整清单可能被折叠节省空间。随时按 Ctrl+T 展开全部:
✓ 创建 tsconfig.json
✓ 重命名 utils.js → utils.ts
▶ 修复 utils.ts 中的类型错误(进行中)
□ 修复 server.ts 中的类型错误
□ 验证构建通过一眼就能看到"还剩多少工作"。
动态调整计划
计划是活的文档,随时可以修改:
Prompt:
实际上先跳过 server.js 重构,太有风险了。AI 会将该任务标记为 cancelled 或移除,继续执行下一项。这种动态调整能力正是 Todo 系统的价值所在——它不是静态文本,而是与执行状态实时同步的计划。
下一步
常见问题
Q: Todo 计划会保存到文件里吗?
A: 任务清单存在会话上下文中。如果你结束会话,下次用 gemini -r 恢复会话时,之前的计划仍然可见。也可以主动让 AI 把计划写入一个 Markdown 文件,方便在 IDE 中查看。
Q: AI 可以自己决定跳过某步骤吗?
A: 不会。Todo 系统让 AI 按顺序执行,跳过或修改步骤需要你明确指示。AI 会在每个任务完成后等待你的确认(取决于审批模式设置)。
Q: 任务规划适合多大规模的任务?
A: 任何"3个步骤以上且相互依赖"的任务都值得用。比如:重构一个模块(5-10步)、从零实现一个新功能(10-20步)、系统迁移(20+步)。对于简单的单步任务("帮我改个变量名"),不需要生成计划。